Bloquear acesso entre redes

1. Bloquear acesso entre redes

Murilo G. S. Mansano
murilo8812

(usa CentOS)

Enviado em 06/02/2015 - 00:26h

Boa noite pessoal,

Na empresa temos a seguinte estrutura:

Temos 2 links adsl vivo ligados a um balanceador de carga com o endereço:

192.168.250.1

neste balanceador esta configurado duas conexões PPPoe para os conexão com os 2 links,
portanto este é o GATEWAY principal da nossa rede.

neste balanceador, está ligado na porta LAN nosso servidor Linux Centos que possui 2 interfaces:
eth1 - 172.16.0.1 (REDE 172.16.0.0/27)
eth1:0 - 172.16.0.33 (REDE 172.16.0.32/27)
eth1:1 - 172.16.0.65 (REDE 172.16.0.64/27)
eth1:2 - 172.16.0.97 (REDE 172.16.0.96/27)
eth2 - 192.168.250.2 (REDE 192.168.250.0/24)

Ou seja, dividi nossa rede conforme os setores de forma que todas as redes não possuem comunicação uma com a outra, definidas pelas regras do iptables (FORWARD).
Até aí tranquilho, notem que estou usando apenas 1 interface para separar as redes mais internas para isso defini os IPs adicionais (IP Alias).

Há dois níveis de NAT, o primeiro nível ocorre no Centos, ou seja, todas as subredes 172.16.0.x/27 precisam ser mascaradas com o IP da interface eth2 (192.168.250.2) para que assim o próximo nível de NAT ocorra no meu Balanceador, assim finalmente o Balanceador faz o mascaramento da rede 192.168.250.x para a internet.

O que ocorre é que os hosts nas redes 172.16.0.x quando não possuem regra de mascaramento, a fim de evitar a conexão com a internet, estão se comunicando diretamente com a rede 192.168.250.x e assim o balanceador faz o NAT para esses IPs que não deveriam acessar a internet diretamente.

A fim de resolver este problema, defini uma regra para evitar que estes IPs tenham comunicação direta com a rede do Balanceador:

iptables -A FORWARD -i eth1 -o eth2 -s 172.16.0.0/27 -d 192.168.250.0/27 -j DROP

esta regra funcionou perfeitamente, os ips da rede interna não acessam diretamente o Balanceador quando não estão sob NAT.

Quando algum endereço da rede 172.16.0.x possui mascaramento, a conexão com a internet funciona.

O problema é que, não consigo acessar o Console do Balanceador, não consigo acessar nenhum IP da rede do balanceador.

Penso que o acesso deveria funcionar para os IPs da rede 172.16.0.x para a rede 192.168.250.0 somente via NAT, ou seja,
um host no endereço 172.16.0.14/32 com NAT aplicado seria "enxergado" pela rede do balanceador com 192.168.250.2:xxxx correto?

e os hosts sem nat aplicado seriam "enxergados" pelo balanceador com o endereço original da rede interna.

Afinal, na minha regra de bloqueio defini que um pacote entrando pela eth1, e saindo pela eth2, com origem em 172.16.0.0 e destino em 192.168.250.0 fossem bloqueados. Mas ele está bloqueando os endereços da própria rede do balanceador.

Não consigo entender, se alguém puder me ajudar ou tentar resolver de outra maneira, agradeço muito!

Abaixo segue meu script:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# $want to do the full Sys V style init stuff.




# Autor: Murilo G. S. Mansano
# Data : 05/02/2015
#
# Descrição: Arquivo executo ao iniciliar o sistema operacional, inclui scripts para
# aplicação de regras do IPTABLES (Firewall).
# As regras estão separadas por REDE, cada rede ou setor possui uma função separada.




########################
### FUNÇÕES ###
########################

