quinta-feira, maio 03, 2007

Compartilhando 2 links no Linux PAT 2

O Script

Vejamos:


# Nesta parte denominamos variáveis para as interfaces como segue.
# Denominamos que o nome LAN seja referente a Interface ETH0 que no nosso
# script é a da rede interna. Verifique no seu Firewall qual é a interface
# correta.

IF_LAN='eth0'


# Aqui denominamos as variáveis dos LINKS 1 e 2, e os chamamos de LINK1 e LINK2
# É claro que você poderá chamá-los do que quiser. Exemplo: ADSL1 e ADSL2,
# mas não esqueça de alterar as variáveis no restante do script.

IF_LINK1='eth1'
IF_LINK2='eth2'

# Aqui colocamos os Gateways dos Links de Internet.
# Geralmente, os Default Gateways dos Links são os IPs dos roteadores de
# Internet.
GW_LINK1='200.70.0.1'
GW_LINK2='200.80.0.1'

# Nesta parte, utilizamos o comando IPTABLES para mascarar os IPs, ou seja,
# fazemos um NAT (Network Address Translation) para que os pacotes que venham da
# Interface ETH0 com IPs da rede interna, ou mesmo pacotes gerados dentro do
# próprio Firewall, possam sair para a Internet com endereços trocados, usando
# os IPs das interfaces ligadas aos Links de Internet.
# O MASQUERADE ao final do comando faz exatamente isto.
# Caso contrário, utilizaria ACCEPT, mas aí os pacotes sairiam para a Internet
# com IPs da rede interna e jamais retornariam ao Firewall.

iptables -t nat -A POSTROUTING -o -j MASQUERADE
iptables -t nat -A POSTROUTING -o -j MASQUERADE

# Aqui começamos a marcar os pacotes diferenciando-os pela porta utilizada.
# Observe que escolhemos os pacotes com destino as portas 80 (HTTP) 443 (HTTPS)
# 25 (SMTP) 110 (POP)
# Todo pacote que passar pelo Firewall com estas particularidades receberão
# uma marca, uma espécie de carimbo. Pacotes destinados a porta 80
# recebem carimbo de número 2, pacotes com destino a porta 25
# recebem carimbo número 3.
# Desta forma, podemos diferenciá-los para que mais a frente no script tenhamos
# controle do que saiu/entrou e por onde saiu/entrou.

iptables -t mangle -A PREROUTING -i -p tcp --dport 80 -j MARK
--set-mark 2

iptables -t mangle -A PREROUTING -i -p tcp --dport 443 -j MARK
--set-mark 2

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

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

# A diferença entre o PREROUTING e o OUTPUT é que, PREROUTING abrange os
# pacotes que foram originados fora do FIREWALL, por exemplo Interface ETH0
# (), enquanto OUTPUT são os pacotes originados no Firewall, ou seja, na
# própria console.

iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3
iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3

# Aqui montamos as tabelas dinâmicas a partir das marcas (carimbos) que fizemos
# lá em cima no nosso script.
# Pacotes que foram marcados com 2 vão para a tabela table 20 e os marcados
# com 3, vão para a tabela table 21, com a mesma prioridade. Perceba o PRIO 20
# após os comandos.

ip rule add fwmark 2 table 20 prio 20
ip rule add fwmark 3 table 21 prio 20

# se quisermos condicionar esta marcação de outra forma, podemos utilizar o
# comando das seguintes formas:

# Este condiciona que todos os pacotes que vierem da rede 192.160.0.0 vão para
# a tabela 20.
# O comando está comentado. Caso queira utilizá-lo, apenas retire o sinal de
# da frente.

# ip rule add from 192.160.0.0/24 table 20

# Este outro condiciona os pacotes da rede 192.170.0.0 a irem para a tabela 21
# O comando está comentado. Caso queira utilizá-lo, apenas retire o sinal de
# # da frente do comando.

# ip rule add from 192.170.0.0/24 table 21

# Agora sim daremos rumo aos pacotes que foram marcados e cadastrados na tabela
# dinâmica.
# Veja que os pacotes que foram enviados para a tabela 20 têm como DEFAULT
# GATEWAY o LINK1. Sendo assim, os pacotes serão enviados para o LINK1 na
# Interface ETH1 com o IP 200.70.0.1.
# Já os pacotes da tabela 21 serão enviados para o LINK2 na Interface ETH1, com
# o IP 200.80.0.1

ip route add default via dev table 20
ip route add default via dev table 21


# Este último comando limpa a tabela, caso ela já tenha sido utilizada
# anteriormente, ou apenas para termos certeza de que quando você resetar as
# regras todas, o Firewall não guarde nenhum tipo de informação na
# memória (cache). Daí o nome FLUSH CACHE.

ip route flush cache

### FIM DO SCRIPT ######


Nenhum comentário:

mapa

FRASE DO DIA


Tip 28 goes here

This free script provided by
JavaScript Kit

RELOGIO

VISITANTE

você é o visitante # 4631625 em meu blog!

This free script provided by
JavaScript Kit

TEMPO

TEMOS 10006 dias DESDE A CRIAÇÃO DO Blog ORPHEU40!

This free script provided by
Website Abstraction

Doações

Monte 20/03/2008

MOIP

De VoIP para MoIP: o MSN do pagamento
MoIP Idéias - 30 de abril de 2008
Google
 

Os espinhos que me feriram foram produzidos pelo arbusto que plantei.