IPTables - 04-02-09
A tabela NAT é usada para dados que geram outra conexão. Com ela, podemos fazer com que todas as máquinas da nossa rede saiam para a internet usando o IP válido do Firewall Gateway, e podemos trabalhar com redirecionamento de portas entre a própria máquina ou para outras máquinas na rede.
A Tabela NAT, possui 3 CHAINS:
- PREROUTING: É a Chain onde vão ficar as regras de pacotes que estão entrando por uma determinada interface e vão sofrer alguma ação, antes de ser roteado para outra inferface.
- POSTROUTING: É a Chain onde vão ficar as regras de pacotes que após serem roteados entre as interfaces vão sofrer alguma ação.
- OUTPUT: Essa Chain tem a mesma função que a PREROUTING, só que ela é só para pacotes originados localmente. Ela é pouco usada.
Podemos ver quais são as CHAINS da tabela NAT:
# iptables -t nat -n -L
Então queremos fazer com que essas máquinas que estão na minha rede com IP inválido, saiam pela internet através do Bastion Host, usando o seu IP válido.
A primeira coisa a se fazer, não é criar regras na tabela nat, e sim, permitir no Kernel que as interfaces aceitem trocar pacotes entre elas. Como podemos fazer isso?
Podemos fazer isso através do sysctl. Existe um opção chamada ip_forward, que precisa ser habilitada. (ou #vim /proc/sys/net/ipv4/ip_forward)
# sysctl -a | grep ip_forward
# sysctl -w net.ipv4.ip_forward=1
Lembrando que para deixar isso fixo, será necessário colocar no arquivo /etc/sysctl.conf.
Mesmo alterando o /proc/sys/net/ipv4/ip_forward nos precisamos alterar o /etc/sysctl.conf para que o parametro fique fixo.
Para liberamos a nossa rede pelas regras do iptbles, podemos fazer de duas maneiras. No Netclass eu postei o script nat.sh e o nat2.sh. Vamos ver primeiro o nat.sh
# vim nat.sh
# vim nat2.sh
Nesse momento, a nossa CHAIN FORWARD da tabela filter, está em ACCEPT, o que aconteceria se colocassemos ela em DROP?
# iptables -P FORWARD DROP
Se fizermos isso, a tabela NAT não vai funcionar, pois precisa primeiro liberar no firewall o repasse de pacote entre as redes, para depois fazer o Mascaramento.
$NET = 0/0
$IPT -A FORWARD -s $REDE -d $NET -j ACCEPT
$IPT -A FORWARD -s $NET -d $REDE -j ACCEPT
Outra coisa que podemos fazer com a NAT, é o redirecionamento de portas.
Imaginem que vocês montaram um servidor Web dentro da sua rede, que tem a página da sua empresa. Esse servidor está com um IP interno, e você precisa liberar ele para que a Internet acesse ele, e vocês só tem 1 IP válido. Como fazer?
Podemos usar a CHAIN PREROUTING da NAT para resolver isso.
Vamos ver o script pre_nat.sh que está postado no Netclass:
# vim pre_nat.sh
DNAT = DestinationNAT
2 Responses
to “IPTables - 04-02-09”
1 Trackback(s)
- jun 28, 2010: ALFONSO

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempor dui id erat. Donec commodo, nunc ac bibendum porta | 
Valeu Nando!!
Abração garoto