+ Responder ao Tópico



  1. #1

    Padrão Novo firewall não navega;

    Bom dia pessoal, virtuaizei as maquinas aqui e criei um novo firewall, porem ele roda um apache para autenticar o squid, é uma pagina html com 2 campos e faz a autenticação com squid usuario e senha talz, so que no meu firewall tem accept para a porta 80 dele e preciso fazer o OUTPUT para web porem os pacotes para fora da rede não estão mais navegando, alguem pode me dar uma luz, pq eu consigo resolver nomes externos e pingar fora da rede mais navegar bulhufas. vlw !!!

    #Ativando Nat
    modprobe iptable_nat
    modprobe ip_nat_ftp
    modprobe ip_conntrack_ftp
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    #Rota redes
    ip route add 192.168.2.0/24 via 192.168.1.251
    ip route add 192.168.3.0/24 via 192.168.1.49

    #Setup default policy
    for i in INPUT FORWARD OUTPUT; do iptables -P $i DROP; done

    #loopback
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    #STATE RETURN
    for i in INPUT FORWARD OUTPUT; do iptables -A $i -m state --state ESTABLISHED,R$

    #Ports INPUT Free
    #SSH
    iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

    #WEB
    iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
    for i in 1 2 3; do iptables -A INPUT -p tcp -s 192.168.$i.0/24 --dport 80 -j -j ACCEPT; done

    #DNS
    for i in tcp udp; do iptables -A INPUT -p $i --dport 53 -j ACCEPT; done
    for i in tcp udp; do iptables -A OUTPUT -p $i --dport 53 -j ACCEPT; done

    #ICMP
    for i in INPUT OUTPUT; do iptables -A $i -p icmp -j ACCEPT

    Obrigado.

  2. #2

    Padrão Meu exemplo de firewall

    Enviei um anexo em .zip e dentro dele tem um arquivo que uso para fazer o compatilhamento e outro para o firewall.
    Faço assim porque as vezes desativo o firewall, mas mantenho o compartilhamento.

    Não entendi por trabalhar diferente o seu INPUT FOWARD OUTPUT COM DROP antes das regras de liberação.
    Bom como sou um pouco antigo no uso de Linux, (14 a 15) ainda trabalho com regras sem a programação condicional if, for, while e outros...
    Arquivos Anexos Arquivos Anexos



  3. #3

    Padrão

    Problema do seu firewall não tem uma potica padrão, e tb não tem nenhum drop mais vlw !!!

    Mais alguma dica ?

  4. #4



  5. #5

    Padrão Veja algumas sínteses

    Segue abaixo uma lista de comandos básicos do Iptables com exemplos explicativos:

    -A: Adiciona uma nova entrada no fim da lista de regras:Exemplo que adiciona uma nova regra no final da lista referente a INPUT chain:

    # iptables -A INPUT

    -D: Apaga uma regra especificada da lista:
    Exemplo que apaga a regra inserida anteriormente apenas trocando o comando -A por -D:
    #iptables -D INPUT
    Obs: O comando -D também permite apagar uma certa regra por seu número da lista de ocorrências do Iptables.
    Exemplo que apaga a regra de número 2 referente a FORWARD chain:

    # iptables -D FORWARD 2

    -L: Lista as regras existentes na lista:

    Exemplo que mostra a lista das regras existentes:
    # iptables -L FORWARD
    -P: Altera a política padrão das chains. Inicialmente, todas as chains de um tabela estão setadas como ACCEPT, ou seja, aceitam todo e qualquer tipo de tráfego.

    Exemplo que
    modifica a política padrão da chain FORWARD que ao invés de ser direcionada para o alvo ACCEPT, será direcionada para o alvo DROP. Um pacote direcionado ao alvo DROP é descartado pelo sistema:

    # iptables -P FORWARD DROP
    -F: Este comando é capaz de remover todas as entradas da lista de chains, sem alterar a política padrão.

    Exemplo que remove todas as regras existentes:
    # iptables -F

    Exemplo que remove todas as regras existentes referentes a OUTPUT chain:

    # iptables -F OUTPUT
    -I: Insere uma nova regra ao início da lista de regras (Ao contrário do comando -A, que insere ao final da lista)# iptables -I OUTPUT
    -R: Substitui uma regra já adiciona por outra:

    Exemplo que
    substitui a segunda regra referente à FORWARD chain pela seguinte: " -s 10.0.40.3 -d 10.0.30.0/8 -j DROP" :
    # iptables -R FORWARD 2 -s 10.0.40.3 -d 10.0.30.0/8 -j DROP

    -N: Este comando nos permite inserir/criar uma nova chain na tabela especificada.
    Exemplo que cria uma nova chain chamada internet na tabela filter:
    # iptables -t filter -N internet
    -E: Renomeia uma nova chain (Que tenha sido criada pelo administrador do Firewall):

    Exemplo que renomeia a chain internet para INTERNET:

    # iptables -E internet INTERNET
    -X: Apaga uma chain criada pelo administrador do Firewall

    Exemplo que remove a chain criada e renomeada anteriormente:
    # iptables -X INTERNET

  6. #6

    Padrão Polica padrão

    Eu sempre coloca as regras e depois aplico as politicas, mas porque dropar a polica padrão?
    Não seria bom deixar em ACCEPT, fazer uns testes e depois aplicar um politica padrão?

    Além do mais em termos de acesso a sites o REJECT OU DROP não faz diferença.
    Agora em termo de SSH por exemplo o REJECT manda um resposta e DROP fica calado.

    Aqui eu consigo barrar tudo que quero e o que tem que funcionar funciona...



  7. #7

    Padrão

    A politica padrão DROP é bom quando tudo tem que ser barrado e você não via navegar em nada.
    O problema que ao colocar por exemplo.
    iptables -A OUTPUT -p all -d Meebo - Connecting AIM, MSN, Yahoo, Facebook, MySpace messengers -j ACCEPT >>> simplezmente o iptables não vai encontrar o endereço pois o iptables precisa alcançar o host para endereçá-lo. Talves configurando as tabelas e depois usando a politica desejada funcione. Aqui tentei do seu jeito e não navegou. Mas mantive a politica como ACCEPT e só no final dropei tudo que não estava nas regras acima e funcionou

  8. #8

    Padrão Segue...

    Onde está o mascaramento da Interface?!?!?!

    Procurei e não ví... a menos que esteja enganado!

    mtec



  9. #9

    Padrão tentando entender e sanar duvidas

    Eu faço o mascaramento em separado em minha rede.
    E a questão da política padrão eu entendi, só porque sempre ativam a política padrão depois de
    ter feito todas a regras. Ou pelo menos fazem como este script abaixo.

    Estou interessado em seu trabalho, e sei que vou aprender coisas novas. Sabe que acabamos
    por ficar em uma coisa só e isso não é bom, pois bugs podem estar presentes e temos que estar sempre atualizados.

    Dê uma olhada neste script abaixo e comente o que você achou.
    Desde já, obrigado pela atenção.

    Vai um firewall que achei legal por ter uma boa estrutura e fácil de fazer adaptações.

    #!/bin/bash
    #
    # Script criado por Igor Garcia


    # Local para o executavel do IPTables
    IPT=`which iptables`;

    # Interface da rede INTERNA
    IF_INTERNA="eth0";

    # Interface da rede EXTERNA
    IF_EXTERNA="eth1";

    # Definição da rede interna
    REDE_INTERNA="192.168.1.0/24"


    fw_start()
    {
    #ativa o roteamento dinamico
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo 1 > /proc/sys/net/ipv4/ip_dynaddr


    # ================ POLITICAS PADRAO ===================
    $IPT -t filter -P INPUT DROP
    $IPT -t filter -P FORWARD DROP
    $IPT -t filter -P OUTPUT ACCEPT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT
    $IPT -t nat -P OUTPUT ACCEPT
    $IPT -t mangle -P PREROUTING ACCEPT
    $IPT -t mangle -P POSTROUTING ACCEPT
    $IPT -t mangle -P OUTPUT ACCEPT
    $IPT -t mangle -P INPUT ACCEPT
    $IPT -t mangle -P FORWARD ACCEPT

    # Cria chain com regras de segurança
    $IPT -N BLOCK
    $IPT -A BLOCK -p icmp --icmp-type echo-request -j DROP
    $IPT -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    $IPT -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
    $IPT -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
    $IPT -A BLOCK -m unclean -j DROP
    $IPT -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A BLOCK -j LOG --log-prefix "FW_ALERT: "
    $IPT -A BLOCK -j DROP

    # Muda a prioridade dos pacotes (Type Of Service) para agilizar as coisas
    $IPT -t mangle -A OUTPUT -o $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j TOS --set-tos 0x10

    # Libera todo o trafego local
    $IPT -t filter -A INPUT -i lo -j ACCEPT
    $IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT
    $IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT
    # Libera só FTP, SSH e WEB
    $IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j ACCEPT

    # Libera a conexao para a rede interna
    $IPT -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE

    # Cria um NAT para o SSH de uma maquina da rede interna
    $IPT -t filter -A FORWARD -p tcp -d 0/0 --dport 2222 -j ACCEPT
    $IPT -t nat -A PREROUTING -p tcp -d 0/0 --dport 2222 -j DNAT --to 192.168.1.2:22

    # Regras para evitar packet flood
    $IPT -A INPUT -j BLOCK
    $IPT -A FORWARD -j BLOCK
    }

    fw_stop()
    {
    $IPT -t filter -P INPUT ACCEPT
    $IPT -t filter -P FORWARD ACCEPT
    $IPT -t filter -P OUTPUT ACCEPT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT
    $IPT -t nat -P OUTPUT ACCEPT
    $IPT -t mangle -P PREROUTING ACCEPT
    $IPT -t mangle -P POSTROUTING ACCEPT
    $IPT -t mangle -P OUTPUT ACCEPT
    $IPT -t mangle -P INPUT ACCEPT
    $IPT -t mangle -P FORWARD ACCEPT
    $IPT -t filter -F
    $IPT -t nat -F
    $IPT -t mangle -F
    $IPT -t filter -X
    $IPT -t nat -X
    $IPT -t mangle -X
    $IPT -t filter -Z
    $IPT -t nat -Z
    $IPT -t mangle -Z
    }

    fw_usage()
    {
    echo
    echo "$0 (start | stop | restart | clear)"
    echo
    echo "start - Ativa o firewall"
    echo "stop - Desativa o firewall"
    echo "restart - Reativa o firewall"
    echo "clear - Limpa os contatores"
    }

    fw_clear()
    {
    $IPT -t filter -Z
    $IPT -t nat -Z
    $IPT -t mangle -Z
    }

    case $1 in

    start)
    fw_start;
    ;;

    stop)
    fw_stop;
    ;;

    restart)
    fw_stop;
    fw_start;
    ;;

    clear)
    fw_clear;
    ;;
    *)
    fw_usage;
    exit;

    ;;

    esac

  10. #10

    Padrão

    Meu masquerade exemplo

    modprobe ip_tables
    modprobe iptable_nat

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



  11. #11