+ Responder ao Tópico



  1. #1

    Padrão simples, DROP = NAO LIBERA NADA nem com ACCEPT na 80

    Ola, estou fazendo uns estudos de firewall e estou empancado na seguinte situacao.

    Setei DROP para todas as chains como padrao.

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --sport 80 -j ACCEPT

    #FIM
    meu firewall é essa coisa simples, minha ideia é fazer pelomenos a maquina firewall acessar a web livremente entretanto ela não esta acessando nada até que eu sete as chains como ACCEPT. O que tem de errado nele?

  2. #2

    Post

    cara eu estou fazendo a mesma coisa e eu consegui fazer segue abaixo

    #! /bin/bash

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

    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT DROP
    iptables -t filter -P FORWARD DROP

    iptables -t filter -A INPUT -p ALL -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -o lo -j ACCEPT
    iptables -t filter -A INPUT -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    iptables -t filter -A FORWARD -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A FORWARD -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dports 80,53 -j ACCEPT
    iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 -m multiport --dports 80,53 -j ACCEPT
    iptables -t nat -A POSTROUTING -p ALL -o ppp0 -s 192.168.0.0/24 -d 0/0 -j MASQUERADE
    iptables -t filter -A INPUT -p TCP -s 0/0 -d 192.168.0.1 --destination-port 22 -j ACCEPT
    iptables -t filter -A OUTPUT -p TCP -d 0/0 -s 192.168.0.1 --source-port 22 -j ACCEPT

    agora gostaria de saber do pessoal se em vez de eu usar a chain FORWARD eu posso usar a OUTPUT e como ficaria a regra sendo que as regras que liberam a 80 e 53 eu troquei de FORWARD por OUTPUT e não funciono
    ou tem que ser FORWARD mesmo
    obrigado

  3. #3

    Padrão

    Ola Peregrino, na verdade essas duas regras:

    iptables -t filter -A INPUT -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

    Esta contradizendo quando vc impoe a politica padrao DROP para INPUT/OUTPUT, pq com essas linhas vc esta liberando tudo para qualquer ip da rede 192.168.0.0/24 e em qualquer porta.

    Quando voce quiser que todos as regras entrem em vigor em todos os protocolos nao precisa dar -p ALL, pelo simples fato de vc omitir o "-p" ele entendera que vc deseja aplicar aquilo a todos os protocolos.

    Citação Postado originalmente por peregrino Ver Post
    cara eu estou fazendo a mesma coisa e eu consegui fazer segue abaixo

    #! /bin/bash

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

    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT DROP
    iptables -t filter -P FORWARD DROP

    iptables -t filter -A INPUT -p ALL -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -o lo -j ACCEPT
    iptables -t filter -A INPUT -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    iptables -t filter -A FORWARD -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A FORWARD -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dports 80,53 -j ACCEPT
    iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 -m multiport --dports 80,53 -j ACCEPT
    iptables -t nat -A POSTROUTING -p ALL -o ppp0 -s 192.168.0.0/24 -d 0/0 -j MASQUERADE
    iptables -t filter -A INPUT -p TCP -s 0/0 -d 192.168.0.1 --destination-port 22 -j ACCEPT
    iptables -t filter -A OUTPUT -p TCP -d 0/0 -s 192.168.0.1 --source-port 22 -j ACCEPT

    agora gostaria de saber do pessoal se em vez de eu usar a chain FORWARD eu posso usar a OUTPUT e como ficaria a regra sendo que as regras que liberam a 80 e 53 eu troquei de FORWARD por OUTPUT e não funciono
    ou tem que ser FORWARD mesmo
    obrigado

  4. #4

    Padrão

    Kra veja bem q vc dropou tudo até a forward que é responsável por repassar o pacote entre as placas, se a sua ideia for colocar o modem em uma placa e na outra placa a LAN e quiser que todos da LAN acessem a net ai vc tem q libera o forward..

    Outra coisa que eu acho que vc deve estar tendo dificuldades é em entender a funcionalidade das tabelas, são o seguinte:
    INPUT: Manipula pacotes que entram no servidor, ou seja, se vc quer manipular um pacote que vaí entrar no servidor (que são quase todos).
    OUTPUT: Manipula pacotes que saem do servidor, ou seja, pacotes gerados pelo servidor e que ele envia na rede.
    FORWARD: Manipula pacotes que irão ser repassados de uma placa a outra no servidor, ou seja, o pacote entra na eth1 e sai pela eth0, por exemplo. Para usar esta tabela é necessário mais de uma placa de rede no server.

    Tente qd for liberar a porta 80 o seguinte:
    iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -i eth0 -p tcp --dport 80 -j ACCEPT

    Depois da uma olhadinha no guia foca pra vc entender melhor o funcionamento das tabelas e chains do iptables:
    Guia Foca GNU/Linux - Firewall iptables

  5. #5

    Post

    Citação Postado originalmente por jvictorfc Ver Post
    Ola Peregrino, na verdade essas duas regras:

    iptables -t filter -A INPUT -p ALL -s 0/0 -d 192.168.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t filter -A OUTPUT -p ALL -s 192.168.0.0/24 -d 0/0 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

    Esta contradizendo quando vc impoe a politica padrao DROP para INPUT/OUTPUT, pq com essas linhas vc esta liberando tudo para qualquer ip da rede 192.168.0.0/24 e em qualquer porta.

    Quando voce quiser que todos as regras entrem em vigor em todos os protocolos nao precisa dar -p ALL, pelo simples fato de vc omitir o "-p" ele entendera que vc deseja aplicar aquilo a todos os protocolos.
    mas aqui eu so estou liberando pacotes ESTABLISHED,RELATED,NEW e as portas continuam fechadas ou estou errado agora o -p ALL eu coloco mais para saber o que eu estou fazendo por motivos de estudo

  6. #6

    Padrão

    Ola ,

    No caso estou efetuando os testes na propria maquina firewall, ela não compatilha internet, possui apenas uma placa de rede, então o forward esta descartado ao meu ver.

    Quanto á:

    """" Tente qd for liberar a porta 80 o seguinte:
    iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -i eth0 -p tcp --dport 80 -j ACCEPT""""

    É exatamente o que estou tentando fazer, entretanto a diferenca é que não quero liberar o acesso na porta 80 dessa minha mesma máquina como vc citou na primeira regra. Libera tudo que chega na INPUT com destino a porta 80. Tudo que eu quero é fazer essa mesma maquina onde estou configurando o firewall acessar apenas web. Obrigado



    Citação Postado originalmente por tuxson Ver Post
    Kra veja bem q vc dropou tudo até a forward que é responsável por repassar o pacote entre as placas, se a sua ideia for colocar o modem em uma placa e na outra placa a LAN e quiser que todos da LAN acessem a net ai vc tem q libera o forward..

    Outra coisa que eu acho que vc deve estar tendo dificuldades é em entender a funcionalidade das tabelas, são o seguinte:
    INPUT: Manipula pacotes que entram no servidor, ou seja, se vc quer manipular um pacote que vaí entrar no servidor (que são quase todos).
    OUTPUT: Manipula pacotes que saem do servidor, ou seja, pacotes gerados pelo servidor e que ele envia na rede.
    FORWARD: Manipula pacotes que irão ser repassados de uma placa a outra no servidor, ou seja, o pacote entra na eth1 e sai pela eth0, por exemplo. Para usar esta tabela é necessário mais de uma placa de rede no server.

    Tente qd for liberar a porta 80 o seguinte:
    iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -i eth0 -p tcp --dport 80 -j ACCEPT

    Depois da uma olhadinha no guia foca pra vc entender melhor o funcionamento das tabelas e chains do iptables:
    Guia Foca GNU/Linux - Firewall iptables

  7. #7

    Padrão

    Vc esta esquecendo da porta 53, q e o DNS, tem q liberar tb na OUTPUT, ja q vc colocou como polita DROP.

    vlw, posta ae se deu certo...

  8. #8

    Padrão

    Isso realmente tinha passado desapercebido, apesar de contas como iria ser feito a requisicao antes do acesso a web? Obrigado amigo!

    Citação Postado originalmente por wppitpmp Ver Post
    Vc esta esquecendo da porta 53, q e o DNS, tem q liberar tb na OUTPUT, ja q vc colocou como polita DROP.

    vlw, posta ae se deu certo...

  9. #9