Eu tento entender como o iptables funciona, mas depois de muitas horas e lendo vários artigos que tenho. O que eu quero fazer é DROP INPUT & Política FORWARD e abra alguns portos. Mais especificamente, gostaria de abrir o 80 & 443 portas para ter http & https respectivamente. Lembre-se também de que tenho o Arch Linux OS e uso o Wi-Fi.
Eu defini as regras abaixo em iptables.rules.
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [972:60914]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --doprt 443 -j ACCEPT
COMMIT
Quando defino as regras acima, não recebo nenhuma solicitação de entrada!
Também testei o abaixo, mas também não trabalhei:
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [972:60914]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --doprt 443 -j ACCEPT
-A INPUT -j DROP
COMMIT
Também testei este tutorial link . Então minhas regras são essas:
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [972:60914]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A UDP -p udp -m udp --dport 53 -j ACCEPT
COMMIT
O exemplo acima funciona, mas não tenho certeza se funciona corretamente e como funciona. Por exemplo, fico atento ao pedido de entrada se remover estas linhas:
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A UDP -p udp -m udp --dport 53 -j ACCEPT