Problema com Marcação de pacotes iptables

1. Problema com Marcação de pacotes iptables

Henrique Cabral
henriqcabral

(usa Ubuntu)

Enviado em 11/06/2012 - 15:39h

Boa Tarde galera, sou novo no VoL, mas já li bastante conteúdo daqui!

Minha duvida é a seguinte:
Estou configurando um firewall Squid/iptables do zero e recentemente me propus a implantar um sistema de balanceamento e Failover.
estou seguindo o Artigo abaixo muito bom por sinal:
http://www.vivaolinux.com.br/artigo/Balanceamento-de-links-+-redundancia-+-acesso-remoto-+-sites-de-...

meu firewall esta distribuido da seguinte maneira:
eth0 iface interna
eth1 iface externa link dedicado refere-se a tabela 1 na marcação
eth2 iface externa link adsl refere-se a tabela 2 na marcação


Para não ter problemas com sites seguros, utilizo a marcação do iptables.
criei as tabelas em /etc/iproute2/rt_tables

####################################################################inicio do arquivo
# reserved values
#
255 local
254 main
253 default
0 unspec

1 link1
2 link2

#
# local
#
#1 inr.ruhep
#################################################################### fim do arquivo

criei as marcações pelo ip rule na seguinte linha
ip rule add fwmark 1 lookup 1 prio 1
ip rule add fwmark 2 lookup 2 prio 1

apliquei a regra a baixo no iptables para marcar os pacotes com as portas 80 (http) 443 (https) 25 (SMTP) 110 (POP3) 53 (DNS).

iptables -I PREROUTING -t mangle -i eth0 -s 192.168.0.0/24 -d 0/0 -p tcp -m multiport --dports 110,23,25 -j MARK --set-mark 1
iptables -I PREROUTING -t mangle -i eth0 -s 192.168.0.0/24 -d 0/0 -p tcp -m multiport --dports 80,443,53 -j MARK --set-mark 1

porém quando abro o iptraf ainda consigo ver trafego pela interface eth2.

Agradeço muito se alguém puder me ajudar, já procurei em todo canto.



  


2. Re: Problema com Marcação de pacotes iptables

Leonardo Bolognesi
leonardonhesi

(usa Debian)

Enviado em 11/06/2012 - 16:16h

E ai companheiro

Eu tenho uma estrutura parecida em produção apos marcar o pacote pelo firewall na hora do roteamento creio que seria assim a regra

ip rule add fwmark 2 table "NOME_TABELA"


você ta colocando numero

ip rule add fwmark 1 lookup 1 prio 1




3. Nome da tabela

Henrique Cabral
henriqcabral

(usa Ubuntu)

Enviado em 11/06/2012 - 20:09h

Obrigado pela atenção amigo, já tentei com o nome creio que não seja esse o problema vou postar o meu script talvez facilite a ajuda.


4. Script

Henrique Cabral
henriqcabral

(usa Ubuntu)

Enviado em 12/06/2012 - 16:19h

######################## DEFINICOES LINK 1
IP1=192.168.0.242
NET1=192.168.0.0/24
GW1=192.168.0.148
TAB1=link1
WG1=1
IFACE1=eth1
######################## DEFINICOES LINK 2
IP2=200.206.216.189
NET2=200.206.216.0/24
GW2=200.206.216.129
TAB2=link2
WG2=1
IFACE2=eth2
######################## DEFINICOES DE TABELAS DE ROTEAMENTO
TAB1=link1
TAB2=link2
########################---- Modulos
echo "Ativando modulos Gerais"
echo 1 > /proc/sys/net/ipv4/ip_forward
########################---- IPTABLES
echo "Preparando roteamento"
echo "...Configurando Masquerade"
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
########################----Define politicas padrao
echo "...Definindo politicas padrao"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
########################----Ativando modulos
echo "...Ativando modulos"
modprobe ipt_mark
modprobe ipt_MARK
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
#########################----LIMPA IPTABLES
iptables -t nat -F
iptables -t nat -X
iptables -F
iptables -X
iptables -t mangle -F
iptables -t mangle -X
##########################----LIMPA TABELAS
echo "...Limpando Tablea de roteamento"
ip rule flush 2> /dev/null
ip route del default 2> /dev/null
ip rule add prio 32765 lookup main 2> /dev/null
ip rule add prio 32767 lookup default 2> /dev/null
ip route flush cache 2> /dev/null
ip route flush table $TAB1 #Limpa as rotas no cache da tabela 1
ip route flush table $TAB2 #Limpa as rotas no cache da tabela 2


