Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Dúvidas sobre iptables

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dúvida Dúvidas sobre iptables

    Como faço para abrir as seguintes portas no iptables:

    Porta 80
    Porta 21
    Porta 25

    Como faço para bloquear ataques no iptables?
    Como faço para bloquear o ping da morte no iptables?
    Como faço para bloquear IP Spoofing no iptables?
    Em qual diretório eu salvo meu script de iptables?
    Em qual formato eu salvo meu script de iptables?
    Devo dar permissão de execução ao script?

  • Font Size
    #2
    de uma lida aqui...

    Instalando psad no Debian/Ubuntu e variantes:

    # apt-get update
    # apt-get install psad

    Configurar o psad.

    Abra e edite o arquivo /etc/syslog.conf com:

    # vi /etc/syslog.conf

    Depois adicione a linha:

    kern.info | /var/lib/psad/psadfifo

    Alternativamente, você pode digitar o seguinte comando para atualizar syslog.conf:

    # echo -e "kern.info | /var/lib/psad/psadfifo" >> /etc/syslog.conf

    O psad precisa ser configurado para gravar todas as mensagens kern.info no Syslog para um pipe em /var/lib/psad/psadfifo.

    Feche e salve o arquivo. Reinicie o syslog:

    # /etc/init.d/sysklogd restart
    # /etc/init.d/klogd

    O arquivo padrão do psad está localizado em /etc/psad/psad.conf:

    # vi /etc/psad/psad.conf

    Você precisa definir um e-mail para receber notificações quando houver um scanning de portas e outras configurações:

    EMAIL_ADDRESSES************ xxxxxx.xxx@xxxxxxxx.com.br;

    Definir hostname do host(FQDN):

    HOSTNAME****************** server.xxxxx.com.br;

    Se você tiver apenas um servidor (como um servidor Web ou servidor de correio), não envie o email para HOME_NET:

    HOME_NET****************NOT_USED;

    Você também pode precisar de ajustar os níveis de segurança em sua configuração. Você também pode definir um conjunto de portas para ignorar, por exemplo, o psad pode ignorar as portas UDP 53 e 5000. Use então:

    IGNORE_PORTS****************udp/53, udp/5000;

    Você também pode habilitar iptables para bloquear em tempo real, definindo duas variáveis:

    ENABLE_AUTO_IDS************ Y;
    IPTABLES_BLOCK_METHOD****** Y;

    O psad tem muitas opções. Para saber mais leia a documentação (man pages). Salve, feche o arquivo e reinicie o psad:

    # /etc/init.d/psad restart

    Atualizando as regras do Iptables:

    O psad precisa ter duas regras para ter o log habilitado:

    iptables -A INPUT -j LOG
    iptables -A FORWARD -j LOG

    Um exemplo em shell script para um computador desktop ou laptop:

    #!/bin/bash
    IPT="/sbin/iptables"

    echo "Iniciando um Firewall em IPv4..."
    $IPT -F
    $IPT -X
    $IPT -t nat -F
    $IPT -t nat -X
    $IPT -t mangle -F
    $IPT -t mangle -X
    modprobe ip_conntrack

    BADIPS=$(egrep -v -E "^#|^$" /root/scripts/bloqueado.fw)
    PUB_IF="eth0"

    #sem limitação
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A OUTPUT -o lo -j ACCEPT

    # DROP todo tráfego entrante
    $IPT -P INPUT DROP
    $IPT -P OUTPUT DROP
    $IPT -P FORWARD DROP

    # bloquear todos os bad ips (Maus...rss)
    for ip in $BADIPS
    do
    ****$IPT -A INPUT -s $ip -j DROP
    ****$IPT -A OUTPUT -d $ip -j DROP
    done

    # sync
    $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Syn"

    $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -j DROP

    # Fragmentos
    $IPT -A INPUT -i ${PUB_IF} -f -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"
    $IPT -A INPUT -i ${PUB_IF} -f -j DROP

    # bloquear bad stuff
    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL ALL -j DROP

    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"
    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -j DROP # NULL packets

    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"
    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS

    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"
    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP # FIN packet scans

    $IPT -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

    # Liberar toda conexão de saída, sem entrada stuff
    $IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

    # liberar apenas o ssh
    $IPT -A INPUT -p tcp --destination-port 22 -j ACCEPT
    $IPT -A OUTPUT -p tcp --sport 22 -j ACCEPT

    # liberar entradas ICMP ping pong stuff
    $IPT -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    $IPT -A OUTPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Não compartilhar pacotes smb/windows
    $IPT -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
    $IPT -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT

    # Logar qualquer coisa, se tiver suspeita de invasores
    # *** Requer o psad ****
    $IPT -A INPUT -j LOG
    $IPT -A FORWARD -j LOG
    $IPT -A INPUT -j DROP

    # Inicia firewall ipv6
    # echo "Iniciar firewall ipv6..."
    /root/scripts/start6.fw

    exit 0

    Como posso ver o relatório de verificação de porta(s)?

    Basta digitar o comando a seguir:

    # psad -S

    Exemplo de saída (alguns dados sensíveis foram removidos por questões de segurança do autor):

    [+] psadwatchd (pid: 2540) %CPU: 0.0 %MEM: 0.0
    Running since: Sun Jul 27 07:14:56 2008

    [+] kmsgsd (pid: 2528) %CPU: 0.0 %MEM: 0.0
    Running since: Sun Jul 27 07:14:55 2008

    [+] psad (pid: 2524) %CPU: 0.0 %MEM: 0.8
    Running since: Sun Jul 27 07:14:55 2008
    Command line arguments: -c /etc/psad/psad.conf
    Alert email address(es): xxxxxx.xxx@xxxxxxxx.com.br

    src: dst: chain: intf: tcp: udp: icmp: dl: alerts: os_guess:
    117.32.xxx.149 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    118.167.xxx.219 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    118.167.xxx.250 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    118.167.xxx.5 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    122.167.xx.11 xx.22.zz.121 INPUT eth0 4642 0 0 4 50 -
    122.167.xx.80 xx.22.zz.121 INPUT eth0 0 11 0 1 2 -
    123.134.xx.34 xx.22.zz.121 INPUT eth0 20 0 0 2 9 -
    125.161.xx.3 xx.22.zz.121 INPUT eth0 0 9 0 1 4 -
    125.67.xx.7 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    190.159.xxx.220 xx.22.zz.121 INPUT eth0 0 9 0 1 3 -
    193.140.xxx.210 xx.22.zz.121 INPUT eth0 0 10 0 1 2 -
    202.xx.23x.196 xx.22.zz.121 INPUT eth0 0 13 0 1 10 -
    202.xx.2x8.197 xx.22.zz.121 INPUT eth0 0 20 0 2 17 -
    202.97.xxx.198 xx.22.zz.121 INPUT eth0 0 17 0 2 12 -
    202.97.xxx.199 xx.22.zz.121 INPUT eth0 0 18 0 2 15 -
    202.97.xxx.200 xx.22.zz.121 INPUT eth0 0 17 0 2 14 -
    202.97.xxx.201 xx.22.zz.121 INPUT eth0 0 15 0 2 12 -
    202.97.xxx.202 xx.22.zz.121 INPUT eth0 0 21 0 2 16 -
    203.xxx.128.65 xx.22.zz.121 INPUT eth0 12 0 0 2 6 Windows XP/2000
    211.90.xx.14 xx.22.zz.121 INPUT eth0 1 0 0 2 2 -
    213.163.xxx.9 xx.22.zz.121 INPUT eth0 0 0 1 2 2 -
    221.130.xxx.124 xx.22.zz.121 INPUT eth0 0 35 0 2 31 -
    221.206.xxx.10 xx.22.zz.121 INPUT eth0 0 33 0 2 21 -
    221.206.xxx.53 xx.22.zz.121 INPUT eth0 0 33 0 2 27 -
    221.206.xxx.54 xx.22.zz.121 INPUT eth0 0 39 0 2 26 -
    221.206.xxx.57 xx.22.zz.121 INPUT eth0 0 33 0 2 19 -
    60.222.xxx.146 xx.22.zz.121 INPUT eth0 0 40 0 2 33 -
    60.222.xxx.153 xx.22.zz.121 INPUT eth0 0 14 0 1 11 -
    60.222.xxx.154 xx.22.zz.121 INPUT eth0 0 18 0 2 15 -

    Netfilter prefix counters:
    "SPAM DROP Block": 161519
    "Drop Syn Attacks": 136

    Total scan sources: 95
    Total scan destinations: 1

    Total packet counters:
    tcp: 5868
    udp: 164012
    icmp: 2

    Como faço para remover automaticamente os ips bloqueados?

    Simplesmente digite o seguinte comando para remover qualquer ip bloqueado no firewall:

    # psad -F

    Como faço para visualizar log detalhado para cada endereço IP?

    Vá até o arquivo em /var/log/psad/ip.endereco/ pasta. Por exemplo, para exibir o log do endereço IP 11.22.22.33.

    Por exemplo, para ver os registros para o endereço IP 11.22.22.33, digite:

    # cd /var/log/psad/11.22.22.33
    # ls -l

    Exemplo de saída (que fiz em 2008):

    -rw------- 1 root root 2623 2008-07-30 13:02 xx.22.zz.121_email_alert
    -rw------- 1 root root 32 2008-07-30 13:02 xx.22.zz.121_packet_ctr
    -rw------- 1 root root 0 2008-07-29 00:27 xx.22.zz.121_signatures
    -rw------- 1 root root 11 2008-07-30 13:02 xx.22.zz.121_start_time
    -rw------- 1 root root 2 2008-07-30 13:02 danger_level
    -rw------- 1 root root 2 2008-07-30 13:02 email_count
    -rw------- 1 root root 1798 2008-07-29 00:27 whois

    Use o comando:

    # cat /var/log/psad/11.22.22.33/xx.22.zz.121_email_alert | more
    ou
    # cat /var/log/psad/11.22.22.33/xx.22.zz.121_email_alert|less

    para ver o resto da informação.

    Comment

    X
    Working...
    X