# Funcao que aplica o mascaramento NAT para cada IP de um Vetor passado por parametro
function masqueradeByIP()
{

#verifica se existe argumento passado para a funcao
if [ $# = 0 ] ; then
echo "Argumentos da funcao insuficientes"
return
fi

#Variavel que armazena todos os argumentos da chamada a funcao
#os parametros da funcao sao armazenados nas var $1,$2,$3.....$#
local array=($@)

#para cada argumento realize o masquerading
for i in ${array[@]}
do
echo "MASQUERADING aplicado para o IP de origem:" $i
iptables -t nat -A POSTROUTING -o $WAN -s $i -j MASQUERADE
done
}




# Funcao que aplica o mascaramento NAT para cada IP de destino
function masqueradeByIpDest()
{

#verifica se existe argumento passado para a funcao
if [ $# = 0 ] ; then
echo "Argumentos da funcao insuficientes"
return
fi

#Variavel que armazena todos os argumentos da chamada a funcao
#os parametros da funcao sao armazenados nas var $1,$2,$3.....$#
local array=($@)

#para cada argumento realize o masquerading
for i in ${array[@]}
do
echo "MASQUERADING aplicado para o dominio/IP de destino:" $i
iptables -t nat -A POSTROUTING -o $WAN -d $i -j MASQUERADE
done
}




# Funcao que aplica o mascaramento NAT para cada valor de porta de um Vetor passado por parametro
# param1: Array com os valores, cujo primeiro indice deve armazenar o valor do protocolo (udp|tcp)
function masqueradeByPortDest()
{

#Variavel que armazena todos os argumentos da chamada a funcao
#os parametros da funcao sao armazenados nas var $1,$2,$3.....$#
local protocolo=$1
local array=($@)

#para cada argumento realize o masquerading
#o primeiro valor do vetor se refere ao protocolo
for i in ${array[@]:1}
do
echo "MASQUERADING aplicado para a porta de destino:" $i "protocolo:" $protocolo
iptables -t nat -A POSTROUTING -o $WAN -p $protocolo --dport $i -j MASQUERADE
done
}




#Regras aplicadas à todas as subredes
function todasRedes()
{

echo -e '\n <todasRedes'

#MASQUERADING por porta
portasLiberadas[0]=tcp #Protocolo TCP
portasLiberadas[1]=3391 #RDP - Acesso a servidores DRP
portasLiberadas[2]=3389 #RDP - Acesso a servidores DRP
portasLiberadas[3]=587 #SMTP - E-mail SMTP
portasLiberadas[4]=3306 #MYSQL - Servidores mysql
portasLiberadas[5]=8087 #CFCA - Acesso CFCA NET
portasLiberadas[6]=5938 #TEAMVIWER - Acesso aos servidores TeamVi

masqueradeByPortDest ${portasLiberadas[@]}
unset portasLiberadas

portasLiberadas[0]=udp #Protocolo UDP
portasLiberadas[1]=53 #DNS - Consultas DNS
portasLiberadas[2]=5938 #TEAMVIEWER - Acesso aos servidores teamViewer

masqueradeByPortDest ${portasLiberadas[@]}
unset portasLiberadas

#MASQUERADING por dominio/servicos ----

#Domínios diversos
dominiosLiberados=("www.dglnet.com.br" "mailhost.dglnet.com.br" "www.antaresautoescola.com.br"
"mail.antaresautoescola.com.br" "hcomm14.dns-wk.info" "mail.3visao.com.br" "aplicacao5.tst.jus.br" )

#Microsoft Windows Update
windowsUpdate=("microsoft.com" "update.microsoft.com" "windowsupdate.microsoft.com" "download.windowsupdate.com"
"www.download.windowsupdate.com" "redir.metaservices.microsoft.com" "c.microsoft.com")

#Cidadetran
cidadetran=("200.155.83.42" "200.155.82.124" "200.155.86.52")

#CFCA Net
cfcaNet=("database.keynet.com.br" "database2.keynet.com.br" "database3.keynet.com.br")

#E-cnh
ecnh=("www.e-cnhsp.sp.gov.br" "200.144.4.109" )

masqueradeByIpDest ${windowsUpdate[@]} ${dominiosLiberados[@]} ${cidadetran[@]} ${cfcaNet[@]} ${ecnh[@]}

#Gefor/SGDpro
iptables -t nat -A POSTROUTING -o $WAN -m iprange --dst-range 200.189.176.1-200.189.176.254 -j MASQUERADE

#CFCBPLUS
iptables -t nat -A POSTROUTING -o $WAN -m iprange --dst-range 173.194.42.1-173.194.42.254 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $WAN -m iprange --dst-range 173.194.119.1-173.194.119.254 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $WAN -m iprange --dst-range 173.194.118.1-173.194.118.254 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $WAN -m iprange --dst-range 200.189.176.1-200.189.176.254 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $WAN -d 187.61.15.162 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $WAN -d 200.189.176.164 -j MASQUERADE

#MN SISTEMAS
iptables -t nat -A POSTROUTING -o $WAN -d 186.202.153.75 -j MASQUERADE

echo -e '/> \n'
}




function regrasInternas()
{

echo -e "\n Processando regras internas"

### GATEWAY
route add default gw 192.168.250.1

### Iniciando o IPTABLES
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

### Limpando Regras Existentes
iptables -F
iptables -t nat -F

### Politicas de Regras
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

### FORWARDS - Regras do trafego que passa pelo firewall
iptables -A FORWARD -p tcp --dport 3391 -j LOG --log-level 1 --log-prefix 'REMOTE DEKTOP p3391>>> ' #log
iptables -A FORWARD -p tcp --dport 3389 -j LOG --log-level 1 --log-prefix 'REMOTE DEKTOP p3389>>> ' #log

#Limitação do ping do trafego entre interfaces. não vale para trafego na mesma interface (Redes internas)
iptables -A FORWARD -i eth1 -o $WAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -o eth1 -i $WAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

echo -e "Regras internas OK"
}




function despachante()
{

echo -e '\n <despachante'

#Nome dos Hosts e IP's importantes
local SERVIDOR=172.16.0.2/32
local ESTDES01=172.16.0.3/32 #VALDIRENE
local ESTDES02=172.16.0.4/32 #RENATO
local DVR=172.16.0.62/32
local VOIP=172.16.0.29/32

#Para liberar os ips basta descomentar as linhas e inserir o ip na notação ip/bits mask

LAN_DESPACHANTE_IPSLIBERADOS[0]=$ESTDES02
LAN_DESPACHANTE_IPSLIBERADOS[1]=$ESTDES01
LAN_DESPACHANTE_IPSLIBERADOS[2]=$VOIP
LAN_DESPACHANTE_IPSLIBERADOS[3]=$SERVIDOR
LAN_DESPACHANTE_IPSLIBERADOS[4]=$DVR
#LAN_DESPACHANTE_IPSLIBERADOS[5]=
#LAN_DESPACHANTE_IPSLIBERADOS[6]=
#LAN_DESPACHANTE_IPSLIBERADOS[7]=
#LAN_DESPACHANTE_IPSLIBERADOS[8]=
#LAN_DESPACHANTE_IPSLIBERADOS[9]=

masqueradeByIP ${LAN_DESPACHANTE_IPSLIBERADOS[@]}

#REGRAS GERAIS - Adicione as regras especificas aqui

#fwantares - NÃO NECESSITA DE REGRAS FORWARD, Regras OUTPUT não serão necessárias, pois a politica padrão é ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --dport 3392 -j ACCEPT #ssh Modificado
iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 1 --log-prefix 'SSH REMOTE p22>>> '
iptables -A INPUT -p tcp --dport 3392 -j LOG --log-level 1 --log-prefix 'SSH REMOTE p3392>>> '
iptables -A INPUT -s $LAN_DESPACHANTE -j ACCEPT #Todas as redes internas tem acesso ao firewall
iptables -A INPUT -s $LAN_PERICIA -j ACCEPT
iptables -A INPUT -s $LAN_AUTOESCOLA -j ACCEPT
iptables -A INPUT -s $LAN_CFC -j ACCEPT
iptables -A INPUT -s $LAN_3VISAO -j ACCEPT

#servidor
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT --to 172.16.0.2 #APACHE WEB SERVER
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 3391 -j DNAT --to 172.16.0.2:3389 #RDP - Microsoft remote desktop
iptables -A FORWARD -s $SERVIDOR -d 0/0 -j ACCEPT #O servidor precisa ter acesso a todas as redes internas ou externas
iptables -A FORWARD -d $SERVIDOR -s 0/0 -j ACCEPT #Todas as redes internas ou externas tem acesso ao servidor

#DVR
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 8080 -j DNAT --to 172.16.0.62
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 6036 -j DNAT --to 172.16.0.62
iptables -t nat -A PREROUTING -i $WAN -p udp --dport 6036 -j DNAT --to 172.16.0.62

iptables -A FORWARD -i eth1 -o $WAN -s 172.16.0.14/32 -d $LAN_BALANCEADOR -j DROP

#Acesso a outras redes pela interface WAN, acesso a rede Despachante pela interface WAN
#A rede despachante não poderá acessar outras redes internas
#O acesso da rede interna com destino a rede Despachante deve ser controlada nas outras subredes.
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_DESPACHANTE -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -s 0/0 -d $LAN_DESPACHANTE -j ACCEPT

echo -e '/> \n'
}




function pericia()
{

echo -e '\n <pericia'

#Nome dos Hosts e IP's importantes
local ESTPER02=172.16.0.14 #Murilo
local ESTPER07=172.16.0.19 #Rogério

#Para liberar os ips basta descomentar as linhas e inserir o ip na notação ip/bits mask

LAN_PERICIA_IPSLIBERADOS[0]=$ESTPER02
LAN_PERICIA_IPSLIBERADOS[1]=$ESTPER07
#LAN_PERICIA_IPSLIBERADOS[2]=
#LAN_PERICIA_IPSLIBERADOS[3]=
#LAN_PERICIA_IPSLIBERADOS[4]=
#LAN_PERICIA_IPSLIBERADOS[5]=
#LAN_PERICIA_IPSLIBERADOS[6]=
#LAN_PERICIA_IPSLIBERADOS[7]=
#LAN_PERICIA_IPSLIBERADOS[8]=
#LAN_PERICIA_IPSLIBERADOS[9]=

masqueradeByIP ${LAN_PERICIA_IPSLIBERADOS[@]}

#REGRAS GERAIS - Adicione as regras especificas aqui

#ESTPER02 - tem acesso a todas as redes internas e todas as redes internas tem acesso a murilo
#iptables -A FORWARD -i eth1 -o eth1 -s $ESTPER02 -d 0/0 -j ACCEPT
#iptables -A FORWARD -i eth1 -o eth1 -d $ESTPER02 -s 0/0 -j ACCEPT

#Acesso desta rede com origem na interface eth1 (Rede interna) com destino a interface Wan (Redes externas)
#Acesso de outras redes com origem na interface Wan (Redes externas) com destino a interface eth1(Rede interna)
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_PERICIA -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -d $LAN_PERICIA -s 0/0 -j ACCEPT

echo -e '/> \n'
}




function autoEscola()
{

echo -e '\n <autoEscola'

#Nome dos Hosts e IP's importantes
local ESTAES02=172.16.0.35/32 #ESTAES02 - Marinalva
local IX2=172.16.0.30/32 #IX2 Lenovo

#Para liberar os ips basta descomentar as linhas e inserir o ip na notação ip/bits mask

LAN_AUTOESCOLA_IPSLIBERADOS[0]=$ESTAES02
LAN_AUTOESCOLA_IPSLIBERADOS[1]=$IX2
#LAN_AUTOESCOLA_IPSLIBERADOS[2]=
#LAN_AUTOESCOLA_IPSLIBERADOS[3]=
#LAN_AUTOESCOLA_IPSLIBERADOS[4]=
#LAN_AUTOESCOLA_IPSLIBERADOS[5]=
#LAN_AUTOESCOLA_IPSLIBERADOS[6]=
#LAN_AUTOESCOLA_IPSLIBERADOS[7]=
#LAN_AUTOESCOLA_IPSLIBERADOS[8]=
#LAN_AUTOESCOLA_IPSLIBERADOS[9]=

masqueradeByIP ${LAN_AUTOESCOLA_IPSLIBERADOS[@]}

#REGRAS GERAIS - Adicione as regras especificas aqui

#IX2 - Lenovo
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 443 -j DNAT --to 172.16.0.30

#Acesso desta rede com origem na interface eth1 (Rede interna) com destino a interface Wan (Redes externas)
#Acesso de outras redes com origem na interface Wan (Redes externas) com destino a interface eth1(Rede interna)
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_AUTOESCOLA -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -d $LAN_AUTOESCOLA -s 0/0 -j ACCEPT

echo -e '/> \n'

}




function cfc()
{

echo -e '\n <cfc'

#Nome dos Hosts e IP's importantes
local ESTCFC01=172.16.0.66/32 #Secretaria
local ESTCFC02=172.16.0.67/32 #Prova
local ESTCFC03=172.16.0.68/32 #Notebook CFC
local DVR=172.16.0.69/32 #DVR Intelbrás

#Para liberar os ips basta descomentar as linhas e inserir o ip na notação ip/bits mask

LAN_CFC_IPSLIBERADOS[0]=$ESTCFC01
LAN_CFC_IPSLIBERADOS[1]=$ESTCFC02
LAN_CFC_IPSLIBERADOS[2]=$ESTCFC03
LAN_CFC_IPSLIBERADOS[3]=$DVR
#LAN_CFC_IPSLIBERADOS[4]=
#LAN_CFC_IPSLIBERADOS[5]=
#LAN_CFC_IPSLIBERADOS[6]=
#LAN_CFC_IPSLIBERADOS[7]=
#LAN_CFC_IPSLIBERADOS[8]=
#LAN_CFC_IPSLIBERADOS[9]=

masqueradeByIP ${LAN_CFC_IPSLIBERADOS[@]}

#REGRAS GERAIS - Adicione as regras especificas aqui

#dvr
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 9090 -j DNAT --to 172.16.0.69
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 37777 -j DNAT --to 172.16.0.69
iptables -t nat -A PREROUTING -i $WAN -p udp --dport 37778 -j DNAT --to 172.16.0.69

#Acesso desta rede com origem na interface eth1 (Rede interna) com destino a interface Wan (Redes externas)
#Acesso de outras redes com origem na interface Wan (Redes externas) com destino a interface eth1(Rede interna)
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_CFC -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -d $LAN_CFC -s 0/0 -j ACCEPT

echo -e '/> \n'
}




function terceiraVisao()
{

echo -e '\n <terceiraVisao'

#Nome dos Hosts e IP's importantes

#Para liberar os ips basta descomentar as linhas e inserir o ip na notação ip/bits mask

#LAN_3VISAO_IPSLIBERADOS[0]=
#LAN_3VISAO_IPSLIBERADOS[1]=
#LAN_3VISAO_IPSLIBERADOS[2]=
#LAN_3VISAO_IPSLIBERADOS[3]=
#LAN_3VISAO_IPSLIBERADOS[4]=
#LAN_3VISAO_IPSLIBERADOS[5]=
#LAN_3VISAO_IPSLIBERADOS[6]=
#LAN_3VISAO_IPSLIBERADOS[7]=
#LAN_3VISAO_IPSLIBERADOS[8]=
#LAN_3VISAO_IPSLIBERADOS[9]=

#masqueradeByIP ${LAN_3VISAO_IPSLIBERADOS[@]}

#REGRAS GERAIS - Adicione as regras especificas aqui

#DVR
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 8081 -j DNAT --to 172.16.0.58
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 37777 -j DNAT --to 172.16.0.58
iptables -t nat -A PREROUTING -i $WAN -p udp --dport 37777 -j DNAT --to 172.16.0.58

#RANGE 3VISAO
iptables -t nat -A POSTROUTING -o $WAN -m iprange --src-range 172.16.0.48-172.16.0.60 -j MASQUERADE

#Acesso desta rede com origem na interface eth1 (Rede interna) com destino a interface Wan (Redes externas)
#Acesso de outras redes com origem na interface Wan (Redes externas) com destino a interface eth1(Rede interna)
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_3VISAO -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -d $LAN_3VISAO -s 0/0 -j ACCEPT

echo -e '/> \n'
}




#VARIAVIES globais
WAN=eth2

LAN_BALANCEADOR=192.168.250.0/24
LAN_DESPACHANTE=172.16.0.0/27
LAN_AUTOESCOLA=172.16.0.32/27
LAN_CFC=172.16.0.64/27
LAN_PERICIA=172.16.0.96/27
LAN_3VISAO=172.16.0.128/27




#MAIN

# OBSERVAÇÃO IMPORTANTE:
# A POLITICA FORWARD É DROP, PORTANTO QUALQUER ACESSO ENTRE AS REDES DEVEM ESTAR DEFINIDOS DE FORMA BIDIRECIONAL
# OU SEJA, CASO UMA REDE INTERNA(EHT1) OU EXTERNA(WAN) PRECISE SE COMUNICAR, É NECESSÁRIO ESPECIFICAR AS REGRAS
# E UTILIZANDO A AÇÃO "ACCEPT". AS DEMAIS CONEXÕES NÃO ESPECIFICADAS, SERÃO DESCARTADAS POR PADRÃO.

#Aplicar as regras

echo -e "\n ## Processando regras ##\n"
echo -e "OBS.: Nao sera exibida mensagens para regras especificas"

regrasInternas
despachante
pericia
autoEscola
cfc
terceiraVisao
todasRedes

echo -e 'REGRAS DO FIREWALL PROCESSADAS COM SUCESSO!!! \n'






  


2. Re: Bloquear acesso entre redes

Murilo G. S. Mansano
murilo8812

(usa CentOS)

Enviado em 06/02/2015 - 08:58h

Bom dia pessoal,

Hoje acordei com a solução do problema na cabeça!

O que ocorre é que o iptables processa primeiro as regras da tabela filter, para depois aplicar as regras da tabela NAT.

então, pensei em especificar antes dessa regra de bloqueio a rede 192.168.250.0/24, os ips que estão liberados a acessar o console e a rede do balanceador

por exemplo:

#Hosts que terão acesso a rede do balanceador
iptables -A FORWARD -i eth1 -o $WAN -s 172.16.0.14/32 -d $LAN_BALANCEADOR -j ACCEPT

#Rede Despachante não tem acesso à rede do balanceador, exceto os ips acima desta regra
#O iptables processa primeiro as regras da tabela filter, para depois processar a tabela NAT
#Portanto todo o acesso a rede do balanceador poderá estar sob NAT, ou não, a regra funcionará da mesma forma
#Pacotes ICMP funcionaram normalmente, pois uma regra acima foi especificada para permitir esse tipo de pacote.
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_DESPACHANTE -d $LAN_BALANCEADOR -j DROP

#Acesso a outras redes pela interface WAN, acesso a rede Despachante pela interface WAN
#A rede despachante não poderá acessar outras redes internas (entre eth1)
#O acesso da rede interna com destino a rede Despachante deve ser controlada nas outras subredes.
iptables -A FORWARD -i eth1 -o $WAN -s $LAN_DESPACHANTE -d 0/0 -j ACCEPT
iptables -A FORWARD -i $WAN -o eth1 -s 0/0 -d $LAN_DESPACHANTE -j ACCEPT

Desta forma a primeira regras especifica que o IP de origem 172.16.0.14/32 saindo da interface eth1, com direção a interface WAN, com destino a rede do balanceador deve ser permitido.

A segunda regra bloqueia os demais IPS não especificados na primeira regra.

A terceira regra, permite que pacotes com origem na rede interna (ETH1), com destino a redes externas (WAN), com origem na rede 172.16.0.0/27 e com destino a qualquer rede externa (considerando que a rede do balanceador estará protegida de acordo com as regras 1 e 2) serão permitidos. O mesmo ocorre com a 4 regra, mas com direção oposta.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts