Regras iptables
Ates de aplicarmos regras as cadeias é sempre bom aplicar essa regra, ainda mais se estivermos conectado por ssh, caso contrario perdemos a conexão com o servidor.
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables --append OUTPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables --append FORWARD --match state --state ESTABLISHED,RELATED --jump ACCEPT
Fechando as políticas básicas
# iptables --policy INPUT DROP # iptables --policy OUTPUT DROP # iptables --policy FORWARD DROP
Liberando o acesso à interface loopback:
# iptables --append INPUT --in-interface lo --destination 127.0.0.1 --jump ACCEPT # iptables --append OUTPUT --out-interface lo --destination 127.0.0.1 --jump ACCEPT
Liberando a entrada de pacotes ICMP Echo Reply e a saída de pacotes ICMP Echo Request:
# iptables --append INPUT --protocol icmp --icmp-type 0 --jump ACCEPT # iptables --append OUTPUT --protocol icmp --icmp-type 8 --jump ACCEPT
Regra para utilizar o programa mtr, que é um programa similar ao traceroute:
# iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
Liberando a conexão por ssh
# iptables --append INPUT --match state --state NEW --match tcp --protocol tcp -s 192.0.2.0/24 --dport 1024:65535 --sport 22 --jump ACCEPT # iptables --append OUTPUT --match state --state NEW --match tcp --protocol tcp --dport 22 -d 192.0.2.0/24 --sport 1024:65535 --jump ACCEPT
- –sport, –source-port: Opção para definir porta origem.
- –dport, –destination-port: Opção para definir porta destino.
Resolução de nomes
# iptables --append INPUT --match state --state NEW --match udp --protocol udp -s 192.0.2.100/32 --dport 1024:65535 --sport 53 --jump ACCEPT # iptables --append OUTPUT --match state --state NEW --match udp --protocol udp --dport 53 -d 192.0.2.100/32 --sport 1024:65535 --jump ACCEPT
Compartilhando a internet
# iptables -A FORWARD -s 192.168.200.0/24 -d 0/0 -j ACCEPT # iptables -A FORWARD -s 0/0 -d 192.168.200.0/24 -j ACCEPT # iptables --table nat --append POSTROUTING --source 192.168.200.0/24 --out-interface eth1 --jump MASQUERADE
Temo que lembra de permitindo o encaminhamento de pacotes no kernel
# echo 1 > /proc/sys/net/ipv4/ip_forward
ou alterando o arquivo sysctl.conf para
# vim /etc/sysctl.conf [...] net.ipv4.ip_forward = 1 [...]
- eth1: interface que está conectada a internet
Para acompanhar as atividade do nat por meio do arquivo de kernel:
# tail -f /proc/net/ip_conntrack
Redirecionamento de porta
# iptables -t nat -A PREROUTING -p tcp -s 0/0 -d 200.100.50.99 --dport 22 -j DNAT --to 192.168.200.2:52000
Resumindo a regra, todos os pacotes tcp que vierem de qualquer origem com destino o IP válido do nosso Firewall, na porta 22, vai ser redirecionado para o host interno 192.168.200.2 na porta 22.
Listando as regras
# iptables -nvL --line-number # iptables --list --line-number --verbose # iptables -t nat -nL
