Roteamento [RESOLVIDO]

1. Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 21/01/2011 - 20:11h

Olá a todos,

Meu cenário é o seguinte:

# GATEWAY - DEBIAN
eth0 - 192.168.192.1 - Rede Interna
eth1 - 200.200.200.200 - Internet
eth2 - 10.10.10.1 - Ligada diretamente a um roteador Wireless com IP 10.10.10.2

A partir deste meu GATEWAY consigo obviamente pingar neste WIRELESS - IP 10.10.10.2

O PROBLEMA é que não consigo de forma alguma nem pingar neste wireless (10.10.10.2) usando a minha estação - com IP 192.168.192.100, muito menos acessar sua interface web para configurar.

Já fiz de tudo e nada, por exemplo:

route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.1 eth2
route add -net 192.168.192.0 netmask 255.255.255.0 gw 192.168.192.1 eth0

O interessante é que, no GATEWAY, quando dou um "tcpdump -i eth2 icmp", ele mostra que estou chegando lá: "IP 192.168.192.100 > 10.10.10.2: ICMP echo request, id 15406, seq 547, length 64"...

mas não retorna lá....

Resumindo: Preciso que minha máquina - 192.168.192.100 - chegue ao meu router wireless 10.10.10.2, passando pelo meu GATEWAY (192.168.192.1 - 10.10.10.1)

Dá uma força aí pessoal!




  


2. MELHOR RESPOSTA

Daniel Miyagi
j4p0n3g0

(usa Debian)

Enviado em 24/01/2011 - 14:40h

verifica quem é o default gateway do seu roteador wireless.

ele pode estar devolvendo a requisição para o default gateway que não conhece a rede 192.168.x.x.

Se o default gateway dele estiver para o IP 10.10.10.1 desative o firewall do roteador para testes.

3. Re: Roteamento [RESOLVIDO]

Diego Oliveira da Silva
dolivervl

(usa Slackware)

Enviado em 21/01/2011 - 20:48h

Já tentou:

# iptables -A FORWARD -s 192.168.192.100 -d 10.10.10.2 -j ACCEPT

Talvez isso ai já resolva o seu problema.


4. Re: Roteamento [RESOLVIDO]

Fabio Soares Schmidt
fs.schmidt

(usa CentOS)

Enviado em 21/01/2011 - 21:50h

Olá amigo, você ja habilitou o encaminhamento de pacotes no seu servidor?

echo "1" > /proc/sys/net/ipv4/ip_forward

Habilitando o encaminhamento de pacotes e o servidor tendo as duas interfaces a estação de uma rede deve acessar os hosts da outra rede sem problema. Lembrando que você deve setar seu servidor como gateway das estações.


5. Roteamento

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 22/01/2011 - 01:20h

Obrigado galera desde já pela força, mas estes dois procedimentos eu já fiz.

As regras de firewall para tentar solucionar que eu já fiz:

iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT

iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

também já liberei o roteamento pelo Kernel....

O que mais pode ser? Sinceramente já esgotei todo o meu irrisório conhecimento.

Valeu,
Gustavo


6. Re: Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 24/01/2011 - 11:51h

E aí pessoal, alguém tem idéia do que pode ser????


7. Re: Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 24/01/2011 - 18:04h

Grande j4p0n3g0,

Parece que você tem razão... realmente não estava lembrando desta possibilidade. Valeu mesmo!

Vou fazer mais testes e te dou um retorno.

att,
Gustavo


8. Re: Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 24/01/2011 - 20:15h

Um outro detalhe pessoal, especificamente em meu firewall,

Relembrando minha estrutura:

# GATEWAY - DEBIAN
eth0 - 192.168.192.1 - Rede Interna
eth1 - 200.200.200.200 - Internet
eth2 - 10.10.10.1 - Ligada diretamente a um roteador Wireless com IP 10.10.10.2

Apesar de bloquear a comunicação entre as interfaces ETH0 e ETH2 com a seguinte regra:

$IPT -A FORWARD -i eth0 -o eth2 -j DROP
$IPT -A FORWARD -i eth2 -o eth0 -j DROP

AINDA ASSIM, consigo acessar do meu PC (192.168.192.100) o webserver do Router Wireless (10.10.10.2).

