Liberar portas para rede interna [RESOLVIDO]

1. Liberar portas para rede interna [RESOLVIDO]

Pascoal Roberto de Souza
pascoal.roberto

(usa Debian)

Enviado em 07/11/2012 - 12:08h

Caros, bom dia,

Estou com dificuldades de implementar um firewall de pequeno porte.
Com as regras da forma que se encontram abaixo, eu não tenho acesso a nada, da rede interna para a internet (por exemplo, acesso a internet, acessar remotamente um host, etc...)

Se eu mudo a policy forward para ACCEPT funciona normal, mas eu não consigo bloquear acesso pela porta 80 para o pessoal não sair por fora do proxy;

Se eu dou um iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT libero tudo...

Minha dúvida é, se eu deixar a policy padrão para forward para DROP e dar um iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT eu não consigo navegar e a mesma coisa com a porta 3389 eu não consigo. Eu quero liberar somente o necessário e não estou conseguindo, gostaria de saber se vcs podem me ajudar.

Segue meu script:

#!/bin/bash

#Modulos iptables
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe ipt_limit
modprobe ipt_MARK
modprobe ipt_mark
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp

# Limpar tabela do iptables

iptables -t filter -F
iptables -t nat -F

#Alterando a politica das Chains
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Compartilha conexao e ativa mascaramento

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#Liberando loopback
iptables -A INPUT -i lo -j ACCEPT


#libera pacotes de retorno da internet
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Libera SSH externo
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

#Libera acesso squid
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3128 -j ACCEPT

#Redirecionamento Remoto
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.1.90:3389

#Redirecionamento VPN
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to 192.168.1.90:1723





  


2. MELHOR RESPOSTA

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 08/11/2012 - 18:04h

Oque vc tem que ter em mente quando ultiliza a Politica DROP no FORWARD é que o pacote vai e volta

Outra coisa que vc tambem esta confundindo é que:

FORWARD é o que passa pelo FIREWALL o destino nao é o firewall sao as redes destintas (ex: rede interna -> internet)
INPUT tudo que entra para a maquina aonde esta o firewall
OUTPUT tudo que sai da maquina aonde do firewall


Entao vou comentar as suas regra com as seguintes politicas abaixo

#Alterando a politica das Chains
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT


#Libera SSH externo -----> OK Aqui voce esta liberando servidor ssh do firewall para a internet e sua rede interna
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

#Libera acesso squid
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT ---> OK
iptables -A FORWARD -p tcp --dport 3128 -j ACCEPT -----> ERRADO pode deletar FORWARD nao é regra para o firewall


#Redirecionamento Remoto ---> OK porem falta vc adicionar as linhas do FORWARD ja que sua politica eh drop seria assim

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.1.90:3389

# lembre da ida e volta
iptables -A FORWARD -d 192.168.1.90 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -s 192.168.1.90 -p tcp --sport 3389 -j ACCEPT


#Redirecionamento VPN -> o mesmo que em cima adicione o forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to 192.168.1.90:1723

iptables -A FORWARD -d 192.168.1.90 -p tcp --dport 1723 -j ACCEPT
iptables -A FORWARD -s 192.168.1.90 -p tcp --sport 1723 -j ACCEPT




Quando usa politica FORWARD DROP o pessoal acaba se esquecendo da resolucao de nome do DNS e acha que a regra nao esta funcionando , vou fazer um exemplo de como liberar a maquina 192.168.1.91
acessar a www e wwws


iptables -A FORWARD -s 192.168.1.91 -m multiport -p tcp --dport 80,443 -j ACCEPT
iptables -A FORWARD -d 192.168.1.91 -m multiport -p tcp --sport 80,443 -j ACCEPT

iptables -A FORWARD -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -p udp --sport 53 -j ACCEPT



e para o squid acessar a internet ja que o INPUT e DROP vc tmb tem que liberar (nao sua rede, sua rede vai acessar o squid e o squid vai acessar a internet)

iptables -A INPUT -i eth0 -m multiport -p tcp --sport 80,443 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT




[]s
Altemir Braz Dantas Junior (Joca)






















3. Re: Liberar portas para rede interna [RESOLVIDO]

Junior Rocha
junior

(usa Ubuntu)

Enviado em 07/11/2012 - 14:58h

Boa tarde,

Se você está referindo-se a navegação na internet (porta 80, padrão) a sua regra de redirecionamento do SQUID está errada. Comente as linhas referentes as suas regras e substitui por essas:
-
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-

Reinicie o script e teste.





4. Re: Liberar portas para rede interna [RESOLVIDO]

Pascoal Roberto de Souza
pascoal.roberto

(usa Debian)

Enviado em 07/11/2012 - 15:20h

Junior, boa tarde,

Eu não estou usando proxy transparente, por isso somente liberei a porta 3128 para as maquinas sairem pelo proxy.
Para os usuários não burlarem o proxy eu redireciono a 80 e a 443 para o proxy mas gostaria de bloquear as portas ao invés de redirecionar, entende?


5. Re: Liberar portas para rede interna [RESOLVIDO]

Junior Rocha
junior

(usa Ubuntu)

Enviado em 07/11/2012 - 16:01h

O Proxy transparente já evitaria de o pessoal não burlar e de você ter que ficar configurando manualmente.

Outra fato, é que não vi regras de redirecionamento das portas 80 e 443 para a porta do SQUID como você mencionou.


6. Re: Liberar portas para rede interna [RESOLVIDO]

Pascoal Roberto de Souza
pascoal.roberto

(usa Debian)

Enviado em 08/11/2012 - 15:56h

Junior, boa tarde,

Desculpe pela demora ao responder.
Neste script realmente não consta o redirecionamento mas eu coloquei a regra.
Eu só gostaria de saber se existe uma forma de bloquear sem ter que redirecionar, entende.


7. Re: Liberar portas para rede interna [RESOLVIDO]

Junior Rocha
junior

(usa Ubuntu)

Enviado em 08/11/2012 - 16:14h

A forma mais segura, eficiente e trabalhosa é você redirecionar o tráfego da porta 80 para o SQUID bloquear todas as entradas na porta 443 e adicionar as excessões.
Isso é o que pode ser feito.

Mas talvez eu não tenha entendido o que você precisa ainda.




8. Re: Liberar portas para rede interna [RESOLVIDO]

Pascoal Roberto de Souza
pascoal.roberto

(usa Debian)

Enviado em 09/11/2012 - 08:10h

Altemir, bom dia,

Matou a pau!!!!!!

Esclareceu todas as minhas dúvidas, era exatamente as dúvidas que eu tinha.
Fiz as correções e deu certo.
Obrigado pela aula e pela contribuição.
Abraços e um excelente fim de semana!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts