Nat com Marcação de pacotes.

1. Nat com Marcação de pacotes.

Danilo Tancredi Mastantuono
danilotm

(usa Ubuntu)

Enviado em 24/04/2008 - 14:22h

Boa tarde, preciso de ajuda para solucionar essa dúvida que me aterroriza dias e noites rs..

Possuo dois links em um servidor rodando iptables com marcação de pacotes.

Gostaria de marcar os pacotes de entrada ao Terminal Service e efetuar o nat desta requisição para um servidor Micro$oft 2003 server, é possível??

Consigo fazer a entrada do SSH para o meu firewall com o link que desejo, porém, não consigo fazer o nat através desses pacotes marcados.

Seguem minhas regras:

#SSH - Estas regras permitem o acesso ao servidor para o Link1 através da porta 22.
iptables -t mangle -A PREROUTING -i $LINK1 -p tcp --dport 22 -j MARK --set-mark 1
iptables -t mangle -A INPUT -i $LINK1 -p tcp --dport 22 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -o $LINK1 -p tcp --sport 22 -j MARK --set-mark 1
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT


#Terminal service
iptables -t mangle -A PREROUTING -i $LINK1 -p tcp --dport 3389 -j MARK --set-mark 1
iptables -t mangle -A INPUT -i $LINK1 -p tcp --dport 3389 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -o $LINK1 -p tcp --sport 3389 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i $LINK1 -p tcp --dport 3389 -j MARK --set-mark 1

# Acredito que o problema está aqui nessas regras de firewall
iptables -A FORWARD -i $LINK1 -p tcp --dport 3389 -d 192.168.0.144 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -i $LINK1 -m mark --mark 1 -p tcp --dport 3389 -j DNAT --to 192.168.0.144

----

Obs: A marcação de pacotes está funcionando sem problemas, porém, tenho dúvida na regra de NAT quando há marcação de pacotes.
Pesquisei diversas fontes e não encontrei como fazer o redirecionamento desses pacotes marcados, pois da maneira convencional a requisição não chega ao destino.

Abraços.





  


2. Nat com Marcação de pacotes.

Diego Camargo
dhcamargo

(usa Ubuntu)

Enviado em 17/09/2008 - 14:56h

Boa tarde!

Você poderia me passar como fez as configurações para a Marcação de pacotes (script completo)?
Estou com dificuldades aqui.

Muito obrigado!

Diego


3. Re: Nat com Marcação de pacotes.

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 22/02/2013 - 09:54h

Olá

Conseguiu fazer a nat com marcação de pacotes~?




4. Re: Nat com Marcação de pacotes.

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 04/03/2013 - 19:22h

Neo X qual seria a sua duvida referente a nat com marcacao de pacote.

Eu uso aqui e posso te auxiliar

[]s
Altemir Braz Dantas Junior
Jocajuni


5. Re: Nat com Marcação de pacotes.

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 05/03/2013 - 10:35h

Obrigado pela força.

Vamos lá..


Tenhos dois links wan no meu firewall e tenho vários IPs válidos e cada um tem uma NAT para o servidores internos da empresa.

Como o Linux trabalha com apenas um gateway (no meu caso está o Link da ALGA)...as conexões com destino ao Link da Telefonica, retornam pelo Link da ALGAR.

Entrada - WAN Telefonica - Destino LAN - Saída ALGAR


Entrou pela Telefonica, sai pelo mesmo link.


eth1=Telefonica
eth1:1 x.x.x.x nat 192.168.100.2:3389
eth1:2 x.x.x.x nat 192.168.100.10:80
eth1:3 x.x.x.x nat 192.168.100.15:1521


eth2=ALGAR
eth2:1 y.y.y.y nat 192.168.100.2:3389
eth2:2 y.y.y.y nat 192.168.100.10:80
eth2:3 y.y.y.y nat 192.168.100.15:1521

[]'s


6. Re: Nat com Marcação de pacotes.

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 06/03/2013 - 14:57h

Vou dar um exemplo

############## Servidor firewall

Ips telefonica com o gateway (200.200.200.1)
200.200.200.3 - eth1
200.200.200.2 - eth1:0


Ips ALGAR com o gateway (189.189.189.1)
189.189.189.3 - eth2
189.189.189.2 - eth2:0


IP Interno
192.168.100.1 - eth0


####### Servidor WEB Interno (Vou colocar 4 IPs nele)

192.168.100.10 eth0
192.168.100.11 eth0:0
192.168.100.12 eth0:1
192.168.100.13 eth0:2


############ EXECUTAR NO FIREWALL ###################################
####### Primeiro vamos criar duas tables para o iproute2
echo "100 telefonica" >> /etc/iproute2/rt_tables
echo "101 algar" >> /etc/iproute2/rt_tables


################# AGORA VAMOS CRIAR AS ROTAS PELA MARCACAO MARK 1 -> telefonica , MARK 2 -> algar

# telefonica
ip rule add fwmark 1 table telefonica
ip route add default via 200.200.200.1 dev eth1 table telefonica


# algar
ip rule add fwmark 2 table algar
ip route add default via 189.189.189.1 dev eth2 table algar


####### Criar DNAT e SNAT e MARCACAO DO PACOTE de cada IP Externo para cada IP Interno server WEB

## telefonica
iptables -A FORWARD -s 0/0 -d 192.168.100.10 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 0/0 -s 192.168.100.10 -p tcp --sport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d 200.200.200.2 -p tcp --dport 80 -j DNAT --to 192.168.100.10
iptables -t mangle -A PREROUTING -p tcp -s 192.168.100.10 --sport 80 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.10 --sport 80 -j SNAT --to 200.200.200.2


iptables -A FORWARD -s 0/0 -d 192.168.100.11 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 0/0 -s 192.168.100.11 -p tcp --sport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d 200.200.200.3 -p tcp --dport 80 -j DNAT --to 192.168.100.11
iptables -t mangle -A PREROUTING -p tcp -s 192.168.100.11 --sport 80 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.11 --sport 80 -j SNAT --to 200.200.200.3


## algar
iptables -A FORWARD -s 0/0 -d 192.168.100.12 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 0/0 -s 192.168.100.12 -p tcp --sport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d 189.189.189.2 -p tcp --dport 80 -j DNAT --to 192.168.100.12
iptables -t mangle -A PREROUTING -p tcp -s 192.168.100.12 --sport 80 -j MARK --set-mark 2
iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.12 --sport 80 -j SNAT --to 189.189.189.2


iptables -A FORWARD -s 0/0 -d 192.168.100.13 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 0/0 -s 192.168.100.13 -p tcp --sport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d 189.189.189.3 -p tcp --dport 80 -j DNAT --to 192.168.100.13
iptables -t mangle -A PREROUTING -p tcp -s 192.168.100.12 --sport 80 -j MARK --set-mark 2
iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.12 --sport 80 -j SNAT --to 189.189.189.3


Agora é só testar

[]s
Altemir Braz Dantas Junior
Jocajuni




7. Re: Nat com Marcação de pacotes.

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 07/03/2013 - 10:00h

Altemir,

Obrigado pela ajuda. Só mais algumas dúvidas. Como tenho dois links, eu posso somente fazer a marcação em um link, certo? E para fazer NAT com redirect de portas direferente é do mudar o dport ?





8. Re: Nat com Marcação de pacotes.

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 07/03/2013 - 10:31h

WAN porta 33891 destino 192.168.0.10 porta 3389
200.x.x.200

Seria assim?

iptables -A FORWARD -s 0/0 -d 192.168.0.10 -p tcp --dport 33891 -j ACCEPT
iptables -A FORWARD -d 0/0 -s 192.168.0.10 -p tcp --sport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d 200.x.x.200 -p tcp --dport 3389 -j DNAT --to 192.168.0.10
iptables -t mangle -A PREROUTING -p tcp -s 192.168.0.10 --sport 3389 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.10 --sport 3389 -j SNAT --to 200.x.x.200



9. Re: Nat com Marcação de pacotes.

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 07/03/2013 - 10:54h

Agora foi, no CentOS tenho que colocar o --to-destination se não colocar, não funciona....

Ficou assim:


iptables -A FORWARD -s 0/0 -d IP_LAN -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -d 0/0 -s IP_LAN -p tcp --sport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -s 0/0 -d IP_WAN_ENTRADA -p tcp --dport 33891 -j DNAT --to-destination IP_LAN:3389
iptables -t mangle -A PREROUTING -p tcp -s IP_LAN --sport 3389 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -p tcp -s IP_LAN --sport 33891 -j SNAT --to IP_WAN_ENTRADA

Vou testar se esta saindo pelo mesmo link de entrada...






10. Re: Nat com Marcação de pacotes.

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 11/03/2013 - 23:52h

Seria isso mesmo


11. Nat com Marcação de pacotes.

Mauricio Costa
maucosta80

(usa Ubuntu)

Enviado em 14/09/2015 - 11:11h

Bom dia,

Tenho 2 links de internet; TIM e VIVO.
Pelo link da VIVO estou fazendo um NAT para um IP especifico na minha rede, NAT de N -> 1 e o mesmo funciona.
Eu vejo a requisição chegando no servidor de destino mas, não vejo o pacote voltando. Creio que, ao invés de sair pelo link que entrou, o pacote esta saindo pelo default gateway. Resumindo...o pacote entra pela VIVO e sai pela TIM.
Estou com dificuldades para monitorar os pacotes marcados.
Usei esses comandos para marcar os pacotes:

iptables -t mangle -A PREROUTING -m connmark ! -i eth0 -j MARK --mark 0x2 --set-mark 0x2
iptables -t mangle -A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -j CONNMARK --set-mark 0x2

Usei este para visualizar os pacotes marcados:

tcpdump -i eth0 | grep 0x2

Esta certo isso ?


Grato,

Mauricio Costa






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts