Eu tenho uma versão 6.4 do CentOs com a Digital Ocean e gostaria de criar com sucesso usuários SFTP e prendê-los no diretório home chroot do próprio usuário, mas temo estar fazendo uma bagunça nisso.
Eu tentei muitas coisas, muitas para listar aqui, na verdade a maioria provavelmente está incorreta ou não fará muito sentido, mas o que eu acho que deve ser o processo correto e o que eu tentei é: -
Crie um grupo para sftp
: -
groupadd sftp
Crie um usuário e defina seu diretório inicial: -
useradd -d /var/www/vhosts/domain.com dummyuser
Defina uma senha para o usuário: -
passwd dummyuser
Mude o grupo de usuários para 'sftp': -
usermod -g sftp dummyuser
Defina o shell do usuário para /bin/false
: -
usermod -s /bin/false dummyuser
Editar subsistema em sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Adicione o seguinte na parte inferior do sshd_config
arquivo: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Verifique se todos os seguintes diretórios são root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Se eu tentar fazer logon no servidor via SFTP com o usuário dummyuser
(no WinSCP), obtenho o seguinte: -
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Tudo o que quero alcançar é prender um usuário ao diretório inicial. Eu também tenho o vsftpd instalado e configurado. Os usuários podiam fazer login corretamente, mas teriam acesso a todo o servidor - eu simplesmente não consegui fazer com que a prisão funcionasse.
Editar
Esqueci de mencionar, então reiniciei sshd
também: -
service sshd restart
Quando o erro é produzido no WinSCP, sua página de ajuda está aqui .
Resultados do registro
/var/log/secure
Substituí o nome do servidor real por server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
sshd
? O que há nos arquivos de log no servidor?/var/log/secure
.vhosts
éroot:root
.Respostas:
É uma armadilha comum:
todas as pastas até a casa do chroot devem ser de propriedade e graváveis apenas pelo
root
usuário.As pastas não podem ser graváveis em grupo - mesmo que o grupo seja
root
.fonte
namei -l /var/www/vhosts
Encontrei e configurei com êxito o sftp no CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Edite a configuração do sshd:
vim / etc / ssh / sshd_config
Saia e salve.
Então:
Para um novo usuário chamado "testuser" (membro do grupo somente sftp com GID 500):
(eu uso / etc / skel2 vazio, para que nenhum .bashrc etc seja copiado por padrão pelo CentOS)
Portanto, neste exemplo, consegui conceder acesso seguro a empresas de consultoria externas que gerenciam sites. Depois de criar tudo isso, você poderia:
Pode-se ajustar tudo isso conforme necessário.
Espero que isso tenha ajudado!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
fonte
service sshd restart