Bloquear comunicação entre duas sub-redes [RESOLVIDO]

1. Bloquear comunicação entre duas sub-redes [RESOLVIDO]

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 28/10/2010 - 12:10h

Galera, tenho a seguinte situação:

- DHCP + BIND + SQUID + IPTABLES

Todos esses serviços rodando no mesmo servidor.

Interfaces:

eth0 - Lan - 192.168.x.y
eth0:1 - vLan - 192.168.x.z
eth0:2 - vLan - 192.168.y.w
eth2 - Internet

Segue o meu esquema:

* DHCP

shared-network eth0 {

ddns-update-style none;
ddns-updates off;
log-facility local7;
authoritative;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.y.0 netmask 255.255.255.0 {

allow unknown-clients;
option domain-name-servers 192.168.y.w;
option domain-name "hotspot";
option routers 192.168.y.w;
range 192.168.y.100 192.168.y.110;
}

subnet 192.168.x.0 netmask 255.255.255.0 {

deny unknown-clients;
option domain-name-servers 192.168.x.z;
option domain-name "intranet";
option routers 192.168.x.z;

}
}

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

* IPTABLES

#!/bin/bash

modprobe ip_conntrack_ftp
modprobe ip_conntrack_tftp

IFINTERNET=eth2
IFLOCAL=eth0

NETLOCAL=192.168.x.0/24
NETLOCAL2=192.168.y.0/24
IPLOCAL=192.168.x.z

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT


############## COMPARTILHAMENTO DE INTERNET ###############
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $IFINTERNET -j MASQUERADE
###########################################################

#################### COMUNICACAO ENTRE REDES ######################
iptables -A FORWARD -s 192.168.y.0/24 -d 192.168.x.0/24 -j DROP
iptables -A FORWARD -s 192.168.X.0/24 -d 192.168.Y.0/24 -j DROP
###################################################################

###########################################################################
###### IPs na rede interna com permissao total de acesso a internet #######
###########################################################################

iptables -t nat -N NOREDIRECT

iptables -A FORWARD -i $IFLOCAL -s 192.168.y.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -i $IFLOCAL -s 192.168.y.0/24 -j NOREDIRECT

iptables -t nat -A NOREDIRECT -j ACCEPT

############################################################################
####### Servicos permitidos para a rede interna acessar na internet ########
############################################################################

## SMTP
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL -p tcp --dport 587 -j ACCEPT
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL -p tcp --dport 465 -j ACCEPT

iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL2 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL2 -p tcp --dport 587 -j ACCEPT
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL2 -p tcp --dport 465 -j ACCEPT

# PING
iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL -p icmp -j ACCEPT

iptables -A FORWARD -i $IFLOCAL -s $NETLOCAL2 -p icmp -j ACCEPT

####### Aceita todos os pacotes stablished e related da internet para rede interna #########
iptables -A FORWARD -o $IFLOCAL -d $NETLOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o $IFLOCAL -d $NETLOCAL2 -m state --state ESTABLISHED,RELATED -j ACCEPT
############################################################################################

####################################### REDIRECIONAMENTO PARA PROXY ##########################################
iptables -t nat -A PREROUTING -i $IFLOCAL -d 192.168.x.z -p tcp --dport 80 -j DNAT --to 192.168.x.z:80
iptables -t nat -A PREROUTING -i $IFLOCAL -d 192.168.x.y -p tcp --dport 80 -j DNAT --to 192.168.x.y:80
iptables -t nat -A PREROUTING -i $IFLOCAL -p tcp --dport 80 -j DNAT --to $IPLOCAL:880
##############################################################################################################

####################################################################
####################### SERVIÇOS LOCAIS ########################
####################################################################

## Aceita conexoes locais (127.0.0.1)

iptables -A INPUT -i lo -j ACCEPT

## Aceita todos pacotes com estado ESTABLISHED e RELATED

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Aceita todas conexoes da rede interna

iptables -A INPUT -i $IFLOCAL -s $NETLOCAL -j ACCEPT

iptables -A INPUT -i $IFLOCAL -s $NETLOCAL2 -j ACCEPT

## DHCP

iptables -A INPUT -i $IFLOCAL -p tcp --dport 67 -j ACCEPT

## PING

