carlosleosouza
(usa Debian)
Enviado em 19/02/2014 - 09:17h
Pessoal, bom dia.
A Empresa onde trabalho utiliza ADSL 4MB para conexão à Internet. ADSL não é um serviço totalmente confiável como todos sabemos, mas as quedas agora estão frequentes demais. Utilizo um servidor CentOS 6.5 Server, ele é servidor Squid e Firewall iptables. Percebo que no momento das quedas, apenas as máquinas que não passam pelo Squid é que param de ter acesso à Internet, ou seja, as máquinas que tem acesso total. Alguém poderia sugerir o que está acontecendo? Desconfio das minhas regras de Firewall, então, por favor, considerem um iniciante em Linux muito esforçado e me ajudem a configurar corretamente se acharem erros. Abaixo segue meu script de Firewall para que possamos analisar e me ajudar a chegar a uma solução. Já desabilitei o Firewall padrão, SELinux. Já verifiquei as configurações das placas de rede.
Edit: Só complementando, eu utilizo modem roteado com o IP do servidor configurado na DMZ do modem.
Desde já, obrigado a todos.
#!/bin/sh
# Script inicialização de firewall
# Declaracao de variáveis
sites=`egrep -v -E "^#|^$" /etc/squid/rules/sitesdireto.txt`
ipslivres=`egrep -v -E "^#|^$" /etc/squid/rules/livres.txt`
LAN="10.10.10.0/24"
IFLAN="eth1"
IFWAN="eth0"
#Carrega móulos
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_queue
/sbin/modprobe ip_tables
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_MARK
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_TCPMSS
/sbin/modprobe ipt_TOS
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_mac
/sbin/modprobe ipt_mark
/sbin/modprobe ipt_multiport
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_state
/sbin/modprobe ipt_tcpmss
/sbin/modprobe ipt_tos
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
# Ativando algumas coisas básicas do kernel
echo 1 > /proc/sys/net/ipv4/ip_forward # Habilitar o roteamento IP
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Habilitar o uso de syncookies (muito útilpara evitar SYN flood attacks)
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all # desabilita o "ping" (Mensagens ICMP) para sua máquina
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # Não aceite redirecionar pacotes ICMP
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Ative a proteção contra respostas a mensagens de erro falsas
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Evita Smurf Attack e alguns outros de redes locais
#sysctl -p /etc/sysctl.conf
# Mudando as políticas para ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Limpando as regras em memória
iptables -F -t filter
iptables -F -t mangle
iptables -F -t natiptables -Z -t filter
iptables -Z -t mangle
iptables -Z -t nat
#Estações que saem livremente pela porta 80 e 443
for i in $ipslivres;
do
iptables -t nat -A PREROUTING -s $i -p tcp --dport 80 -j ACCEPT # IPs livres do Squid
iptables -t nat -A PREROUTING -s $i -p tcp --dport 443 -j ACCEPT
done
#Sites que não passam pelo proxy
#for DIRECT in $sites; do
# iptables -t nat -A PREROUTING -d $DIRECT -p tcp -m multiport --dports 80,443 -j ACCEPT
#done
# Regras de PREROUTING (DNAT)
iptables -t nat -A POSTROUTING -o $IFWAN -j MASQUERADE #Placa de rede externa
iptables -t nat -A PREROUTING -i $IFLAN -p tcp -m multiport --dports 80 -j REDIRECT --to-port 8082 #Placa de rede interna
# Regras de POSTROUTING (SNAT) - Acesso externo
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 88 -j DNAT --to-destination 10.10.10.243:88
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 2200 -j DNAT --to-destination 10.10.10.37 #SSH Transnet
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 2224 -j DNAT --to-destination 10.10.10.243 #SSH RJ
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 8001 -j DNAT --to-destination 10.10.10.37:8001 # Web Transnet
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 8081 -j DNAT --to-destination 10.10.10.37:8081 # Web Transnet
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.10.10.250 #SSH ADM
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 3130 -j DNAT --to-destination 10.10.10.18:3130 #Cameras DVR1
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 3131 -j DNAT --to-destination 10.10.10.19:3131 #Cameras DVR2
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 34599 -j DNAT --to-destination 10.10.10.18:34599 #Cameras acesso celular DVR1
iptables -t nat -A PREROUTING -i $IFWAN -p tcp -m tcp --dport 34588 -j DNAT --to-destination 10.10.10.19:34588 #Cameras acesso celular DVR2
# Regras de INPUT
iptables -A INPUT -s $LAN -d $LAN -p tcp -m multiport --dports 21,22,23,25,53,80,110,137,138,139,443,445,901,965,10000 -j ACCEPT
iptables -A INPUT -s $LAN -d $LAN -p udp -m multiport --dports 21,22,23,25,53,80,110,137,138,139,443,445,901,965,10000 -j ACCEPT
iptables -A INPUT -s $LAN -d 10.10.10.250/24 -p tcp -m multiport --dports 42,88,135,161,389,464,1024 -j ACCEPT
iptables -A INPUT -s $LAN -d 10.10.10.250/24 -p udp -m multiport --dports 42,88,135,161,389,464,1024 -j ACCEPT
iptables -A INPUT -p tcp --dport 2224 -j ACCEPT
iptables -A INPUT -p tcp --dport 2200 -j ACCEPT
iptables -A INPUT -p tcp --dport 88 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
iptables -A INPUT -p tcp --dport 8001 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s $LAN --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -s $LAN --dport 587 -j ACCEPT
iptables -A INPUT -p tcp -s $LAN --dport 1120 -j ACCEPT
iptables -A INPUT -p tcp -s $LAN --dport 1121 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $IFLAN -j ACCEPT
iptables -A INPUT -s $LAN -d $LAN -m state --state NEW -m tcp -p tcp --dport 5801 -j ACCEPT
iptables -A INPUT -s $LAN -d $LAN -m state --state NEW -m tcp -p tcp --dport 6001 -j ACCEPT
iptables -A INPUT -s $LAN -d $LAN -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
iptables -A INPUT -s $LAN -d $LAN -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
iptables -A INPUT -m state --state # Regras de FORWARD
iptables -A FORWARD -d 65.49.14.0/24 -j LOG --log-prefix "=UltraSurf= "
iptables -A FORWARD -p tcp --tcp-flags SYN, ACK,FIN,RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -s $LAN -i eth0 --sport 1024: -d $LAN -o eth0 --dport 5900 -j ACCEPT
iptables -I FORWARD -p tcp -d 10.10.10.18 --dport 3130 -j ACCEPT
iptables -I FORWARD -p tcp -d 10.10.10.19 --dport 3131 -j ACCEPT
#iptables -A FORWARD -p tcp -d 0/0 --dport 1119:1121 -j ACCEPT
# Regras de OUTPUT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp --dport 2631:2631 -j ACCEPT
#iptables -A OUTPUT -o $IFWAN -p tcp --dport 1119:1121 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -X -t filter
iptables -X -t mangle
iptables -X -t nat