maillan
(usa Fedora)
Enviado em 09/06/2015 - 12:37h
Tenho seguinte cenario:
2 links com balance e uma filial q conecta através de uma VPN, está VPN funcionava antes do balance, e se desconectar um link ela volta a funcionar, mas com os dois links ativos no balance não conecta.
vejam meu arquivo de firewall e o que posso fazer para solucionar.
firewall_start() {
echo "==========================================="
echo "| :: SETANDO A CONFIGURACAO DO IPTABLES : |"
echo "==========================================="
# Limpa as regras
echo -n "Limpando todas as regras ................."
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle
iptables -F
iptables -X
route del -net 10.0.0.0/9 gw 172.17.24.250
echo "[ OK ]"
# Carregando os modulos basicos do iptables
echo -n "Carregando modulos do iptables ..........."
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
echo "[ OK ]"
# Definindo a politica default das cadeias
iptables -P INPUT DROP
iptables -P FORWARD DROP #comentar para permitir proxy transparente
iptables -P OUTPUT ACCEPT
echo "Setando as regras padrão .................[ OK ]"
## Desabilitando o trafego IP
#echo "0" > /proc/sys/net/ipv4/ip_forward
#echo "Setando ip_foward ........................[ OK ]"
# Configurando a protecao anti-spoofing
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $spoofing
done
echo "Setando a protecao anti-spoofing .........[ OK ]"
# Impedindo que um atacante possa maliciosamente alterar alguma rota
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "Setando anti-redirecionamento ............[ OK ]"
# Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu
# pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigoso.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "Setando anti_source_route.................[ OK ]"
# Protecao contra responses bogus
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "Setando anti-bogus_response ..............[ OK ]"
# Protecao contra ataques de syn flood (inicio da conexão TCP). Tenta conter ataques de DoS.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Setando proteção anti_synflood ...........[ OK ]"
## Agora, vamos definir o que pode passar e o que nao pode
## Cadeia de entrada
# LOCALHOST - ACEITA TODOS OS PACOTES
iptables -A INPUT -i lo -j ACCEPT
# PORTA 80 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT #rede contil
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT #rede embratel
iptables -A INPUT -i tap0 -p tcp --dport 80 -j ACCEPT #REDE VPN
iptables -A INPUT -i eth0 -p tcp --dport 587 -j ACCEPT #REDE smtp
iptables -A INPUT -i eth1 -p tcp --dport 587 -j ACCEPT #REDE smtp
#iptables -A OUTPUT -i eth0 -p tcp --dport 587 -j ACCEPT #REDE smtp
# PORTA 22 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i tap0 -p tcp --dport 22 -j ACCEPT #VPN (sem efeito)
iptables -A INPUT -i tap0 -p tcp --dport 5008 -j ACCEPT #VPN (sem efeito)
#iptables -A INPUT -i eth0 -p tcp --dport 5008 -j ACCEPT #VPN
iptables -A INPUT -i eth1 -p tcp --dport 5008 -j ACCEPT #VPN (sem efeito)
## No iptables, temos de dizer quais sockets sao validos em uma conexão
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
#echo "Setando regras para INPUT ................[ OK ]"
# HABILITANDO O PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3129
echo "Habilitando Proxy transparente ...........[ OK ]"
################################
# Cadeia de reenvio (FORWARD).
#regra para IP nao passar pelo proxy SMARTPHONES WHATSAPP=#=#=#=#=#==#=#=#=#==#=#=#=#=#==#=#=#=#=#==#=#=#=#=#=#=#=#=#=#=#=
## iptables -t nat -I PREROUTING -s 172.17.24.45 -j ACCEPT
## ATIVAR DEPOIS
# Agora dizemos quem e o que pode acessar externamente
# No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD"
# PORTA 3128 - ACEITA PARA A REDE LOCAL -- PROXY
iptables -A FORWARD -i eth2 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -i eth2 -p tcp --dport 3129 -j ACCEPT
# PORTA 53 - ACEITA PARA A REDE LOCAL -- DNS
iptables -A FORWARD -i eth2 -p udp --dport 53 -j ACCEPT
# PORTA 80 - ACEITA PARA A REDE LOCAL --APACHE
iptables -A FORWARD -i eth2 -p tcp --dport 80 -j ACCEPT
# PORTA 21 - ACEITA PARA A REDE LOCAL - FTP
iptables -A FORWARD -i eth2 -p tcp --dport 21 -j ACCEPT
# No iptables, temos de dizer quais sockets sao vaidos em uma conexão
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
##LIBERAR TRAFICO VPN PARA REDE LOCAL
iptables -t nat -s 192.168.255.3 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.4 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.5 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.6 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.7 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.8 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.9 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.168.255.2 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 172.17.0.0 -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -s 192.68.24.0 -A POSTROUTING -o tap0 -j MASQUERADE
iptables -t nat -s 10.0.0.0 -A POSTROUTING -o eth2 -j MASQUERADE
echo "Setando regras para FOWARD ...............[ OK ]"
# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Setando ip_foward: ON ....................[ OK ]"
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Marcando pacotes
echo -n "Marcando pacotes.........................."
#iptables -t mangle -A OUTPUT -p udp -i tap0 -d ! 0/0 --sport 5008 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 587 -j MARK --set-mark 1 # smtp
iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 21 -j MARK --set-mark 2 # ftp
iptables -t mangle -A PREROUTING -i tap0 -p udp --dport 5008 -j MARK --set-mark 2 # VPN entrada link contil
iptables -t mangle -A PREROUTING -i tap0 -p udp --sport 5008 -j MARK --set-mark 2 # VPN saida pelo link contil
iptables -t mangle -A PREROUTING -i eth2 -p udp --sport 5008 -j MARK --set-mark 2 # VPN saida pelo link contil
iptables -t mangle -A PREROUTING -i eth2 -p udp --dport 5008 -j MARK --set-mark 2 # VPN
iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 993 -j MARK --set-mark 1 # IMAPS
iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 995 -j MARK --set-mark 1 # POPS
#IPTABLES -A PREROUTING -t mangle -s 192.168.255.0/24 -d 0/0 --dport 25 -j MARK --set-mark 2
#iptables -A PREROUTING -t mangle -i eth0 -d 0/0 -j MARK --set-mark 1
echo "[ OK ]"
echo "Firewall configurado com sucesso .........[ OK ]"
######################Balançeamento de carga################################
# Link embratel
ip route add 172.17.24.250 dev eth0 src 172.17.24.251 table embratel
ip route add default via 172.17.24.250 table embratel
ip rule add fwmark 1 table embratel prio 10
# Link contil
ip route add 10.151.252.1 dev eth1 src 10.151.252.2 table contil
ip route add default via 10.151.252.1 table contil
ip rule add fwmark 2 table contil prio 20
# Link vpn
ip route add 192.168.255.0/24 dev tap0 src 10.151.252.2 table contil
# Colocando os links na tabela principal de roteamento
ip route add 172.17.24.250 dev eth0 src 172.17.24.251
ip route add 10.151.252.1 dev eth1 src 10.151.252.2
# regras das tabelas
ip rule add from 172.17.24.251 table embratel
ip rule add from 10.151.252.2 table contil
################## saida do voip pela embrate
#ip rule add from 172.17.24.7 table embratel
################# saida serpro pela embratel
#ip route add from 10.0.0.0/9 table embratel
route add -net 10.0.0.0/9 gw 172.17.24.250 #ADCIONA REDE 10 PARA SAIR ATRAVES DO 250
# balanceamento de link
ip rule add fwmark 3 lookup interna prio 3
ip route add default scope global nexthop via 10.151.252.1 dev eth1 weight 2 nexthop via 172.17.24.250 dev eth0 weight 1
ip route flush cache
##############################################################################################################################