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



  1. #21

    Padrão Dica em IPtable

    CARA DA UMA OLHADA NESSAS REGRAS ESSE É UM EXEMPLO DE UM DOS FIREWALL MAIS SEGUROS QUE EU JÁ FIZ.

    #! /bin/bash

    ########################################
    # Descrição: Inicializaçao do Firewall #
    # #
    # Data de criação: 17/01/2003 #
    # Nome do Processo: Iptables #
    # Autor: Osney Osmar da Silva Santos #
    # Cargo: Analista de Suporte #
    ########################################

    REDE="IP DA REDE" # EX. 10.10.10.0/24

    # DEFINIÇÕES PERSONALIZADAS IPTABLES
    IPT=/usr/sbin/iptables

    # IPS DA REDE # AQUI VOCÊ PODE COLOCAR ALGUNS IPS DA SUA REDE PARA PERSONALIZAR EX. JOAO="10.10.10.10"


    # CARREGANDO MODULOS IPTABLES
    MOD=/sbin/modprobe
    $MOD ip_conntrack
    $MOD ip_conntrack_ftp
    $MOD ipt_LOG
    $MOD iptable_nat
    $MOD ip_nat_ftp

    # HABILITANDO IP_FORWAR
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # ZERA REGRAS
    $IPT -t filter -F
    $IPT -t filter -Z
    $IPT -t filter -X
    $IPT -t nat -F
    $IPT -t nat -Z
    $IPT -t nat -X

    # DEFINE POLÍTICAS NAT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT

    # DEFINE POLÍTICA DE INPUT, OUTPUT E FORWARD # ISSO É SUPER SEGURO
    $IPT -t filter -P INPUT DROP
    $IPT -t filter -P OUTPUT ACCEPT
    $IPT -t filter -P FORWARD DROP

    # REGRAS NAT
    $IPT -t nat -A POSTROUTING -s $REDE -o eth1 -j SNAT --to IPINTERNET

    # REGRAS DE LOG
    #$IPT -A INPUT -i ! eth0 -p icmp ! --icmp-type 8 -m limit --limit 1/s -j LOG --log-level 7 --log-prefix " [ICMP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 21 -j LOG --log-level 7 --log-prefix " [FTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 22 -j LOG --log-level 7 --log-prefix " [SSH Aceito] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 23 -j LOG --log-level 7 --log-prefix " [TELNET Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 25 -j LOG --log-level 7 --log-prefix " [SMTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 53 -j LOG --log-level 7 --log-prefix " [DNS Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 80 -j LOG --log-level 7 --log-prefix " [HTTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 110 -j LOG --log-level 7 --log-prefix " [POP3 Negado] - "
    #$IPT -A FORWARD -m unclean -i ! eth0 -j LOG --log-level 7 --log-prefix " [PACOTE SUJO Negado] - "

    # LIBERA COMUNICAÇÃO DA INTERFACE DE LOOPBACK
    $IPT -A INPUT -i lo -j ACCEPT

    # ACEITA CONEXÕES JA EXISTENTES
    $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    # REGRAS DE FTP (21)
    $IPT -A FORWARD -s IP -p tcp --dport 21 -j ACCEPT # LIBERA FTP PARA DETERMINADO IP

    # REGRAS DE SSH (22)
    $IPT -A INPUT -s IP -p tcp --dport 22 -j ACCEPT # LIBERA SSH PARA DETERMINADO IP

    # REGRAS DE TELNET (23)
    $IPT -A FORWARD -s IP -p tcp --dport 23 -j ACCEPT # LIBERA TELNET PARA DETERMINADO IP

    # REGRAS DE EMAIL (25,110)
    $IPT -A FORWARD -s IP -p tcp --dport 25 -j ACCEPT # LIBERA SMTP PARA DETERMINADO IP
    $IPT -A FORWARD -d IP -p tcp --dport 25 -j ACCEPT # LIBERA VOLTA DE SMTP PARA DETERMINADO IP
    $IPT -t nat -A PREROUTING -i PLACA DE IP INTERNET -p tcp --dport 25 -j DNAT --to IP # LIBERA DNAT PELA ETH0 OU ETH1 PARA SMTP E ENVIA PARA O SERVIDOR
    $IPT -A FORWARD -s IP -p tcp --dport 110 -j ACCEPT # LIBERA POP PARA DETERMINADO IP

    # REGRAS DE DNS (53)
    $IPT -A FORWARD -s IP -p tcp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP TCP
    $IPT -A FORWARD -s IP -p udp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP UDP

    # REGRAS DE HTTP (80,85,443)
    $IPT -A FORWARD -s IP -p tcp --dport 80 -j ACCEPT # LIBERA HTTP PARA DETERMINADO IP
    $IPT -A FORWARD -s IP -p tcp --dport 443 -j ACCEPT # LIBERA HTTPS PARA DETERMINADO IP

    # REGRAS DE PORTAS ALTAS
    $IPT -A FORWARD -s IP -p tcp --dport 1024: -j ACCEPT # LIBRA AS PORTAS DE 1024 ATÉ 65000 PARA DETERMINADO IP
    $IPT -A FORWARD -s IP -p tcp --dport 30005 -j ACCEPT # LIBERA SOMENTE A PORTA 30005 PARA DETERMINADO IP

    NAS REGRAS DE E-MAIL É QUE VOCÊ PODE ENCONTRAR A SOLUÇÃO PARA SEU PROBLEMA. DA UMA OLHA E SUBSTITUA PARA AS PORTAS QUE VOCÊ PROCISA É O MESMO CONCEITO SÓ QUE EU FIZ PARA E-MAIL.

  2. #22
    Xlab
    Visitante

    Padrão Dica em IPtable

    Citação Postado originalmente por osney
    CARA DA UMA OLHADA NESSAS REGRAS ESSE É UM EXEMPLO DE UM DOS FIREWALL MAIS SEGUROS QUE EU JÁ FIZ.

    #! /bin/bash

    ########################################
    # Descrição: Inicializaçao do Firewall #
    # #
    # Data de criação: 17/01/2003 #
    # Nome do Processo: Iptables #
    # Autor: Osney Osmar da Silva Santos #
    # Cargo: Analista de Suporte #
    ########################################

    REDE="IP DA REDE" # EX. 10.10.10.0/24

    # DEFINIÇÕES PERSONALIZADAS IPTABLES
    IPT=/usr/sbin/iptables

    # IPS DA REDE # AQUI VOCÊ PODE COLOCAR ALGUNS IPS DA SUA REDE PARA PERSONALIZAR EX. JOAO="10.10.10.10"


    # CARREGANDO MODULOS IPTABLES
    MOD=/sbin/modprobe
    $MOD ip_conntrack
    $MOD ip_conntrack_ftp
    $MOD ipt_LOG
    $MOD iptable_nat
    $MOD ip_nat_ftp

    # HABILITANDO IP_FORWAR
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # ZERA REGRAS
    $IPT -t filter -F
    $IPT -t filter -Z
    $IPT -t filter -X
    $IPT -t nat -F
    $IPT -t nat -Z
    $IPT -t nat -X

    # DEFINE POLÍTICAS NAT
    $IPT -t nat -P PREROUTING ACCEPT
    $IPT -t nat -P POSTROUTING ACCEPT

    # DEFINE POLÍTICA DE INPUT, OUTPUT E FORWARD # ISSO É SUPER SEGURO
    $IPT -t filter -P INPUT DROP
    $IPT -t filter -P OUTPUT ACCEPT
    $IPT -t filter -P FORWARD DROP

    # REGRAS NAT
    $IPT -t nat -A POSTROUTING -s $REDE -o eth1 -j SNAT --to IPINTERNET

    # REGRAS DE LOG
    #$IPT -A INPUT -i ! eth0 -p icmp ! --icmp-type 8 -m limit --limit 1/s -j LOG --log-level 7 --log-prefix " [ICMP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 21 -j LOG --log-level 7 --log-prefix " [FTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 22 -j LOG --log-level 7 --log-prefix " [SSH Aceito] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 23 -j LOG --log-level 7 --log-prefix " [TELNET Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 25 -j LOG --log-level 7 --log-prefix " [SMTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 53 -j LOG --log-level 7 --log-prefix " [DNS Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 80 -j LOG --log-level 7 --log-prefix " [HTTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 110 -j LOG --log-level 7 --log-prefix " [POP3 Negado] - "
    #$IPT -A FORWARD -m unclean -i ! eth0 -j LOG --log-level 7 --log-prefix " [PACOTE SUJO Negado] - "

    # LIBERA COMUNICAÇÃO DA INTERFACE DE LOOPBACK
    $IPT -A INPUT -i lo -j ACCEPT

    # ACEITA CONEXÕES JA EXISTENTES
    $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    # REGRAS DE FTP (21)
    $IPT -A FORWARD -s IP -p tcp --dport 21 -j ACCEPT # LIBERA FTP PARA DETERMINADO IP

    # REGRAS DE SSH (22)
    $IPT -A INPUT -s IP -p tcp --dport 22 -j ACCEPT # LIBERA SSH PARA DETERMINADO IP

    # REGRAS DE TELNET (23)
    $IPT -A FORWARD -s IP -p tcp --dport 23 -j ACCEPT # LIBERA TELNET PARA DETERMINADO IP

    # REGRAS DE EMAIL (25,110)
    $IPT -A FORWARD -s IP -p tcp --dport 25 -j ACCEPT # LIBERA SMTP PARA DETERMINADO IP
    $IPT -A FORWARD -d IP -p tcp --dport 25 -j ACCEPT # LIBERA VOLTA DE SMTP PARA DETERMINADO IP
    $IPT -t nat -A PREROUTING -i PLACA DE IP INTERNET -p tcp --dport 25 -j DNAT --to IP # LIBERA DNAT PELA ETH0 OU ETH1 PARA SMTP E ENVIA PARA O SERVIDOR
    $IPT -A FORWARD -s IP -p tcp --dport 110 -j ACCEPT # LIBERA POP PARA DETERMINADO IP

    # REGRAS DE DNS (53)
    $IPT -A FORWARD -s IP -p tcp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP TCP
    $IPT -A FORWARD -s IP -p udp --dport 53 -j ACCEPT # LIBERA DNS PARA DETERMINADO IP UDP

    # REGRAS DE HTTP (80,85,443)
    $IPT -A FORWARD -s IP -p tcp --dport 80 -j ACCEPT # LIBERA HTTP PARA DETERMINADO IP
    $IPT -A FORWARD -s IP -p tcp --dport 443 -j ACCEPT # LIBERA HTTPS PARA DETERMINADO IP

    # REGRAS DE PORTAS ALTAS
    $IPT -A FORWARD -s IP -p tcp --dport 1024: -j ACCEPT # LIBRA AS PORTAS DE 1024 ATÉ 65000 PARA DETERMINADO IP
    $IPT -A FORWARD -s IP -p tcp --dport 30005 -j ACCEPT # LIBERA SOMENTE A PORTA 30005 PARA DETERMINADO IP

    NAS REGRAS DE E-MAIL É QUE VOCÊ PODE ENCONTRAR A SOLUÇÃO PARA SEU PROBLEMA. DA UMA OLHA E SUBSTITUA PARA AS PORTAS QUE VOCÊ PROCISA É O MESMO CONCEITO SÓ QUE EU FIZ PARA E-MAIL.

    Nao quero me meter pois isso nao tem nada haver com o topico mas quero ajudar vc antes de desastre :lol: , mas como sou ocioso com seguranca, um cracker pode derrubar seu firewall e sua maquina do jeito que ele esta, ele esta muito bom em algumas partes, mas existe uma falha grave que gera um ataque de DoS em seu servidor. Como? "vc deve perguntar..." Veja o seguinte, a regras de logs:

    # REGRAS DE LOG
    #$IPT -A INPUT -i ! eth0 -p icmp ! --icmp-type 8 -m limit --limit 1/s -j LOG --log-level 7 --log-prefix " [ICMP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 21 -j LOG --log-level 7 --log-prefix " [FTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 22 -j LOG --log-level 7 --log-prefix " [SSH Aceito] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 23 -j LOG --log-level 7 --log-prefix " [TELNET Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 25 -j LOG --log-level 7 --log-prefix " [SMTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 53 -j LOG --log-level 7 --log-prefix " [DNS Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 80 -j LOG --log-level 7 --log-prefix " [HTTP Negado] - "
    #$IPT -A INPUT -p tcp -i ! eth0 --dport 110 -j LOG --log-level 7 --log-prefix " [POP3 Negado] - "
    #$IPT -A FORWARD -m unclean -i ! eth0 -j LOG --log-level 7 --log-prefix " [PACOTE SUJO Negado] - "

    Ta Blz, o problema aqui eh seu firewall ta ocioso demais por logs, um cracker pode falcilmente tentar infinitas conexoes com as portas que geram logs com programa simples de shell ou perl com um while infinito com tentativas de conexoes, praticamente em 4 horas ou menos seu servidor cai. Isso gera um ataque de DoS facil facil, abarrota seus logs e consumir toda a memoria de seu servidor enfim derrubando-o. Existe uma solucao simples, coloque uma regra limit em seus logs 5/m, e pronto ele pode tentar mas somente 5 por minutos sao registradas

    []'s

  3. #23

    Padrão Dica em IPtable

    naum sei se você percebeu mas estas regras estão comentadas, por esse mesmo motivo, pois isso aconteceu comigo.

    mesmo assim eu agradeço a dica...

    e vou implanta-la.