Será que aprendi? rd.firewall
Depois de ler um pouco e receber sugestões e puxões de orelha de colegas da lista, tentei montar o meu firewall.
Gostaria que quem tivesse um pouco de tempo analisasse e me ajudasse a saber onde estão as falhas.
O que eu quero é: bloquear tudo e depois liberar apenas o que eu preciso, que é :
1) Usuarios da rede interna possam acessar a Internet (através do squid), acesso a páginas e email
Estes mesmos usuarios não deveriam ter acesso a MSN, ICQ, Skype...
2) Gostariamos que algumas maquinas (especificamente "Servidor SP" e "Servidor Amigo") pudessem acessar via Terminal Server uma máquina da minha rede interna chamada "IPJoc"
Segue o arquivo
#!/bin/bash
#
RedeLocal="192.165.9.0/24"
ServidorSP="teste.no-ip.info"
Servidoramigo="200.25.9.2"
MSN1="207.46.104.20"
MSN2="207.46.107.141"
MSN3="207.46.110.100"
MSN4="207.68.177.126"
ICQ1="64.12.164.248"
ICQ2="64.12.202.217"
ICQ3="205.188.251.88"
ICQ4="205.188.241.121"
#
###############
##### NAT #####
###############
# Limpa as regras da tabela filter
iptables -F
#
# Limpa as regras da tabela nat
iptables -t nat -F
#
# Exclui as chains da tabela nat
iptables -t nat -X
#
# Aplica politicas padroes para as chains
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
#
# Mantem as conexoes ja estabelecidas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#
# Libera acesso da rede local a Internet
iptables -A INPUT -i eth0 -s $RedeLocal -j ACCEPT
iptables -t nat -A POSTROUTING -s $RedeLocal -o ppp0 -j MASQUERADE
#
# Obriga a Rede Local a passar pelo Squid - bloqueando sites pornos
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
#
# Bloquando Ping da Morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
# Protecao contra pacotes danificados, suspeitos ou mal formados.
iptables -A FORWARD -m unclean -j DROP
#
# Autorizacao para alguns servidores acessarem via Terminal Server/Conexao Remota
iptables -t nat -A PREROUTING -s $Servidoramigo -i ppp0 -p tcp --dport 3389 -j DNAT --to 192.168.10.241:3389
iptables -t nat -A PREROUTING -s $ServidorSP -i ppp0 -p tcp --dport 3389 -j DNAT --to 192.168.10.241:3389
#
# Bloqueando o MSN
iptables -A FORWARD -s $RedeLocal -d $MSN1 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN2 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN3 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN4 -j DROP
#
# Bloqueando o ICQ
iptables -A FORWARD -s $RedeLocal -d $ICQ1 -j DROP
iptables -A FORWARD -s $RedeLocal -d $ICQ2 -j DROP
iptables -A FORWARD -s $RedeLocal -d $ICQ3 -j DROP
iptables -A FORWARD -s $RedeLocal -d $ICQ4 -j DROP
#
# Libera algumas portas http/https/pop3/pop3 ssl
iptables -A FORWARD -d $RedeLocal -i ppp0 -o eth0 -j ACCEPT
iptables -A FORWARD -s $RedeLocal -i eth0 -o ppp0 -j ACCEPT
iptables -A FORWARD -s $RedeLocal -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s $RedeLocal -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s $RedeLocal -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s $RedeLocal -p tcp --dport 995 -j ACCEPT #
#
echo 1 > /proc/sys/net/ipv4/ip_forward
Re: Será que aprendi? rd.firewall
eu acho mais pratico bloquear o msn pelo proxy ...
uma dica para ajduar a manutencao do proxy , eh agrupar as regras com for's
# Bloqueando o MSN
iptables -A FORWARD -s $RedeLocal -d $MSN1 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN2 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN3 -j DROP
iptables -A FORWARD -s $RedeLocal -d $MSN4 -j DROP
ficaria
for DST in $MSN1 $MSN2 $MSN3 $MSN4 ; do
iptables -A FORWARD -s $RedeLocal -d $DST -j DROP
done
-----
outra dica que ajuda na manutencao : no fim das regras drope tudo , e log tb ! =D assim na hora q alguem reclamar q tem alg sendo bloqueado , vc encherga oq
Re: Será que aprendi? rd.firewall
Fabricio,
Esse for ...done que vc usou é dentro do squid? neste caso eu não colocaria nada no firewall?
Obrigada.
Re: Será que aprendi? rd.firewall
calma , esse for eh um exemplo de como vc pode agrupar regras ligeiramente iguais !
na minha opiniao vc poderia remover essas regras referentes ao msn , e no squid criasse uma acl para bloquear o msn
acl MSN url_regex "msn.url"
e no msn.url coloque :
gateway.dll
tem mais algumas coisas para por , mas nao estou no meu servico agora e estou lembrando de cabeca ....
abracos :)