Bloqueando acesso de uma rede a outra

1. Bloqueando acesso de uma rede a outra

André Luiz Pastore Dambros
andreluizpd

(usa Linux Mint)

Enviado em 18/02/2016 - 10:18h

Olá a todos,

Estou necessitando de ajuda com o seguinte problema, em minha empresa temos duas redes que se comunicam, uma rede 1 e uma rede 2, na rede um servidor de arquivos e active directory que gerencia a mesma e na rede 2 temos outro servidor de arquivos, ai que vem o problema, preciso que a rede 1 possa acessar todos os arquivos do servidor da rede 2, mas a rede 2 não acesse de maneira nenhuma qualquer computador ou servidor da rede 1.
Para isso comecei a testar o endian firewall. Fiz um ambiente de testes utilizando o seguinte esquema: Minha maquina real sendo a rede 2, o endian firewall instalado em uma máquina virtual com duas placas de rede, a primeira uma rede nat para a rede verde, e a segunda uma placa de rede em modo bridge, e um computador com windows 7 dentro da rede nat do firewall.
Em meus testes liberei no firewall as portas TCP 139 e 445 e UDP 137 e 138, assim consegui acessar meu computador (ip 172.16.1.64) pela rede, e dentro de meu computador real não consegui nem fazer solicitações de ping ou acessar pela rede a maquina virtual.

Será que esse ambiente virtual foi configurado corretamente segundo o que eu estaria fazendo em meu ambiente real na empresa ?


  


2. Re: Bloqueando acesso de uma rede a outra

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 19/02/2016 - 15:27h

Olá,

Pelo iptables, você gerencia isso pelo forward.

iptables -A FORWARD -p tcp -s REDE1 -d REDE2 --dport PORTASSAMBA -j ACCEPT
iptables -A FORWARD -p tcp -s REDE2 -d REDE1 --dport PORTASSAMBA -j DROP

Basicamete, você diz que a rede 1 (-s REDE1) acessa a rede 2 (-d REDE2) pelo accept, mas o contrário não com o DROP.

Até!

Sérgio Abrantes


3. Re: Bloqueando acesso de uma rede a outra

André Luiz Pastore Dambros
andreluizpd

(usa Linux Mint)

Enviado em 19/02/2016 - 17:20h

pelo escreveu:

Olá,

Pelo iptables, você gerencia isso pelo forward.

iptables -A FORWARD -p tcp -s REDE1 -d REDE2 --dport PORTASSAMBA -j ACCEPT
iptables -A FORWARD -p tcp -s REDE2 -d REDE1 --dport PORTASSAMBA -j DROP

Basicamete, você diz que a rede 1 (-s REDE1) acessa a rede 2 (-d REDE2) pelo accept, mas o contrário não com o DROP.

Até!

Sérgio Abrantes


Sérgio, obrigado pela resposta, estava vendo e tenho uma máquia aqui com debian e iptables configurado com a bridge pronta, mas quando fui testa-lo não conseguia acessar da minha rede o servidor da rede vizinha, apenas um computador conseguia porque estava no domínio da outra empresa. Tenho aqui um script do iptables e queria ver como posso implementar o código que você me falou nele.

Minha rede: eth0
Rede vizinha: eth1




echo --------
echo flush
iptables -F
iptables -X
echo flush OK

echo --------
echo limitando o ping
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP


echo --------
echo bloqueando pacotes de inicializacao pela eth1
iptables -A FORWARD -m physdev --physdev-in eth1 -m state --state NEW -j DROP
iptables -A INPUT -m physdev --physdev-in eth1 -m state --state NEW -j DROP


echo --------
echo bloqueando pacotes invalidos pela eth1
iptables -A FORWARD -m physdev --physdev-in eth1 -m state --state INVALID -j DROP
iptables -A INPUT -m physdev --physdev-in eth1 -m state --state INVALID -j DROP





4. Re: Bloqueando acesso de uma rede a outra

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 19/02/2016 - 17:43h

Opa,

Vamos lá!

Teste esse script sem utiliziar nada do teu, apenas como teste.

#!/bin/bash

#############
## Modulos ##
#############
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

####################
### Funcao START ###
####################


firewall_start() {
echo "Iniciando o Firewall"

#####################
## Limpa as regras ##
#####################

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

######################
## Politicas padrao ##
######################

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

## Manter conexoes jah estabelecidas para nao parar ##

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

## Aceita todo o trafego vindo do loopback e indo pro loopback ##

iptables -t filter -A INPUT -i lo -j ACCEPT

# Ativando IP FORWARDING
#echo 1 > /proc/sys/net/ipv4/ip_forward

# IPs 192.168.0.X acessam computadores da rede 192.168.1.X
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT

# IPs 192.168.1.X não acessam computadores da rede 192.168.0.X
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j DROP


}

##################
### Fucao STOP ##
##################


firewall_stop() {

echo "Parando firewall e funcionando apenas com mascaramento"
# Limpa as regras #

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

# Politicas padrao #

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# Manter conexoes jah estabelecidas para nao parar

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

# Aceita todo o trafego vindo do loopback e indo pro loopback
iptables -t filter -A INPUT -i lo -j ACCEPT

echo "Regras Limpas e Firewall desabilitado"
}

firewall_restart() {
echo "Reiniciando Firewall"
firewall_stop
sleep 3
firewall_start
echo "Firewall Reiniciado"
}

firewall_status() {
echo ""
echo " ========================================================= REGRAS DE ACESSO ========================================================= "
echo ""
iptables -L -nv --line-numbers
echo ""
echo " ========================================================= REGRAS DO NAT ============================================================ "
echo ""
iptables -L -nv -t nat --line-numbers
echo ""
echo " ========================================================= REGRAS DA TABELA MANGLE ================================================= "
echo ""
iptables -L -nv -t mangle --line-numbers
echo ""
}

case "$1" in
'start')
firewall_start
echo "Firewall Iniciado"
;;
'stop')
firewall_stop
;;
'status')
firewall_status
;;

'restart')
firewall_restart
;;
*)
echo "Opcoes possiveis:"
echo "rc.firewall start"
echo "rc.firewall stop"
echo "rc.firewall status"
echo "rc.firewall restart"
esac





5. Re: Bloqueando acesso de uma rede a outra

André Luiz Pastore Dambros
andreluizpd

(usa Linux Mint)

Enviado em 22/02/2016 - 13:23h

pelo escreveu:

Opa,

Vamos lá!

Teste esse script sem utiliziar nada do teu, apenas como teste.

#!/bin/bash

#############
## Modulos ##
#############
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

####################
### Funcao START ###
####################


firewall_start() {
echo "Iniciando o Firewall"

#####################
## Limpa as regras ##
#####################

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

######################
## Politicas padrao ##
######################

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

## Manter conexoes jah estabelecidas para nao parar ##

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

## Aceita todo o trafego vindo do loopback e indo pro loopback ##

iptables -t filter -A INPUT -i lo -j ACCEPT

# Ativando IP FORWARDING
#echo 1 > /proc/sys/net/ipv4/ip_forward

# IPs 192.168.0.X acessam computadores da rede 192.168.1.X
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT

# IPs 192.168.1.X não acessam computadores da rede 192.168.0.X
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j DROP


}

##################
### Fucao STOP ##
##################


firewall_stop() {

echo "Parando firewall e funcionando apenas com mascaramento"
# Limpa as regras #

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

# Politicas padrao #

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# Manter conexoes jah estabelecidas para nao parar

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

# Aceita todo o trafego vindo do loopback e indo pro loopback
iptables -t filter -A INPUT -i lo -j ACCEPT

echo "Regras Limpas e Firewall desabilitado"
}

firewall_restart() {
echo "Reiniciando Firewall"
firewall_stop
sleep 3
firewall_start
echo "Firewall Reiniciado"
}

firewall_status() {
echo ""
echo " ========================================================= REGRAS DE ACESSO ========================================================= "
echo ""
iptables -L -nv --line-numbers
echo ""
echo " ========================================================= REGRAS DO NAT ============================================================ "
echo ""
iptables -L -nv -t nat --line-numbers
echo ""
echo " ========================================================= REGRAS DA TABELA MANGLE ================================================= "
echo ""
iptables -L -nv -t mangle --line-numbers
echo ""
}

case "$1" in
'start')
firewall_start
echo "Firewall Iniciado"
;;
'stop')
firewall_stop
;;
'status')
firewall_status
;;

