Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

1. Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 28/11/2011 - 20:48h

Saudações a todos.
Meu nome é Luiz e estou precisando de ajuda de algum mestre em firewall em uma configuração de roteamento usando o iptables, que aparentemente não parece complicado, mas não esta ao alcanse de meus conhecimentos basicos em NETFILTER

Atualmente uso um servidor linux UBUNTU 11 com o squid, uns comandos iptables comuns e redireciomantos para um servidor TerminalServices em windows 2008, e tambem redirecionamentos para a porta 8080 de um outro servidor WEB tambem 2008 (DNAT --to-destination), usando uma conexão speedy 4 MB.

Recentemente adquirimos um novo link dedicado.
Entao achei que era simples usar os 2 ips validos que temos para fazer os redirecionamentos instalando a terceira placa de rede ...quebrei a cara !!
Li muito, aprendi bastante coisa sobre iptables, iproute2, criar tabelas, marcar pacotes (mangle), mas desisti, não consigoo fazer que os 2 ips funcionem para conexões de terninal service (porta 3389) e tomcat (8080) para acesso externo !!
Criei uma tabela link2, adicionei o ip novo e seu default gateway, adcionei uma regra fwmark 3 table link2
coloquei uma regra no iptables:

iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 3389 -j MARK --set-mark 3

logo depois mais uma regra de redirecionamento sendo que ja tem uma regra para o link antigo (eth1):

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.2:3389

Achei que assim todo o pedido de conexão que chegasse na eth2 seria marcado e na volta ele não tentaria sair pelo meu default gateway mas sim pela tabela de roteamento "link2"

Eu não esquento a cabeça em fazer balanceamento, redundancia, etc, só quero 2 ips para acesso externo !!

Por favor, alguem pode me ajudar ou indicar alguem que me de uns exemplos ??

Obrigado desde ja !!
Luiz Antonio



  


2. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 28/11/2011 - 21:55h

opa achou o cara certo, iptables é comigo mesmo. Manda um e-mail que a gente conversa

eriton@linuxmail.org


3. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 29/11/2011 - 15:50h

Parece que você fez tudo certo, mas esqueceu disso

iptables -t nat -I POSTROUTING -s 192.168.0.2 -p tcp --dport 3389 -o eth2 -j MASQUERADE
iptables -t nat -I POSTROUTING -s 192.168.0.2 -p tcp --dport 8080 -o eth2 -j MASQUERADE


Lembre-se de adicionar essa regra antes das já existentes na tabela nat


4. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 29/11/2011 - 20:28h

n4t4n escreveu:

Parece que você fez tudo certo, mas esqueceu disso

iptables -t nat -I POSTROUTING -s 192.168.0.2 -p tcp --dport 3389 -o eth2 -j MASQUERADE
iptables -t nat -I POSTROUTING -s 192.168.0.2 -p tcp --dport 8080 -o eth2 -j MASQUERADE


Lembre-se de adicionar essa regra antes das já existentes na tabela nat


Ola, obrigado pela atenção,mas eu ja possuo uma regra de mascaramento na saida eth2 (link novo) (-o eth2 -j MASQUERADE) assim como a eth1 (link antigo).

Tambem acho que a sua regra não funcionaria, entendo que o pedido de conexão sempre chega com uma porta escolhida aleatoriamente para a porta de destino que o servidor esta escutando ( ex 4412 > 3389) e na volta (3389 > 4412) se foce --sport 3389 e --dport 3389 ai sim !! concorda ?

Me corrija se eu tiver errado !!
Mas muito obrigado pela atenção !!
E o probleminha num resolvi ainda !!


5. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 03/12/2011 - 17:32h

por favor, uma forcinha gente !!


6. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 06/12/2011 - 19:44h

Tenta o seguinte

iptables -t mangle -I PREROUTING -i eth2 -p tcp --dport 3389 -j CONNMARK --set-mark 123456
iptables -t mangle -I PREROUTING -m connmark --mark 123456 -p tcp --sport 3389 -j MARK --set-mark 3

Pelo que vi você utilizou o alvo MARK para marcar os pacotes que entram pela eth2 com destino a porta 3389. Porém ao utiliar o mesmmo, quando o pacote sai do firewall em direção ao servidor, ao retornar esta marcação não é mais válida.
Neste caso, devemos utilizar o alvo CONNMARK. A diferença dele pro MARK é que enquanto o MARK marca apenas pacotes, o CONNMARK marca conexões, sendo assim os pacotes que retornam ao firewall enxergarão essa marcação.
Nas regras acima, na primeira ele marca a conexão que entra pela eth2 com destino a porta 3389.
Na segunda, ele pega essa conexão marcada e marca o pacote com o valor 3, o que fará com que ele consulte a tabela de roteamento com essa marcação.

Se funcionar, você até pode criar uma regra geral para marcar qualquér conexão que entra pela eth2 (CONNMARK) e depois marcar a volta pela mesma interface.
Ficaria assim:


iptables -t mangle -I PREROUTING -i eth2 -j CONNMARK --set-mark 123456
iptables -t mangle -I PREROUTING -m connmark --mark 123456 -j MARK --set-mark 3


Espero poder ter ajudado!


Acabei de criaar uma nova comunidade no VOL ( Conntrack ). Caso seja de seu interesse, torne - se membro da mesma para debater um tópico muito legal e interessante.



Att,

Leonardo Souza




7. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

vinicios
viniciospbi

(usa Debian)

Enviado em 06/12/2011 - 19:54h

Amigo já ouviu falar de um aparelho chamado Mikrotik Routerboard Rb750?
Ele resolve todo o seu problema. Com ele vc pode colocar ate 4 links de internet e ele faz o balanceamento de carga e distribui em um cabo de rede.
Essa e a solução mas simples e pratica.


8. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 06/12/2011 - 22:08h

Putzz que jóia entendi perfeitamente, vou tentar isso agora mesmo e posto o resultado, vou acessar e mexer no servidor via ssh, e ver no que da...
Muito obrigado...Leonardo pela ideia.

Enquanto ao aparelho Mikrotik, eu ja ouvi falar, alem de outros.
Mas enquanto eu não ver o Linux fazendo esse serviço, eu não relaxo entende??!!, mas é por questão de aprendizado, e achar interessantissimo o Linux e suas ferramentas !!

Obrigado pessoal


9. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 07/12/2011 - 09:09h

Ola Leonardo, obrigado pela dica, mas não consegui !!, segue o meu script que to usando, por enquanto ele num tem nenhum tipo de bloqueio, etc etc só msn, justamente por causa dessa configuração que quero fazer !!

#!/bin/bash

modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_state
modprobe ipt_MASQUERADE

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t raw -F
/sbin/iptables -t raw -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X


#Habilitando o roteamento no kernel...
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward

#Desabilitando o rp_filter em todas as interfaces...
for i in /proc/sys/net/ipv4/conf/*/rp_filter;
do echo 0 > $i
done

#Mascarando todas as saidas para a internet...
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


#BLOQUEIO DE MESSENGER, WEBMESSENGER E O SITE IMO.IM 443
iptables -A FORWARD -s 192.168.0.0/24 -d imo.im -p tcp --dport 443 -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -d imo.im -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -d loginnet.passport.com -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -d messenger.hotmail.com -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -d webmessenger.msn.com -j REJECT
iptables -A FORWARD -p tcp --dport 1080 -j DROP
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1080 -j REJECT

#Evitando um ip de passar pelo squid para conexÃo transmissor AUDESP...
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.0.12 -d 201.55.45.20 -j ACCEPT

#Redirecionando internet a porta do squid proxy...
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128



#Redirecionando pedidos de conexão a porta 80 e 8080 para o servidor web...
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.3:8080

#Redirecioando pedidos de conexão de TS para os respectivos servidores...

iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.3:3389

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.3:3389

#novas configs que coloquei seguindo a ideia do leonardo, de marcar todas as conexões que chegam na eth1, (ja tentei bem especifica tambem)
iptables -t mangle -A PREROUTING -i eth1 -j CONNMARK --set-mark 1234
iptables -t mangle -A PREROUTING -m connmark --mark 1234 -j MARK --set mark 3

# Regras para criação de tabelas
# tabela "100 desvio" criada em rt_tables

ip rule add fwmark 3 table desvio
ip route add default via 189.ZZZ.ZZZ.1 table desvio
ip route add 189.ZZZ.ZZZ.0/24 dev eth1 src 189.ZZZ.ZZZ.82 table desvio



Porque não conecta o segundo IP da eth1 ?? só o ip da ppp0 conecta tudo !!
Obrigado, ideias são muito bem vindas !!



10. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 07/12/2011 - 09:59h

Em /etc/iproute2/rt_table, tem essa tabela chamada desvio cadastrada?

Digitando "ip rule list",veja se as marcações estão no ar.

Também veja com o comando "ip route show table desvio" se foi adicionado corretamente a rota default.

Pelo que vi o script está correto. Outra coisa, tentou criar as regras de CONNMARK na mão e verificar se foram gravadas corretamente no kernel?

Cole os resuktados dos comandos "ip rule list", "ip route show table desvio", "route -n" e também do arquivo rt_table.



Att,

Leonaro Souza


11. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Jadilson
jmuramatsu

(usa Ubuntu)

Enviado em 07/12/2011 - 11:46h

Tenho 2 links pra internet, 1 speedy IP fixo e 1 virtua IP dinâmico e também estou tentando redirecionar um IP interno pra sair por um link e não estou conseguindo, no meu caso acho que é mais simples, porque eu só quero que um IP interno saia pelo link speedy.

Faço a marcação no firewall:
iptables -t mangle -A PREROUTING -p tcp -s 10.10.10.125 -j MARK --set-mark 6

No iproute tá lá:
from all fwmark 0x6 lookup speedy

No #ip route show table speedy tá lá as rotas:
189.20.200.0/24 dev eth1 scope link src 189.20.200.20
default via 189.200.20.1 dev eth1

Mas quando acesso qualquer site pelo IP 10.10.10.125 ele mostra o IP do outro link, ele não sai obrigatóriamente pelo speedy, ele faz o load balance entre os 2 links, ora saindo por um IP ora por outro.

Alguém tem alguma luz ai? :)

Abraço


12. Re: Redirecionamentos usando 2 links, por favor me ajudem !! [RESOLVIDO]

Luiz Antonio
hardmaster2009

(usa Ubuntu)

Enviado em 07/12/2011 - 16:22h

saida ip rule:

0: from all lookup local
32765: from all fwmark 0x3 lookup desvio
32766: from all lookup main
32767: from all lookup defaul

saida iptables -t mangle -nvL
1141 818K CONNMARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 CONNMARK set 0x4d2
302 162K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 connmark match 0x4d2 MARK set 0x3
saida do comando iptables -t nat -nvL

Chain PREROUTING (policy ACCEPT 27411 packets, 2309K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 192.168.0.12 201.55.45.20 tcp dpt:80
29974 1466K REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128
9 468 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.0.3:80
3 120 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:192.168.0.3:8080
365 17667 DNAT tcp -- ppp0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389 to:192.168.0.2:3389
0 0 DNAT tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389 to:192.168.0.2:3389

Chain INPUT (policy ACCEPT 34739 packets, 2288K bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 29111 packets, 1784K bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 503 packets, 58147 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth1 0.0.0.0/0 0.0.0.0/0
50676 3179K MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0

saida ip route list table desvio
default via 189.ZZZ.156.1 dev eth1
189.ZZZ.ZZZ.0/24 dev eth1 scope link src 189.ZZZ.ZZZ.82


arquivo rt_tables /etc/iproute2

#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
100 desvio



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts