+ Responder ao Tópico



  1. #1

    Padrão iptables + firewall

    galera,

    to iniciando meu estudo sobre firewall agora e estou com um probleminha. Tenho uma rede 192.168.0.0 e uso o ip 192.168.0.70 para fazer roteamento para a rede 10.0.0.0, por meio de nat. Apenas para teste adicionei uma regra para que o ip 192.168.0.19 nao desse ssh na rede 10.0.0.0. Entao, no /etc/rc.d/rc.local ficou assim:

    modprobe iptable_nat
    iptables -t nat -A POSTROUTING -o etho0 -j MASQUERADE
    proc 1 > /proc/sys/net/ipv4/ip_forward

    iptables -A INPUT -s 192.168.0.19 -d 192.168.0.70 -p tcp --dport 22 DROP

    Será que tem alguma coisa errada??

    Obrigado.

  2. #2

    Padrão iptables + firewall

    podem ter 2 coisas erradas sim
    1) -o etho0 .... eh -o eth0 , e a eth0 eh mesmo a interface de saida?
    2)proc 1 > /proc/sys/net/ipv4/ip_forward
    o certo eh
    echo 1 > /proc/sys/net/ipv4/ip_forward

  3. #3

    Padrão iptables + firewall

    Cara nao entendi bem

    O ip de destino que voce digitou aqui na sua regra esta correto?

    Voce esta bloqueando um host da propria rede. Se este ip nao for o do Servidor a regra nao vai bloquear.

  4. #4

    Padrão iptables + firewall

    Citação Postado originalmente por 1c3_m4n
    podem ter 2 coisas erradas sim
    1) -o etho0 .... eh -o eth0 , e a eth0 eh mesmo a interface de saida?
    2)proc 1 > /proc/sys/net/ipv4/ip_forward
    o certo eh
    echo 1 > /proc/sys/net/ipv4/ip_forward
    foi mal, erro de digitação: na maquina está eth0 e echo 1.
    Errei na postagem.

    Mas a regra é assim mesmo??

  5. #5

    Padrão iptables + firewall

    a regra eh essa sim....
    mas agora me diz oq ta acontecendo de errado ele num ta bloqueando o ssh como vc queria eh isso?
    se vc a regra ta errada.. a regra eh
    iptables -A FORWARD -p tcp -s 192.168.0.19 -d 10.0.0.X --dport 22 -j DROP

  6. #6

    Padrão iptables + firewall

    Citação Postado originalmente por 1c3_m4n
    a regra eh essa sim....
    mas agora me diz oq ta acontecendo de errado ele num ta bloqueando o ssh como vc queria eh isso?
    se vc a regra ta errada.. a regra eh
    iptables -A FORWARD -p tcp -s 192.168.0.19 -d 10.0.0.X --dport 22 -j DROP
    o q tava errado era a regra INPUT. Mas ja consegui.
    Valeu.

  7. #7
    Leonardo Lima Sakai
    Visitante

    Padrão Sua tarefa é muito simples!!!

    E aí cara BLZ... Meu sua dúvida é bem simples de ser respondida, porém você deve, eu disse deve issu mesmo heheh... Então você tem que entender como funciona o NAT "Tradutor de endereços de rede", bom vou sugerir um senário para podermos entender o processo --> :

    Rede A possue endereço 192.168.1.0/24
    Rede B possue endereço 172.16.0.0/16


    A comunicação entre as duas redes está sendo feita através de roteamento entre 3 placas de rede:

    eth0 está ligada na Rede A 192.168.1.1
    eth1 está ligada na Rede B 172.16.0.1
    eth2 está ligada no seu "speedy, Link Frame-relay...."

    Bom eu tenho um user na Rede A não pode trafegar entre o router de sua origen 192. 168.1.0/24 para rede de destino Rede B 172.16.0.0/16 o serviço de Openssh, cuja porta 22 do protocolo tcp certo!

    *Primeiro: Ao montar uma estrutura de rede, onde haverá comunicação entre duas redes, ou seja, trafego de Rede A para Rede B e vice-versa, você admin, tem que analizar quais serviços serão disponibilizados para sua Rede! Por exemplo, nossa rede somente uitilizara os serviços de http (port 80), Openssh (port 22) e Mail básico (pop port 110 ) e (smtp port 25)!

    Sendo assim só irei traduzir "NAT" os serviços necessários para minha rede, ou seja, ao configurar o nat somente traduza "NAT" as portas e protocolos que você realmente necessita, previnindo futuros problemas de invasão, pois não tem lógica você liberar um serviço sendo que o mesmo não será utilizado, concorda? !

    Se você utilizar essa linha:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE --> Simplesmente você está liberando o acesso, ou melhor, traduzindo para sua rede interna todos os serviços que for solicitado para o router, perigoso né!!!

    Bom libenrando somente os serviços desejado fica assim:

    Vou declarar algumas variavés para facilitar o script ok!

    #!/bin/bash

    # Var's
    RedeA=192.168.1.0/24
    RedeB=172.16.0.0/16
    fulano=192.168.1.10
    ciclano=172.16.0.100
    routerA=192.168.1.1
    routerB=172.16.0.1
    http=80
    ssh=22
    pop=110
    smtp=25

    # Ativando roteamento entre placas de rede

    echo 1 > /proc/sys/net/ipv4/ip_forward

    *Dica: No conectiva Linux 8 repita essa linha no minimo 3 vezes, pois não sei por que diabos ele não ativa o ip_forward carregando somente uma vez o arquivo, sacou!!! :lol:

    #Traduzindo serviços para rede A :[NAT]

    iptables -t nat -A POSTROUTING -d $RedeA -p tcp --dport $ssh -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeA -p tcp --dport $http -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeA -p tcp --dport $pop -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeA -p tcp --dport $smtp -j MASQUERADE

    #Traduzindo serviços para rede B :[NAT]

    iptables -t nat -A POSTROUTING -d $RedeB -p tcp --dport $ssh -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeB -p tcp --dport $http -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeB -p tcp --dport $pop -j MASQUERADE

    iptables -t nat -A POSTROUTING -d $RedeB -p tcp --dport $smtp -j MASQUERADE

    # Agora eu vou inpedir o Fulano de acessar o micro do Ciclano através do serviço Openssh:[FORWARD]

    iptables -A FORWARD -s $fulano -d $ciclano -p tcp --dport $ssh -j DROP

    # Cara o que acabou de ser declarado no iptables foi o seguinte:

    Bom você deve saber que o gateway do fulano é o router né, ou seja, a porta de saída para fulano é 192.168.1.1 o router certo! Bom você requisitou um serviço de ssh cuja porta é 22 usando o protocolo tcp certo;

    Bom ao requisitar qualquer serviço de outras redes e até outros serviços que sua maquina não possue, o protocolo tcp/ip, ou melhor a pilha tcp, encaminha o pacote de sua requisição para o gateway, sendo o router 192.168.1.1, bom quando o router recebe o pacote, ele analiza e verifica que o endereço de destino não é o endereço dele, ou seja, não
    foi para ele a requisição de ssh e sim para o ciclano, então ele verifica o endereço lógico do ciclano 172.16.0.100 e redireciona o pedido, ou seja, faz forwarding para o endereço de destino, por isso utilizamos a politica FORWARD para bloquear o acesso da maquina fulano para maquina ciclano, simples né heheh...! Pergunta, e se ao invés de declarar essa regra de "iptables" na politica FORWARD e declarasse na politica INPUT o fulano iria conseguir conectar no ciclano?


    Não né, mais tem um problema, e se o fulano ao invés de querer conectar via Openssh no ciclano, ele quiser conectar no proprio router, ou até em qualquer outra maquina da rede, ele não iria conseguir, pois a politica INPUT, ou seja, toda requisição que o router recebe, seria negada, pois você estaria declanrando que não aceitaria nunca um pedido do fulano de porta 22 ssh, entendeu? espero que sim!!!

    Bom meu caro amigo, espero ter ajudado seu inicio de aprendizado com nosso grande amigo iptables, e qualquer dúvida entre em contato no e-mail:


    http://[email protected]<br /> ...inus Torvalds.

  8. #8
    Leonardo Lima Sakai
    Visitante

    Padrão OPS Foi Mal

    Senário foi Foda Hein heheh foi mal ae galera !
    Corrigindo:

    Cenário

  9. #9

    Padrão iptables + firewall

    kra,

    valeu pela força, qualquer coisa entro em contato.

  10. #10

    Padrão iptables + firewall

    galera,

    uso o red hat e queria saber qual o log que posso ver a porta bloqueada que tal estação esta querendo acessar.

    Valeu.

  11. #11

    Padrão iptables + firewall

    primeiro vc tem q ter alguma regra que diga pra o kernel logar... se vc tem isso geralmente elas ficam no /var/log/messages

  12. #12
    aduraess
    Visitante

    Padrão iptables + firewall

    Olá amigos.

    Tenho uma situação um pouco semelhante.

    Possuo duas redes, rede A (interna) e rede B (externa).

    Da minha rede A, 18 estações devem acessar a rede B. Somente essas 18 estações (que possuem IP fixo) devem saber da existência da rede B.

    Para cada um dos 18 IP da rede A existe um, e somente um, respectivo IP fixo da rede B, por exemplo, o IP aaa.aaa.aaa.aaa de A equivale a o IP bbb.bbb.bbb.bbb de B.

    Entre as rede A e B existe um CL8.

    Que regra de iptables/NAT devo usar para que somente essas 18 estações tenham acesso a rede B e que regra usar para traduzir cada IP de A para B.

    Desde já muito obrigado!