Script Firewall iptables [RESOLVIDO]

1. Script Firewall iptables [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
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



  


2. Re: Script Firewall iptables [RESOLVIDO]

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 25/08/2011 - 13:55h

Alguém? :\


3. Re: Script Firewall iptables [RESOLVIDO]

Rafael Schadeck
raschadeck

(usa Ubuntu)

Enviado em 26/08/2011 - 08:43h

cara nao entendo muuuuito assim, ate pq to ate com um topico aberto sobre problemas no meu firewall, talvez eu possa ajudar se vc me falar se ta tendo algum problema ai...

colocar o firewall e perguntar se ta certo fica dificil... me diz o q ta dando problema q eu tento ajudar.

(pelo q vi por cima ta tudo certinho sim, mas como disso, nao sou nada expert nisso nao)


4. Re: Script Firewall iptables [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 26/08/2011 - 09:11h

essa regra libera tudo na rede interna e não é recomendado, com excessão em alguns casos.
$IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT

$IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT
não é recomendado liberar forward na rede interna, pois pode servir de trampolim(ponte) para os serviços de redes.

Para aumentar a segurança no ssh, use técnica port knocking, que é necessário escutar nas portas escolhidas como se fosse um labirinto para liberar o serviço ssh no tempo determinado.









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts