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

2006-02-03 Por tôpico Allan Ichikawa Froes

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 

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

2006-02-03 Por tôpico Allan Ichikawa Froes

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:


Desculpem, esqueci de escrever no outro e-mail, o MSN funciona sim na 
porta 80 e ainda na 443, fazendo requisição de login, nestes ip's que eu 
enviei anteriormente, assim foi o unico jeito que achamos de bloqueá-lo 
relamente, outra maneira seria utilizando o patch: patch-o-matic, que 
faz o iptables funcionar com strings, estamos testando ele, assim que 
obtiver resultados eu faço um post aqui, um exemplo de regra com essa 
solução seria:



iptables -A INPUT -p tcp -m string --string x-msn-messenger -j DROP


Um outro detalhe, é que as regras de iptables do e-mail anterior não 
bloqueiam o uso de web-messenger, pois, os mesmos utilizam outros 
métodos de login, portanto o squid, também deve estar muito bem configurado.

--
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:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] /


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]