Servidor ssh simples
Se a única razão pela qual você planeja executar um servidor SSH em um chroot é restringir a autenticação de senha a alguns usuários, você não precisa disso: você pode dizer ao sshd para permitir senhas apenas para uma lista branca de usuários. Em /etc/ssh/sshd_config
, use uma diretiva Match
:
PasswordAuthentication No
Match User trusted_user_1,trusted_user_2
PasswordAuthentication yes
Se você quiser fazer chroot de alguns usuários, ainda poderá executar um único daemon ssh e usar uma diretiva ChrootDirectory
em sshd_config
(dentro do escopo de uma diretiva Match
).
Dois servidores ssh, ouvindo em endereços diferentes
Você pode ter dois daemons ssh ouvindo na mesma porta, se estiverem ouvindo em endereços diferentes. Coloque uma diretiva ListenAddress
em cada /etc/ssh/sshd_config
, cada uma com o (s) endereço (s) de IP que você deseja que o servidor escute (escute em , não escute para , isto é, estes são endereços das interfaces de rede do seu servidor). Isso é de aplicabilidade limitada, somente se a máquina do servidor for o nó que faz a filtragem de LAN / WAN. Isso também significa que coisas como ssh localhost
não serão transparentes (você ainda pode acessar o daemon que não está escutando em localhost com ssh -b
).
Dois servidores ssh, escutando em portas diferentes
Você pode fazer o daemon ssh no chroot ouvir em uma porta diferente, com a diretiva Port
em /etc/ssh/sshd_config
. Continue bloqueando a porta 22 de fora em seu firewall e não bloqueie a outra porta que você selecionou para o chroot sshd.
Dois servidores ssh, roteamento realizado pelo firewall
Se você tem dois daemons ouvindo em portas diferentes (como acima), você ainda pode dar a ilusão de que ambos estão ouvindo na porta 22. Por exemplo, faça o daemon ssh chrooted escutar na porta 2201 e redirecione o tráfego chegando porta 22 em eth1
para a porta 2201:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j REDIRECT --to-ports 2201
Em seguida, as conexões ssh do localhost ou da eth0 para a porta 22 alcançarão o servidor não-chrooted, enquanto as conexões ssh da porta eth1 à porta 22 alcançarão o servidor chrooted. As conexões na porta 2201 alcançarão o servidor chrooted. Você pode usar outros critérios além de -i eth
, por exemplo, ! -s 10.1.0.0/16 ! -s 127.0.0.0/8
para corresponder a tudo com um endereço de origem diferente de 10.1.x.y ou loopback.