Firewall + DLink

1. Firewall + DLink

daniel
dpreviatti

(usa Slackware)

Enviado em 16/08/2008 - 20:14h

pessoal, preciso de uma dica urgente...
instalei um servidor aqui com iptables, squid e dns
esse servidor esta atras de um d-link (q conecta na internet)
tenho 2 placas de rede nele, uma com 10.1.1.253 (que esta conectado diretamente no modem) e outra 192.168.0.254 (conectado ao hub)..
o problema eh que eu nao consigo pingar da rede (192.168.0.0) para fora... ja habilitei o ip_forward e adicionei a rota (route add default gw 10.1.1.1 - ip do d-link)... ajudem por favor, preciso resolver isso no final de semana...

obrigado


  


2. Configurações

Rodrigo Paiva Moschetto
rodrigomoschetto

(usa Slackware)

Enviado em 16/08/2008 - 21:25h

O modem está roteado ou é o próprio servidor q está fazendo a conexão pppoe?
Executou a regra de mascaramento do IPTABLES para a interface externa?


3. ping

Mario Eduardo Batista
meb

(usa Debian)

Enviado em 16/08/2008 - 22:11h

Você consegue navegar da rede 192.168.0.0/24 normalmente?
Em caso afirmativo verifique o valor do arquivo /proc/sys/net/ipv4/icmp_echo_ignore_all com o cat .
Caso o valor de retorno for 1 altere para 0 com o seguinte comando.
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all.


4. Re: Firewall + DLink

daniel
dpreviatti

(usa Slackware)

Enviado em 17/08/2008 - 19:58h

sim, o modem está conectado, ele q autentica.
e sim, está como 0 esse arquivo.. e nao consigo navegar..

um detalhe, a segunda placa de rede, é emulada com o ndiswrapper, pois nao achei driver, segundo encontrei eh uma realtek "falsa"..
entao ela ficou como wlan0 .. isso pode influenciar em alguma coisa?


5. Regra

Rodrigo Paiva Moschetto
rodrigomoschetto

(usa Slackware)

Enviado em 17/08/2008 - 20:40h

Não tem problema, se mesmo como wlan0 está funcionando, então deixe assim mesmo.

Execute as regras do iptables que faltam:

# /sbin/modprobe iptable_nat
# /usr/sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward

onde wlan0 é a interface que conecta no modem, se naum for, substitua.


6. ja fiz

daniel
dpreviatti

(usa Slackware)

Enviado em 18/08/2008 - 10:01h

opa! obrigado pelas respostas!
sim, eu já havia executado esses comandos, inclusive eles carrega juntamente com o script de firewall..

oq acontece é que estava funcionando la em casa (tenho virtua e o IP de internet cai direto na placa) e funcionava blz, qdo levei na loja do cara, ele tem um modem dlink 500B e aí não tem jeito de funcionar..
o desenho é assim:
______ ______ _____
INTERNET----|Dlink | --- |Slack | --- | HUB |
eth0 wlan0

ip dlink = 10.1.1.1
eth0 = 10.1.1.253
wlan0 = 192.168.0.254

ja executei:
# /sbin/modprobe iptable_nat
# /usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward

coloquei o gateway padrao no /etc/rc.d/rc.inet1.conf na placa eth0.

tenho que fazer alguma configuração no modem será ?
valeu pessoal!



7. Gateway

Rodrigo Paiva Moschetto
rodrigomoschetto

(usa Slackware)

Enviado em 18/08/2008 - 23:35h

Que gateway padrão é esse que vc colocou na eth0?

No seu caso, pelo q eu saiba, o gateway da placa eth0 deve ser 10.1.1.1. Vc colocou isso?

Por acaso, do servidor, vc consegue pingar o modem (10.1.1.1
)?

[]'s


8. ping

daniel
dpreviatti

(usa Slackware)

Enviado em 19/08/2008 - 19:27h

sim, consigo pingar o modem...
resolvi parte do problema, coloquei mais uma regra de icmp para ele poder pingar para fora...

mas a navegação continua sem... não consigo navegar...
vou postar aqui meu script de firewall pra vcs verem se falta alguma regra de redirecionamento..
ajuda, por favor!! :D

# Variaveis
LAN="wlan0"
WAN="eth0"
PX="3128" # porta do proxy
IP_LIVRE1="192.168.0.101"
IP_LIVRE2="192.168.0.102"
VNC="192.168.0.2"

# Ativa módulos
# -------------------------------------------------------
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE


# Ativa roteamento no kernel
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/ip_forward


# Proteção contra IP spoofing
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

# Zera regras
# -------------------------------------------------------
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle

# Politica DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT # ACEITA TODAS AS SAIDAS

# Dropa pacotes TCP indesejáveis
# -------------------------------------------------------
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW sem syn: "
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

# Dropa pacotes mal formados
# -------------------------------------------------------
iptables -A INPUT -i $WAN -m unclean -j LOG --log-level 6 --log-prefix "FIREWALL: pacote mal formado: "
iptables -A INPUT -i $WAN -m unclean -j DROP

# Proteção contra tronjans
# -------------------------------------------------------
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
iptables -A TROJAN -j DROP
iptables -A INPUT -p TCP -i $WAN --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i $WAN --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i $WAN --dport 4000 -j TROJAN
iptables -A INPUT -p TCP -i $WAN --dport 6000 -j TROJAN
iptables -A INPUT -p TCP -i $WAN --dport 6006 -j TROJAN
iptables -A INPUT -p TCP -i $WAN --dport 16660 -j TROJAN

# Proteção contra worms
# -------------------------------------------------------
iptables -A FORWARD -p tcp --dport 135 -i $LAN -j REJECT

# Proteção contra syn-flood
# -------------------------------------------------------
iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT

# Proteção contra ping da morte
# -------------------------------------------------------
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT

# Proteção contra port scanners
# -------------------------------------------------------
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: port scanner: "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $WAN -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $WAN -j SCANNER

# Regras para proxy transparente
# --------------------------------------------------------
#iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PX
#iptables -t nat -A PREROUTING -i $LAN -p udp --dport 80 -j REDIRECT --to-port $PX

# Regra de VNC
# --------------------------------------------------------
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 5900 -j DNAT --to-destination $VNC

# Regras INPUT
# --------------------------------------------------------
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # mantem conexoes estabelecidas
iptables -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT #SSH
iptables -A INPUT -p tcp --dport 25 -j ACCEPT #SMTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT #POP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A INPUT -p tcp --dport 563 -j ACCEPT #NNTP
iptables -A INPUT -i $LAN -p tcp --dport $PX -j ACCEPT # aceita proxy interno
iptables -A INPUT -i $WAN -p tcp --dport $PX -j DROP # rejeita externo
iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT # Conexoes internas
iptables -A INPUT -p icmp -s 0/0 -j ACCEPT # Aceitar pings

# Loga de acesso a determinadas portas
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 21 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
iptables -A INPUT -p tcp --dport 22 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: ssh: "
iptables -A INPUT -p tcp --dport 23 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
iptables -A INPUT -p tcp --dport 25 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
iptables -A INPUT -p tcp --dport 80 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
iptables -A INPUT -p tcp --dport 110 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
iptables -A INPUT -p tcp --dport 161:162 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
iptables -A INPUT -p tcp --dport 6667:6668 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
iptables -A INPUT -p tcp --dport 3128 -i $WAN -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "

# Regras FORWARD
# --------------------------------------------------------
iptables -A FORWARD -i $LAN -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i $LAN -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i $LAN -p tcp --dport $PX -j ACCEPT # direciona as conexoes para o proxy


# Dropar porta 80 para os demais
iptables -A FORWARD -i $LAN -p tcp --dport 80 -j DROP

# Masquerade para o acesso externo
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE



9. Correção

Rodrigo Paiva Moschetto
rodrigomoschetto

(usa Slackware)

Enviado em 20/08/2008 - 00:10h

Veja bem, na regra seguinte....

# Regras INPUT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #HTTP

..... você está aceitando tráfego de entrada para a porta 80

E, nessa regra....

# Dropar porta 80 para os demais
iptables -A FORWARD -i $LAN -p tcp --dport 80 -j DROP

.....você está dropando todo o tráfego denovo para a porta 80

E, tb pelo q eu saiba, $LAN que vc especificou é a variável da interface da rede local (wlan)

Entao, ou seja, vc está dropando a rede toda para acesso a porta 80

Ou seja, pelo q eu entendi, vc está liberando tudo e depois dropando tudo denovo, sem nenhuma excessão pra porta 80

Na primeira regra, seja mais especifico, por IP/REDE que vc quer aceitar

Pelo menos foi isso que eu achei estranho aqui






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts