Edição remota segura de arquivos acessíveis pela raiz por SSH

8

De acordo com as práticas recomendadas de segurança, não se deve permitir o login raiz sobre SSH com senha ou chaves. Em vez disso, 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íveis pela raiz por SFTP pode ser compatível com as práticas recomendadas de segurança

  • Como definir permissões de arquivo, grupos de usuários e de forma que as melhores práticas de segurança sejam seguidas

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

O servidor é o Ubuntu 12.04.

Mikko Ohtamaa
fonte
Então, qual é o seu sistema operacional cliente? Seja mais específico em sua pergunta!
SPRBRN
Não consigo entender por que o login raiz com base em chave direta deve ser menos seguro que o sudo.
precisa

Respostas:

2

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

Também é possível configurar o chroot no SFTP e desativar o logon normal para uma conta específica - ou limitar o logon para esse usuário apenas a partir de endereços IP especificados - com o mesmo recurso do OpenSSH (Match Group etc.). Sobre isso, verifique http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

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

De qualquer forma, existem muitas soluções diferentes para o problema. Essa foi apenas uma abordagem.

thejhh
fonte
1

Não vejo por que não seria bom editar sudo esses arquivos através do SSH. Eu faço isso o tempo todo, por exemplo

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

Se você deseja usar um editor de GUI, pode usar o tunelamento X. Você precisa permiti-lo no seu arquivo ssh conf e, em seguida, usar a -Xopção na sua linha de comando ssh.

ssh -X server.example.com

Em seguida, você pode editar o arquivo de arquivo em um editor da GUI:

sudo gedit /etc/apache2/sites-available/default
Mikkel
fonte
Esta é a edição remota como o sentido que eu estava me referindo; Você está executando o gedit no servidor, não um editor de texto local, que edita arquivos sobre SSH / SFTP
Mikko Ohtamaa
0

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

user72923
fonte