Pessoal, li muita coisa na rede sobre iptables e no slack10 estou tentando implementar o script abaixo. Mas não funciona a navegação na internet nem o acesso da internet a algumas maquinas da rede interna. Como já vi que sozinho não vou resolver ( cabeça quente ) peço por favor a ajuda.
Importante o rc.ip_forward esta ativado pois consegue-se pingar dos dois lados da rede. Para saber se o acesso as maquinas internas da rede via vnc/terminal service funcionava, liquei a placa de rede que tem ip web a outra maquina via cabo cross-over com um ip valido da web mesma mascara e nao fucionou , mas consigo pingar a rede interna.
Obrigado
Antonio Carlos
Script de Firewall
#!/bin/sh
#
#
# Variaveis de Ambiente onde :
#
# ETH_WEB = eth com ip fixo da internet;
# ETH_INT = eth da rede interna;
# IP_WEB = IP visivel a Internet
# IP_INT = IP do firewal na rede Interna, Gateway da Rede
# REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
#
ETH_WEB="eth0"
ETH_INT="eth1"
IP_WEB="200.152.123.87"
IP_INT="192.168.0.250"
REDE_LOCAL="192.168.0.0/255.255.255.0"
# Limpando as tabelas
iptables -F
iptables -X
iptables -t nat -F
iptabels -t nat -X
# Politica de Acesso
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# redirecionamento de pacotes, coloquei mas no slck o rc.ip_forward eh 755
echo "1" >/proc/sys/net/ipv4/ip_forward
# liberando o loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT
# liberando o que vier da rede local
iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT
# Liberacao de PING (ICMP) na Interface Externa com certa limitacao
iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT
# Liberacao de Portas de Servico com destino a porta web vindo da endereço web
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 21 -j ACCEPT #liberando ftp
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 22 -j ACCEPT #liberando ssh
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 23 -j ACCEPT #liberando telnet
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 3389 -j ACCEPT #liberando terminal service
iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 5900 -j ACCEPT #liberando vnc
# Qualquer outro tipo de trafego aceito, creio ser necessario para a rede interna
iptables -A INPUT -i $ETH_WEB -j ACCEPT
# Redirecionando da porta 80 para o squid , fazendo proxy transparente
iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
# redirecionamento de portas para um host interno
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900
# fazendo o ip masquerade
iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE