2 conexões como configurar com iptable e iproute

1. 2 conexões como configurar com iptable e iproute

salomao coelho
salomaocoelho

(usa Debian)

Enviado em 27/01/2010 - 15:29h

Caros amigos,
Tenho 2 conexões(1 radio e 1 Claro3g) estou tentando fazer um firewall com iptable e não estou sabendo como proceder.
a conexão a radio é de 600Kb
eth0: 189.91.xxx.137/255.255.255.0 gw:189.91.xxx.129

a conexão 3G Claro é 1Mb
ppp0: DHCP(10.64.64.64/255.255.255.255)

a rede local:
eth1: 192.168.1.200/255.255.255.0
achei este script e coloquei para funcionar.
######################################
# Firewall for ADSL Velox Telemar #
# By Leandro R. leandro@cesan.com.br #
# OBS: Balanceamento de trafego para #
# 2 links ADSL #
######################################

# Legenda
#
# eth2 -> Rede interna (192.168.1.200/24)
# eth0 -> tvacabo (189.91.xxx.137/24)
# ppp0 -> claro3g (10.64.64.64/32)

# Variaveis
DNS1="189.91.xxx.7"
DNS2="189.91.xxx.8"
DNS3="208.67.220.220"
DNS4="208.67.222.222"

# Carregando os modulos basicos:

echo -n "Carregando os modulos..."
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
echo " [OK]"

# Resetando o Firewall:

echo -n "Resetando o firewall..."
iptables -F
iptables -Z
iptables -X

iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo " [OK]"

# Habilitando o roteamento de pacotes:

echo -n "Habilitando o roteamento..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo " [OK]"

# Liberando a chain INPUT para o localhost:

echo -n "Liberando acesso do localhost..."
iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 192.168.1.200 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 189.91.xxx.137 -i lo -j ACCEPT
iptables -A INPUT -p ALL -s 10.64.64.64 -i lo -j ACCEPT
echo " [OK]"

# Otimizando o firewall:

echo -n "Otimizando o roteamento..."
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo " [OK]"

# Liberando resposta dos servidores DNS:

echo -n "Liberando servidores DNS..."
iptables -A INPUT -p udp -s 192.168.1.0/24 --sport 53 -d $DNS1 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.1.0/24 --sport 53 -d $DNS2 -j ACCEPT
iptables -A INPUT -p udp -s 10.64.64.64/32 --sport 53 -d $DNS3 -j ACCEPT
iptables -A INPUT -p udp -s 10.64.64.64/32 --sport 53 -d $DNS4 -j ACCEPT

echo " [OK]"

# DHCP Server

echo -n "Liberando servidor DHCP..."
iptables -A INPUT -p udp -s 192.168.1.0/24 --sport 79 -d 192.168.1.200 -j ACCEPT
echo " [OK]"

# Descartar pacotes fragmentados:

echo -n "Bloqueando pacotes fragmentados..."
iptables -A INPUT -i eth1 -f -j LOG --log-prefix "Pacote fragmentado: "
iptables -A INPUT -i eth1 -f -j DROP
iptables -A INPUT -i eth2 -f -j LOG --log-prefix "Pacote Fragmentado: "
iptables -A INPUT -i eth2 -f -j DROP
echo " [OK]"

# Bloqueando ataques do tipo SPOOF de IP:

echo -n "Bloqueando spoofing..."
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP

iptables -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP
echo " [OK]"

# Liberando alguns acessos por ping:

echo -n "Liberando acesso por ping..."
iptables -A INPUT -p icmp --icmp-type 8 -i eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp -s 192.168.1.0/24 -d 0/0 -j ACCEPT
echo " [OK]"

# Regra para SSH: (opcional)

echo -n "Liberando acesso ao SSH..."
iptables -A INPUT -p TCP --dport 22 -j ACCEPT
echo " [OK]"

# Regras do FORWARD

# Descarta pacotes invalidos:

echo -n "Descartando pacotes invalidos para reenvio..."
iptables -A FORWARD -m state --state INVALID -j DROP
echo " [OK]"

# Mantendo conexoes ativas:

echo -n "Manutencao de conexoes ativas..."
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
echo " [OK]"

# Liberando acesso ao DNS para a rede interna (Email):

echo -n "Liberando DNS para rede interna..."


iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -d $DNS1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -d $DNS2 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 10.64.64.64/32 -d $DNS3 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 10.64.64.64/32 -d $DNS4 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS1 --sport 53 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS2 --sport 53 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS3 --sport 53 -d 10.64.64.64/32 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS4 --sport 53 -d 10.64.64.64/32 -j ACCEPT

echo " [OK]"

# Fazendo mascaramento de enderecos IP (NAO NAT):
# OBS: essa regra eh mutuamente excludente com a proxima, a do NAT
# ou seja, escolha uma das duas

echo -n "Habilitando o mascaramento..."
#iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo " [OK]"

# Marcando pacotes

echo -n "Marcando pacotes..."
iptables -A PREROUTING -t mangle -s 189.91.xxx.137/24 -d 0/0 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 10.64.64.64/32 -d 0/0 -j MARK --set-mark 3
echo " [OK]"

# Desabilitando o filtro de pacotes do martian source
echo -n "Desligando rp_filter..."
for eee in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $eee
done
echo " [OK]"

# Definindo regras de balanceamento de Link:
echo -n "Balanceando links velox..."

# tvacabo
ip route add 189.91.xxx.0/24 dev eth0 src 189.91.xxx.137 table tvacabo
ip route add default via 189.91.xxx.129 table tvacabo #o ip é do gateway

# claro
ip route add 10.64.64.0/32 dev ppp0 src 10.64.64.64 table claro
ip route add default via 10.64.64.64 table claro

# setando velox na tabela principal de roteamento
ip route add 189.91.xxx.0/24 dev eth0 src 189.91.xxx.137
ip route add 10.64.64.0/32 dev ppp0 src 10.64.64.64

# setando a rota preferencial
ip route add default via 10.64.64.64

# regras das tabelas
ip rule add from 189.91.xxx.137 table tvacabo
ip rule add from 10.64.64.64 table claro

# balanceamento de link
ip rule add fwmark 3 lookup internet prio 3
ip route add default table internet nexthop via 189.91.xxx.137 dev eth0 weight 1 nexthop via 10.64.64.64 dev ppp0 weight 1
#OBS: o comando assima deve ser digitado em uma só linha, ou
# usando o caractere para dividí-la.

# flush no roteamento
ip route flush cache
echo " [OK]"
sleep 3


Quando rodo o script da o seguinte erro:

Balanceando links velox...RTNETLINK answers: Invalid argument
RTNETLINK answers: File exists
RTNETLINK answers: Invalid argument
RTNETLINK answers: File exists
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
RTNETLINK answers: File exists
RTNETLINK answers: No such process
[OK]

Como resolver???
alguem pode me ajudar?
desde já agradeço.

Sucesso a Todos e Que Deus dos dê Saude
porque o resto é mero complemento!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts