Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

1. Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Pires
pinguintux

(usa Debian)

Enviado em 05/07/2011 - 14:15h

Boa tarde!
Gostaria de solicitar ajuda dos amigos do VOL, para a seguinte situação:
- Tenho um servidor Debian Squeeze com 04 (quatro) interfaces de rede e 02 (dois) links de internet. Possuo instalado neste mesmo servidor, o Squid3 de firma transparente (Funcionando perfeitamente) e um servidor DHCP, fornecendo duas faixas de endereços para minhas duas redes (Funcionando muito bem), Webmin, além do Sarg.
- Pretendo gerenciar os dois links neste mesmo servidor, da seguinte forma:
- Rede 01 - Eth0 com IP 172.22.0.1 (Gateway da Rede Local) saindo pela Eth1 192.168.0.1 (Gateway para a Internet);
- Rede 02 - Eth2 com IP 10.0.0.1 (Gateway da Rede Local) saindo pela Eth3 192.168.10.1 (Gateway para a Internet).
Bem, então vamos ao problema:
- Gostaria de saber se existe alguma forma de impedir que a Rede 01 (172.22.0.0/22) saia para a internet utilizando a interface Eth3 (192.168.10.1), por meio de regras de firewall IPTables ou configurando o Dhcpd.conf;
- E também impedir que a Rede 02 (10.0.0.0/22) saia para a internet utilizando a interface Eth1 (192.168.10.1);

Pois é justamente esse o meu problemas, eu quero que cada rede use somente um link, o que não está acontecendo, pois as redes especificadas acabam utilizando os dois links de internet. Em suma, não quero que a Interface Eth0 se comunique com a Eth3 e que a Interface Eth2 não se comunique com a Eth1. Segue abaixo, minhas poucas regras de firewall e o Dhcpd.conf:

# Regras de Firewall
#!bin/bash
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

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

iptables -t nat -A PREROUTING -s 172.22.0.0/255.255.252.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 10.0.0.0/255.255.252.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

# Dhcpd.conf
# Servidor DHCP

ddns-updates off;

# nega acesso a macs não cadastrados
deny unknown-clients;

ddns-update-style none;
default-lease-time 21600;
max-lease-time 43200;
authoritative;
log-facility local7;
option domain-name "proxy.net";


subnet 172.22.0.0 netmask 255.255.252.0 {
range 172.22.0.1 172.22.3.254;
option routers 172.22.0.1;
option subnet-mask 255.255.252.0;
option domain-name-servers 208.67.222.222, 208.67.220.220;
option broadcast-address 172.22.3.255;
}

subnet 10.0.0.0 netmask 255.255.252.0 {
range 10.0.0.11 10.0.0.254;
option routers 10.0.0.1;
option subnet-mask 255.255.252.0;
option domain-name-servers 208.67.222.222, 208.67.220.220;
option broadcast-address 10.0.3.255;
}

host Rede1 {
hardware ethernet 00:15:D3:5D:BB:79;
fixed-address 172.22.0.11;
}
host Rede2 {
hardware ethernet D8:C3:85:D8:12:39;
fixed-address 10.0.0.11;
}

Desde já agradeço a presteza no atendimento!





  


2. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/07/2011 - 15:22h

Vc tem q utilizar a tabela mangle (marcador d pacotes do iptables) + controlador d rotas com o ip (esse é o nome do aplicativo). Tem muitos artigos no VOL explicando sobre isso...


3. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Pires
pinguintux

(usa Debian)

Enviado em 05/07/2011 - 15:37h

Caro Renato Pacheco, obrigado pela tentativa de ajuda, agradeceria mais ainda se puderes me dar maiores detalhes!


4. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

5. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Pires
pinguintux

(usa Debian)

Enviado em 05/07/2011 - 22:47h

Obrigado Pacheco, amanhã vou adequar o script para minhas necessidades e logo em seguida postarei aqui os resultados!


6. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Pires
pinguintux

(usa Debian)

Enviado em 06/07/2011 - 16:52h

Prezados, agradeço a colaboração, mas ainda estou na batalha para tentar resolver este problema!
Pacheco, obrigado pelo link, mas eu não tenho a intenção de trabalhar com balanceamento de carga, apesar do assunto ser bem elaborado e realmente abordar sobre tópicos importantes. Eu é de tentar aplicar alguma regra de iptables ou mesmo com iproute para que as rotas das interfaces sejam seguidas a risca, ou seja:
- A interface Eth1 (rede local 01) somente deve comunicar-se com a interface Eth0 (Link de Internet 01);
- A interface Eth3 (rede local 02) somente deve comunicar-se com a interface Eth2 (Link de Internet 02).

Existe alguma regra que possa impedir uma interface de comunicar-se com uma interface específica ou até mesmo redirecionar de uma interface para outra, ou seja, se a Eth1 tentar acessar a internet pela Eth2, que a mesma redirecione para a Eth0?

Valeu!



7. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/07/2011 - 17:05h

Kra, é só fazer regras q não permitam a comunicação entre essas interfaces. Ex.:

iptables -A FORWARD -i eth0 -o eth3 -j DROP
iptables -A FORWARD -i eth2 -o eth1 -j DROP

Nestes casos, estou colocando só os pacotes q estão saindo. Os q estão entrando devem ser acrescentados, invertendo a ordem das interfaces.


8. Re: Servidor Proxy + IPTables com 04 (quatro) Placas de Rede

Pires
pinguintux

(usa Debian)

Enviado em 08/07/2011 - 08:35h

A questão é a seguinte:
Apesar de não ter mencionado antes, eu já havia tentado aplicar estas regras, conforme abaixo, de várias formas:

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


iptables -A FORWARD -i eth1 -o eth2 -j DROP
iptables -A FORWARD -i eth3 -o eth0 -j DROP
iptables -A FORWARD -i eth2 -o eth1 -j DROP
iptables -A FORWARD -i eth0 -o eth3 -j DROP
iptables -A FORWARD -i eth0 -o eth2 -j DROP
iptables -A FORWARD -i eth2 -o eth0 -j DROP

Aí acontece o seguinte: a Interface a Eth1 sai pela Eth0 normalmente, mas a Interface Eth3 não sai pela Eth2, ou seja, não acessa a internet. Seguem abaixo as rotas e o arquivo /etc/network/interfaces.
Também já tentei retirar os default gateway, bem como criar rotas via linha de comando, mas não funcionou!
Outra observação, eu preciso usar 04 (quatro) placas de rede, pois 03 (três) não resolve meu problema!
Mais uma vez, agradeço a colaboração, caso tenha outras sugestões!
# route -n
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
189.xxx.xx.x 0.0.0.0 255.255.252.0 U 0 0 0 eth0
200.xxx.xx.x 0.0.0.0 255.255.252.0 U 0 0 0 eth2
172.22.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth3
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth2
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

# mcedit /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.0.1
net 192.168.0.0
netmask 255.255.252.0
gateway 189.xxx.xx.x


auto eth1
iface eth1 inet static
address 172.22.0.1
net 172.22.0.0
netmask 255.255.252.0
gateway 192.168.0.1


auto eth2
iface eth2 inet static
address 192.168.10.1
net 192.168.10.0
netmask 255.255.252.0
gateway 200.xxx.xx.x


auto eth3
iface eth3 inet static
address 10.0.0.1
net 10.0.0.0
netmask 255.255.252.0
gateway 192.168.10.1








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts