Você está configurando a regra iptables na interface eth0, mas telnetando para localhost, que é a interface lo e, portanto, ignorada pelas regras do iptables.
Tente telnetar para o endereço IP da eth0 e veja se você obtém o mesmo resultado
Acho que pedi ao iptables para descartar qualquer pacote para a porta 8091, mas a conexão tcp ainda é bem-sucedida.
$ iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$ iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$ iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables -A INPUT -i eth0 -j DROP
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
$ telnet localhost 8091
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
(That means the TCP connection is established, despite the iptables rule)
Isso significa que o iptables está inativo? Eu tenho que 'aplicar' as regras ou o iptables está desativado por padrão no Debian?
Você está configurando a regra iptables na interface eth0, mas telnetando para localhost, que é a interface lo e, portanto, ignorada pelas regras do iptables.
Tente telnetar para o endereço IP da eth0 e veja se você obtém o mesmo resultado
Parece que sua configuração deve funcionar. Eu mesmo o dupliquei e descobri que, embora eu ainda conseguisse acessar a porta pelo próprio servidor, o acesso externo era bloqueado.
Tente fazer telnet de outro local.
Tags iptables