iptables e ssh

1

Estou executando o Arch Linux e tenho um daemon SSH em execução para acessar minha máquina quando estou fora da minha LAN. Eu posso fazer a conexão, mas o iptables continua bloqueando o SSH Daemon, então eu só consigo conectar se eu desligar o firewall. Estou executando o SSH na porta 5000.

Minhas regras de iptables

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT 
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -j REJECT --reject-with tcp-reset 
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -j REJECT --reject-with icmp-proto-unreachable 

# SSH
-A INPUT -p tcp --dport 22 -j REJECT --reject-with icmp-host-unreachable
-A INPUT -p tcp --dport 5000 -j ACCEPT

# VNC
-A INPUT -p tcp --dport 5001 -j REJECT --reject-with icmp-host-unreachable
-A INPUT -p tcp -i lo -s 127.0.0.1/32 -d 127.0.0.1/32 --dport 5001 -j ACCEPT

# HTTP/HTTPS
-A INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-host-unreachable
-A INPUT -p tcp --dport 8080 -j REJECT --reject-with icmp-host-unreachable
-A INPUT -p tcp --dport 443 -j REJECT --reject-with icmp-host-unreachable

-A INPUT -p tcp -i lo -s 127.0.0.1/32 -d 127.0.0.1/32 --dport 80 -j ACCEPT
    
por Hugo Rodrigues 28.08.2015 / 22:51

1 resposta

1

Você precisa reordenar as regras do iptables.

Você não pode se conectar ao seu sshd porque as regras são verificadas na linha por linha. E você já disse iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset = rejeitar todo o tráfego tcp. Mesmo que depois você diga a ele para aceitar conexões com a porta 5000, isso não importa - você já rejeitou essas conexões.

Então, quando você escreve as regras do iptables, pense na ordem: primeiro insira aquelas coisas que você quer permitir, então rejeite o resto.

    
por 28.08.2015 / 23:02