Proteger a edição remota de arquivos acessíveis por root via SSH

8

De acordo com as práticas recomendadas de segurança, não é permitido permitir o login raiz via SSH com senha ou chaves. Em vez disso, o sudo deve ser usado.

No entanto, se alguém quiser usar o SSH (SFTP) para edição remota de arquivos de configuração do servidor, como aqueles que vivem em / etc (Apache, Cron, o nome dele), como isso deve ser feito?

  • A edição remota de arquivos acessível por root em SFTP pode ser compatível com as práticas recomendadas de segurança

  • Como alguém deve definir permissões de arquivos, grupos de usuários e de forma que as práticas recomendadas de segurança sejam seguidas

Atualmente, uso a autenticação de chave pública protegida por senha para efetuar login como root, mas não tenho certeza se há algo mais seguro que eu possa fazer, de modo que os logins SSH de raiz possam ser desativados completamente.

O servidor é o Ubuntu 12.04.

    
por Mikko Ohtamaa 11.04.2013 / 10:46

3 respostas

2

Se a edição remota é realmente desejada, uma solução simples poderia ser manter uma cópia do / etc (ou partes dela) em outro usuário local e configurar o sistema para copiar as mudanças de lá para o real / etc. Melhor ainda seria usar um git - ou svn, ou qualquer outro sistema de controle de versão de sua escolha - e você também teria um registro de mudanças adicional.

Também é possível configurar o chroot no SFTP e desativar o login normal de uma conta específica - ou limitar o login a esse usuário somente a partir de endereços IP especificados - com o mesmo recurso do OpenSSH (Match Group, etc.). Sobre isso, verifique o link

No entanto, lembre-se que a maioria dos arquivos de configuração em / etc torna possível obter acesso root apenas editando-os. Vi sistemas configurados com svn / git para verificar a validação dos arquivos de configuração antes de aceitar as alterações dos arquivos - que poderiam ser usados para aceitar apenas os formatos de configuração seguros.

De qualquer forma, há muitas soluções diferentes para o problema. Esta foi apenas uma abordagem.

    
por 11.04.2013 / 23:43
1

Não vejo por que não seria correto sudo editar esses arquivos por meio do SSH. Eu faço isso o tempo todo, por exemplo.

sudo nano /etc/apache2/sites-available/default

Se você quiser usar um editor de GUI, poderá usar o tunelamento X. Você tem que permitir isso no seu arquivo sshconf e então usar a opção -X em sua linha de comando ssh.

ssh -X server.example.com

Depois, você pode editar o arquivo de um editor de GUI:

sudo gedit /etc/apache2/sites-available/default
    
por 11.04.2013 / 11:45
0

Veja esta resposta SO para um exemplo de como fazer isso através de um túnel SSH em Sublime Text.

    
por 30.08.2013 / 19:52