+ Responder ao Tópico



  1. #1
    fisiconuclear18
    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. 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
    Tá, vou testar elas, mas aonde eu posso colocá-las, faz diferença em qual lugar eu as colocar dentro do meu script?

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



  5. 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 !!!






Tópicos Similares

  1. Problema com atualização de sistema (alguém pode ajudar)
    Por oliari no fórum Assuntos não relacionados
    Respostas: 3
    Último Post: 03-06-2016, 07:03
  2. Respostas: 8
    Último Post: 30-01-2012, 09:54
  3. Problemas com meu servidor de EMAIL
    Por djronanc no fórum Servidores de Rede
    Respostas: 14
    Último Post: 30-09-2011, 11:31
  4. Meu script de firewall, alguém pode dar uma olhada?
    Por fisiconuclear18 no fórum Servidores de Rede
    Respostas: 3
    Último Post: 25-11-2005, 10:27
  5. Mensagem quando executo meu script de firewall
    Por Wal no fórum Servidores de Rede
    Respostas: 8
    Último Post: 09-11-2003, 02:13

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L