iptables -A INPUT -p icmp -j ACCEPT

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

Tenho a internet compartilhanda entre as sub-redes porém, essas sub redes não podem se comunicar entre si, não pode haver tráfego local entre elas, apenas a internet deve ser compartilhada. Adicionei a regra no iptables que teoricamente faria esse bloqueio mas não funcionou.

Poderiam me ajudar nisso?

Valeu!


  


2. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

Luis Henrique Laguna
laguna

(usa Ubuntu)

Enviado em 28/10/2010 - 12:26h

bom dia amigo (sou do para nao tem horario de verão rsrs)
bom pelo que entendo de redes o que não é muito, se existe ligação fisica tem jeito rsrs

mais vamos la, vc ta criando os aliases na placa de rede?
pois não acredito que teu servidor vá ter tantas placas, e para você poder interromper a comunicação as classes de ip devem ser diferentes

exe.
192.168.0.x
192.168.10.x
192.168.20.x

dessa maneira elas não se identificarão

abraço espero ter ajudado



3. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 28/10/2010 - 12:30h

Obrigado pelo resposta mas se você der uma relida no meu post...

eth0 - Lan - 192.168.x.y
eth0:1 - vLan - 192.168.x.z
eth0:2 - vLan - 192.168.y.w
eth2 - Internet
..........

Já são redes diferentes. A única coisa que é similar entre elas é a netmask.


4. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

Luis Henrique Laguna
laguna

(usa Ubuntu)

Enviado em 28/10/2010 - 12:52h

eth0 - Lan - 192.168.X.y
eth0:1 - vLan - 192.168.X.z
eth0:2 - vLan - 192.168.y.w

pois é eu achei estranho é as duas primeiras classes como vc classificou
mais continuo com a minha sugestão, troque descaradamente as classes de ip
192.68.0.x
172.16.10.x
10.0.0.x

nao vejo nada de errado, no teu esquema só algumas questões.
vc ta definindo ip por mac?

não tem nenhum outro pc servindo dhcp?

desculpe se estou sendo chato, mais e ja trabalhei com esse sistema e talz e não to vendo nada de errado, pois vale lembrar que a melhor maneira de fazer isso seria com um switch gerenciavel onde vc pudesse controlar a comunicação entre as portas, pois se estiverem todos ligados em um simples HUB, sempre haverá comunicação.



5. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 28/10/2010 - 14:07h

Sim, estou difinindo IP por MAC, eu tirei dai para não ficar muito extenso o meu post.

Bem, a comunicação só não podo acontecer entre eth0:2 com as demais. A eth0 e a eth0:1 no meu esquema é como se fossem uma só, a mesma coisa, eu precisava que mudasse apenas o final do ip, por isso criei dessa forma. É que tenho outro servidor em outra localização, então para eu nao ter que ficar mudando o ip do meu gw e dns toda hora, eu criei essa eth0:1 simulando as mesma configurações do meu outro servidor.


6. medida desesperada?

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 29/10/2010 - 10:02h

talvez seja, mas à falta de coisa melhor, nestas suas regras:

iptables -A INPUT -i $IFLOCAL -s $NETLOCAL -j ACCEPT

iptables -A INPUT -i $IFLOCAL -s $NETLOCAL2 -j ACCEPT

experimente definir "! -d" de uma rede a outra. Estava pesquisando pra saber QUAL a precedencia das regras (INPUT antes de FORWARD ou vice-versa?) mas não encontrei nada consistente, então (IMHO) vale experimentar, quem sabe?

nota extra: segundo o artigo do Elgio Schlemer (http://www.vivaolinux.com.br/artigos/impressora.php?codigo=6901) a precedência seria o PREROUTING, então (sempre IMHO) conviria experimentar também).


7. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 29/10/2010 - 10:23h

Blz, vou fazer dessa forma e posto depois o resultado. Valeu!


8. Re: Bloquear comunicação entre duas sub-redes [RESOLVIDO]

João Paulo Carneiro
jptudobem

(usa Debian)

Enviado em 02/11/2010 - 14:22h

A "medida desesperada" funcinou perfeitamente, o que é meio óbvio já que a chain INPUT tem "prioridade" sob a FORWARD. Obrigado pela ajuda de todos.

RESOLVIDO!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts