Router WIFI+Firewall+Internet

1. Router WIFI+Firewall+Internet

Marcelo Correa
TheCarcass

(usa Ubuntu)

Enviado em 18/10/2009 - 21:29h

Senhores,

Instalei o Ubuntu 9.04 em casa em uma maquina para ser o GW+Firewall+DHCP+DNS dentre outras coisas, tenho 3 interfaces conforme abaixo

ETH0 - WIFI - 192.168.1.1
ETH1 - LAN - 10.1.0.0
ETH2 - WAN - DHCP

Na ETH0 liguei a porta WAN(192.168.1.2) do router DI-624 e a LAN e WIFI do Router ficou com a net 192.168.0.1.

Até sussa, criei regras para fazer NAT da ETH0 para ETH2 e as maquinas da rede WIFI saem para internet, porem nao conseguem chegar nas maquinas ligadas na rede LAN do servidor conforme os testes abaixo:

Da rede 192.168.0.0 consigo chegar em 10.1.0.1 (ETH1) e na 192.168.1.2 (ETH0) mas não no PC 10.1.0.5.

Da rede 10.1.0.0 consigo chegar em 10.1.0.1 (ETH1) e na 192.168.1.1 (WAN Router) mas não no LAP 192.168.0.100.

Não existe registro de DROP´s nos logs do Router e do servidor.

As rotas no servidor são as seguintes:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0
10.1.0.0 * 255.255.255.0 U 0 0 0 eth1
189.29.72.0 * 255.255.248.0 U 0 0 0 eth2
Default 189-29-72-1-bp. 0.0.0.0 UG 100 0 0 eth2

Quando executo o tcpdump no servidor retorna conforme abaixo:

