stefaniobrunhara
(usa CentOS)
Enviado em 12/01/2014 - 08:22h
Tem muito material na internet sobre o iptables, mas sempre é bom você comerçar com algum script básico, o escript abaixo, esta preparado para liberar a estação 192.168.0.1 para faze qualquer coisa, o restante da rede esta liberado para navegar e pegar email em qualquer provedor.
Este script esta tratando apenas o achain forward, que é o mais usando para quem quer compatinhar a internet, por isto ele começa com forward drop, e depois você libera somente o que você deseja.
vim /etc/init.d/firewall.sh
#!/bin/bash
## Limpas todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP <--- nega tudo que for reeenvio
## Prepara o kernek para o roteamento e compatinamento da internet
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
## Carregar módulos básico para o compatinhamento da internet.
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_tables
## Libera estação 192.168.0.1 geral
iptables -A FORWARD -s 192.168.0.1 -d 0/0 -j ACCEPT
## Liberar porta para rede
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dport 20,21,25,53,80,110,465,587 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
## Regra padrão da tabela filter
iptables -A FORWARD -t filter -j ACCEPT
iptables -A FORWARD -t filter -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -d 0/0 -o eth+ -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dport 20,21,25,53,80,110,443,465,587 -o eth+ -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -o eth+ -j MASQUERADE
:x
# Dar permissão de executação
chmod +x /etc/init.d/firewall.sh
# Executa o firewall
/etc/init.d/firewall.sh