+ Responder ao Tópico



  1. #1
    Avatar de pagoto
    Ingresso
    Feb 2011
    Localização
    Manaus, Amazonas, Brazil
    Posts
    74

    Exclamation Correção de segurança e problemas iptables

    Alguns dos comandos peguei com a galera aqui do under-linux, hoje meu script está desse jeito abaixo.
    Gostaria que vocês analisa-se por favor, e me ajuda-se a deixa-lo mais seguro.

    O problema é, NÃO CONSIGO conectar a VPN pptpd ( sei que é insegura ) sempre dá erro 807 no windows.
    Viajo muito e preciso conectar de qualquer computador em qualquer lugar do Brasil, ( não tem como ficar instalando OPENVPN )

    INFORMAÇÕES: VPN, FIREWALL E APACHE NO MESMO SERVIDOR.
    Interface Rede Interna: eth1
    Interface Rede externa (internet): eth0


    Código :
    #!/bin/bash
    echo "Carregando o firewall..."
     
    # Definindo as variaveis
    #
    IPTABLES="/sbin/iptables"
    REDEINT="10.10.100.0/24"
    IPDNSPROVEDOR="200.189.88.12"
    IPDNSPROVEDOR2="200.189.88.39"
    IPDNSPROVEDOR3="10.10.100.200"
    IPDNSPROVEDOR4="10.10.100.201"
    ENT="eth0"
     
    # Limpar e Inicializar modulos
    #
    $IPTABLES -F
    $IPTABLEs -t nat -F
    $IPTABLEs -t mangle -F
    modprobe iptable_nat
    modprobe ipt_LOG
     
    #----------------
    # POLÍTICA DROP |
    #----------------
     
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
     
    # Bloqueio de pings e ip spoofing
    $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP
    echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
    $IPTABLES -A INPUT -m state --state INVALID -j DROP
     
    # Protege contra os "Ping of Death"
    $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
     
    # Protege contra os ataques do tipo "Syn-flood, DoS, etc"
    $IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
     
    # Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
    $IPTABLES -A INPUT -i ! $ENT -j ACCEPT
    $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Logar os pacotes mortos por inatividade ...
    $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
     
    # Protege contra port scanners avançados (Ex.: nmap)
    $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
     
    # Protege contra pacotes informações da rede interna
    $IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
     
    # Protege contra todos os pacotes danificados e ou suspeitos ...
    $IPTABLES -A FORWARD -m unclean -j DROP
     
    # Bloqueando tracertroute
    $IPTABLES -A INPUT -p udp -s 0/0 -i $ENT --dport 33435:33525 -j DROP
     
    # Protecoes contra ataques
    $IPTABLES -A INPUT -m state --state INVALID -j DROP
     
    # Performance - Setando acesso a web com delay minimo
    $IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
    $IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
     
    # Deixa passar as portas UDP do servidores DNS, e Rejeitar o restante
    $IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR2 -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR3 -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR4 -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p udp -j REJECT
     
    # Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
    $IPTABLES -A INPUT -i $ENT -p tcp --syn -j DROP
     
    # Fechar todas as portas abaixo de 32000
    $IPTABLES -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
     
    # Responde pacotes icmp especificados e rejeita o restante
    $IPTABLES -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
    $IPTABLES -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable
     
    # libera acesso interno da rede
    $IPTABLES -A INPUT -p tcp --syn -s $REDEINT -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --syn -s $REDEINT -j ACCEPT
    $IPTABLES -A FORWARD -p tcp --syn -s $REDEINT -j ACCEPT
     
    # libera o loopback
    $IPTABLES -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
     
    # libera conexoes de fora pra dentro (SSH usando 9991/ APACHE usando 9999)
    $IPTABLES -A INPUT -p tcp --destination-port 9991 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --destination-port 9999 -j ACCEPT
     
    #libera conexoes de dentro pra fora:
    $IPTABLES -A OUTPUT -p tcp --destination-port 9999 -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --destination-port 9991 -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --destination-port 21 -j ACCEPT
    $IPTABLES -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
     
    # Loga tentativa de acesso a determinadas portas
    $IPTABLES -A INPUT -p tcp --dport 21 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
    $IPTABLES -A INPUT -p tcp --dport 23 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
    $IPTABLES -A INPUT -p tcp --dport 25 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
    $IPTABLES -A INPUT -p tcp --dport 80 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
    $IPTABLES -A INPUT -p tcp --dport 110 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
    $IPTABLES -A INPUT -p udp --dport 111 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
    $IPTABLES -A INPUT -p tcp --dport 113 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
    $IPTABLES -A INPUT -p tcp --dport 137:139 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $IPTABLES -A INPUT -p udp --dport 137:139 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $IPTABLES -A INPUT -p tcp --dport 161:162 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
    $IPTABLES -A INPUT -p tcp --dport 6667:6668 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
    $IPTABLES -A INPUT -p tcp --dport 3128 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "
     
    # Proteção contra trinoo
    $IPTABLES -N TRINOO
    $IPTABLES -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
    $IPTABLES -A TRINOO -j DROP
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 27444 -j TRINOO
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 27665 -j TRINOO
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 31335 -j TRINOO
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 34555 -j TRINOO
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 35555 -j TRINOO
     
    # Proteção contra tronjans
    $IPTABLES -N TROJAN
    $IPTABLES -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
    $IPTABLES -A TROJAN -j DROP
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 666 -j TROJAN
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 4000 -j TROJAN
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 6000 -j TROJAN
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 6006 -j TROJAN
    $IPTABLES -A INPUT -p TCP -i $ENT --dport 16660 -j TROJAN
     
    # Roteamento para o Proxy Squid
    $IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
     
    # compartilha a web na rede interna
    $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
    # bloqueia ping
    echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
     
    # Libera Acesso VPN
     
    $IPTABLES -A INPUT -p tcp -m tcp --dport 1723 state --state NEW -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    $IPTABLES -A FORWARD -i eth0 -j ACCEPT
    $IPTABLES -A FORWARD -o eth0 -j ACCEPT
     
    echo "Script carregado..."
     
    #------------------------------------FIM DO SCRIPT---------------------------------------#
    #

  2. #2
    Avatar de pagoto
    Ingresso
    Feb 2011
    Localização
    Manaus, Amazonas, Brazil
    Posts
    74

    Padrão Re: Correção de segurança e problemas iptables

    Ninguem ?