22:16:33.463185 IP 192.168.1.1 > 10.1.0.5: ICMP echo request, id 62324, seq 78, length 40
0x0000: 4500 003c 289c 0000 7f01 4776 c0a8 0101 E..<(.....Gv....
0x0010: 0a01 0005 0800 5999 f374 004e 6162 6364 ......Y..t.Nabcd
0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst
0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi

Porem na recebo echo reply.

Não sei justificar o pq de não usar ou usar a interface WAN do router, mas queria usa-la para não ´perder´ uma porta lan do router.

Por favor, me ajude a encontrar a melhor solução para rede wifi conseguir ´falar´ com a rede LAN do servidor.

Abaixo as regras do iptables:

Grato,
Marcelo Correa







  


2. Re: Router WIFI+Firewall+Internet

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 18/10/2009 - 22:32h

Cara, coloca suas regras d iptables ae pra gente analisar...


3. Re: Router WIFI+Firewall+Internet

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 19/10/2009 - 11:23h

Todos! Mas caso tenha algum IP válido, vc troca por algum fictício (por segurança).


4. HELLPP

Marcelo Correa
TheCarcass

(usa Ubuntu)

Enviado em 29/11/2009 - 14:40h

Pessoal,

É Possivel fazer isso que eu quero?
Aonde estou errando?

Abaixo o script

!/bin/sh
#
# Configuracao do netfilter
#
# To make Firewall start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.firewall
# Author: Marcelo Correa - (the.carcass.br@xxx.com)
# Criation: 01/08/2009
# Atualization: 02/08/2009
#
# E apoiado nos artigos de:
#
# http://www.malibyte.net/iptables/scripts/fwscripts.html
# http://www.zago.eti.br/firewall/iptables-modelos.html
# http://www.vivaolinux.com.br/script/Script-Firewall-Iptables-+-compartilhar-internet/
# http://www.linuxhelp.net/guides/iptables/
# http://www.unixtutorial.org/2008/05/variables-in-unix-shell/
# http://www.guiadohardware.net/tutoriais/linux-escrevendo-scripts-firewall3/
#
# eth2 - interface externa (Realtek/VIA Rhine III)
# eth1 - interface interna (3Com 3c509)
# eth0 - interface wireless (Intel e100) - A IMPLEMENTAR


echo " "
echo " * -------------------------------------------------------------"
echo " * SERVER- script de firewall com IPTables, v1 - 2009-08"
echo " * -------------------------------------------------------------"
echo " "

# Alguns aliases e probes
# Carregando modulos (WTF)
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ip_gre
IPTABLES=/sbin/iptables

################################################################
# Regras de INPUT
# - pacotes com destino para o firewall

config_input_rules()
{
echo " * - Configurando regras INPUT..."

# Habilita manutencao de estados existentes e DROP nos estados invalidos
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A INPUT -m state --state INVALID -j DROP

# Permite trafego ilimitado na interface loopback
$IPTABLES -A INPUT -i lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
# Regra de entrada das interfaces
$IPTABLES -A INPUT -i eth1 -s 10.1.0.0/24 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

# Permite atualizacao do DNS pela estacoes
$IPTABLES -A INPUT -s 10.1.0.0/24 -p tcp --dport 953 -j ACCEPT
$IPTABLES -A INPUT -s 10.1.0.0/24 -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -s 10.1.0.0/24 -p udp --dport 67 -j ACCEPT
$IPTABLES -A INPUT -s 10.1.0.0/24 -p udp --dport 68 -j ACCEPT


# Bloqueio de trafegos vindos de fora
## nenhum

# Efetuar log dos pacotes que foram dropados
$IPTABLES -A INPUT -j LOG --log-level 4 --log-prefix "DROP [INPUT]: "

echo " * ---- Regras de INPUT aplicadas."
}

################################################################
# Regras de OUTPUT
# - pacotes com origem no firewall

config_output_rules()
{
echo " * - Configurando regras OUTPUT..."

# Habilita manutencao de estados existentes e DROP nos estados invalidos
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

# Permite trafego ilimitado para a interface interna (eth1 ou o IP dela)
$IPTABLES -A OUTPUT -o eth1 -d 10.1.0.0/24 -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT

# Permite trafego ilimitado para a interface loopback
$IPTABLES -A OUTPUT -o lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT


# Efetuar log dos pacotes que foram dropados
$IPTABLES -A OUTPUT -j LOG --log-level 4 --log-prefix "DROP [OUTPUT]: "

echo " * ---- Regras de OUTPUT aplicadas."
}

################################################################
# Regras de FORWARD
# - pacotes roteados pelo firewall (que atravessam o firewall)

config_forward_rules()
{
echo " * - Configurando regras FORWARD..."

# Habilita manutencao de estados existentes e DROP nos invalidos
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#$IPTABLES -A FORWARD -m state --state INVALID -j DROP

# Permite trafego vindo da rede interna a sair para internet
$IPTABLES -A FORWARD -i eth1 -s 10.1.0.0/24 -o eth2 -j ACCEPT
# Permite trafego vindo da rede WIFI para sair para internet
$IPTABLES -A FORWARD -i eth0 -s 192.168.1.0/24 -o eth2 -j ACCEPT
# Permite trafego entre redes WIFI/interna
$IPTABLES -A FORWARD -s 10.1.0.0/24 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.0/24 -d 10.1.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -s 10.1.0.0/24 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.0.0/24 -d 10.1.0.0/24 -j ACCEPT

# Efetuar log dos pacotes que foram dropados
$IPTABLES -A FORWARD -j LOG --log-level 4 --log-prefix "DROP [FORWARD]: "

echo " * ---- Regras de FORWARD aplicadas."
}


################################################################
# Regras de NAT
# - pacotes que sofrem traducao de endereco/porta

config_nat_tables()
{
echo " * - Configurando tabelas NAT..."
$IPTABLES -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth2 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j MASQUERADE


echo " * ---- Tabelas NAT criadas."
}


################################################################
# Funcao para start do firewall (vide final do script)
fwstart()
{
echo " * - Ativando protecoes diversas..."
# Desligando forward
echo 0 > /proc/sys/net/ipv4/ip_forward
# Alteracao de rotas
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# "bogus responses"
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Traceroute
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Pacotes de spoofing
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
# Turn on dynamic IP hacking (WTF?)
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
# Broadcast echo
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# SYN-Flood (TCP SYN Cookie Protection)
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Log dos "Martian Packets"
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

# Limpa tabelas de regras
echo " * - Limpando regras..."
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

# Limpa tabelas NAT
echo " * - Limpando tabelas NAT..."
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -F PREROUTING

# Aplica politicas default
echo " * - Aplicando politicas default (restritivas)..."
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# Aplicacao das regras
echo " * - Aplicando regras..."
config_input_rules
config_output_rules
config_forward_rules
config_nat_tables

# Habilita roteamento no kernel - isso EFETIVAMENTE interliga as redes interna e externa
echo " * - Ativando forwarding no kernel..."
echo "1" > /proc/sys/net/ipv4/ip_forward
}

################################################################
# Funcao para finalizacao do firewall
fwstop()
{
# Interrompe o roteamento
echo " * - Desativando forwarding no kernel..."
echo "0" > /proc/sys/net/ipv4/ip_forward

# Limpa tabelas de regras
echo " * - Limpando tabelas de regras..."
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

# Limpa tabelas NAT
echo " * - Limpando tabelas NAT..."
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -F PREROUTING

# Aplica politicas default
echo " * - Aplicando regras default para restricao..."
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# Permite trafego ilimitado na interface e rede interna
echo " * - Aplicando regras default para servidor e rede local..."
$IPTABLES -A INPUT -i lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
$IPTABLES -A INPUT -i eth1 -s 10.1.0.0/24 -j ACCEPT
$IPTABLES -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
$IPTABLES -A OUTPUT -o lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
$IPTABLES -A OUTPUT -o eth1 -d 10.1.0.0/24 -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT
#$IPTABLES -A OUTPUT -o ppp0 -s 127.0.0.1/8 -j ACCEPT
}

case "$1" in
start)
echo " * Firewall - iniciando..."
fwstart
;;
stop)
echo " * Firewall - finalizando..."
fwstop
;;
restart)
echo " * Firewall - reiniciando..."
fwstop
fwstart
;;
*)
echo "Sintaxe: ./galactus.firewall.sh [start|stop|restart]"
echo " "
exit 1
;;
esac

echo " "
echo " * Concluido!"
echo " * -------------------------------------------------------------"
exit 0





5. Re: Router WIFI+Firewall+Internet

Genesco Sousa
gesousa

(usa Ubuntu)

Enviado em 29/11/2009 - 16:02h

Bom pelo que entendi vc quer que o wireless e a rede interna sejam exergada juntas, como uma unica rede ...

seria mais fácil então vc criar um bridge entre as duas interfaces ...




6. Re: Router WIFI+Firewall+Internet

Marcelo Correa
TheCarcass

(usa Ubuntu)

Enviado em 29/11/2009 - 18:33h

gesousa,
Valeu pela ajuda.
Sou novato, como configuro essa bridge?
Poderia me passar algumas dicas e assim eu procuraria na net?

Com essa bridge consigo "limitar" o acesso da rede WIFI para rede LAN?








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts