Duvida/Problema: Iptables + VPN

Iniciado por tbksly, 04 de Abril de 2012, 15:21

tópico anterior - próximo tópico

tbksly

Boa tarde pessoal. Estou montando um servidor com firewall e VPN (mais tarde talvez adicione proxy). A parte da VPN (http://www.vivaolinux.com.br/topico/vivaolinux/Problema-VPN-ipsec-Openswan-e-Sonicwall) consegui solucionar e está tudo OK, agora trabalhando no Firewall estou apanhando para regras do IPtables.

Minha topologia está mais ou menos assim:

mtz (192.168.2.0/24) === VPN === filial (10.20.31.0/24)

Com as regras defaults do iptables eu consigo chegar até as maquinas da filial e vice-versa porém preciso garantir segurança do ambiente entao estou tentando fechar as portas.
Por enquanto tenho o seguinte script:

"
#Alterando politicas para DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Iniciando regras de liberação

#Libera acesso ao FW por SSH para rede interna
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Libera rede interna a acessar o FW
iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT

#Libera roteamento para rua EXCETO saida para VPN
iptables -t nat -A POSTROUTING ! -d 10.20.31.0/24 -s 192.168.2.0/24 -j MASQUERADE
"
OK. quando executo este script paro de pingar as maquinas da filial mas a conexao para rua (internet) continua OK.

MAS se executo apenas:
iptables -t nat -A POSTROUTING ! -d 10.20.31.0/24 -s 192.168.2.0/24 -j MASQUERADE
tudo funciona perfeitamente.



Cheguei a tentar adicionar essas linhas para tentar pingar as maquinas da filial mas nao deu certo

iptables -A FORWARD -s 10.20.31.0/24 -d 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -d 10.20.31.0/24 -j ACCEPT


alguma ideia? acredito que alguma das minhas regras de negação estaja afetando meu "nat-masquerade" da rede interna para VPN.

tenho uma postagem deste assunto no VOL tbm (http://www.vivaolinux.com.br/topico/netfilter-iptables/Duvida-Iptables-+-VPN)



zekkerj

CitarCom as regras defaults do iptables eu consigo chegar até as maquinas da filial e vice-versa porém preciso garantir segurança do ambiente entao estou tentando fechar as portas.

O primeiro passo pra criar um firewall é definir uma política de segurança. Coisa bem simples, do tipo "fulano da filial pode fazer isto, isto e isto; e não pode fazer aquilo, aquilo e aquilo outro."

Depois de ter isso definido, vc se preocupa em regras de firewall.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tbksly

Citação de: zekkerj online 04 de Abril de 2012, 15:42
CitarCom as regras defaults do iptables eu consigo chegar até as maquinas da filial e vice-versa porém preciso garantir segurança do ambiente entao estou tentando fechar as portas.

O primeiro passo pra criar um firewall é definir uma política de segurança. Coisa bem simples, do tipo "fulano da filial pode fazer isto, isto e isto; e não pode fazer aquilo, aquilo e aquilo outro."

Depois de ter isso definido, vc se preocupa em regras de firewall.
Justo. Eu tenho definido a politica de acesso. O que quis dizer com a frase acima foi que tenho que fechar o firewall para evitar deixar portas abertas e acessos indevidos.

Estou partido do principio que o firewall deve estar fechado, exceto liberações que vou adicionando conforme a necessidade.
Hoje estas necessidades sao:

permitir acesso SSH ao Firewall
permitir que maquinas da minha rede (192.168.2.0) naveguem na web
permitir que maquinas na minha rede utilizem email (portas 465 e 995)
permitir que o firewall estabeleça o tunel ipsec
permitir que maquinas da minha rede acessem maquinas da minha filial (10.20.31.0) por VPN
permitir acesso WTS externo (da internet) ao servidor 192.168.2.9
permitir que a maquina 192.168.2.90 tenha acesso externo por qualquer porta e destino
permitir que a maquina 192.168.2.25 acesse o MSN
permitir que a maquina 192.168.2.77 acesse a conectividade social

interfaces:
eth0 = adsl (gw padrao)
eth2 = link corporativo (vpn)
eth1 = rede interna


zekkerj

E as coisas têm que acontecer exatamente nessa ordem, correto? As regras vão ser atendidas exatamente nessa ordem?

Pq pode haver alguma coisa conflitante; por exemplo, se vc tiver a intenção de usar proxy transparente, tem que colocar a máquina que acessa o conectividade social como exceção [conectividade social não pode passar por proxy].
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tbksly

Acredito q seja esta ordem sim.
sei que ele executa lista em ordem de cima para baixo e que -A tem prioridade sobre -P. Mas nao vejo uma linha bloqueando outra.

tbksly


raidicar

Amigo, no seu script você fecha tudo, libera internet mas onde libera as portas para vpn (1723 e 47)?
Não faltaria algo mais ou menos assim para que quando rode o script não perca a vpn?

iptables -t INPUT -s 10.20.31.0/24 -m multiport -p protocolo --port 47,1723 -j ACCEPT
iptables -t FORWARD -s 10.20.31.0/24 -m multiport -p protocolo --port 47,1723 -j ACCEPT


Eu tinha as seguintes regras guardadas que pode adaptar, mas não sei de onde peguei parte (faz anos) para citar a fonte:
iptables -t nat -A PREROUTING -p tcp -d 10.20.31.0/24 --dport 1723 -j DNAT --to 192.168.2.0/24
iptables -t nat -A PREROUTING -p 47 -d 10.20.31.0/24 -j DNAT --to 192.168.2.0/24
iptables -A FORWARD -i ethx -p tcp -d 192.168.2.0/24 --dport 1723 -j ACCEPT
iptables -A FORWARD -o ethx -p tcp -s 192.168.2.0/24 --sport 1723 -j ACCEPT
iptables -A FORWARD -i ethx -p 47 -d 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -o ethx -p 47 -s 192.168.2.0/24 -j ACCEPT

ethx obviamente é a eth(0 ou 1 ou 2...) onde está a conexão de internet.

Att,
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

tbksly

# iptables -t nat -A PREROUTING -p tcp -d 10.20.31.0/24 --dport 1723 -j DNAT --to 192.168.2.0/24iptables -t nat -A PREROUTING -p tcp -d 10.20.31.0/24 --dport 1723 -j DNAT --to 192.168.2.0/24
iptables v1.4.10: Bad IP address "192.168.2.0/24iptables"

Try `iptables -h' or 'iptables --help' for more information.



=/

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tbksly

ah sim.
desculpe colei a linha errada

# iptables -t nat -A PREROUTING -p tcp -d 10.20.31.0/24 --dport 1723 -j DNAT --to 192.168.2.0/24
iptables v1.4.10: Bad IP address "192.168.2.0/24"

Try `iptables -h' or 'iptables --help' for more information.



zekkerj

tbksly, vc já tem as regras de sua política. Agora o que vc precisa fazer é traduzir essas regras da política em regras do iptables.

Simplesmente pegar as regras já feitas por outra pessoa e tentar aplicar não vai atender às suas necessidades.

Uma vez que você tenha as suas regras, apresente-as aqui, pra gente avaliar se estão na ordem correta, ou se elas estão bem montadas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

raidicar

Citação de: tbksly online 10 de Abril de 2012, 10:32
iptables -t nat -A PREROUTING -p tcp -d 10.20.31.0/24 --dport 1723 -j DNAT --to 192.168.2.0/24
iptables v1.4.10: Bad IP address "192.168.2.0/24"
Try `iptables -h' or 'iptables --help' for more information.

opa, foi mal, tire a rede 192.168.2.0/24 e informe apenas o ip, ex: 192.168.2.21, mas meio visível pela regra em si e a msg de retorno.

Mas é como o zekkerj falou, vc precisa traduzir sua politica em regras.

Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

zekkerj

Só pra reforçar... VOCÊ precisa traduzir sua política em regras.

Acho que agora fui bem claro, não? ;)
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

tbksly

Citação de: zekkerj online 10 de Abril de 2012, 12:03
Só pra reforçar... VOCÊ precisa traduzir sua política em regras.

Acho que agora fui bem claro, não? ;)
Claro e até rude eu diria  ::)

De qualquer modo eu postei sim um esboço das regras, mas vou tratar elas um pouco e posto logo mais as "novas". Na verdade sinto até um embaraço, pois sou BEM leigo com iptables. Tem um bom artigo ou material com o assunto para aprofundar minhas técnicas?

Até então li o material de João Eriberto Mota Filho, Firewall no Linux. FIREWALL COM IPTABLES

zekkerj

Citação de: tbksly online 10 de Abril de 2012, 14:23
Claro e até rude eu diria  ::)
Eu posso ser bem mais rude que isso.

Não espere que as pessoas façam o seu serviço pra você.

Ajuda é uma coisa. Suporte técnico gratuito é outra.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D