felipedc
(usa Debian)
Enviado em 25/08/2011 - 09:50h
Pessoal bom dia,
Gostaria da analise do pessoal com mais conhecimento/habilidades em relação ao script de firewall abaixo, ele está sendo implementado aqui onde trabalho e precisamos de alguns serviços disponiveis e tambem trazer uma proteção para a rede interna.
Utilizamos serviço web, ftp, ts e vnc instalado em um windows server 2003(os mais importantes)
e tambem o ssh e apache instalado no linux (esses são mais pessoais, para configuração remota do servidor)
Segue abaixo o script que foi criado com base em tutoriais aqui do forum, queria saber se a sequencia das regras estão corretas e se estao sendo implementadas da forma correta (sintaxe).
Muitissimo Obrigado
#Carrega Modulos
modprobe ip_tables
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe iptable_mangle
modprobe ipt_tos
modprobe ipt_limit
modprobe ipt_mark
modprobe ipt_MARK
#Compartilha conexao
$IPT -t nat -A POSTROUTING -o IF_EXTERNA -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
# ================ POLITICAS PADRAO ===================
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
# Cria chain com regras de segurança
$IPT -A BLOCK -p icmp --icmp-type echo-request -j DROP
$IPT -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A BLOCK -j LOG --log-prefix "FW_ALERT: "
$IPT -A BLOCK -j DROP
# Libera todo o trafego local
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT
$IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT
# Abrindo portas (FTP, SSH,WEB,TS e UltraVNC)
$IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 20,21,2222,80,8080,3333,5959 -j ACCEPT
#abrindo portas para consultas de dns
$IPT -A FORWARD -p udp --dport 53 -j ACCEPT
$IPT -A FORWARD -p udp --sport 53 -j ACCEPT
#liberando portas de servico de e-mail
$IPT -A FORWARD -p tcp --sport 25 -j ACCEPT
$IPT -A FORWARD -p tcp --dport 25 -j ACCEPT
$IPT -A FORWARD -p tcp --sport 110 -j ACCEPT
$IPT -A FORWARD -p tcp --dport 110 -j ACCEPT
# Libera a conexao para a rede interna
$IPT -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE
# Regras de NAT
#ssh e apache
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t filter -A FORWARD -p tcp -i $IF_EXTERNA -m multiport --dport 2222,8080 -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i $IF_EXTERNA -m multiport --dport 2222,8080 -j DNAT --to-dest $SERVIDORINTERNET
$IPT -t nat -A POSTROUTING -p tcp -d $SERVIDORINTERNET -m multiport --dport 2222,8080 -j SNAT --to $SERVIDORINTERNET
#ftp, iss e ultravnc (servidor de dados)
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t filter -A FORWARD -p tcp -i $IF_EXTERNA -m multiport --dport 20,21,80,5959 -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i $IF_EXTERNA -m multiport --dport 20,21,80,5959 -j DNAT --to-dest $SERVIDORINTERNET
$IPT -t nat -A POSTROUTING -p tcp -d $SERVIDORINTERNET -m multiport --dport 20,21,80,5959 -j SNAT --to $SERVIDORDADOS
#libera acesso a terminais sem intermedio do Proxy (nao passa pelo Proxy)
# servidor de dados (windows Server 2003)
$IPT -A FORWARD -s $SERVIDORDADOS -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp --dport 80 -s $SERVIDORDADOS -j RETURN
# marcos
$IPT -A FORWARD -s $MARCOS -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp --dport 80 -s $MARCOS -j RETURN
# marlene
$IPT -A FORWARD -s $MARLENE -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp --dport 80 -s $MARLENE -j RETURN
# liberado
$IPT -A FORWARD -s $LIBERADO -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp --dport 80 -s $LIBERADO -j RETURN
$IPT -t nat -A PREROUTING -p tcp -s $REDE_INTERNA --dport 80 -j REDIRECT --to-port 3128
# Regras para evitar packet flood
$IPT -A INPUT -j BLOCK
$IPT -A FORWARD -j BLOCK