Estou seguindo o wiki chroot do SFTP no ArchWiki e encontrando um grande problema: não consigo sftponly
autorizar meus usuários.
Saída de tail -2 /etc/passwd
(meus 2 usuários):
chris:x:1001:1002::/home/jail:/usr/bin/nologin
rick:x:1002:1002::/home/jail:/usr/bin/nologin
Saída de groups chris
e groups rick
:
sftponly
O diretório:
$ ls -l /home
total 24
drwxr-xr-x 3 root root 4096 Jan 9 16:12 jail/
$ ls -l /home/jail
total 4
drwxrwxr-x 3 rick sftponly 4096 Jan 9 16:12 dropbox/
nota : a única razão pela qual o dropbox/
diretório é de propriedade rick
é porque eu estava experimentando alterar a propriedade de arquivos dentro do diretório chroot jail porque isso era algo que eu li em minha extensa pesquisa no Google. Gostaria dos dois chris
e rick
poder editar os mesmos arquivos. Investigarei as permissões facl quando chegar ao ponto de poder logá-las.
A seção relevante em/etc/ssh/sshd_config
Subsystem sftp /usr/lib/ssh/sftp-server
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
PasswordAuthentication yes
Do log quando tento fazer login via sftp rick@localhost
e digito a senha:
Jan 09 16:44:17 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:23 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:28 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:29 dell-dropbox sshd[688]: Connection closed by authenticating user rick ::1 port 57410 [preauth]
nota : Ambos têm senhas definidas. Estou digitando a senha corretamente. Eu posso sftp como eu mesmo sem nenhum problema.
O que diabos estou perdendo?
AVISO: não sou especialista em segurança. Não posso garantir que seja impossível fazer login via ssh usando esse método, mas parece que você não pode.
O problema-chave parece ter sido
/bin/nologin
, o que acaba sendo desnecessário para começar.Quando o sshd está configurado com as configurações acima, e seus usuários estão configurados para ter seus diretórios pessoais configurados para a prisão assim, não há como eles fazerem o ssh de qualquer maneira. Todo tutorial que encontro sobre
chroot
jails comssh
, ao contrário de tutoriais sobrechroot
jails esftp
, discute a necessidade de configurar pastas de sistema, essencialmente criando um sistema dentro de um sistema. Sem eles, parece impossível fazer login via ssh, mas não via sftp.Portanto, siga minhas instruções acima, mas não defina o shell do usuário como
/bin/nologin
. Tanto quanto eu posso dizer, isso é para usuários daemon.Além disso, é muito fácil configurar tudo isso com teclas ssh. Simplesmente ter um
.ssh/authorized_keys
arquivo de propriedade do root no diretório inicial compartilhado faz o truque.O resultado com um ssh-keys: