Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. #21
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Citação Postado originalmente por fdotta
    coloca elas por ultimo... falando nisso era bom vc dar um organizanda no teu script.... ahhh e inclui estas linhas no comeco

    Código :
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP
     
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -m state --state NEW -i INTERFACE_INTERNA -j ACCEPT

    E nao se esqueca de trocar os "INTERFACE_INTERNA" e "INTERFACE_EXTERNA" pelas suas respectivas interfaces (eth0, eth1, etc...)

    [] Dotta :twisted:


    O que faz essas ?

  2. #22

    Padrão Configurar Ig no E-mail usando iptables

    Elas sao para (na ordem):
    - Regra geral de INPUT - DROP
    - Regra geral de OUTPUT - ACCEPT
    - Rgera geral de FORWARD - DROP
    - Regra para quando uma coneccao feita (estabelecida) de dentra da sua rede para fora (ex. navegacao www) ela seja aceita no INPUT
    - Regra para quando uma coneccao nova de dentra da sua rede para fora ela seja aceita no INPUT.


    E ai funcionou.... se nao funcionar eu posso te mandar um scrip de firewall mais simple para vc, mas um que funciona com tudo....

    [] Dotta :twisted:

  3. #23
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Ainda não coloquei essas ultimas regras, mas já esta fiuncionando..., vou te mandar o scan do meu IP, acho que tem muita coisa aberta, vou colocar essas novas regras e escanear novamente, depois te passo por e-mail pra vc me dizer c tá ruim ou não blz ?


    Atenciosamente
    angkor

  4. #24

    Padrão Configurar Ig no E-mail usando iptables

    uma coisa que era bom vc fazer é organozar se script do firewall, isso vai te ajudar a controlar e melhorar seu firewall. Mas manda o scan da sua rede sim... e como ja lhe falei antes eu posso te mandar um script de firewall com tudp bloqueado, ai vc so adiciona o que vc quer desblorear....

    [] Dotta :twisted:

  5. #25
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Manda pra mim então seu script !!!

    Qual seria a sequencia ideal para esse script que coloquei ai ?

    angkor

  6. #26

    Padrão Configurar Ig no E-mail usando iptables

    Uma sequencia ideal... é uma sequencia organzada... por ex... primeiro os policiys (regras gerais), protecoes extras, depois portas liberadas,..., roteamento de rede....

    Quanto ao script va vou mandar.... deixa eu dar uma editada para vc. O meu tem muita coisa.... redirecionamentos, etc...

    [] Dotta :twisted:

  7. #27

    Padrão Configurar Ig no E-mail usando iptables

    Angkor,
    Como lhe promenti o script para firewall, vc vai ter que dar umas editadas nele... mas da uma olhada e qualquer coisa vc me pergunta. Ahh outra coisa ta tudo fechado, so libera o que vc precisar tá... nao é necessario liberar as portas 25 e 100 para e-mail, vc so liberar as portas que necessitam conexao de origem externa... no caso do e-mail as origens so internas.

    firewall.rc
    #! /bin/sh
    # **********************************************
    # * -=- Configuracao do FIREWALL -=- *
    # * *
    # * Criado por: Fernando Dotta *
    # * Ultima Mod.: 05/05/2004 *
    # * *
    # * Adaptadores de Rede *
    # * ------------------- *
    # * *
    # * ppp0: coneccao speedy *
    # * eth0: rede externa (internet) ligado na ppp0 *
    # * eth1: servidor apache (www) - nao implementado *
    # * *
    # ************************************************************

    IPTABLES="/bin/iptables"

    INTERNAL_INTERFACE="eth1"
    EXTERNAL_INTERFACE_1="ppp0"
    LAN="10.0.0.0/24"


    # -=- [ Pega numero do IP do Speedy ] -=-
    #
    # preip=`ip -4 addr list ppp0 | awk '{print $2}'`
    # IP=`echo $preip | awk '{print $2}'`

    # -=- [ Abilita IP FORWARD ] -=-
    echo "1" > /proc/sys/net/ipv4/ip_forward

    # -=- [ Apaga todas as resgras do Firewall ] -=-
    $IPTABLES -F
    $IPTABLES -Z
    $IPTABLES -X
    $IPTABLES -t nat -F
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -F
    $IPTABLES -t mangle -X
    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP
    $IPTABLES -P OUTPUT ACCEPT

    # -=- [ Protecao de entrada (INPUT) ] -=-
    $IPTABLES -I INPUT -i lo -j ACCEPT
    $IPTABLES -I OUTPUT -o lo -j ACCEPT
    $IPTABLES -I INPUT -i ! lo -s 127.0.0.0/255.0.0.0 -j DROP
    $IPTABLES -A INPUT -p tcp ! --syn -i $INTERNAL_INTERFACE -j ACCEPT
    $IPTABLES -A INPUT -s 172.16.0.0/12 -i $INTERNAL_INTERFACE -j DROP
    $IPTABLES -A INPUT -s 224.0.0.0/4 -i $INTERNAL_INTERFACE -j DROP
    $IPTABLES -A INPUT -s 240.0.0.0/5 -i $INTERNAL_INTERFACE -j DROP

    # -=- [ Regras Gerais do Firewall ] -=-
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P FORWARD DROP

    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -m state --state NEW -i $INTERNAL_INTERFACE -j ACCEPT

    # -=- [ Servicos Externos Permitidos na interface externa ] -=-
    # $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE_1 -s 0/0 -p tcp --dport 21 -j ACCEPT
    # $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE_1 -s 0/0 -p tcp --dport 22 -j ACCEPT
    # $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE_1 -s 0/0 -p tcp --dport 23 -j ACCEPT
    # $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE_1 -s 0/0 -p tcp --dport 80 -j ACCEPT
    # $IPTABLES -A INPUT -i $EXTERNAL_INTERFACE_1 -s 0/0 -p tcp --dport 443 -j ACCEPT

    # -=- [ Protecoes Extras ] -=-
    $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
    $IPTABLES -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
    $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    $IPTABLES -A FORWARD -p tcp --dport 135 -i $INTERNAL_INTERFACE -j REJECT
    $IPTABLES -N syn-flood
    $IPTABLES -A INPUT -i $INTERNAL_INTERFACE -p tcp --syn -j syn-flood
    $IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
    $IPTABLES -A syn-flood -j DROP
    #
    # OBS: [ Protecoes Extras ] 1) protecao contra pacotes indesejaveis
    # 2) protecao contra syn-flood
    # 3) protecao contra ping da morte
    # 4) protecao contra worms
    # 5-8) protecao contra IP spoofing

    # -=- [ Portas Bloqueadas (MSN) ] -=-
    # $IPTABLES -A FORWARD -s LAN -p tcp --dport 1863 -j REJECT
    # $IPTABLES -A FORWARD -s LAN -d loginnet.passport.com -j REJECT
    #
    # -=- [ Portas Bloqueadas (MSN) ] -=-
    # $IPTABLES -A FORWARD -s LAN -d webmessenger.msn.com -j REJECT
    #
    # -=- [ Liberacao do VPN ] -=-
    # $IPTABLES -A INPUT -p udp -i $EXTERNAL_INTERFACE_1 --sport 500 --dport 500 -j ACCEPT
    # $IPTABLES -A OUTPUT -p udp -o $EXTERNAL_INTERFACE_1 --sport 500 --dport 500 -j ACCEPT
    # $IPTABLES -A INPUT -p udp --sport 500 --dport 500 -j ACCEPT
    # $IPTABLES -A OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT
    # $IPTABLES -A INPUT -p 50 -i $EXTERNAL_INTERFACE_1 -j ACCEPT
    # $IPTABLES -A OUTPUT -p 50 -o $EXTERNAL_INTERFACE_1 -j ACCEPT
    # $IPTABLES -A INPUT -p 50 -j ACCEPT
    # $IPTABLES -A OUTPUT -p 50 -j ACCEPT
    # $IPTABLES -A FORWARD -d $LOCALNET -j ACCEPT
    # $IPTABLES -A FORWARD -s $LOCALNET -i $INTERNAL_INTERFACE -j ACCEPT

    # -=- [ Roteamento da REDE ] -=-
    $IPTABLES -A INPUT -j DROP
    $IPTABLES -F FORWARD
    $IPTABLES -t nat -F

    $IPTABLES -A FORWARD -i $EXTERNAL_INTERFACE_1 -o $INTERNAL_INTERFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE_1 -j ACCEPT
    # $IPTABLES -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE_1 -j SNAT --to $IP
    $IPTABLES -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE_1 -j MASQUERADE

    # -=- [ Logs ] -=-
    $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW syn: "
    $IPTABLES -A INPUT -p tcp --dport 21 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
    $IPTABLES -A INPUT -p tcp --dport 23 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
    $IPTABLES -A INPUT -p tcp --dport 25 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
    $IPTABLES -A INPUT -p tcp --dport 80 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
    $IPTABLES -A INPUT -p tcp --dport 110 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
    $IPTABLES -A INPUT -p udp --dport 111 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
    $IPTABLES -A INPUT -p tcp --dport 113 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
    # $IPTABLES -A INPUT -p tcp --dport 137:139 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    # $IPTABLES -A INPUT -p udp --dport 137:139 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    # $IPTABLES -A INPUT -p tcp --dport 161:162 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
    # $IPTABLES -A INPUT -p tcp --dport 6667:6668 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
    # $IPTABLES -A INPUT -p tcp --dport 3128 -i $EXTERNAL_INTERFACE_1 -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "

    # -=- [ Diminuindo DELAY de sevicos especiais ] -=-
    # $IPTABLES -t mangle -A INPUT -p tcp --dport 22 -j TOS --set-to Minimize-Delay
    # $IPTABLES -t mangle -A INPUT -p tcp --dport 80 -j TOS --set-to Minimize-Delay
    # $IPTABLES -t mangle -A INPUT -p tcp --dport 443 -j TOS --set-to Minimize-Delay


    [] Dotta

  8. #28
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Mais uma vez muito Obrigado Fernando, segunda-feira vou colocar em pratica esse script e pra variar, quelquer duvida te pergunto, Ok ?


    Atenciosamente
    angkor

  9. #29
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Como vc deve ter percebido eu não manjo miuto ded firewall, ou melhor, não manjo nada.
    Essas adaptações que fiz estão corretas ?
    Será desse jeito que eu vou roda-lo...

    /*********************************************************/
    #!/bin/bash
    IPT='/usr/sbin/iptables'
    MODPROBE='/sbin/modprobe'
    LOCAL=MEU IP DE INTERNET OU IP DO PROXY ???
    DNSONE=200.183.43.1
    DNSTWO=200.183.43.4

    ## CARREGANDO MODULOS
    $MODPROBE ip_tables
    $MODPROBE iptable_filter
    $MODPROBE ip_conntrack
    $MODPROBE ip_conntrack_ftp
    $MODPROBE iptable_nat
    $MODPROBE ip_nat_ftp
    $MODPROBE ipt_LOG
    $MODPROBE ipt_state
    $MODPROBE ipt_MASQUERADE

    ## DANDO FLUSHING NO FIREWALL, ZERANDO TUDO E DROPANDO TUDO, EXCETO OUTPUT
    $IPT -F
    $IPT -Z
    $IPT -X
    $IPT -t nat -F
    $IPT -P INPUT DROP
    $IPT -P FORWARD DROP
    $IPT -P OUTPUT ACCEPT

    ## HABILITANDO ROTEAMENTO
    echo "1" > /proc/sys/net/ipv4/ip_forward
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    ## LIBERANDO INPUT PARA INTERFACE LOOPBACK
    $IPT -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
    $IPT -A INPUT -p ALL -s $LOCAL -i lo -j ACCEPT

    ## LIBERANDO AS RESPOSTAS DOS DNS PARA O FIREWALL
    $IPT -A INPUT -p udp -s $DNSONE --sport 53 -d $LOCAL -j ACCEPT
    $IPT -A INPUT -p udp -s $DNSTWO --sport 53 -d $LOCAL -j ACCEPT
    $IPT -A INPUT -p udp -s $LOCAL --sport 53 -d $LOCAL -j ACCEPT

    ## NADA DE PACOTE FRAGMENTADO NO FIREWALL
    $IPT -A INPUT -i eth0 -f -j LOG --log-prefix "Pacote INPUT fragmentado: "
    $IPT -A INPUT -i eth0 -f -j DROP

    ## REGRAS DE PING
    $IPT -A INPUT -p icmp --icmp-type 8 -i eth0 -j DROP
    $IPT -A INPUT -p icmp --icmp-type 0 -j DROP
    $IPT -A INPUT -p icmp -s $FIREWALL -d $LOCAL -j ACCEPT

    # Protege contra synflood
    echo "1" > /proc/sys/net/ipv4/tcp_syncookies

    ## Desabilita suporte a souce routed packets, este recurso funciona como
    ## um NAT ao contradio, que em certas circunstacias pode permitir que
    ## alguem de fora envie pacotes para micros dentro da rede local.
    echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
    echo "0" > /proc/sys/net/ipv4/conf/eth1/accept_source_route
    echo "0" > /proc/sys/net/ipv4/conf/ppp0/accept_source_route

    ## Protecao contra ICMP Broadcasting
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    # Protecoes diversas contra potscaners, ping of death, ataques Dos, etc...
    $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    $IPT -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    $IPT -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
    $IPT -A FORWARD -m unclean -j DROP
    $IPT -A INPUT -m state --state INVALID -j DROP
    $IPT -N VALID_CHECK
    $IPT -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
    $IPT -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP


    ## LIBERANDO ALGUMAS PORTAS
    $IPT -A INPUT -p TCP -s 0/0 --dport 80 -j ACCEPT
    $IPT -A INPUT -p TCP -s 0/0 --dport 443 -j ACCEPT
    $IPT -A INPUT -p TCP -s 0/0 --dport 25 -j ACCEPT
    $IPT -A INPUT -p TCP -s 0/0 --dport 110 -j ACCEPT
    $IPT -A INPUT -p udp -s 0/0 --dport 53 -j ACCEPT
    $IPT -A INPUT -p TCP -s 0/0 --dport 143 -j ACCEPT
    $IPT -A INPUT -p TCP --destination-port 22 -j ACCEPT

    ## DESCARTANDO PACOTES INVALIDOS
    $IPT -A FORWARD -m state --state INVALID -j DROP

    ## Abre para uma faixa de enderecos da rede local
    $IPT -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

    ## Libera squid para rede interna
    $IPT -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp --dport 3128 -j ACCEPT

    # Proxy transparente
    $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

    ## ACEITA CONEXOES ESTABILIZADAS
    $IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

    ## PARA OUTLOOK FUNCIONAR, LIBERA A RESPOSTA E O ACESSO AOS RESOLVEDORES DE NOME
    $IPT -A FORWARD -p udp -s 0/0 -d $DNSONE --dport 53 -j ACCEPT
    $IPT -A FORWARD -p udp -s 0/0 -d $DNSTWO --dport 53 -j ACCEPT
    $IPT -A FORWARD -p udp -s 0/0 -d $LOCAL --dport 53 -j ACCEPT
    $IPT -A FORWARD -p udp -s $DNSONE --sport 53 -d 0/0 -j ACCEPT
    $IPT -A FORWARD -p udp -s $DNSTWO --sport 53 -d 0/0 -j ACCEPT
    $IPT -A FORWARD -p udp -s $LOCAL --sport 53 -d 0/0 -j ACCEPT

    ## DROPANDO TUDO E GRAVANDO
    $IPT -A FORWARD -j LOG --log-prefix "Pacote FORWARD descartado: "
    $IPT -A FORWARD -j DROP

    /******************************************************/

  10. #30

    Padrão Configurar Ig no E-mail usando iptables

    angkor,

    Acredito que esteja tudo certo, mas me diz uma coisa, vc tem um servidor de e-mail ai? caso contrario vc nao precisa liberas as portas 110 e 25. Quanta a sua variavel LOCAL, vc deve colocar o ip da internet.

    [] Dotta :twisted:

  11. #31
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Não, não tenho servidor de e-mail aqui não... vou tirar essas regras então.

    Valeu
    angkor

  12. #32

    Padrão Configurar Ig no E-mail usando iptables

    e se vc nao tiver servidor de http, https e ssh vc pode tirar estas portas tb (80, 443 e 22) nao ha necessidade, pois as regras do firewall liberam o input para qualquer conexao feito de uma das maquinas que estao atraz do firewall... entendeu???

    [] Dotta :twisted:

  13. #33
    angkor
    Visitante

    Padrão Configurar Ig no E-mail usando iptables

    Entendi cara valeu, mas tenho um apache rodando em uma maquina interna na qual compartilho arquivos com amigos e o SSH é para eu acessar ded casa, pra ver c ta tudo ok.
    Beleza, obrigado.

    Atenciosamente
    angkor

  14. #34

    Padrão Configurar Ig no E-mail usando iptables

    entao libera as portas 80 e 22 e caso va use https a porta 443

    [] Dotta :twisted: