iptables impede a conexão via ssh após a mudança de porta apesar da regra ACCEPT

1

Eu tenho duas máquinas conectadas a um roteador, um Windows com PuTTY e um CentOS 6.4 com sshd e com o SELinux padrão ainda ativado. Eles podem fazer ping com sucesso.

Instalei o pacote policycore-python para poder usar semanage e, em seguida, seguir estas instruções .

O passo 4 parecia ser o novo padrão, já que já estava configurado dessa maneira.

O passo 5 funcionou e eu presumo que o material sobre ~/.ssh/config é para configurar o seu cliente ssh em outra máquina, então isso não se aplica (eu posso fazer algo similar no PuTTY.)

Passo 6 Eu percebi que a coisa mais curta e mais aplicável era a terceira opção, então eu corri:

iptables -A INPUT -p tcp --dport 2345 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 2345 --syn -j DROP
service iptables save
service iptables restart

Neste ponto, posso fazer ssh -p 2345 localhost e também ssh -p 2345 192.168.1.4 na caixa CentOS e logar em si mesmo, mas não consigo mais PuTTY na caixa CentOS. Eu coloquei o IP e a porta 2345 corretos na janela de conexão, mas ao tentar me conectar, obtive uma tela preta com um cursor verde sólido, que, após alguns segundos, mostra um pop-up de GUI dizendo Network error: Connection timed out .

Se eu parar o serviço iptables , eu posso fazer login usando o PuTTY da mesma maneira. Então parece que o problema é definitivamente com iptables e não sshd (nem semanage ?).

O que há de errado com meu iptables ?

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:2345 flags:FIN,SYN,RST,ACK/SYN limit: avg 1/min burst 3
DROP       tcp  --  anywhere             anywhere            tcp dpt:2345 flags:FIN,SYN,RST,ACK/SYN

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
    
por Kev 04.07.2013 / 16:46

1 resposta

1

A regra REJECT tem que vir depois das novas regras. Faça isso:

$ sudo service iptables stop
[sudo] password for kev:
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
$ sudo nano /etc/sysconfig/iptables
$ sudo service iptables start

Quando o nano abrir, corte a linha REJECT e corte-a abaixo das duas novas regras, depois escreva e saia.

Além disso, você precisará do ssh do localhost apenas uma vez antes de fazer isso do lado de fora.

    
por 05.07.2013 / 03:53