##########################----REFAZENDO AS ROTAS
ip route add $NET1 dev $IFACE1 src $IP1 table $TAB1
ip route add default via $GW1 table $TAB1
ip route add $NET2 dev $IFACE2 src $IP2 table $TAB2
ip route add default via $GW2 table $TAB2
ip rule add from $IP1 table $TAB1
ip rule add from $IP2 table $TAB2
ip route add default scope global nexthop via $GW1 dev $IFACE1 weight $WG1 nexthop via $GW2 dev $IFACE2 weight $WG2
####################################################
echo "...Habilitando roteamento"
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "0" > $i
done
echo "...Configurando regras de roteamento IPTABLES"
####----CRIANDO AS MARCACOES
echo "......Adicionando marcacoes"
ip rule add fwmark 1 lookup link1 prio 1
ip rule add fwmark 2 lookup link2 prio 1



5. Re: Problema com Marcação de pacotes iptables

Henrique Cabral
henriqcabral

(usa Ubuntu)

Enviado em 12/06/2012 - 16:20h

Desculpe a demora é que o script esta separado em dois.


6. Re: Problema com Marcação de pacotes iptables

Leonardo Bolognesi
leonardonhesi

(usa Debian)

Enviado em 13/06/2012 - 14:44h

Bom na duvida vou postar algumas regras da minha estrutura


Lembre-se de na configuração do arquivo /etc/network/interfaces "eu não coloquei gateway na configuração"


##CRIAÇÂO DAS ROTAS



# VARIAVEIS


#TABELA1# ex link TELEFONICA
IP0="ip_interface"
GW0="gateway_interface"
NET0=rede/CIDR
BCAST0=000.000.000.000
IFACE0=eth0


#TABELA2# ex link EMBRATEL
IP1="ip_interface"
GW1="gateway_interface"
NET1=REDE/CIDR
BCAST1=000.000.000.000
IFACE1=eth1


#REDE LOCAL#
IP2=192.168.1.1
NET2=192.168.1.0/24
BCAST2=192.168.1.255
IFACE2=eth2




# CRIAÇÂO DA ROTA DEFAULT

ip route add default nexthop via $GW1 dev $IFACE1 weight 4 nexthop via $GW0 dev $IFACE0 weight 1


# ROTAS INDIVIDUAIS PARA CADA TABELA (/etc/iproute2/rt_tables)


### TABELA 1 #####
ip route add $NET2 dev $IFACE2 proto kernel src $IP2 table TABELA1 # ROTA NA REDE LOCAL

ip route add default via $GW0 dev $IFACE0 table TABELA1 # ROTA DEFAULT DESTA TABELA

ip route add $NET0 dev $IFACE0 proto kernel src $IP0 table TABELA1 # ROTA PRA REDE DO LINK

ip route flush cache

### TABELA 2 ####

ip route add $NET2 dev $IFACE2 proto kernel src $IP2 table TABELA2 # ROTA NA REDE LOCAL

ip route add default via $GW1 dev $IFACE1 table TABELA2 # ROTA DEFAULT DESTA TABELA

ip route add $NET1 dev $IFACE1 proto kernel src $IP1 table TABELA2 # ROTA PRA REDE DO LINK


# REGRAS PARA MARCAÇÂO PACOTES

ip rule add fwmark 2 table TABELA2
ip rule add fwmark 6 table TABELA1

ip route flush cache


#############################################################################################################################


FIREWALL


iptables -t mangle -A PREROUTING -i $IFACE2 -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i $IFACE2 -p tcp --dport 110 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 2
iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 2




###############################################################################################################################



7. Re: Problema com Marcação de pacotes iptables

Henrique Cabral
henriqcabral

(usa Ubuntu)

Enviado em 13/06/2012 - 15:49h

Obrigado vou verificar e marco o topico.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts