+ Responder ao Tópico



  1. #1

    Padrão squid+iptables nao barram MSN. Por favor help

    Preciso passar alguns elementos para que possam ter uma nocao real da situação, meu script de firewall esta assim

    #!/bin/bash
    echo "Carregando o firewall..."
    # Definindo as variaveis
    REDEINT="10.0.10.0/24"
    ENT="eth1"
    SAI="eth0"
    # carregando os modulos
    modprobe iptable_nat
    # limpando as tabelas
    iptables -F
    iptables -t nat -F

    # 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 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 que podem procurar e obter 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 $IPDNSPROVEDOR -j ACCEPT
    iptables -A INPUT -i $ENT -p udp -j ACCEPT

    #acrescentei aqui
    iptables -A INPUT -s $REDEINT -p tcp --dport :32000 -j ACCEPT

    # Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
    # iptables -A INPUT -i $ENT -p tcp --syn -j DROP

    # Mesmo assim 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
    iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
    iptables -A INPUT -p tcp --destination-port 901 -j ACCEPT
    #$iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
    #$iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT
    #$iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT
    #$iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT

    #libera conexoes de dentro pra fora:

    iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 22 -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 86 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 5190 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 901 -j ACCEPT
    iptables -A OUTPUT -p tcp --destination-port 3128 -j ACCEPT

    # regras de bloqueio
    #iptables -A FORWARD -s $REDEINT -p tcp --dport 1863 -j REJECT
    #iptables -A FORWARD -s $REDEINT -p tcp --dport 445 -j REJECT

    # compartilha a web na rede interna
    iptables -t nat -A POSTROUTING -s $REDEINT -o $SAI -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    #direciona para o squid
    iptables -t nat -A PREROUTING -i $ENT -p tcp --dport 80 -j REDIRECT --to-port 3128

    iptables -A FORWARD -s $REDEINT -p tcp --dport 1863 -j REJECT

    # bloqueia o resto
    iptables -A INPUT -p tcp --syn -j DROP
    iptables -A OUTPUT -p tcp --syn -j DROP
    iptables -A FORWARD -p tcp --syn -j DROP

    # bloqueia ping
    echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

    # ----------------------------------------------------------------

    echo "Firewall carregado..."

    O squid esta fazendo proxy transparente e uma das regras que bloqueia urls esta funcionando corretamente, o meu squid.conf nas regras esta assim :

    cl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8
    acl SSL_ports port 443 563
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl Safe_ports port 901 # swat

    acl CONNECT method CONNECT

    # ACL que implementei
    acl LAN src 10.0.10.0/24
    acl MSN_DOM dstdomain loginnet.passport.com
    acl MSN_DOM dstdomain webmessenger.msn.com
    acl MSN_DLL url_regex -i gateway.dll
    acl MSN_REQS req_mime_type -i ^application/x-msn-messenger$
    acl MSN_PORT port 1863
    acl horaruim time MTWHF 08:00-12:00 14:00-21:00
    acl ippermite src 10.0.10.10
    acl proibir_sites url_regex -i "/etc/rc.d/sites_proibidos"

    http_access allow manager localhost
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports

    #fiz essas regras
    http_access deny MSN_PORT horaruim
    http_access deny MSN_DOM horaruim
    http_access deny MSN_DLL horaruim
    http_access deny MSN_REQS horaruim
    http_access deny proibir_sites horaruim
    http_access allow LAN
    http_access deny all
    http_reply_access allow all
    icp_access allow all

    Se eu abro outro terminal e dou um tail -f access.log e abro o msn vejo aparecer uma serie de linhas como :

    1124149043.461 2 10.0.10.10 TCP_DENIED/403 1343 GET http://c.msn.com/c.gif? - NONE/- text/html
    1124149044.424 1 10.0.10.10 TCP_DENIED/403 1405 POST http://config.messenger.msn.com/Config/MsgrConfig.asmx - NONE/- text/html
    1124149047.418 973 10.0.10.10 TCP_DENIED/403 1405 POST http://config.messenger.msn.com/Config/MsgrConfig.asmx - NONE/- text/html

    O que me faz crer que as regras do proxy estejam funcionando, dei um nmap e a porta que o MSN usa nao aparece aberta no firewall. Sera que o Messenger 7.0 se conecta de outro jeito ? Que praga miseravel.
    Os colegas poderiam dar uma luz por favor ?
    Obrigado

  2. #2
    W@rl0ck
    Visitante

    Padrão squid+iptables nao barram MSN. Por favor help

    Olha o msn realmente é complicado pois alem dele se conectar via "portas" ele se conecta tambem por http tanto o messenger 7 como existem varios messenger, o geito é fechar as portas e bloquear os websites que dão acessos ao msn

  3. #3
    agent_smith
    Visitante

    Padrão squid+iptables nao barram MSN. Por favor help

    Pq não bloqueia direto no IPTABLES...?

    Os ip´s da microsoft estão numa faixa assim : 64.alguma coisa, alguma coisa, alguma coisa...

    Experimente fazer isso...

    Bom...

    É uma idéia...

  4. #4

    Padrão squid+iptables nao barram MSN. Por favor help

    Experimenta adicionar esse mime type em outra acl:
    text/x-msmsgspro

    Disseram que esse é o mime type do msn 7.X

    Testa aí e diz o que deu.

    []