Gente por favor! olha só, não entendi uma coisa. o Roney diz:
Neste caso , estamos assim: ip válido : 200.xxx.xxx.xxx ip da rede : 10.0.0.0/8 ip do firewall na rede : 10.0.0.1 eth1 interface da internet eth0 interface da rede local
mas a eth0 não é a mesma coisa que o IP do Firewall na rede:10.0.0.1??? se alguém conseguir me explica de uma forma diferente agradeço. link oficial da mensagem abaixo é: http://br.groups.yahoo.com/group/squid-br/message/9132
--- Em [EMAIL PROTECTED], "Roney" <[EMAIL PROTECTED]> escreveu
Pessoal, o meu problema estava em resolver o DNS externamente... abaixo segue o script que adotei e funcionou. Grato a todos, Roney Fábio
____________________________________________________________________________________
Fonte:
http://www.linuxplace.com.br/sqush_place/1066680668/iptables+squid+outlook.txt
Acesso em:01/12/2003 _____________________________________________ IMPLEMENTANDO IPTABLES + OUTLOOK + SQUID por Márcio Oliveira (beastie) Introdução Bom pessoal, meu objetivo não é construir um firewall muito avançado, nem mostrar regras muito especificas, meu objetivo é implementar um firewall simples, que possibilite a navegação e uso de SQUID + OUTLOOK, para uma pequena ou grande rede, dependendo da necessidade. Neste caso , estamos assim: ip válido : 200.xxx.xxx.xxx ip da rede : 10.0.0.0/8 ip do firewall na rede : 10.0.0.1 eth1 interface da internet eth0 interface da rede local IPTABLES Vou usar IPTables, pois está muito estável e é uma boa "pedida" quando falamos em firewall, apesar de eu particularmente usar também ipchains em firewalls mais antigos e me divertir com ipmasqadm mfw e portfw... hehehe... Basico do básico, vamos começar a carregar os módulos: /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp /sbin/modprobe ipt_LOG /sbin/modprobe ipt_state /sbin/modprobe ipt_MASQUERADE Beleza, carregados os módulos, vamos dar um "flushing" no firewall, para não termos problemas do tipo: Porque quando eu tiro o proxy do navegador ele continua a utilizar a internet?"... /usr/sbin/iptables -F /usr/sbin/iptables -Z /usr/sbin/iptables -X /usr/sbin/iptables -t nat -F /usr/sbin/iptables -P INPUT DROP /usr/sbin/iptables -P FORWARD DROP /usr/sbin/iptables -P OUTPUT ACCEPT Detalhes relevantes: nunca se esqueça de dar um flushing na tabela nat também, e pessoal, pensa bem, você tem que liberar o que É NECESSÁRIO, e não tudo, por isso o Policy padrão de input e do forward é DROP, porque se não ta nas regras, ou você esqueceu ou não é para estar liberado! Isso evita acidentes "comuns". Habilitando roteamento e demais cositas... echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts No meu firewal nada de scan... INPUT Vamos liberar o INPUT para a interface de loopback, que só vai ser usada pelo servidor, mas com origem de qualquer ip, para não ter perigo de não manipular alguns pacotes: /usr/sbin/iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT /usr/sbin/iptables -A INPUT -p ALL -s 10.0.0.1 -i lo -j ACCEPT /usr/sbin/iptables -A INPUT -p ALL -s 200.xxx.xxx.xxx -i lo -j ACCEPT Agora uma regra que eu procuro colocar no começo, que na minha opinião melhora um "pouco" a performance do firewall já que a leitura das regras para os pacotes é linear. Ela diz que toda conexão estabilizada ou relacionada com o meu firewall deve ser mantida e não analizada pelas proximas regras: /usr/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT Libera as respostas dos DNS para meu firewall /usr/sbin/iptables -A INPUT -p udp -s 200.204.0.10 --sport 53 -d 200.xxx.xxx.xxx -j ACCEPT /usr/sbin/iptables -A INPUT -p udp -s 200.204.0.138 --sport 53 -d 200.xxx.xxx.xxx -j ACCEPT Nada de pacote fragmentado no meu firewall! Se temos um programa criando pacotes despadronizados ou uma tentativa de ataque, o problema não é meu! /usr/sbin/iptables -A INPUT -i eth1 -f -j LOG --log-prefix "Pacote INPUT fragmentado: " /usr/sbin/iptables -A INPUT -i eth1 -f -j DROP (Não esquecendo de logar o pacote fragmentado para descobrir oquê ele é). Evitando Spoofing: /usr/sbin/iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP /usr/sbin/iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP /usr/sbin/iptables -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP /usr/sbin/iptables -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP Obs: as mascaras estão corretas. Regras para ping, aqui varia muito de admin para admin, eu só libero resposta de ping de outros ips, ping para minha rede interna e ping do servidor da minha empresa para o firewall do cliente, como ta na ultima linha: /usr/sbin/iptables -A INPUT -p icmp --icmp-type 8 -i eth0 -j ACCEPT /usr/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT /usr/sbin/iptables -A INPUT -p icmp -s 200.20x.xxx.xxx -d 200.xxx.xxx.xxx -j ACCEPT Libero o acesso as squid para minha rede interna: /usr/sbin/iptables -A INPUT -p TCP -i eth0 -s 10.0.0.0/8 --dport 3128 -j ACCEPT Libero o acesso ao ssh: /usr/sbin/iptables -A INPUT -p TCP --dport 22 -j ACCEPT Libera resposta de servidores www para meu squid: /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 80 -j ACCEPT /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443 -j ACCEPT /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 20 -j ACCEPT /usr/sbin/iptables -A INPUT -p UDP -i eth1 --sport 21 -j ACCEPT Ora de mandar embora as porcarias, agora que ta tudo que eu preciso liberado: /usr/sbin/iptables -A INPUT -p tcp --dport 3128 -j REJECT --reject-with tcp-reset /usr/sbin/iptables -A INPUT -j LOG --log-prefix "Pacote input descartado: " /usr/sbin/iptables -A INPUT -j DROP Não esqueça de sempre logar o que você descarta, pois pode ser uma tentativa de ataque ou uma porta que deve ser liberada para um programa funcionar! FORWARD Já começamos com barra pesada no forward, descartando os pacotes inválidos, coisa que no ipchains deixa os admins de firewall loucos: /usr/sbin/iptables -A FORWARD -m state --state INVALID -j DROP Aceita as conexões estabilizada e recionadas com outras feitas nos pcs da minha rede interna: /usr/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT Opa, aqui está um dos segredos para o outlook funcionar, uma coisa que ninguém faz e todo mundo reclama que o teu outlook não funciona, é liberar a resposta e o acesso aos resolvedores de nome, para que o outlook transforme o nome que ele possui no servoidor smtp e pop em um ip: /usr/sbin/iptables -A FORWARD -p udp -s 10.0.0.0/8 -d 200.204.0.10 --dport 53 -j ACCEPT /usr/sbin/iptables -A FORWARD -p udp -s 10.0.0.0/8 -d 200.204.0.138 --dport 53 -j ACCEPT /usr/sbin/iptables -A FORWARD -p udp -s 200.204.0.10 --sport 53 -d 10.0.0.0/8 -j ACCEPT /usr/sbin/iptables -A FORWARD -p udp -s 200.204.0.138 --sport 53 -d 10.0.0.0/8 -j ACCEPT Feito isso, vamos liberar para a minha rede interna as portas que o outlook vai utilizar para acessar os servidores externos: /usr/sbin/iptables -A FORWARD -p TCP -s 10.0.0.0/8 --dport 25 -j ACCEPT /usr/sbin/iptables -A FORWARD -p TCP -s 10.0.0.0/8 --dport 110 -j ACCEPT /usr/sbin/iptables -A FORWARD -p tcp --sport 25 -j ACCEPT /usr/sbin/iptables -A FORWARD -p tcp --sport 110 -j ACCEPT Pronto, o nosso objetivo do outlook funcionar está OK! Agora vamos dropar o resto, nunca se esquecendo de logar isso: /usr/sbin/iptables -A FORWARD -j LOG --log-prefix "Pacote forward descartado: " /usr/sbin/iptables -A FORWARD -j DROP No caso da rede que eu fiz isso, eram poucos pcs, uns 30, então em masquerei a conexão mesmo, mas nada te impede de usar SNAT: /usr/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE Entendendo o Funcionamento do Outlook: Bem pessoal, depois de tudo isso as regras estão ai, mas pode ser que não entendam o funcionamento do outlook, então vamos lá: * Foi liberado o acesso da minha rede interna aos resolvedores de nome (200.204.0.10 e 200.204.0.138) para que o outlook consiga transformar pop.domain.com.br em um ip. * Foi liberada requisição das estações nas portas 25 e 110 na rede externa e resposta da rede externa pelas portas 25 e 110. * Não esquecendo que as conexões da rede interna estão sendo mascaradas e toda conexão estabelecida ou relacionada por elas é aceita, não sofrendo novamente a verificação das regras do firewall subsequentes. * Não se esqueça do principal: a configuração da estação de trabalho deve ser a serguinte: gateway : 10.0.0.1 (no meu caso, este é o ip do firewall) dns primário : 200.204.0.10 dns secundário : 200.204.0.138 Sem essas configurações nas estações, nada funcionará. Pronto, as simples regras estão OK e o outlook funciona!!! Márcio Oliveira (beastie) Analista Linux Netkraft Tecnologia de Redes [EMAIL PROTECTED] Fontes de Pesquisa: Meu Dia-a-Dia.
-- |--------------------------------------------------| | Marcelo Manzano | | Cel.99603104 | | [EMAIL PROTECTED] | |--------------------------------------------------|

