[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Iptables: meu script (e algumas dúvidas)



master_ escreveu:

Bom galera gostaria que vcs criticassem meu script de firewall.
Vou explicar o que eu quis fazer:
Nesse servidor roda qmail(+acessorios)+apache+squid. Quis fazê-lo o mais restritivo possível e ir liberando somente o necessário (25, 110, 80 para entrantes e mascarar somente algumas para a rede)
Segue o script:
------------ INICIO DO SCRIPT ##### POLICY #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
##### Ativamos o redirecionamento de pacotes (requerido para NAT) #####
echo "1" >/proc/sys/net/ipv4/ip_forward
##### Abaixar o limite de conexoes simultaneas
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max
###############################################################
#                      Tabela filter                          #
###############################################################
##### Chain INPUT #####
# Criamos um chain que será usado para tratar o tráfego vindo da Internet
iptables -N int-input
# Aceita todo o tráfego vindo do loopback e indo pro loopback
iptables -A INPUT -i lo -j ACCEPT
# Todo tráfego vindo da rede interna também é aceito
iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
# Conexões vindas da interface eth1 são tratadas pelo chain int-input
iptables -A INPUT -i eth1 -j int-input
# Outras conex sao bloqueadas
iptables -A INPUT -j DROP
##### Chain FORWARD ####
# Permite redirecionamento de conexões entre as interfaces locais
# especificadas abaixo. Qualquer tráfego vindo/indo para outras
# interfaces será bloqueado neste passo.
iptables -A FORWARD -d 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -j DROP
##### Chain int-input ####
# Aceitamos todas as mensagens icmp vindas de eth1 com certa limitação
# O tráfego de pacotes icmp que superar este limite será bloqueado
# pela regra "...! ESTABLISHED,RELATED -j DROP" no final do
# chain int-input
iptables -A int-input -p icmp -j ACCEPT # Primeiro aceitamos o tráfego vindo da Internet para as portas 80, 110, 25
iptables -A int-input -p tcp --dport 80 -j ACCEPT
iptables -A int-input -p tcp --dport 110 -j ACCEPT
iptables -A int-input -p tcp --dport 25 -j ACCEPT
# Bloqueia qualquer tentativa de nova conexão de fora para esta máquina
iptables -A int-input -m state --state ! ESTABLISHED,RELATED -j DROP
# Aceita outros tipos de trafego
iptables -A int-input -j ACCEPT
#######################################################
#                   Tabela nat                        #
#######################################################
# Redir do SQUID iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 # Ativando mascaramento para determinadas portas iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p icmp -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p tcp --dport 110 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p tcp --dport 25 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p tcp --dport 80 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p tcp --dport 3128 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p udp --dport 53 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p udp --dport 53 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -p tcp --dport https -j MASQUERADE ------------------ FIM DO SCRIPT Minhas dúvidas: 1) A policy [iptables -t nat -P POSTROUTING ACCEPT ] deixa o firewall muito peneira? tentei deixar em DROP e liberar somente algumas coisas mas parecia que dava conflitos de regras. 2) Por que, se eu liberei somente algumas portas para masquerade, o msn continua funcionando? (pensei que talvez o maldito funcione em porta 80, caso nao encontre sua porta específica)
3) O firewall está realmente restritivo? Ou está uma merda? hehe
Não tenho muita experiência em segurança, mas li muito a respeito pra tentar fazer o melhor possível (guia foca - iptables, google com vários exemplos de scripts) porém, precisava da opinião de vocês e de uma ajuda pra dar uma melhorada já que muitos têm uma experiência grande nisso. Obrigado!!

Cara aqui no Ministério onde trabalho conseguimos barrar o MSN com regras do iptables:

/sbin/iptables -A FORWARD -p tcp --dport 1863 -j DROP

/sbin/iptables -A FORWARD -s sua_rede/16 -d 12.130.60.4 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 64.14.123.138 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 65.54.194.118 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 207.46.216.61 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 212.187.244.16 -j DROP

/sbin/iptables -A FORWARD -s sua_rede/16 -d 65.54.239.0/24 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 207.6.176.0/24 -j DROP
/sbin/iptables -A FORWARD -s sua_rede/16 -d 207.46.5.0/28 -j DROP

ficou assim e o msn não funcionou mais depois disso.

--
Atenciosamente, /
*Allan Ichikawa Rodrigues Fróes** *
Administrador de Redes
CGMI - Coordenação Geral de Modernização e Informática
Ministério das Cidades
Tel: (61) 2108-1510
email:allan.froes@cidades.gov.br <mailto:allan.froes@cidades.gov.br> /



Reply to: