Você pode fazer isso com iptables -I INPUT -d $public_ip -p tcp --dport 22 -j REJECT
ou pode vincular seu sshd a apenas ouvir em seu IP privado com ListenAddress $private_ip
em /etc/ssh/sshd_config
.
Eu tenho um servidor Debian com um IP público e privado em um DMZ. Eu preciso ser capaz de se conectar a ele através do SSH em nosso lado privado e, em seguida, bloquear todo o acesso ao endereço público. Ambos /etc/hosts.deny e sshd_config parecem permitir apenas bloquear um endereço IP de entrada. O que eu realmente quero é desabilitar as conexões SSH para o IP público. Eu tenho tentado iptables, mas eu não tive sorte com isso.
Qualquer ajuda é apreciada.
- EDIT Então, para reunir uma lista das minhas tentativas até agora:
iptables -I INPUT -d $public_ip -p tcp --dport 22 -j REJECT
sshd: ALL except 192.168.2.12 $DHCPaddressrange : deny
inserido. netstat -tunlp | grep 22
/etc/init.d/ssh e /etc/init.d/network foram reiniciados até agora.
Conexões de rede interna e externa foram usadas ao tentar se conectar ao servidor. Ambos podem acessar via endereço público.
- EDITAR
ESTÁ VIVO! Aparentemente, nossa rede de convidados tem acesso, o que não é muito bom, mas eu tentei me conectar via SSH a partir do telefone de nossa rede de convidados e sem. Aparentemente, eu não posso chegar lá a menos que eu esteja em uma de nossas redes. Algum problema de firewall que eu vejo lá.
Obrigado pela sua resposta pessoal.
Você pode fazer isso configurando o sshd para não escutar no endereço público. Por padrão, o sshd escuta em todos os endereços locais e você pode mudar isso com a diretiva ListenAddress
em /etc/ssh/sshd_config
ListenAddress private.ip.add.ress
reinicie o sshd e você deve estar pronto, mas teste antes de sair da sessão que está usando para fazer as alterações.
Se você tiver vários endereços privados nos quais deseja ouvir, poderá especificar cada um em sua própria diretiva ListenAddress.
Se você usa 2 Interfaces, você pode configurar seu ssh para escutar apenas uma das interfaces! Em seu sshd_conf você encontrará uma linha
ListenAddress 0.0.0.0
que ligará cada interface para ouvir ssh!
agora mude para o ip do dispositivo interno como:
ListenAddress 192.168.0.1
reinicie o ssh e agora o ssh irá ouvir apenas a interface interna!