+ Responder ao Tópico



  1. #1
    fisiconuclear18
    Visitante

    Padrão Problemas com meu script de firewall alguem pode por favor olhar?

    Pessoal, coloquei esse script de firewall, com dhcp, as maquinas receberam os ips, blz, mas elas nao saem para a internet.Nao sei porque, to collocando meu script de firewall, por favor, alguem de uma olhada e me de essa ajuda...Nao sei o que pode ser, o ipv4 está 1 e coloquei Mascaramento.
    Segue o script
    #!/bin/bash
    iniciar(){
    IPTABLES="iptables"
    REDE="192.168.2.0/24"
    IFACE="eth0"
    # Comecar com uma mensagem para informar que estamos vivos !
    echo "Inicializando o firewal..."
    # Iniciando o servico sujo, inicializado o firewall...
    echo "Limpando regras e colocando os modulos..."
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -X
    $IPTABLES -t nat -X
    # Definindo politica padrão de DITADURA ! ninguém passa !
    echo "Política de ditadura, ninguém passa..."
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
    # Informar mais coisas...
    echo "Ajustando opcoes do kernel..."
    # Ligando protecao do kernel para IP spoof...
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
    # Ajustando configuracao de TCP timestamps...
    echo 1 > /proc/sys/net/ipv4/tcp_timestamps 2> /dev/null
    # Habilitando protecao TCP SYN Cookie...
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route 2> /dev/null
    # Habilitar log de marcianos...
    echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 2> /dev/null
    echo 1 > /proc/sys/net/ipv4/conf/default/log_martians 2> /dev/null
    # Habilitando trabalho normal do Loopback...
    $IPTABLES -A INPUT -i lo -j ACCEPT
    $IPTABLES -A OUTPUT -o lo -j ACCEPT
    # Relatar os progressos...
    echo "Definindo as regras do firewall, se segurem !"
    # Criar chains para lidar com o trabalho sujo...
    # Regra para os pacotes descartados...
    $IPTABLES -N descartado2
    $IPTABLES -A descartado2 -j LOG --log-prefix "DESCARTADO " --log-level debug --
    log-ip-options --log-tcp-options --log-tcp-sequence
    $IPTABLES -A descartado2 -j DROP
    $IPTABLES -N descartado
    $IPTABLES -A descartado -j descartado2
    # Regra para pacotes rejeitados oficialmente...
    $IPTABLES -N rejeitado2
    $IPTABLES -A rejeitado2 -p tcp -j REJECT --reject-with tcp-reset
    $IPTABLES -A rejeitado2 -p udp -j REJECT --reject-with icmp-port-unreachable
    $IPTABLES -A rejeitado2 -j DROP
    $IPTABLES -N rejeitado
    $IPTABLES -A rejeitado -j rejeitado2
    # Regra para pacotes abortados...
    $IPTABLES -N abortado2
    #!/bin/bash
    iniciar(){
    IPTABLES="iptables"
    REDE="192.168.2.0/24"
    IFACE="eth0"
    # Comecar com uma mensagem para informar que estamos vivos !
    echo "Inicializando o firewal..."
    # Iniciando o servico sujo, inicializado o firewall...
    echo "Limpando regras e colocando os modulos..."
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -X
    $IPTABLES -t nat -X
    # Definindo politica padrão de DITADURA ! ninguém passa !
    echo "Política de ditadura, ninguém passa..."
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
    # Informar mais coisas...
    echo "Ajustando opcoes do kernel..."
    # Ligando protecao do kernel para IP spoof...
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
    # Ajustando configuracao de TCP timestamps...
    echo 1 > /proc/sys/net/ipv4/tcp_timestamps 2> /dev/null
    # Habilitando protecao TCP SYN Cookie...
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route 2> /dev/null
    # Habilitar log de marcianos...
    echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 2> /dev/null
    echo 1 > /proc/sys/net/ipv4/conf/default/log_martians 2> /dev/null
    # Habilitando trabalho normal do Loopback...
    $IPTABLES -A INPUT -i lo -j ACCEPT
    $IPTABLES -A OUTPUT -o lo -j ACCEPT
    # Relatar os progressos...
    echo "Definindo as regras do firewall, se segurem !"
    # Criar chains para lidar com o trabalho sujo...
    # Regra para os pacotes descartados...
    $IPTABLES -N descartado2
    $IPTABLES -A descartado2 -j LOG --log-prefix "DESCARTADO " --log-level debug --
    log-ip-options --log-tcp-options --log-tcp-sequence
    $IPTABLES -A descartado2 -j DROP
    $IPTABLES -N descartado
    $IPTABLES -A descartado -j descartado2
    # Regra para pacotes rejeitados oficialmente...
    $IPTABLES -N rejeitado2
    $IPTABLES -A rejeitado2 -p tcp -j REJECT --reject-with tcp-reset
    $IPTABLES -A rejeitado2 -p udp -j REJECT --reject-with icmp-port-unreachable
    $IPTABLES -A rejeitado2 -j DROP
    $IPTABLES -N rejeitado
    $IPTABLES -A rejeitado -j rejeitado2
    # Regra para pacotes abortados...
    $IPTABLES -N abortado2
    $IPTABLES -A abortado2 -j LOG --log-prefix "ABORTADO " --log-level debug --logip-
    options --log-tcp-options --log-tcp-sequence
    $IPTABLES -A abortado2 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -N abortado
    $IPTABLES -A abortado -m limit --limit 1/second --limit-burst 10 -j abortado2
    $IPTABLES -A abortado -m limit --limit 2/minute --limit-burst 1 -j LOG --logprefix
    "LIMITADO " --log-level debug
    # Criar chains para trabalhar com diferentes protocolos...
    $IPTABLES -N PACOTES_TCP
    $IPTABLES -N PACOTES_TCP_ENTRADA
    $IPTABLES -N PACOTES_TCP_SAIDA
    $IPTABLES -N PACOTES_UDP
    $IPTABLES -N PACOTES_UDP_ENTRADA
    $IPTABLES -N PACOTES_UDP_SAIDA
    $IPTABLES -N PACOTES_ICMP
    #################################################
    # Criar conteudo das regras do filtro PACOTES_TCP
    # Relatar coneccoes abortadas...
    $IPTABLES -A PACOTES_TCP -m state --state ESTABLISHED,RELATED -p tcp --tcpflags
    RST RST -j abortado
    # Permitir o transito de pacotes de coneccoes estabelecidas primeiro pelo meu
    computador...
    $IPTABLES -A PACOTES_TCP -m state --state ESTABLISHED,RELATED -p tcp -j ACCEPT
    #########################################################
    echo "Aqui começa o esquema..."
    # Criar conteudo das regras do filtro PACOTES_TCP_ENTRADA
    # Chama a regra basica, oque não passar vai pro inferno... (DROP)
    # Permitir comunicação com a rede interna na rede ip definida em REDE...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -s $REDE -i $IFACE -j ACCEPT
    # POP3: Permitir handshaking com o servidor POP remoto...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --sport 1024:65535 --dport 110:110 -m
    state --state NEW -j ACCEPT
    # Mandar pro inferno portscans em tcp...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags ALL FIN,URG,PSH -j
    abortado
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,RST SYN,RST -j
    abortado
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,FIN SYN,FIN -j
    abortado
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-option 64 -j abortado
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-option 128 -j abortado
    # Evitar portscanners ocultos...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,ACK,FIN,RST
    SYN,ACK,FIN -m limit --limit 1/s -j ACCEPT
    # Evitar ataques SYN-FLOOD
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -m limit --limit 1/s -j ACCEPT
    # Regras adicionais para entrads TCP devem vir aqui...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -j PACOTES_TCP
    # Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
    inferno...
    $IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -j descartado
    # Criar conteudo das regras do filtro PACOTES_TCP_SAIDA
    # Permitir comunicação com a rede interna na rede ip definida em REDE...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp -d $REDE -o $IFACE -j ACCEPT
    # POP3: Permitir coneccao da maquina atual para a porta 110 de um servidor
    remoto...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 110:110 -m state
    --state NEW -j ACCEPT
    # SMTP: Permitir coneccao da maquina atual para a porta 25 de um servidor
    remoto...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 25:25 -m state
    --state NEW -j ACCEPT
    # DNS: Permitir a troca de informacoes entre a maquina atual e o servidor de
    DNS...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 53:53 -m state
    --state NEW -j ACCEPT
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 53:53 -j ACCEPT
    # HTTP: Permitir que a maquina local se comunique com um servidor remoto na
    porta tcp:80...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 1024:65535 --dport 80:8085 -m
    state --state NEW -j ACCEPT
    # HTTPS: Permitir que a maquina local se comunique com um servidor remoto
    SEGURO na porta tcp:443...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 443:443 -m state
    --state NEW -j ACCEPT
    # FTP: Permitir que a maquina local se comunique com um servidor remoto na
    porta tcp:21...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 21:21 -m state
    --state NEW -j ACCEPT
    # Aplicar regra generica para pacotes TCP que saem...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp -j PACOTES_TCP
    # Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
    inferno...
    $IPTABLES -A PACOTES_TCP_SAIDA -p tcp -j descartado
    #################################################
    # Criar conteudo das regras do filtro PACOTES_UDP
    # Permitir o transito de pacotes de coneccoes estabelecidas primeiro pelo meu
    computador...
    $IPTABLES -A PACOTES_UDP -m state --state ESTABLISHED,RELATED -p udp -j ACCEPT
    #########################################################
    echo "O que nao passar aqui vai pro inferno.."
    # Criar conteudo das regras do filtro PACOTES_UDP_ENTRADA
    # Chama a regra basica, oque não passar vai pro inferno... (DROP)
    # Regras adicionais para entrads UPD devem vir aqui...
    # Permitir comunicação com a rede interna na rede ip definida em REDE...
    $IPTABLES -A PACOTES_UDP_ENTRADA -p udp -s $REDE-i $IFACE -j ACCEPT
    # Aplicacao de regras genericas para pacotes UDP...
    $IPTABLES -A PACOTES_UDP_ENTRADA -p udp -j PACOTES_UDP
    # Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
    inferno...
    $IPTABLES -A PACOTES_UDP_ENTRADA -p udp -j descartado
    #######################################################
    # Criar conteudo das regras do filtro PACOTES_UDP_SAIDA
    # Permitir comunicação com a rede interna na rede ip definida em REDE...
    $IPTABLES -A PACOTES_UDP_SAIDA -p udp -d $REDE -o $IFACE -j ACCEPT
    $IPTABLES -A PACOTES_UDP_SAIDA -p udp -j PACOTES_UDP
    # DNS: Permitir a troca de informacoes entre a maquina atual e o servidor de
    DNS...
    $IPTABLES -A PACOTES_UDP_SAIDA -p udp --sport 0:65535 --dport 53:53 -j ACCEPT
    # HTTPS: Permitir que a maquina local se comunique com um servidor remoto
    SEGURO na porta udp:443...
    $IPTABLES -A PACOTES_UDP_SAIDA -p udp --sport 0:65535 --dport 443:443 -m state
    --state NEW -j ACCEPT
    # Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
    inferno...
    $IPTABLES -A PACOTES_UDP_SAIDA -p udp -j descartado
    #####################################################
    # Criar conteudo das regras do filtro PACOTES_ICMP...
    $IPTABLES -A PACOTES_ICMP -p icmp --icmp-type destination-unreachable -j ACCEPT
    $IPTABLES -A PACOTES_ICMP -p icmp --icmp-type time-exceeded -j ACCEPT
    $IPTABLES -A PACOTES_ICMP -p icmp --icmp-type parameter-problem -j ACCEPT
    # Evitar os pings da morte...
    $IPTABLES -A PACOTES_ICMP -p icmp --icmp-type echo-request -m limit --limit 1/s
    -j ACCEPT
    $IPTABLES -A PACOTES_ICMP -p icmp -s $REDE -j ACCEPT
    # MASQUERADE: Destino para pacotes descartados na tabela NAT...
    $IPTABLES -t nat -N descart-nat
    $IPTABLES -t nat -A descart-nat -j LOG --log-prefix "DESCARTADO-NAT " --loglevel
    debug --log-ip-options --log-tcp-options --log-tcp-sequence
    $IPTABLES -t nat -A descart-nat -j DROP
    # Todos pacotes da rede 192,168.2.0 que não forem de nossa interface
    # de rede, configurada para 192.168.2.0, serão enviados pro inferno...
    $IPTABLES -t nat -A PREROUTING -s $REDE -i ! $IFACE -j descart-nat
    # Teste para o funcionamento do proxy transparente com squid...
    $IPTABLES -t nat -A PREROUTING -s $REDE -i $IFACE -p tcp --dport 80 -j
    REDIRECT --to-port 3128
    # MASQUERADE: Permitir que a rede 192.168.2.0/24 acesse a internet sempre
    # passando por todas regras do firewall antes...
    $IPTABLES -t nat -A POSTROUTING -s $REDE -o $IFACE -j MASQUERADE
    # Habilitando o Masquerade SNAT...
    echo "1" > /proc/sys/net/ipv4/ip_forward
    # Classificar as entradas entre os chains principais...
    # Classificar pelos pacotes TCP...
    $IPTABLES -A INPUT -p tcp -j PACOTES_TCP_ENTRADA
    $IPTABLES -A OUTPUT -p tcp -j PACOTES_TCP_SAIDA
    $IPTABLES -A FORWARD -i $IFACE -j ACCEPT
    $IPTABLES -A FORWARD -p tcp -j PACOTES_TCP
    # Classificar pelos pacotes UDP...
    $IPTABLES -A INPUT -p udp -j PACOTES_UDP_ENTRADA
    $IPTABLES -A OUTPUT -p udp -j PACOTES_UDP_SAIDA
    $IPTABLES -A FORWARD -p udp -j PACOTES_UDP
    # Classificar pelos pacotes ICMP...
    $IPTABLES -A INPUT -p icmp -j PACOTES_ICMP
    $IPTABLES -A OUTPUT -p icmp -j PACOTES_ICMP
    $IPTABLES -A FORWARD -p icmp -j PACOTES_ICMP
    # TOS: Ajusta o TOS do pacote IP para Minimizar retardo no transporte...
    $IPTABLES -t mangle -A POSTROUTING -p tcp -j TOS --set-tos Minimize-Delay
    $IPTABLES -t mangle -A POSTROUTING -p udp -j TOS --set-tos Minimize-Delay
    # Relatar o fim do servico sujo...
    echo "Configuracao do firewall finalizada..."
    echo "Começou a choradeira..."
    }
    case "$1" in
    "start")
    iniciar
    ;;
    "stop")
    parar
    ;;
    *)
    echo $"Use os parametros start ou stop"
    exit 1
    esac
    exit $?

  2. #2

    Padrão Re: Problemas com meu script de firewall alguem pode por favor olhar?

    posso ter ficado meio cego mas acho que falta o segunte

    iptables -A FORWARD -s REDEINTERNA -d 0/0 -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

  3. #3
    fisiconuclear18
    Visitante

    Padrão Re: Problemas com meu script de firewall alguem pode por favor olhar?

    Tá, vou testar elas, mas aonde eu posso colocá-las, faz diferença em qual lugar eu as colocar dentro do meu script?

  4. #4

    Padrão Re: Problemas com meu script de firewall alguem pode por favor olhar?

    no teu caso em qq lugar deve resolver, nao li o script todo mas sei lah acho que vc tem coisa d+ desnecessaria

  5. #5

    Padrão Re: Problemas com meu script de firewall alguem pode por favor olhar?

    Muita coisa mesmo fica ate dificil de se achar, um conselho seria vc pelo menos dar um espaço entre uma regra e outra, e sempre fazer um breve comentario !!!


    Valeu !!!