Acabei de criar um novo usuário friend
no meu servidor, o objetivo é dar acesso SFTP a um amigo meu, para que ele possa hospedar seu site lá.
Percebi que ao conectar o servidor por SFTP com o usuário friend
, a pasta padrão é /home/friend/
, mas você pode facilmente sair /home/friend/
e visitar todos os arquivos em acesso de leitura no servidor , como /home/anotheruser/website2/config.php
! Eu não quero isso.
Foi-me dito para colocar este usuário em "modo preso/isolado", então, no final do meu padrão sshd_config
:
...
Subsystem sftp /usr/lib/openssh/sftp-server
... Eu adicionei isso:
Match User friend
ChrootDirectory /home/friend
ForceCommand internal-sftp
e fez service sshd restart
.
Então não consegui mais conectar o servidor por SFTP com user friend
, oops! Também tentei substituir Subsystem ...
por Subsystem sftp internal-sftp
mas o resultado foi o mesmo: friend
não consigo mais conectar o servidor via SFTP.
Pergunta:
Como isolar o usuário friend
para que ele não possa sair de casa /home/friend/
via SFTP/SSH?
Nota: Eu já li Como restringir usuários de SFTP a diretórios domésticos usando chroot Jail , Como posso chroot usuários SSH somente sftp em suas casas? , etc
Não tenho certeza de qual sistema operacional você está usando, mas uso o link abaixo quando preciso configurar usuários SFTP presos. É um tutorial muito bom sobre como configurar um usuário SFTP preso.
https://access.redhat.com/solutions/2399571
Eu então montaria o bind em qualquer diretório para o diretório chroot ao qual você deseja dar acesso ao seu amigo.
Solução de trabalho
Isso é inspirado no tutorial Como configurar um servidor sftp com usuários chroot restritos com chaves ssh mencionadas na resposta do @HeysusEscobar.
Faça isso de
root
:Adicione isto a
/etc/ssh/sshd_config
:e fazer
service sshd restart
. Isso é tudo!Observe que:
ssh
, então não modificou nada para outros usuáriosfriend
não podessh
friend
pode se conectar porsftp
PS: se você quiser disponibilizar
friend
o site do 's para internet, você pode adicionar isso à configuração do Apache:Nota do site: mesmo com
open_basedir
o acima,friend
ainda não pode sair de seu ambiente chroot com PHP ou executar código malicioso com impacto em todo o sistema de arquivos? Pergunta vinculada: Um usuário SFTP com chroot/isolado ainda pode visitar todo o sistema de arquivos com PHPSolução antiga (somente pela metade)
Substituindo
ChrootDirectory /home/friend
porChrootDirectory /home
ajudado, conforme documentação:Com isso, o usuário
friend
pode se conectar ao SFTP novamente; não pode sair/home/
; mas ainda pode visitar/home/anotheruser/...
, o que é indesejado!Você pode manter as modificações em seu arquivo .sshd_config e usar
chmod -R 700 /home/anotheruser
para restringir o acesso à casa de outro usuário de qualquer outra pessoa, incluindofriend
. Você pode modificar o valor chmod se isso for muito rigoroso, mas é isso que eu pessoalmente estava procurando na minha pergunta aqui . (Desculpe por postar isso como outra resposta, não tenho reputação suficiente para adicionar isso como um comentário à sua resposta)