Esta é uma diferenciação interessante:
I'm NOT talking about preventing people from logging in. I'm talking about removing the parts of the system that even make it possible to log in.
Não tenho certeza se existe algo diferente de uma diferença semântica. Se eu removesse /bin/login
, você não conseguiria efetuar login (no terminal físico) porque eu tornei impossível efetuar login. Mas eu não teria removido todo o subsistema de login.
Minha sugestão seria deixar o mais intacto possível, porque pode haver dependências imprevistas. Deixe os usuários no lugar, para que seu servidor da Web seja executado como uma conta diferente de root
. Evite logins interativos e não interativos, modificando o subsistema PAM. Opcionalmente, evite o acesso a sudo
type de maneira semelhante.
-
Prepare uma definição de PAM "negada"
Crie
/etc/pam.d/denied
contendo as duas linhas seguintes:auth requisite pam_deny.so session requisite pam_deny.so
-
Impedir logins do terminal / tela
Substitua
/etc/pam.d/login
por uma cópia de/etc/pam.d/denied
-
Impedir logins de rede com
ssh
Substitua
/etc/pam.d/sshd
por uma cópia de/etc/pam.d/denied
Edite
/etc/ssh/sshd_config
e garanta queUsePam yes
esteja definido. -
Opcionalmente, desative a tentativa em
sudo
Substitua
/etc/pam.d/sudo
por uma cópia de/etc/pam.d/denied
Na verdade, em vez de negar todos os logins, talvez seja melhor permitir logins raiz do terminal / tela físico e negar todo o resto. Isso também pode ser feito via PAM, mas está fora do escopo específico da questão.