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

Responder a