Sinceramente, já verifiquei todo o meu script e não percebi nada ainda...



9. Re: Roteamento [RESOLVIDO]

Daniel Miyagi
j4p0n3g0

(usa Debian)

Enviado em 26/01/2011 - 08:28h

funcinou aquela parada que te falei ?

coloque seu script de firewall aew que eu do numa olhada ...

pode ser que exista uma regra liberando o repasse desses pacotes acima da regra de bloqueio.

para saber em qual regra está passando esses pacotes verifique os contadores de pacotes das regras ...

deixe pingando (um exemplo) execute o comando "while true ; do iptables -nvL ; sleep 1 ; clear ; done" e verifique qual contador fica sendo alterado. dessa forma vc poderá identificar qual a regra que esta fazendo a liberação.

faloww


10. Re: Roteamento [RESOLVIDO]

Daniel Miyagi
j4p0n3g0

(usa Debian)

Enviado em 26/01/2011 - 08:30h

tente uma coisa antes ....

vc executou as regras abaixo ...
$IPT -A FORWARD -i eth0 -o eth2 -j DROP
$IPT -A FORWARD -i eth2 -o eth0 -j DROP


execute elas alterando o -A por -I ...
assim não vai ter erro ... vai ter que bloquear ...


11. Re: Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 26/01/2011 - 13:42h

Grande j4p0n3g0, aquela parada do default gateway do router wireless funcionou perfeitamente! ;)

Quanto a este outro problema, de que mesmo bloqueando o tráfego entre as interfaces eu ainda continuar conseguindo acessar o Webserve do Wireless é por causa da regra de PREROUTING que joga o tráfego da porta 80 para o meu proxy Squid (3128).

O outro problema, pra variar, é que a regra seguinte não funciona:

$IPT -I INPUT -s ! 192.168.192.100/32 -d $NETWORK_2 -p tcp -m multiport --sports 80,443 -j DROP

Ou melhor, funciona, PORÉM o IP 192.168.192.100 é também bloqueado, mesmo sendo uma excessão.



12. Re: Roteamento [RESOLVIDO]

Gustavo Henrique
gustavohsr

(usa Debian)

Enviado em 26/01/2011 - 13:49h

MEU FIREWALL...

######################################################################
# IP da Rede
NETWORK=192.168.100.0/24
NETWORK_2=10.10.10.0/24

# Interface da Rede Local - LAN
ILAN=eth0
ILAN_2=eth2

# Interface da Rede Externa - Internet
INET=eth1

IPT=/sbin/iptables
if [ ! -x $IPT ]; then
if [ -e $IPT ]; then
echo "O programa 'iptables' está sem permissão de execução"
else
echo "O programa 'iptables' não está instalado atualmente. Você pode instalá-lo digitando:"
echo "sudo apt-get install iptables"
fi
exit 0
fi


CLEAN_RULES () {

# Removendo regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

# Apagando chains
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Zerando contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}

REDIRECT () {

$IPT -t nat -A PREROUTING -i $ILAN -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPT -t nat -A PREROUTING -i $ILAN_2 -p tcp --dport 80 -j REDIRECT --to-port 3128
}

SHARE_INTERNET () {

#Mascaramento
$IPT -t nat -A POSTROUTING -o $INET -s $NETWORK -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $INET -s $NETWORK_2 -j MASQUERADE

# Ativando o redirecionamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
}


SECURITY () {

# Proteção para SYN Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Rejeitar requisição de ICMP Echo destinado a Broadcasts e Multicasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Ignorar Mensagens Falsas de icmp_error_responses
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

for i in /proc/sys/net/ipv4/conf/*; do

# Não Redirecionar Mensagens ICMP
echo 0 > $i/accept_redirects

# Proteção a Ataques IP Spoofing
echo 0 > $i/accept_source_route

# O kernel decide se envia resposta pelo mesmo endereço ou não.
echo 1 > $i/arp_filter

# Permitir que Pacotes Forjados sejam logados pelo próprio kernel
echo 1 > $i/log_martians

# Verificar Endereço de Origem do Pacote (Proteção a Ataques IP Spoofing)
echo 1 > $i/rp_filter
done
}


LOG () {

$IPT -A INPUT -i $INET -p tcp --dport 135 -j DROP
$IPT -A INPUT -p tcp -m multiport ! --dports 0:1056 -j DROP
$IPT -A INPUT -p udp -j DROP
$IPT -A INPUT -p icmp -j DROP
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-prefix "LOG-FW: "

}


SERVER_RULES () {

# Bind9 - Servidor DNS
$IPT -A INPUT -p udp --dport 53 -j ACCEPT

# DHCP - Servidor DHCP
$IPT -A INPUT -i $ILAN -p udp --sport 68 --dport 67 -j ACCEPT
$IPT -A INPUT -i $ILAN_2 -p udp --sport 68 --dport 67 -j ACCEPT

# Squid - Servidor Proxy
$IPT -A INPUT -i $ILAN -p tcp --dport 3128 -j ACCEPT
$IPT -A INPUT -i $ILAN_2 -p tcp --dport 3128 -j ACCEPT


#Negar acesso ao WEBSERVER do Router Wireless, menos para minha máquina
$IPT -I OUTPUT -o $ILAN_2 -s ! 192.168.100.100/32 -p tcp -m multiport --dports 80,443 -j DROP


}



SERVICE_RULES () {

# DNS - Serviço de Nomes de Dominios
$IPT -A FORWARD -o $INET -p tcp -m multiport --dports 53,5353 -j ACCEPT
$IPT -A FORWARD -o $INET -p udp -m multiport --dports 53,5353 -j ACCEPT

# HTTPS - Protocolo de Transferência de Hypertext Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 443 -j ACCEPT

# Ping
$IPT -A INPUT -i $ILAN -p icmp --icmp-type 8 -j ACCEPT
$IPT -A INPUT -i $ILAN_2 -p icmp --icmp-type 8 -j ACCEPT
$IPT -A FORWARD -o $INET -p icmp --icmp-type 8 -j ACCEPT


# WIRELESS - Aceita trafego entre a rede Wireless e com fio
$IPT -A FORWARD -s 192.168.100.100/32 -d $NETWORK_2 -j ACCEPT

}


ENABLE_FW () {

# Removendo regras, apagando chains e zerando contadores
CLEAN_RULES

# Política
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# Adicionando redirecionamentos
REDIRECT

# Compartilhando a Internet
SHARE_INTERNET

# Atribuindo segurança
SECURITY

# Adicionando regras p/ Servidores
SERVER_RULES

# Adicionando regras p/ Serviços
SERVICE_RULES

#ANTI_TROJAN
ANTI_TROJAN

# Manter Conexões Estabelecidas
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberando o Tráfego na Interface loopback
$IPT -A INPUT -i lo -j ACCEPT

# LOGs
LOG

#PSAD
$IPT -A INPUT -j LOG
$IPT -A FORWARD -j LOG
}



DISABLE_FW () {

# Removendo regras, apagando chains e zerando contadores
CLEAN_RULES

# Política
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# Adicionando redirecionamentos
REDIRECT

# Compartilhando a Internet
SHARE_INTERNET
}



MODULES () {

MOD[0]="iptable_filter"
MOD[1]="iptable_nat"
MOD[2]="iptable_mangle"
MOD[3]="ipt_LOG"
MOD[4]="ipt_REDIRECT"
MOD[5]="ipt_MASQUERADE"

for N in $(seq 0 5); do
if [ -z "$(lsmod | grep ${MOD[$N]})" ]; then
/sbin/modprobe ${MOD[$N]}
fi
done

}

EXEC () {

if [ $(whoami) == "root" ]; then
MODULES
$1
RET=0
else
echo "You're not a user root: Operation not permitted"
RET=1
fi
}

. /lib/lsb/init-functions

case "$1" in

start)
log_daemon_msg "Starting Firewall iptables"
EXEC ENABLE_FW
;;
stop)
log_daemon_msg "Stopping Firewall iptables"
EXEC DISABLE_FW
;;
restart|reload)
log_action_begin_msg "Reloading Firewall configuration..."
echo "Reloading Firewall configuration rules."
EXEC ENABLE_FW
;;
*)
log_success_msg "Usage: $0 {start|stop|restart|reload}"
esac

log_end_msg $RET

exit $RET






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts