Regra Iptables para permitir apenas uma porta e bloquear outras

2

Temos dois aplicativos em execução (na parte superior do linux) e ambos se comunicam pela porta 42605. Eu queria verificar rapidamente se essa é a única porta usada para comunicação entre eles. Eu tentei abaixo da regra, mas parece que não funciona. Então, só queria esclarecer isso, se estou fazendo errado.

A seguir, a sequência de comandos que eu executei

iptables -I INPUT -j REJECT
iptables -I INPUT -p tcp --dport 42605 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -I OUTPUT -p tcp --dport 42605 -j ACCEPT

Então, isso será adicionado em ordem inversa, já que estou inserindo-o.

Eu queria permitir comunicações de entrada e saída de e para a 42605. A regra acima parece boa ou estou fazendo errado?

Outra questão, seria este o caminho certo para testar, ou talvez eu deveria usar o comando "netstat" para ver qual porta tem conexão estabelecida com o outro ip?

    
por Being Gokul 14.03.2014 / 18:23

1 resposta

3

Podemos desativar a política de INPUT para bloquear tudo e permitir apenas portas específicas

# allow established sessions to receive traffic
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow your application port
iptables -I INPUT -p tcp --dport 42605 -j ACCEPT
# allow SSH 
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
# Allow Ping
iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow localhost 
iptables -A INPUT -i lo -j ACCEPT
# block everything else 
iptables -A INPUT -j DROP

Another question, would this be the right way to test, or maybe I should use "netstat" command to see which port has connection established with the other ip?

Sim, você pode verificar netstat -antop | grep app_port e também pode usar strace:

strace -f -e trace=network -s 10000 PROCESS ARGUMENTS

Para monitorar um processo existente com um pid conhecido:

strace -p $( pgrep application_name) -f -e trace=network -s 10000
    
por 14.03.2014 / 18:40