Chroot debian squeeze para acesso ao shell

3

Um usuário requer acesso shell a um servidor Ubuntu do lado da WAN. Existem muitas contas de shell com senhas simples. Portanto, a porta do shell (porta 22) está bloqueada no firewall. Para o meu usuário do lado da WAN, estou planejando executar um servidor ssh em um chroot do Debian e abrir sua porta no firewall. Se esse tipo de configuração for viável, qual é a melhor maneira de alcançá-lo?

    
por nixnotwin 10.07.2011 / 05:53

1 resposta

5

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.

    
por 10.07.2011 / 12:28