• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Script anti Malware Atualizando 1 em 1 hr

Scheduled Pinned Locked Moved Portuguese
7 Posts 2 Posters 3.0k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P
    pok182
    last edited by Nov 1, 2012, 9:04 PM

    Boa noite pessoal, sou usuario Debian e estou migrando para o freebsd, mais especifico pro PFSENSE

    Enfim, tenho um Debian com squid instalado e nele tenho um script que faz checagem em um determinado site e faz download de toda sua lista e joga na minha acl do squid, bloqueando todos os sites que contenham malware.

    Vou postar para voces como faz esse script e a acl

    Considerando que a internet é um terreno fecundo de fraudes e ainda sim, acreditem, sem lei, é extremamente importante que, nós como usuários avançados, possamos proteger a nossa estrutura e por consequência os que a usam.

    Garimpando pela internet encontrei o Malware Patrol. Essa "blacklist" é atualizada a cada hora e verifica a presença de malwares em milhares de sites. Esta lista já está pronta em formato txt e disponibilizada no site para as mais diversas soluções.

    Como a solução que utilizo é o Squid (Proxy server), semanalmente eu ia até o site, visualizava a lista e atualizava. Temos que considerar que uma lista que é atualizada a cada hora, em meu servidor, ser atualizada semanalmente, é uma discrepância. Portanto partindo dessa visão e em busca de, digamos, comodismo, parti para esta solução.

    É necessário um pouco de conhecimento em editores de texto (vi, pico, nano etc), conhecer os arquivos de configuração do Squid e comandos básico do ambiente Linux.

    Primeiramente ditarei o ambiente que utilizo e que está em funcionamento:

    Debian Etch 2.6.18-6-686
        Squid Version 2.6.STABLE5

    Considero que o já tenha seu Squid em pleno funcionamento. Portanto configuraremos o proxy para verificar a lista e barrar o acesso aos que estão nela. Edite o arquivo /etc/squid/squid.conf e a adicione as linhas:

    acl sites_bloqueados_malware url_regex -i "/etc/squid/malware_patrol_list"
    …
    http_access deny sites_bloqueados_malware

    (no PFSENSE, fazemos isso no painel proxy server e adicionamos assim:

    acl sites_bloqueados_malware url_regex -i "/usr/local/etc/squid/malware_patrol_list";http_access deny sites_bloqueados_malware)

    Crie o arquivo para evitar um erro quando reiniciar o proxy:

    touch /etc/squid/malware_patrol_list

    Esse arquivo será recriado através do script que veremos adiante.

    Script de atualização
    Este é o "updater" propriamente dito. Optei por variáveis para a melhor customização.

    Crie o arquivo no lugar que preferir. Em meu caso, fiz em /etc/scripts/, portanto:

    mkdir /etc/scripts

    vi /etc/scripts/update_malware_patrol.sh

    E coloque o seguinte conteúdo:

    #!/bin/sh

    Script para Update do Malware Patrol List para Squid

    Marcio Jose Atanasio - marcioatanasio@gmail.com

    19/11/2008

    DIR_LIST_SQUID=/etc/squid/
    DIR_TMP=/opt/
    NAME_LIST=malware_patrol_list
    SQUID_SERV="/etc/init.d/squid reload" (MUDE PARA O RESTART DO SQUID DO PFSENSE)
    URL_LIST=http://www.malwarepatrol.com.br/cgi/submit?action=list_squid

    cd $DIR_TMP
    wget -O $NAME_LIST $URL_LIST
    if [ $? = 0 ]; then
      mv -f $DIR_TMP$NAME_LIST $DIR_LIST_SQUID
      echo $SQUID_SERV
    else
      echo 'Falha na Atualizacao da Lista de Malware Patrol. Acesse http://www.malwarepatrol.com.br' > $DIR_TMP/msg.txt
      mail -s "Falha Atualizacao" "suporte_tecnico@suporte_tecnico.com.br" < msg.txt
      rm $DIR_TMP/msg.txt
    fi
    cd -
    exit 0

    Note essas duas linhas:

    mail -v -s "Falha Atualizacao" "suporte_tecnico@suporte_tecnico.com.br" < msg.txt
        rm $DIR_TMP/msg.txt

    Elas te informam por email, caso haja alguma falha no download da lista. Caso queira ser informado, é necessário frisar dois pontos:

    Sendmail instalado e configurado;
        Caso seu servidor não seja um servidor de email, um servidor que aceite relay.

    1. Para instalar o sendmail não há problemas:

    aptitude install sendmail

    Para configurar o sendmail na distribuição Debian Linux faça:

    dpkg-reconfigure exim4-config

    Split configuration into small files? No
    General type of mail configuration: internet site; mail is sent and received directly using SMTP
    System mail name: suporte_tecnico.com.br (Domínio que tem a conta de email que irá utilizar)
    IP-addresses to listen on for incoming SMTP connections: 127.0.0.1
    Other destinations for which mail is accepted: (O que estiver, irrelevante)
    Domains to relay mail for: (Em branco)
    Machines to relay mail for: (Em branco - Este é o relay do seu servidor para outros, não dos outros para você)
    Keep number of DNS-queries minimal (Dial-on-Demand)? (Se tiver a internet no servidor a todo tempo, No, caso contrário, Yes)
    Delivery method for local mail: mbox format in /var/mail/ (Irrelevante)

    2. Em meu ambiente tenho outro servidor de email que está permitindo relay vindo do meu servidor proxy. Faça o teste:

    echo "Teste de envio" > msg.txt

    mail -v -s "Teste de envio de email" "email_destinatario@domínio.com.br" < msg.txt

    Aparecerá em modo verbose todo o funcionamento do envio. Caso não opte por ser avisado, somente comente as duas linhas.

    Configuração do crontab
    Para que a lista seja atualizada automaticamente é necessário agendar a execução do script. Execute:

    crontab -e

    Adicione a linha:

    0 * * * * /etc/scripts/update_malware_patrol.sh 1> /dev/null

    Assim a cada hora o script será executado e a lista atualizada.

    Considerações finais
    No site do Malware Patrol pode ser encontrada lista para as mais diversas soluções. Há também dois tipos de lista, a Regular List e a Agressive List. Estude seu ambiente e utilize a que mais lhe convier. Em meu caso, utilizo a Regular List sem problemas.

    Espero ter sido útil neste artigo. O que mais me motiva ao mundo open-source é a troca de informações e o espírito "faça você mesmo". Portanto, dúvidas em que eu puder ajudar, tenha certeza que o farei.

    Obrigado e até a próxima.

    Creditos: Marcio Jose Atanásio

    Até ai esta facil, o caminho do squid do debian é diferente do pfsense, mas qualquer usuario avançado consegue fazer e agendar no crontab
    O problema esta quando utilizo o comando wget no script, ele simplesmente nao funciona, ja tentei pkg_add wget e ele reporta um erro… tentei alguma coisa relacionada a um pacote com o nome de ports mas nao tive sucesso em instalar ele tambem, se algum usuario avançado quiser nos ajudar, irei agradecer muito, pois um script desse pode evitar grandes problemas e trazer uma enorme paz no espirito de qualquer administrador de rede.

    Obrigado

    1 Reply Last reply Reply Quote 0
    • M
      marcelloc
      last edited by Nov 2, 2012, 5:12 AM

      Excelente iniciativa! :)
      No pfSense, use o fetch no lugar de wget.

      Para manter o script no backup xml, use o pacote filer.

      Procure por pkg_add aqui no forum para ver o caminho que usamos para baixar pacotes do freebsd 8.1 no pfSense.

      Treinamentos de Elite: http://sys-squad.com

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 0
      • P
        pok182
        last edited by Nov 5, 2012, 10:17 AM

        @marcelloc:

        Excelente iniciativa! :)
        No pfSense, use o fetch no lugar de wget.

        Para manter o script no backup xml, use o pacote filer.

        Procure por pkg_add aqui no forum para ver o caminho que usamos para baixar pacotes do freebsd 8.1 no pfSense.

        esta dando esse erro:

        [2.0.1-RELEASE][admin@renan.localdomain]/etc/scripts(6): /etc/scripts/update_malware_patrol.sh
        fetch: illegal option – O
        usage: fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
              [-T seconds] [-w seconds] [-i file] URL …
              fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
              [-T seconds] [-w seconds] [-i file] -h host -f file [-c dir]

        1 Reply Last reply Reply Quote 0
        • M
          marcelloc
          last edited by Nov 5, 2012, 11:57 AM

          @pok182:

          esta dando esse erro:

          [2.0.1-RELEASE][admin@renan.localdomain]/etc/scripts(6): /etc/scripts/update_malware_patrol.sh
          fetch: illegal option – O
          usage: fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
                 [-T seconds] [-w seconds] [-i file] URL …
                 fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
                 [-T seconds] [-w seconds] [-i file] -h host -f file [-c dir]

          tenta assim:

          fetch -o  $DIR_LIST_SQUID "$URL_LIST" >
          

          coloquei as "" para previnir que a ? da url seja interpretada pelo script

          Treinamentos de Elite: http://sys-squad.com

          Help a community developer! ;D

          1 Reply Last reply Reply Quote 0
          • P
            pok182
            last edited by Nov 5, 2012, 4:38 PM

            @marcelloc:

            @pok182:

            esta dando esse erro:

            [2.0.1-RELEASE][admin@renan.localdomain]/etc/scripts(6): /etc/scripts/update_malware_patrol.sh
            fetch: illegal option – O
            usage: fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
                   [-T seconds] [-w seconds] [-i file] URL …
                   fetch [-146AadFlMmnPpqRrsUv] [-B bytes] [-N file] [-o file] [-S bytes]
                   [-T seconds] [-w seconds] [-i file] -h host -f file [-c dir]

            tenta assim:

            fetch -o  $DIR_LIST_SQUID "$URL_LIST" >
            

            coloquei as "" para previnir que a ? da url seja interpretada pelo script

            Da o seguinte erro:

            /etc/scripts/update_malware_patrol.sh: 16: Syntax error: newline unexpected

            segue script

            #!/bin/sh

            Script para Update do Malware Patrol List para Squid

            Marcio Jose Atanasio - marcioatanasio@gmail.com

            19/11/2008

            DIR_LIST_SQUID=/usr/local/etc/squid/
            DIR_TMP=/usr/local/etc/squid/
            NAME_LIST=malware_patrol_list
            SQUID_SERV="/usr/local/etc/rc.d/squid.sh restart"
            URL_LIST=http://www.malwarepatrol.com.br/cgi/submit?action=list_squid

            cd $DIR_TMP
            fetch -o  $DIR_LIST_SQUID "$URL_LIST" >
            #wget -O $NAME_LIST $URL_LIST
            if [ $? = 0 ]; then
              mv -f $DIR_TMP$NAME_LIST $DIR_LIST_SQUID
              echo $SQUID_SERV
            else
            #  echo 'Falha na Atualizacao da Lista de Malware Patrol. Acesse http://www.malwarepatrol.com.br' > $
            DIR_TMP/msg.txt
            #  mail -s "Falha Atualizacao" "suporte_tecnico@suporte_tecnico.com.br" < msg.txt
            #  rm $DIR_TMP/msg.txt
            fi
            cd -
            exit 0

            1 Reply Last reply Reply Quote 0
            • M
              marcelloc
              last edited by Nov 5, 2012, 7:27 PM

              tira o ">" que sobrou na linha que postei

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • P
                pok182
                last edited by Nov 5, 2012, 7:52 PM

                @marcelloc:

                tira o ">" que sobrou na linha que postei

                Apareceu a seguinte mensagem

                [2.0.1-RELEASE][admin@rioverde.rioverde]/etc/scripts(8): /etc/scripts/update_malware_patrol.sh
                fetch: http://www.malwarepatrol.com.br/cgi/submit?action=list_squid: size of remote file is not known
                /usr/local/etc/squid//submit?action=list_squid        179 kB  181 kBps

                1 Reply Last reply Reply Quote 0
                7 out of 7
                • First post
                  7/7
                  Last post
                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                  This community forum collects and processes your personal information.
                  consent.not_received