sexta-feira, 21 de dezembro de 2012

Script deletar e-mails da fila do Qmail

Quando uma conta de e-mail de seu domínio esta sendo utilizada para enviar spam para internet(provavelmente por que esteja com uma senha frágil) será necessário deletar os e-mails que estão na fila para serem enviados. Você identificará isso quando ver que sua fila de e-mails está muito grande e que existe uma conta sendo a responsável pelo envio dessa massa de e-mails. 1 - Para visualizar a sua fila de e-mails no Qmail utilize o comando:
# qmailctl queue
2 - As vezes o mailfrom pode ser um e-mail que não pertença ao seu domínio, os spammers nesse caso somente utilizam a conta de algum usuário do seu servidor de e-mail para realizar o login e ter permissão para enviar os spam e ai trocam o mailfrom que aparece quando você manda listar a fila. Para identificar a conta do usuário que está sendo utilizada procure nos logs do smtpd faço um filtro usando o mailfrom que aparece lá na fila. 3 - O script abaixo deletar e-mails da fila com base no mailfrom que aparece lá na fila. Então para utiliza-lo você deverá parar o serviço Qmail e então executar o script informando o mailfrom que está enviando a massa de e-mails. OBS.: Não esqueça, logicamente, de redefinir a senha da conta que estava sendo utilizada para enviar spam.
###############################################################
# Deletar spam de acordo com remetente local
# Por Leonardo Couto Conrado
# Em 16.11.2012
###############################################################
#!/bin/sh

path=/var/qmail/queue
cmdFind=/usr/bin/find
cmdQmailCtl=/usr/local/bin/qmailctl
cmdGrep=/bin/grep
cmdEcho=/bin/echo
cmdLs=/bin/ls
cmdRm=/bin/rm
cmdAwk=/bin/awk

$cmdEcho -n "Informe o e-mail que esta sendo usado para enviar spam: "; read emailUsedAsSpammer


$cmdEcho "O servico do Qmail ja esta parado e o e-mail usado como spam e $emailUsedAsSpammer? yes, no ou quit?"
read opt
case $opt in
"quit")
        $cmdEcho "Saindo..."
        exit
        ;;
"yes")
        $cmdEcho "Entrando em processo de exclusao de e-mails..."
        for i in $( $cmdQmailCtl queue | $cmdGrep $emailUsedAsSpammer |$cmdAwk -F '#' '{ print $2 }' | $cmdAwk '{ print $1 }' ); do
        $cmdFind $path -name $i -exec $cmdRm -rf {} \;
        $cmdEcho "Vai ser deletado= " $i
        done
        ;;

"no")
        $cmdEcho "Você deve parar o servico do qmail antes de deletar mensagens na fila e ter certeza do e-mail que esta sendo usado como spam."
        exit
        ;;

*)
        $cmdEcho "O servico do Qmail ja esta parado e o e-mail usado como spam e $emailUsedAsSpammer? yes, no ou quit?"
        ;;
esac

segunda-feira, 30 de janeiro de 2012

Parque tecnológico da Bahia

A Bahia está muito perto de ter seu primeiro Parque Tecnológico. 
Este empreendimento surge para abrigar empresas de base tecnológica, centros de pesquisas, universidades e incubadoras de empresas.

Com alto padrão urbanístico, o empreendimento tem um cuidadoso tratamento paisagístico, preservando parte da cobertura da Mata Atlântica e do seu relevo. Localizado na Avenida Paralela, principal eixo de expansão urbana de Salvador, o Parque Tecnológico da Bahia está próximo ao aeroporto de Salvador, centros de tecnologia, instituições de ensino e conta com conexão de fibra ótica.

O Estado da Bahia dispõe de recursos para apoiar empresas inovadoras que se instalem no parque. São 581.000 m² de área, destinados à geração de conhecimento e de negócios de alto valor agregado.


Entenda como vai funcionar:
http://saudeweb.com.br/video/entenda-como-vai-funcionar-o-parque-tecnologico-da-bahia/

Fonte:
http://www.secti.ba.gov.br/parquetecnologico/

sexta-feira, 20 de janeiro de 2012

Plugin do Nagios para verificar a fila de e-mails do servidor Qmail

OBS.: O plugin é executado através do NRPE na máquina remota, logo, o script deve ser colocado junto aos outros plugins do nagios na máquina cliente, ou seja, no servidor Qmail e não no servidor Nagios.

Este script ajudará a identificar um possível ataque ao seu servidor de e-mails. Onde uma conta de e-mail do seu dominio provavelmente com uma senha frágil esteja sendo utilizada para enviar uma grande massa de e-mails (SPAM) com destino a endereços e-mails da internet, logo, isso acarretará em uma grande quantidade em excesso de mensagens na fila de envio do seu servidor Qmail atrasando o envio de e-mails verdadeiros. O script checará sempre essa quantidade de mensagens na fila e retornará a saída para o Nagios.

 Copie o script abaixo, que irá checar a fila de e-mails, para o diretório de plugins do Nagios no seu servidor Qmail:

# vi /usr/local/nagios/libexec/check_qmail_queue
############################################################### 
# Script checar fila de e-mails do Qmail 
# Por Leonardo Couto Conrado 
# Em 20.01.2012
############################################################### 
#!/bin/sh

OK=0
WARNING=1
CRITICAL=2
UNKNOWN=3

criticalMsgsInQueue=90
warningMsgsInQueue=80

mailQueue=$(/usr/local/bin/qmailctl queue | grep "messages in queue:" | awk -F ":" '{print $2}')

if [ $mailQueue -gt $criticalMsgsInQueue ]; then
        echo "NÚMERO DE MENSAGENS NA FILA ULTRAPASSOU O LIMITE DE CRITICAL, $mailQueue MSGS NA FILA!"
        exit $CRITICAL
fi


if [ $mailQueue -gt $warningMsgsInQueue ]; then
        echo "NÚMERO DE MENSAGENS NA FILA ULTRAPASSOU O LIMITE DE WARNING, $mailQueue MSGS NA FILA!!"
        exit $WARNING

        else
                echo "NÚMERO DE MENSAGENS NA FILA ESTÁ OK, IGUAL A $mailQueue MSGS NA FILA."
                exit $OK
fi

exit $UNKNOWN

# chmod +x /usr/local/nagios/libexec/check_qmail_queue


Para ativar o check, devemos inserir o comando e o serviço no servidor do Nagios. Segue procedimento para ser executado no Nagios:

1 - Crie o comando no arquivo commands.cfg (No ambiente usado para esse "how to" o arquivo encontra-se em /usr/local/nagios/etc/objects/commands/commands.cfg no servidor Nagios:

vi /usr/local/nagios/etc/objects/commands/commands.cfg
#'check_nrpe_qmail_queue' command definition
define command{
        command_name    check_nrpe_qmail_queue
        command_line    $USER2$/check_nrpe -H $HOSTADDRESS$ -c check_msgs_qmail_queue
        }

2 - Crie o serviço para o servidor Qmail:

vi /usr/local/nagios/etc/objects/services/linux-services.cfg
define service{
        use                             non-critical-services         ; Name of service template to use
        host_name                       SRVLMSSAMAIL01
        service_description             EMAILS IN QUEUE
        check_command                   check_nrpe_qmail_queue
      }

3 - Configure o check no NRPE no servidor Qmail:


vi /usr/local/nagios/etc/nrpe.cfg

command[check_msgs_qmail_queue]=/usr/local/nagios/libexec/check_qmail_queue


4 - Reinicie o serviço do Nagios no servidor Nagios e o serviço do NRPE no servidor de e-mail Qmail.

quarta-feira, 11 de janeiro de 2012

Script para atualizar periodicamente blacklists selecionadas do squidGuard


O script abaixo irá baixar os arquivos tar.gz de blacklist dos sites squidguard.mesd.k12.or.us e www.shallalist.de, após isso ele irá descompactar os arquivos e copiar as pastas de blacklists, que estejam listados por você nos arquivos bls_mesd.txt e bls_shalla.txt, para o diretório de blacklists do squidGuard, após isso mudará o dono dos diretórios de blacklists do squidGuard para o usuário squid e por ultimo ele irá recompilar as blacklists transformando-as em arquivo de banco de dados para o squidGuard. O conteúdo da pasta utlizada para baixar e descompactar os tar.gz será limpa no final do processo.

-> PARA AGENDAR A EXECUÇÃO DO SCRIPT UTILIZE O crontab. 


#!/bin/bash
############################################################### 
# Atualizando blacklists selecionadas para o squidGuard
# Por Leonardo Couto Conrado 
# Em 11/01/2012 
############################################################### 
# README:
# Crie o diretorio da variavel dirWork
# Crie o arquivo de log da variavel logUpBlackLists
# Crie o arquivo /usr/local/upblacklists/bls_mesd.txt ele deverá conter as blacklists desejadas da mesd squidguard.mesd.k12.or.us para serem copiadas para as blacklists do squidGuard
# Crie o arquivo /usr/local/upblacklists/bls_shalla.txt ele deverá conter as blacklists desejadas da shalla www.shallalist.de para serem copiadas para as blacklists do squidGuard

clockNow=$(date +%d.%m.%Y-%H:%M)
dirBlackListSquidGuard=/usr/local/squidGuard/db/blacklists/
dirWork=/usr/local/upblacklists/work/
dirUpBlackLists=/usr/local/upblacklists/
squidGuardCreateDBs="/usr/local/squidGuard/bin/squidGuard -C all"
 
urlListMesd=http://squidguard.mesd.k12.or.us/blacklists.tgz
urlListShalla=http://www.shallalist.de/Downloads/shallalist.tar.gz
fileTgzMesd=blacklists.tgz
fileTgzShalla=shallalist.tar.gz
fileBlacklistsMesd=blacklists/
fileBlacklistsShalla=BL/
 
logUpBlackLists=/var/log/updatebacklists.log
 
numBlsMesd=$(cat $dirUpBlackLists"bls_mesd.txt" | wc -l)
numBlsShalla=$(cat $dirUpBlackLists"bls_shalla.txt" | wc -l)
 
counter=1
 
# INICIO
 
cd $dirWork
 
wget -c $urlListMesd
wget -c $urlListShalla
 
if [ $? = 0 ]; then
        tar -xzf $dirWork$fileTgzMesd
        tar -xzf $dirWork$fileTgzShalla
 
        cd $dirWork$fileBlacklistsMesd
              echo $clockNow  " - ANDAMENTO COPIA DAS BLS DA MESD: " >> $logUpBlackLists
                while [ $counter -le $numBlsMesd ]; do
                        blMesd=$(cat $dirUpBlackLists"bls_mesd.txt" | awk -v VAR=$counter 'NR == VAR {print $0}')
                        /bin/cp -fv $dirWork$fileBlacklistsMesd$blMesd/domains $dirBlackListSquidGuard$blMesd >> $logUpBlackLists
                        /bin/cp -fv $dirWork$fileBlacklistsMesd$blMesd/urls $dirBlackListSquidGuard$blMesd >> $logUpBlackLists
                        let counter=counter+1
                done
       counter=1
 
        cd $dirWork$fileBlacklistsShalla
                echo $clockNow  " - ANDAMENTO COPIA DAS BLS DA SHALA: " >> $logUpBlackLists
                while [ $counter -le $numBlsShalla ]; do
                        blShalla=$(cat $dirUpBlackLists"bls_shalla.txt" | awk -v VAR=$counter 'NR == VAR {print $0}')
                        /bin/cp -fv $dirWork$fileBlacklistsShalla$blShalla/domains $dirBlackListSquidGuard$blShalla >> $logUpBlackLists
                        /bin/cp -fv $dirWork$fileBlacklistsShalla$blShalla/urls $dirBlackListSquidGuard$blShalla >> $logUpBlackLists
                        let counter=counter+1
                done
      
       echo $clockNow  " - ANDAMENTO DAS PERMISSOES PARA SQUID NAS BLS DO SQUIDGUARD: " >> $logUpBlackLists
        chown squid -R -v $dirBlackListSquidGuard >> $logUpBlackLists
      
       echo $clockNow  " - RECOMPILANDO AS DBS DO SQUIDGUARD: " >> $logUpBlackLists
       echo `$squidGuardCreateDBs` >> $logUpBlackLists
 
       echo $clockNow  " - LIMPANDO DIRETORIO WORKS: " >> $logUpBlackLists
        cd $dirWork && rm -rf ./
else
   echo $clockNow ' - FALHOU DOWNLOAD DE UMA DAS BLS: ' >> $logUpBlackLists
 
fi
 
exit 0
 



terça-feira, 10 de janeiro de 2012

Sessão Fix BUG



BUG: NFS mount: failed, reason given by server: Permission denied
Versão NFS utilizada: nfs-utils-1.0.9-50.el5 e nfs-utils-lib-1.0.8-7.6.el5
Sistema utilizado: Red Hat Enterprise Linux Server release 5.3 Beta (Tikanga)

SINTOMA: 

Ao tentar mapear um diretório remoto via NFS no cliente aonde o mesmo possui as devidas permissões para acesso ao diretório no server é apresentada uma mensagem de erro informando:

mount: failed, reason given by server: Permission denied.


PROBLEMA:


Durante a inicialização do cliente o filesystem  que controla o NFSD  não é montado.


SOLUÇÃO:


É necessário montar manualmente o filesystem especial nfsd.

Adicione no arquivo /etc/fstab:

# vi /etc/fstab


#########################################

# FIX - BUG 692968 PERMISSION DENIED NFS

#########################################

none                    /proc/fs/nfsd   nfsd     defaults 0 0


Reler o arquivo /etc/fstab

# mount -a

Agora tente mapear novamente o diretório remoto.

REFERÊNCIA:


https://bugzilla.redhat.com/show_bug.cgi?id=264661
http://juljas.net/lpt/post/nfs-permission-denied#comment-118

Seguidores