eduardofx
(usa Suse)
Enviado em 18/09/2009 - 21:01h
#####BOM O PAPO AQUI É O SEGUINTE É UM FIREWALL PARA UMA EMPRESA ONDE EXISTEM 2 ANEXOS EM REDES DISTINTAS redealap=10.12.10.0/0 redelocalanex="192.168.20.0/24" e o ipquente é 200.222.222.1000
echo "firewall al"
#--------------------------------------------------------------------------------------------
#Definindo Variaveis
#Internet
internet="0.0.0.0/0"
#Redes
redelocalalap="10.12.10.0/24"
redelocalanex="192.168.20.0/24"
#Interfaces de Rede
ethlocalalap="eth2"
ethlocalanex="eth1"
ethinternet="eth0"
#ipadministradores
ipadm="10.12.10.12"
#ippublico
ippublico="200.222.222.100"
#---------------------------------------------------------------------------------------------
echo "| Habilitando Passagem de Pacotes! |"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "| Carregando os Modulos necessário |"
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
echo "| Limpando as Regras |"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
echo "| Definindo políticas Defaul |"
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#---------------------------------------------------------------------------------------------
# Implementação das reas de Input
echo "| Regas de Input |"
echo "| Definindo regras para lo |"
iptables -A INPUT -i lo -j ACCEPT
echo "| Definindo regras de retorno de Input |"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "| Regras de Input do Adm |"
iptables -A INPUT -i $ethlocalalap -s $ipadm -j ACCEPT
echo "| Liberando Acesso ao Servidor WEB - Porta 80 |"
#iptables -A INPUT -i $ethinternet -s $internet -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -i $ethlocalalap -s $redelocalalap -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -i $ethlocalanex -s $redelocalanex -p tcp --dport 80 -j ACCEPT
echo "| Liberando Acesso ao Servidor WEB - Porta 443 |"
#iptables -A INPUT -i $ethinternet -s $internet -p tcp --dport 443 -j ACCEPT
#iptables -A INPUT -i $ethlocalalap -s $redelocalalap -p tcp --dport 443 -j ACCEPT
#iptables -A INPUT -i $ethlocalanex -s $redelocalanex -p tcp --dport 443 -j ACCEPT
echo "| Liberando Acesso ao Servidor ftp - Porta 21 |"
#iptables -A INPUT -i $ethinternet -s $internet -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -i $ethlocalalap -s $redelocalalap -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -i $ethlocalanex -s $redelocalanex -p tcp --dport 21 -j ACCEPT
echo "| Liberando ping |"
iptables -A INPUT -p ICMP -i $ethlocalalap -s $redelocalalap -j ACCEPT
iptables -A INPUT -p ICMP -i $ethlocalanex -s $redelocalanex -j ACCEPT
#---------------------------------------------------------------------------------------------
# Implementação das regras Forward
echo "| Regas de Forward |"
# Primeiro, ativar o mascaramento (nat). |"
echo "| Ativando Mascaramento
#iptables -t nat -A POSTROUTING -o $ethinternet -j MASQUERADE
iptables -t nat -A POSTROUTING -s $ipadm -j SNAT --to 200.222.222.100
iptables -t nat -A POSTROUTING -s $redelocalalap -o $ethinternet -j SNAT --to 200.222.222.100
iptables -t nat -A POSTROUTING -s $redelocalanex -o $ethinternet -j SNAT --to 200.222.222.100
# Redirecionamento do Proxy para a porta 80
iptables -t nat -A PREROUTING -s $redelocalalap -d $internet -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -A PREROUTING -s $redelocalanex -d $internet -p tcp --dport 80 -j REDIRECT --to 3128
echo "| Definindo regras de retorno de Forward |"
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "| Regras do Administrador |"
iptables -A FORWARD -i $ethlocalalap -s $ipadm -j ACCEPT
echo "| Liberando Forward para porta 3128 - proxy |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 3128 -j ACCEPT
echo "| Liberando Forward para porta 80 - web |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 80 -j ACCEPT
echo "| Liberando Forward para porta 443 - web |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 443 -j ACCEPT
#echo "| Liberando Forward para porta 50 - ssh |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 50 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 50 -j ACCEPT
echo "| Liberando Forward para porta 110 - pop3 |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 110 -j ACCEPT
echo "| Liberando Forward para porta 25 - smtp |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 25 -j ACCEPT
echo "| Liberando Forward para porta 53 - dns |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 53 -j ACCEPT
echo "| Liberando Forward para porta 23 - telnet |"
#iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 23 -j ACCEPT
#iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 23 -j ACCEPT
echo "| Liberando Forward para porta 21 - ftp |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 21 -j ACCEPT
echo "| Liberando Forward para porta 1863 - MSN |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 1863 -j ACCEPT
echo "| Liberando Forward para porta 6667 - irc |"
#iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 6667 -j ACCEPT
#iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 6667 -j ACCEPT
echo "| Liberando Forward para porta Receita Federal |"
iptables -A FORWARD -i $ethlocalalap -s $redelocalalap -d $internet -p tcp --dport 3456 -j ACCEPT
iptables -A FORWARD -i $ethlocalanex -s $redelocalanex -d $internet -p tcp --dport 3456 -j ACCEPT
echo "| Liberando ping |"
iptables -A FORWARD -p ICMP -i $ethlocalalap -s $redelocalalap -j ACCEPT
iptables -A FORWARD -p ICMP -i $ethlocalanex -s $redelocalanex -j ACCEPT
#---------------------------------------------------------------------------------------------
# Implementação das regras Forward
echo "| Regas contra ataques externos |"
# Configurando a Protecao anti-spoofing
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $spoofing
done
echo "| Setting anti-spoofing protection ...[ OK ] |"
# Impedimos que um atacante possa maliciosamente alterar alguma rota
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "| Setting anti-redirects .............[ OK ] |"
# Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu
# pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigoso.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "| Setting anti-source_route ..........[ OK ] |"
# Protecao contra responses bogus
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "| Setting anti-bugus_response ........[ OK ] |"
# Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "| Setting anti-synflood protection ...[ OK ] |"
#---------------------------------------------------------------------------------------------