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

Re: Instabilidades



Respostas no email...

-- 
Reinaldo Carvalho

> Prezados,
>
> Tenho um cliente atualmente utilizando as regras de firewall
> mais abaixo, porém as máquinas clientes (winxp, win2k,
> win98) que estão passando pelo NAT estão muito instáveis, ou
> seja, impedidas de navegar, checar emails, etc. Sendo
> necessário restartar a interface de rede p/ poder voltar ao
> normal e depois falhar
>
> Analisei bem estas regras e não consegui encontrar a falha.
> Os IPs que estão passando pelo NAT possuem o subtítulo #IPs
> liberados (no final do script)
>
> Detalhe, não pode ser problema físico nem de instabilidade
> no link, porque as máquinas que estão passando pelo proxy
> navegam e enviam emails normalmente.
>
> O SO é Debian Woody 3.0 r0 - Kernel 2.4.18 - Link de 128K -
> Proxy: SQUID
>
> Obrigado pela atenção e ajuda!
>
> # Limpar a tabela atual
> iptables -t nat -F
> iptables -F
>
> # habilita forward
> echo 1 > /proc/sys/net/ipv4/ip_forward
>
> # Desabilita resposta para ping
> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
>
> # Desabilita port Scan
> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
>
> ##### Protecao contra IP Spoofing
> for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
> echo 1 >$i
> done
>
> ##### Disable ICMP Redirect Acceptance
> for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
> echo 0 > $f
> done
>
> ##### Log packets with impossible addresses
> for f in /proc/sys/net/ipv4/conf/*/log_martians; do
> echo 1 > $f
> done
>
> # PortScan
> iptables -A INPUT  -i eth1 -p udp -s any/0 --sport
> 32769:65535 -d 200.X.X.X --dport 33434:33523 -j LOG
> --log-prefix "Incoming traceroute: "
>
> iptables -A INPUT  -i eth1 -p udp -s any/0 --sport
> 32769:65535 -d 200.X.X.X --dport 33434:33523 -j DROP
>

Estas linhas nao sao necessaria se usarmos a politica padrao do
INPUT como DROP.
>
> echo "ATIVANDO FIREWALL..."
>
> /sbin/modprobe ip_conntrack
> /sbin/modprobe ipt_MASQUERADE
> /sbin/modprobe ipt_LOG
> /sbin/modprobe iptable_nat
> /sbin/modprobe ip_nat_irc
>

Se estas usando um kernel padrão, devem estar faltando carregar
uns modulos, como o responsavel pelo '--state'. Sugiro que
compiles tudo relacionado como o 'netfilter' como 'build-in'.
Evita muitos problemas.

> # Barra todo o forward que nao estiver listado abaixo
> iptables -t filter -P FORWARD DROP
>

Que tal colocar o INPUT tb como DROP?

> # Libera trafego livre para loopback
> iptables -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
> iptables -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT

Nao é necessário indicar -s 0/0 ou -d 0/0, se não indicar estes
campos, isso é o padrão.
>
> # Definicoes iniciais - Rede privada pode fazer novas
> conexoes
> iptables -t filter -A INPUT -i eth0 -m state --state NEW -j
> ACCEPT

Erro gravissimo, estas jogando fora todo o firewall na linha
acima, pois qualquer conexão ira iniciar como NEW. Logo abriras
todas as portas.
 iptables -t filter -A INPUT -m state --state
> ESTABLISHED,RELATED -j ACCEPT
>

Esta esta correta.

> # Liberacoes para a rede privada 10.6.0.0
> #iptables -t filter -A FORWARD -d 0/0 -s 10.6.0.0/255.0.0.0
> -o eth1 -j ACCEPT
>  iptables -t filter -A FORWARD -d 10.6.0.0/255.0.0.0 -s 0/0
>  -i eth1 -j ACCEPT>

Não precisas liberar forward todo.
iptables -t filter -A FORWARD -s 10.6.0.0/255.0.0.0 -o eth1 -j
ACCEPTiptables -t filter -A FORWARD -d 10.6.0.0/255.0.0.0 -s 0/0 -i
eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


> iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to
> 200.242.213.143

No caso de uso de 1 ip, sugiro usar o -j MASQUERADE.

>
> iptables -t filter -A INPUT -s 10.6.0.0/255.0.0.0 -d 0/0 -j
> ACCEPT

Nao precisas disso, só liberar as portas que existirem daemons
em estado 'listen'.
iptables -t filter -A OUTPUT -s 10.6.0.0/255.0.0.0
> -d 0/0 -j ACCEPT  iptables -t filter -A OUTPUT -p icmp -s
> 10.6.0.0/255.0.0.0 -d 0/0 -j ACCEPT
>
> # bloqueia tudo
> #iptables -t filter -A FORWARD -s 10.6.0.0/255.0.0.0 -j DROP

Se ja liberaste la em cima? Pra que essa regra? O pacote nem
vai chegar aqui.
>
> # Ips liberados
> iptables -A FORWARD  -s 10.6.0.80 -j ACCEPT
> iptables -A FORWARD -p tcp -s 10.6.0.10 -j ACCEPT
> iptables -A FORWARD -s 10.6.0.40 -j ACCEPT
> iptables -A FORWARD -s 10.6.0.41 -j ACCEPT
> iptables -A FORWARD -s 10.6.0.42 -j ACCEPT
> iptables -A FORWARD -s 10.6.0.44 -j ACCEPT
> iptables -A FORWARD -s 10.6.0.45 -j ACCEPT
> iptables -A FORWARD -p tcp -s 10.6.0.40 -j ACCEPT
>

Novamente, o forward ja foi liberado pra rede toda, essas
linhas sao desnecessarias.
> # Filtros para a rede
> iptables -A FORWARD -p tcp -s 10.6.0.0/255.0.0.0  --dport 25
> -j ACCEPT  iptables -A FORWARD -p tcp -s 10.6.0.0/255.0.0.0
> --dport 110 -j ACCEPT  iptables -A FORWARD -p tcp -s
> 10.6.0.0/255.0.0.0  --dport 3128 -j ACCEPT  iptables -A
> INPUT -p tcp -s 10.6.0.0/255.0.0.0  --dport 3128 -j ACCEPT
> iptables -A FORWARD -p tcp -s 10.6.0.0/255.0.0.0  --dport 53
> -j ACCEPT  iptables -A FORWARD -p udp -s 10.6.0.0/255.0.0.0
> --dport 53 -j ACCEPT  echo "FIREWALL ATIVADO!"
>

O firewall funciona linha a linha, sequencialmente, se o pacote
casar com uma regra, ele faz o que esta no parametro '-j', e
descarta as demais regras.
Este firewall esta muito problemático.



>
>
> []´s
>
>
> Pedro Ivo Lima

Att,

Reinaldo Carvalho





Reply to: