lorometal
(usa CentOS)
Enviado em 16/04/2009 - 10:11h
Bom dia.
Configuerei um servidor proxy com squid e iptables,
porem frequentemente ele para de responder, os clientes nao conseguem acessar as paginas. nem ping o servidor responde, ai derrepente volta a responder.
segue o meu script de firewall que editei a partir de um que peguei aqui no VOL.
frwl.sh
# limpando regras do firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
# setando parametros
SQUID_SERVER="192.168.10.252"
INTERNET="eth0"
LAN_IN="eth1"
SQUID_PORT="88"
PORTA_SSL="443"
PORTA_FTP="21"
PORTA_POP="110"
PORTA_SMTP="587"
HOST_POP="pop.colatinadiesel.com.br"
HOST_SMTP="smtp.colatinadiesel.com.br"
CAIXA_PORT="2631"
CAIXA_01="200.201.174.204"
CAIXA_02="200.201.174.207"
MICRO_RH="192.168.10.99"
MICRO_CPD="192.168.10.222"
MICRO_TESOURARIA="192.168.10.10"
MICRO_GARANTIA="192.168.10.25"
MICRO_CONTAB="192.168.10.58"
MICRO_CHRISTIANO="192.168.10.100"
MICRO_MAZINHA="192.168.10.107"
MICRO_MACIEL="192.168.10.111"
ATA_VOIP="192.168.10.77"
# carregando modulos do iptables
modprobe ip_tables
modprobe iptable_filter
modprobe ipt_LOG
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# setando politica de filtragem
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# habilitando loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# liberando UDP, DNS e FTP passivo
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# compartilhando a conexao com a internet
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables -t nat -A POSTROUTING -o $LAN_IN -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# libera acesso direto a estacoes
iptables -t nat -A PREROUTING -s $MICRO_GARANTIA -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_CPD -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_RH -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_CONTAB -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_TESOURARIA -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_CHRISTIANO -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_MAZINHA -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $MICRO_MACIEL -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s $ATA_VOIP -d 0.0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.10.195 -d 0.0.0.0.0/0 -j ACCEPT
# redireciona portas para estacoes
iptables -A FORWARD -p tcp -d $MICRO_RH --dport $CAIXA_PORT -j ACCEPT
# redirecionar trafego http para o squid
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# liberar trafego na rede interna
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# libera acesso para o conectividade social
iptables -A FORWARD -i $LAN_IN -o $LAN_IN -p tcp --dport $CAIXA_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTERNET -o $INTERNET -p tcp --dport $CAIXA_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $LAN_IN -o $INTERNET -p tcp --dport $CAIXA_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTERNET -o $LAN_IN -p tcp --dport $CAIXA_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $INTERNET --dport $CAIXA_PORT -j DNAT --to $MICRO_RH:$CAIXA_PORT
iptables -A FORWARD -p tcp -s $MICRO_RH -d $CAIXA_01 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -s $MICRO_RH -d $CAIXA_02 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -s $MICRO_RH -d $CAIXA_01 --dport 2631 -j ACCEPT
iptables -A FORWARD -p tcp -s $MICRO_RH -d $CAIXA_02 --dport 2631 -j ACCEPT
# bloqueia outros protocolos e cria o log
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT