Bom dia pessoal.
Estou com um problema que ta me deixando careca com o iptables...
Tenho um servidor de firewall/proxy rodando o slack 9.1 e iptables, onde o
squid esta funcionando perfeitamente, a rede navega na internet normalmente
sem o firewall ativado. Quando ativo o firewall as esta��es nao conseguem
navegar e nem receber/enviar e-mail com o outlook, e ja revisei diversas
vezes o script para ver o que esta bloqueando a navega��o e nao consigo. As
esta��es usam windows, e no internet explorer aparece a mensagem no rodap�
"Localizando o site: www.xxx.com"
Ja criei logs para tentar descobrir o que ta bloqueando, mas parece ser
alguma coisa com dns, e nao consigo saber o que �. Parece que o site, nao
consegue enviar a resposta ao proxy, pois o firewall bloqueia algo. S�
conseguem navegar com o firewall ativado, caso eu deixe a linha IPTABLES -P
INPUT ACCEPT.
Anexo, estou enviando o script, e gostaria que vcs me ajudassem, estarei
muito grato.
Obrigado
Rodrigo Natale Ciochetti de Camargo - Administrador de Redes Jr.
Rodrigo Natale Ciochetti de Camargo - Administrador de Redes Jr.
CUNO Latina Ltda.
*(0XX11) 4718-8516
* www.cunolatina.com.br
#!/bin/sh
#
# Packetfilter Controle de regras basica de Filtro (police)
# chkconfig: 345 10 10
# description: Controle de regras basicas de Filtros (police) - Designer by Rodrigo -
{(DotComGuy)}
fe=/sbin/iptables
ambiente()
{
echo " ##############################################"
echo " # Iniciando Firewall StateFull #"
echo " ##############################################"
echo " ##############################################"
echo " # Definindo variaveis de Ambiente #"
echo " ##############################################"
echo "2" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "0" > /proc/sys/net/ipv4/tcp_timestamps
echo "0" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
for file in /proc/sys/net/ipv4/conf/all/accept_source_route; do
echo "0" > $file
done
echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
echo "32768 61000" > /proc/sys/net/ipv4/ip_local_port_range
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "0" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
UNPRIVPORTS="1024:65535"
echo " ##############################################"
echo " # Carregando modulos nescessarios #"
echo " ##############################################"
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ipt_unclean
/sbin/modprobe ip_queue
/sbin/modprobe iptable_nat
/sbin/insmod /etc/kernel/ipt_p2p.o
}
case "$1" in
start)
echo " ##############################################"
echo " # Inicializando Filtragem de Pacotes #"
echo " ##############################################"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "."
ambiente
echo " ##############################################"
echo " # Dando um FLUSH nas Tabelas #"
echo " ##############################################"
$fe -F
$fe -F -t nat
$fe -F -t mangle
echo " ##############################################"
echo " # Aceitando qq requisi��o no LOOPBACK #"
echo " ##############################################"
$fe -A INPUT -i lo -j ACCEPT
echo " ##############################################"
echo " # Aceiitando pacotes Conectados #"
echo " ##############################################"
$fe -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$fe -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$fe -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport $UNPRIVPORTS -j ACCEPT
echo " ##############################################"
echo " # Fazendo um DROP na tabela INPUT #"
echo " ##############################################"
$fe -F INPUT
$fe -F FORWARD
$fe -F OUTPUT
$fe -F -t nat
$fe -P INPUT DROP
$fe -P OUTPUT ACCEPT
$fe -P FORWARD DROP
echo " ##############################################"
echo " # Ativando Mascaramento de Pacotes #"
echo " ##############################################"
$fe -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
$fe -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 -d 0/0 --dport 25 -j MASQUERADE
$fe -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 -d 0/0 --dport 110 -j MASQUERADE
echo " ##############################################"
echo " # For�ar a saida pela porta 3128 squid #"
echo " ##############################################"
$fe -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo " ##############################################"
echo " # Abrindo portas TCP e UDP Necessarias #"
echo " ##############################################"
$fe -A INPUT -p tcp --dport 20 -j ACCEPT
$fe -A INPUT -p tcp --dport 21 -j ACCEPT
$fe -A INPUT -p tcp --dport 22 -j ACCEPT
$fe -A INPUT -p tcp --dport 25 -j ACCEPT
$fe -A INPUT -p tcp --dport 53 -j ACCEPT
$fe -A INPUT -p tcp --dport 80 -j ACCEPT
$fe -A INPUT -p tcp --dport 110 -j ACCEPT
$fe -A INPUT -p tcp --dport 443 -j ACCEPT
#########
## UDP ##
#########
$fe -A INPUT -p udp --dport 22 -j ACCEPT
$fe -A INPUT -p udp --dport 53 -j ACCEPT
$fe -A INPUT -p udp --dport 443 -j ACCEPT
$fe -A INPUT -p udp --dport 110 -j ACCEPT
echo " ##############################################"
echo " # Bloqueando Servicos Internos #"
echo " ##############################################"
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 61000 -j LOG --log-prefix
"Tentativa WEBMin"
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 61000 -j DROP
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 3128 -j LOG --log-prefix
"Tentativa 3128"
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 3128 -j DROP
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 81 -j LOG --log-prefix
"Tentativa 81"
$fe -A INPUT -p tcp -s 0/0 -d XXX.XXX.XXX.XXX --dport 81 -j DROP
#########
## UDP ##
#########
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 61000 -j LOG --log-prefix
"Tentativa WEBMin"
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 61000 -j DROP
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 3128 -j LOG --log-prefix
"Tentativa 3128"
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 3128 -j DROP
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 81 -j LOG --log-prefix
"Tentativa 81"
$fe -A INPUT -p udp -s 0/0 -d XXX.XXX.XXX.XXX --dport 81 -j DROP
echo " ##############################################"
echo " # Abrindo portas para rede interna #"
echo " ##############################################"
$fe -A INPUT -p tcp -s 192.168.1.0/24 -j ACCEPT
$fe -A INPUT -p tcp -s 192.168.1.0/24 -d 192.168.1.231 --dport 81 -j ACCEPT
$fe -A INPUT -p tcp -s 192.168.1.0/24 -d 192.168.1.231 --dport 3128 -j ACCEPT
$fe -A INPUT -p tcp -s 192.168.1.0/24 -d 192.168.1.231 --dport 61000 -j ACCEPT
#########
## UDP ##
#########
$fe -A INPUT -p udp -s 192.168.1.0/24 -d 192.168.1.231 --dport 81 -j ACCEPT
$fe -A INPUT -p udp -s 192.168.1.0/24 -d 192.168.1.231 --dport 3128 -j ACCEPT
$fe -A INPUT -p udp -s 192.168.1.0/24 -d 192.168.1.231 --dport 61000 -j ACCEPT
echo " ##############################################"
echo " # Bloqueando pac. com todos os Bits Ligados #"
echo " ##############################################"
$fe -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
echo " ##############################################"
echo " # Bloqueando pac. com todos os Bits Ligados #"
echo " ##############################################"
$fe -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
echo " ##############################################"
echo " # Bloqueando pac. tipos arvore de Natal #"
echo " ##############################################"
$fe -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
echo " ################################################"
echo " #Bloqueando pac. c/ possibilidades Impossiveis.#"
echo " ################################################"
$fe -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$fe -A INPUT -p tcp --tcp-flags SYN,FIN,URG SYN,FIN,URG -j DROP
$fe -A INPUT -p tcp --tcp-flags SYN,FIN,RST SYN,FIN,RST -j DROP
$fe -A INPUT -p tcp --tcp-flags SYN,FIN,PSH SYN,FIN,PSH -j DROP
$fe -A INPUT -p tcp --tcp-flags SYN,ACK,FIN SYN,ACK,FIN -j DROP
echo " ##############################################"
echo " # Bloqueando pacotes Mal Formados #"
echo " ##############################################"
$fe -A INPUT -i eth0 -m unclean -j DROP
echo " ##############################################"
echo " #Bloqueando pacotes Mal Formados e Suspeitos #"
echo " ##############################################"
$fe -A INPUT -i eth0 -m state --state INVALID -j DROP
echo " ##############################################"
echo " # Bloqueando ICMP IGMP #"
echo " ##############################################"
for x1 in `seq 1 2`
do
for x2 in OUTPUT INPUT
do
$fe -A $x2 -p $x1 -s 0/0 -d 0/0 -j DROP
done
done
echo " ##############################################"
echo " # Bloqueando SYN Flood #"
echo " ##############################################"
$fe -A FORWARD -p tcp --syn -m limit --limit 333 -j ACCEPT
echo " ##############################################"
echo " # Bloqueando Programas ICQ,KAZaa,Imesh,etc #"
echo " ##############################################"
$fe -A FORWARD -m p2p --p2p all -j LOG --log-prefix "Usando P2P."
$fe -A FORWARD -m p2p --p2p all -j DROP
;;
################################################################################
stop)
clear
echo " ##############################################"
echo " # Parando filtragem de Pacotes #"
echo " ##############################################"
echo 0 > /proc/sys/net/ipv4/ip_forward
$fe -F INPUT
$fe -F FORWARD
$fe -F OUTPUT
$fe -F -t nat
$fe -P INPUT ACCEPT
$fe -P OUTPUT ACCEPT
echo "."
;;
###############################################################################
restart)
clear
echo " ##############################################"
echo " # Reiniciando filtragem de Pacotes #"
echo " ##############################################"
$0 stop
$0 start
;;
###############################################################################
status)
$fe -L -n
;;
save)
clear
echo " ######################################################"
echo " #Salvando a configura�ao em arquivo /etc/iptables.bk #"
echo " ######################################################"
iptables-save > /etc/iptables.bk
;;
################################################################################
panico)
clear
echo " #####################################################"
echo " # Entrando em modo PANICO. Todas as portas FECHADAS #"
echo " #####################################################"
$fe -F
$fe -P INPUT DROP
$fe -P OUTPUT DROP
$fe -P FORWARD DROP
;;
################################################################################
masq)
clear
echo " ########################################################"
echo " # Modo de Mascaramento ativado. Cuidado, NAO h� regras #"
echo " # de filtragem de pacotes ativadas. ( Sem Firewall ) #"
echo " ########################################################"
$fe -F
$fe -F -t nat
$fe -P INPUT ACCEPT
$fe -P OUTPUT ACCEPT
$fe -P FORWARD ACCEPT
$fe -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
;;
################################################################################
*)
echo "Use: $0 {start|stop|restart|status|masq|panico}"
exit 1
;;
esac
exit 0
--
GUS-BR - Grupo de Usu�rios Slackware - BR
http://www.slackwarebrasil.org/
http://www.linuxmag.com.br/mailman/listinfo/slack-users