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

Re: firewall



Em 15/03/06, Márcio Inácio Silva<marcio@eas.com.br> escreveu:
> Em Terça 14 Março 2006 16:23, Fabiano Pires escreveu:
> > Achei um erro, mas como ninguém perguntou nada ...
> >
> > Fabiano
> >
>
> Deve ser que ele acha que todos na lista tem memória de elefante e se lembram
> de todas as mensagens postadas por ele nos dias 31/01/2006, 01/03/2006 e
> 02/03/2006.

Márcio, não entendi (talvez porque nem eu lembre o que postei nesses
dias ...)  :-)

DebOpen:

Os erros que encontrei estão nas definições de variáveis:

1) $DNS -> Está definido como DNS="200.204.0.10, 200.204.0.138" (IP),
mas nas regras está definido como porta (--dport), veja apaixo

$IPTABLES -A INPUT -i $WAN -p tcp --dport $DNS -j ACCEPT
$IPTABLES -A INPUT -i $WAN -p udp --dport $DNS -j ACCEPT

$IPTABLES -A FORWARD -i $LAN -p tcp --sport $DNS -j ACCEPT
$IPTABLES -A FORWARD -i $LAN -p udp --sport $DNS -j ACCEPT

Correção: Ou você define $DNS="53" ou modifica as regras para algo tipo
$IPTABLES -A FORWARD -i $LAN -p tcp --d $DNS -j ACCEPT
para liberar o acesso ao servidor DNS. Ah, e você deve separar os
servidores em duas variáveis (ex: DNS1 e DNS2), pois o iptables não
aceita os endereços da forma como você colocou.

2) De novo as váriaveis: $LAN e $WAN estão definidos como as
interfaces de rede eth+ e ppp+ (até aqui está correto). O erro está no
uso delas no script. Todas as linhas da tabela
NAT estão erradas (embora elas estejam comentadas), pois a flag "-d"
espera um endereço IP como parâmetro e você está passando $LAN, ou
seja, eth+ (nome de interface).
 #$IPTABLES -t nat -A PREROUTING -i $WAN -p tcp -d $LAN --dport 2222
-j DNAT --to-destination 192.168.0.2:2222

Correção: Eu costumo usar variáveis WAN_NET (representando a rede
Wan), WAN_IFACE (representando a interface Wan), LAN_NET e LAN_IFACE.
Para usar referir-se às redes, use -s (origem) ou -d (destino)
IP_DA_REDE/MASCARA_OU_CIDR
Ex: LAN_NET=192.168.0.0/24
Para referir-se às interfaces use -i (interface de entrada) ou -o
(interface de saída)
Ex: iptables -i WAN_IFACE -d LAN_NET -m state --state NEW, INVALID -j DROP
(derruba pacotes novos que chegeum pela interface wan com destino à
nossa LAN, deve ser a última regra - vir depois das que liberam acesso
à nossa rede. Inútil se a policy de INPUT for drop)

3) Variáveis again:
  #Protecao contra enderecos spoofados da internet
    $IPTABLES -A INPUT -i $INTER -s 10.0.0.0/8 -j DROP
    $IPTABLES -A INPUT -i $INTER -s 172.16.0.0/12 -j DROP
    $IPTABLES -A INPUT -i $INTER -s 192.168.0.0/16 -j DROP

A variável $INTER é utilizada mas nunca foi declarada no script.
Provavelmente o comando sai tipo " $IPTABLES -A INPUT -i -s 10.0.0.0/8
-j DROP" o que gera um erro.

Correção: Utilize a variável da sua interface wan ($WAN ou $WAN_IFACE
no meu exemplo)

Dando uma olhadinha rápida, foi isso (na verdade, no dia em que enviei
a "brincadeira" eu só tinha visto o DNS, hoje relendo o texto vi os
outros erros). Uma dica: eu ando testando o shorewall, e achei
muuuuito mais facil gerenciar meu firewall com ele.

Um abração e volte a escrever se tiver dúvidas

Fabiano


> :-)
>
> --
> ___________________________________________________
> EAS Tecnologia e Informação - http://www.eas.com.br
> Márcio Inácio Silva - marcio@eas.com.br
>   .~.
>   / v \ Seja Livre, use GNU/Linux!
>  / ( ) \
> ^^-^^ GNU/Debian/Linux
>
>


--
Abraços,
Fabiano



Reply to: