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
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: 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]