User Tools

Site Tools


wikiv3:exregras

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
wikiv3/exregras.txt · Last modified: by 127.0.0.1