Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    Bom Tarde !
    Tenho um servidor de internet, fiz um firewall aqui em um arquivo texto.
    Na verdade é uma dúvida que não encontrei em apostilas.
    Quando libero uma porta FORWARD, para rede interna,a mesmo deve ser liberada como INPUT no servidor certo ?

    No caso abaixo, está certo ?
    liberei o servidor a 80, que o servidor internet usa para conectar... e as máquinas da rede interna vao usar a porta 3128 no caso o proxy, e a porta 443 que é https, no qual o squid não suporta.

    Também liberei a porta 25 e 110 (pop, e smtp).

    Está certo a maneira que eu estou fazendo ?
    Só montei para ter uma nossao de como estou fazendo, e se estou fazendo da maneira correta...




    (Desculpe mas no tópico abaixo, esqueci de colocar o FORWARD...)




    Segue abaixo as regras




    #Interfaces
    IF_INTERNA="eth0"
    IF_EXTERNA="eth1"
    #Rede Interna
    REDE_INTERNA="10.0.0.0/24"


    #roteamento
    echo "1"> /proc/sys/net/ipv4/ip_forward

    #Limpando iptables
    iptables -F
    iptables -Z
    iptables -X
    iptables -F -t nat
    iptables -X -t nat
    iptables -F -t mangle
    iptables -X -t mangle

    # Conexão estabelida não é verificada novamente
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT

    #Regras IF_EXTERNA
    iptables -A INPUT -i $IF_EXTERNA -p tcp --syn --dport 22 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 3128 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p udp --dport 43 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 110 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 443 -j ACCEPT

    #Rede Interna
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 3128 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 110 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 25 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 443 -j ACCEPT




    #Fecha o resto
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

  2. #2
    maverick_cba
    Na verdade o que ocorre nesse caso: proxy --> firewall.

    Você deve liberar acesso pela porta 80 somente para input da internet p/ firewall e output do firewall para internet.
    Código :
    iptables -A INPUT -p tcp -i $IF_EXTERNA --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp -i $IF_EXTERNA --dport 80 -j ACCEPT
    pois o browser dos clientes ira fazer uma requisição http na porta 80 até o servidor. antes que a CHAIN INPUT processe as regras, a CHAIN PREROUTING da tabela NAT processa a requisição e faz um NAT de porta redirecionando a requisição antes que a CHAIN INPUT barre o acesso.
    Código :
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
    Requisições na porta 443 (https) não passarão pelo proxy e seguirão direto.
    Código :
    iptables -A FORWARD -p tcp -dport 443 -j ACCEPT

    E assim sucessivamente. Quando tiver que liberar acesso as máquinas internas utilize a CHAIN FORWARD e se possível analize os dois pontos da rede (interna e externa) e veja se é realmente necessário que o acesso parta dos dois lados.

    Quando for fazer acesso ao servidor (conexões que são destinadas ao servidor) utilize a CHAIN INPUT. Ex:
    Código :
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    Nesse caso liberamos acesso via SSH ao servidor. Seria bom especificar que somente queremos conexões SSH vinda da rede interna. ex:
    Código :
    iptables -A INPUT -i $IF_INTERNA -s $REDE_INTERNA --dport 22 -j ACCEPT

    Não se esqueça de fazer o bloqueio dos serviços indesejados, pois nesse caso estamos apenas fazendo a liberação daquilo que queremos.

    Espero ter ajudado.

    Abraços,

    Alain Dellon Brito



  3. #3
    robsonzornitta
    eh issu ai mesmo amigo o que o nosso amigo postou ai em cima eh a mais pura verdade!!! concordo cum ele!!!! :good:

  4. #4
    Muito Obrigado pelas respostas !!!


    maverick_cba, realmente eu esqueci do OUTPUT...


    Vou colar abaixo como eu refiz as regras novamente...

    Por favor não deixe de comentar se estiver algo errado...

    Criticas e sugestoes sempre é bem vinda!



    #Interfaces
    IF_INTERNA="eth0"
    IF_EXTERNA="eth1"
    #Rede Interna
    REDE_INTERNA="10.0.0.0/24"


    #roteamento
    echo "1"> /proc/sys/net/ipv4/ip_forward

    #Limpando iptables
    iptables -F
    iptables -Z
    iptables -X
    iptables -F -t nat
    iptables -X -t nat
    iptables -F -t mangle
    iptables -X -t mangle

    # Conexão estabelida não é verificada novamente
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT

    #Regras IF_EXTERNA
    iptables -A INPUT -i $IF_EXTERNA -p tcp --syn --dport 22 -j ACCEPT

    iptables -A INPUT -p tcp -i $IF_EXTERNA --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp -i $IF_EXTERNA --dport 80 -j ACCEPT

    iptables -A OUTPUT -i $IF_EXTERNA -p tcp --dport 3128 -j ACCEPT

    iptables -A INPUT -i $IF_EXTERNA -p udp --dport 43 -j ACCEPT
    iptables -A OUTPUT -i $IF_EXTERNA -p udp --dport 43 -j ACCEPT

    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 110 -j ACCEPT
    iptables -A OUTPUT -i $IF_EXTERNA -p tcp --dport 110 -j ACCEPT


    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 25 -j ACCEPT
    iptables -A OUTPUT -i $IF_EXTERNA -p tcp --dport 25 -j ACCEPT

    iptables -A INPUT -i $IF_EXTERNA -p tcp --dport 443 -j ACCEPT
    iptables -A OUTPUT -i $IF_EXTERNA -p tcp --dport 443 -j ACCEPT

    #Squid
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

    #Rede Interna
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 3128 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 110 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 25 -j ACCEPT
    iptables -A FORWARD -i $IF_INTERNA -p tcp --dport 443 -j ACCEPT


    $IPT -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE





    #Fecha o resto
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP







    Mais uma vez Obrigado :clap: :clap: :clap:



  5. #5
    está correto este script acima ?






Tópicos Similares

  1. Fiz um script com prioridade para VOIP. Ele está certo?
    Por FabricioViana no fórum Servidores de Rede
    Respostas: 1
    Último Post: 15-03-2007, 10:03
  2. sera que esta certo ipmasqadm
    Por bouncer no fórum Servidores de Rede
    Respostas: 0
    Último Post: 05-01-2005, 10:53
  3. Como saber se o iptable esta instalado e rodando??
    Por no fórum Servidores de Rede
    Respostas: 6
    Último Post: 09-11-2004, 09:24
  4. Respostas: 2
    Último Post: 06-11-2004, 16:50
  5. Não sei se isso está certo? Alguem já viu?
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 28-08-2003, 08:29

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L