Como remover completamente o subsistema do usuário do Linux?

7

É possível remover completamente o subsistema do usuário do Linux.

Eu não estou falando sobre como impedir que as pessoas façam login. Estou falando sobre a remoção das partes do sistema que tornam possível efetuar o login.

O resultado é um sistema operacional que, uma vez inicializado, não pode ser acessado porque não há como acessá-lo, exceto os aplicativos já em execução (por exemplo, servidor da Web).

O objetivo é que o sistema seja inacessível por meio de qualquer mecanismo que exija o acesso à linha de comando no nível do usuário, porque não há um sistema de linha de comando no nível do usuário presente.

    
por Duke Dougal 29.09.2015 / 00:18

2 respostas

2

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.

  1. 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
    
  2. Impedir logins do terminal / tela

    Substitua /etc/pam.d/login por uma cópia de /etc/pam.d/denied

  3. 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 que UsePam yes esteja definido.

  4. 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.

    
por 29.09.2015 / 01:30
0

Bem, teoricamente você poderia renomear / excluir o comando /bin/login .

Não tenho certeza se isso impediria single user mode ou não. Também não tenho certeza se você está querendo evitar single user mode ou não.

Você também pode fazer algumas coisas divertidas com pam.d que impediriam todos os logins de usuários, mas isso estaria apenas impedindo logins de usuários, não destruindo a ideia de logins.

Quando eu chegar em casa, se eu lembrar, eu vou rodar uma máquina virtual e dar uma chance. Também foi possível excluir o arquivo /etc/shadow , mas isso também pode afetar todo o resto.

Nota: você não quer remover completamente a ideia dos usuários. Não porque não ter qualquer capacidade de login seja uma má idéia (o que é, mas isso não é o ponto deste tópico), mas porque, devido às permissões, os usuários precisam existir. Sem usuários, você seria forçado a conceder rwx em todos os arquivos no sistema para que seu serviço fosse executado, o que levaria ao problema de não precisar fazer login para hackear coisas, as pessoas poderiam acessar o que quisessem.

    
por 29.09.2015 / 01:06