'restart')
firewall_restart
;;
*)
echo "Opcoes possiveis:"
echo "rc.firewall start"
echo "rc.firewall stop"
echo "rc.firewall status"
echo "rc.firewall restart"
esac




Vou implantar em um ambiente de testes e digo se deu certo


6. Re: Bloqueando acesso de uma rede a outra

André Luiz Pastore Dambros
andreluizpd

(usa Linux Mint)

Enviado em 23/02/2016 - 07:50h

pelo escreveu:

Opa,

Vamos lá!

Teste esse script sem utiliziar nada do teu, apenas como teste.

#!/bin/bash

#############
## Modulos ##
#############
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

####################
### Funcao START ###
####################


firewall_start() {
echo "Iniciando o Firewall"

#####################
## Limpa as regras ##
#####################

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

######################
## Politicas padrao ##
######################

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

## Manter conexoes jah estabelecidas para nao parar ##

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

## Aceita todo o trafego vindo do loopback e indo pro loopback ##

iptables -t filter -A INPUT -i lo -j ACCEPT

# Ativando IP FORWARDING
#echo 1 > /proc/sys/net/ipv4/ip_forward

# IPs 192.168.0.X acessam computadores da rede 192.168.1.X
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT

# IPs 192.168.1.X não acessam computadores da rede 192.168.0.X
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j DROP


}

##################
### Fucao STOP ##
##################


firewall_stop() {

echo "Parando firewall e funcionando apenas com mascaramento"
# Limpa as regras #

iptables -X
iptables -Z
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -F -t mangle

# Politicas padrao #

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# Manter conexoes jah estabelecidas para nao parar

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

# Aceita todo o trafego vindo do loopback e indo pro loopback
iptables -t filter -A INPUT -i lo -j ACCEPT

echo "Regras Limpas e Firewall desabilitado"
}

firewall_restart() {
echo "Reiniciando Firewall"
firewall_stop
sleep 3
firewall_start
echo "Firewall Reiniciado"
}

firewall_status() {
echo ""
echo " ========================================================= REGRAS DE ACESSO ========================================================= "
echo ""
iptables -L -nv --line-numbers
echo ""
echo " ========================================================= REGRAS DO NAT ============================================================ "
echo ""
iptables -L -nv -t nat --line-numbers
echo ""
echo " ========================================================= REGRAS DA TABELA MANGLE ================================================= "
echo ""
iptables -L -nv -t mangle --line-numbers
echo ""
}

case "$1" in
'start')
firewall_start
echo "Firewall Iniciado"
;;
'stop')
firewall_stop
;;
'status')
firewall_status
;;

'restart')
firewall_restart
;;
*)
echo "Opcoes possiveis:"
echo "rc.firewall start"
echo "rc.firewall stop"
echo "rc.firewall status"
echo "rc.firewall restart"
esac




Como faço para rodar esse script ?




7. Re: Bloqueando acesso de uma rede a outra

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 23/02/2016 - 10:43h

Olá,

1) Para testes, coloque o conteúdo que passei num arquivo.
2) Dê permissão para execução: chmod +x NOMESCRIPT
3) Execute com ./NOMESCRIPT

Até!

Sérgio Abrantes


8. Re: Bloqueando acesso de uma rede a outra

André Luiz Pastore Dambros
andreluizpd

(usa Linux Mint)

Enviado em 23/02/2016 - 14:59h

pelo escreveu:

Olá,

1) Para testes, coloque o conteúdo que passei num arquivo.
2) Dê permissão para execução: chmod +x NOMESCRIPT
3) Execute com ./NOMESCRIPT

Até!

Sérgio Abrantes


Ele me da "Opções possíveis"
rc.firewall start
rc.firewall stop
rc.firewall status
rc.firewall restart

Como faço para selecionar uma ?


9. Re: Bloqueando acesso de uma rede a outra

Sérgio Abrantes Junior
pelo

(usa Debian)

Enviado em 23/02/2016 - 15:05h

Olá,

Se você colocou o nome de rc.firewall também, o comando seria: "./rc.firewall start".
Ou também, "./NOMESCRIPT start".

Até!

Sérgio Abrantes






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts