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

sábado, 7 de janeiro de 2012

Instalando NRPE no SlackWare

Utilizado os seguintes pacotes do NRPE e Nagios Plugins para serem instalados no Slackware 13.37.0 Kernel 2.6.37.6-smp:

nagios-plugins-1.4.15 http://www.nagios.org/download/plugins
nrpe-2.13 http://sourceforge.net/projects/nagios/files/

Vamos para a instalação:

Descompactando, ajustando, compilando e instalando o nagios plugins:
# tar -xzf nagios-plugins-1.4.15.tar.gz

# cd nagios-plugins-1.4.15>

# ./configure --prefix=/usr/local/nagios

# make

# make install



Adicione manualmente o user e group nagios, caso a instalação não tenha criados:
# adduser nagios

# groupadd nagios

# usermod -G nagios nagios




Descompactando, ajustando, compilando e instalando o NRPE:
# tar -xzf nrpe-2.13.tar.gz

# cd nrpe-2.13/

# ./configure

# make all

# make install


Permissão de proprietário e grupo proprietário nagios no diretório abaixo:
#chown nagios.nagios /usr/local/nagios


Finalizando a instalação do pacote NRPE:
# make install-plugin

# make install-daemon

# make install-daemon-config



Permissão de proprietário e grupo proprietário nagios no diretório abaixo:
# chown -R nagios.nagios /usr/local/nagios/libexec


# vi /etc/services

nrpe 5666/tcp # NRPE


Adicionando o daemon NRPE para ser controlado pelo inetd (tcp wrapper) do Linux:
# vi /etc/inetd.conf

nrpe    stream  tcp     nowait  nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -i


Editar /usr/local/nagios/etc/nrpe.cfg e dar as permissões de quem pode se conectar a esse host:
EXEMPLO:
# vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.9.144,192.168.1.69


Especificar também os serviços serão checados na máquina local:
EXEMPLO:
# vi /usr/local/nagios/etc/nrpe.cfg




command[check_proc_qmail_supervise_pop3d]=/usr/local/nagios/libexec/check_procs -w 1:1 -c 1:1 -a "supervise qmail-pop3d"

command[check_proc_qmail_supervise_smtpd]=/usr/local/nagios/libexec/check_procs -w 1:1 -c 1:1 -a "supervise qmail-smtpd"

command[check_proc_qmail_supervise_imapd]=/usr/local/nagios/libexec/check_procs -w 1:1 -c 1:1 -a "supervise qmail-imapd"

command[check_proc_qmail_supervise_qmqpd]=/usr/local/nagios/libexec/check_procs -w 1:1 -c 1:1 -a "supervise qmail-qmqpd"

command[check_proc_qmail_supervise_send]=/usr/local/nagios/libexec/check_procs -w 1:1 -c 1:1 -a "supervise qmail-send"



A maioria dos checks feitos na máquina local exigem privilégios de root, como o daemon NRPE é inicializado com o usuário nagios muitos checks terão saídas negadas pelo SO então utilizar o sudo como  solução de contorno liberando o usuários nagios a executar comandos especificados como root. Para isso:

1 - Editar /usr/local/nagios/etc/nrpe.cfg e tirar o comentário da seguinte linha no arquivo, habilitando o uso do sudo pelo NRPE:
# vi /usr/local/nagios/etc/nrpe.cfg

command_prefix=/usr/bin/sudo



2 - Editar /etc/sudores e colocar os comandos que serão executados pelo usuário nagios como se fossem o root executando-os :
# vi  /etc/sudores

# Nagios

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_qmail_queue

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_procs

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_users

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_load

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_disk

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_swap

nagios ALL=(ALL) NOPASSWD: /usr/local/nagios/libexec/check_mem.pl



Reiniciei o NRPE, para isso execute um restart no daemon inetd que controla o daemon do NRPE:
# /etc/rc.d/rc.inetd restart

NO SERVDIDOR DO NAGIOS TESTE A COMUNICAÇÂO COM O HOST REMOTO:

# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.65.100


PARA HABILITAR E VISUALIZAR O DEBUG DO NRPE  UTILIZE O HOW TO ABAIXO:

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

debug=1



Editar /etc/syslog.conf
# vi /etc/syslog.conf

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

# LOG PARA O NRPE

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

daemon.debug                                            /var/log/nrpe



Reiniciei o NRPE:
# /etc/rc.d/rc.inetd restart

Reload do syslog:
# killall -HUP syslogd

Seguidores