maio 292014
 

Neste tutorial iremos aprender como integrar o ClamAV com o PureFTPd em servidores com cPanel.

O primeiro passo é ter o ClamAV instalado no servidor, este procedimento pode ser realizado pelo WHM, como o intuito aqui é explicar a integração então não iremos abordar a instalação do mesmo.

Edite o arquivo /etc/pure-ftpd.conf e altere a o parâmetro CallUploadScript para yes:

vi /etc/pure-ftpd.conf

# If your pure-ftpd has been compiled with pure-uploadscript support,
# this will make pure-ftpd write info about new uploads to
# /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and
# spawn a script to handle the upload.
# Don't enable this option if you don't actually use pure-uploadscript.

CallUploadScript yes

Agora crie o arquivo /etc/pure-ftpd/clamav_check.sh com o seguinte conteúdo:

#!/bin/bash

# email subject
SUBJECT="VIRUS DETECTADO NO SERVIDOR `hostname`!!!"

# Email To ?
EMAIL="email.dominio.com.br"
FROM="email.dominio.com.br"
# Log location
LOG=`mktemp /tmp/virus-scan.XXXXX`

check_scan () {

# Check the last set of results. If there are any "Infected" counts that aren't zero, we have a problem.
if [ `tail -n 12 ${LOG} | grep Infected | grep -v 0 | wc -l` != 0 ]
then
EMAILMESSAGE=`mktemp /tmp/virus-alert.XXXXX`
echo "To: ${EMAIL}" >> ${EMAILMESSAGE}
echo "From: ${FROM}" >> ${EMAILMESSAGE}
echo "Subject: ${SUBJECT}" >> ${EMAILMESSAGE}
echo "Importance: High" >> ${EMAILMESSAGE}
echo "X-Priority: 1" >> ${EMAILMESSAGE}
echo -e "\n" >> ${EMAILMESSAGE}
echo "`head -2 ${LOG}`" >> ${EMAILMESSAGE}
sendmail -t < ${EMAILMESSAGE} rm -f ${EMAILMESSAGE} fi } /usr/local/bin/clamscan --remove --infected "$1" >> ${LOG}
check_scan
rm -f ${LOG}

De permissão de execução:

chmod 755 /etc/pure-ftpd/clamav_check.sh

Edite agora o arquivo /etc/rc.d/rc.local e adicione a seguinte linha:

/usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh

Esta linha fará com que o serviço seja executado sempre que reiniciar o servidor.

Para aplicar a configuração execute os comandos abaixo:

/usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
service pure-ftpd restart

Pronto agora todos os arquivos enviados via FTP serão escaneados pelo ClamAV 🙂

abr 062013
 

O Mod Security funciona como um módulo do apache previnindo contra tentativas de invasão, segue abaixo os comandos necessários para configuração do Mod Security com as regras da Atomicor:

Acesse o SSH como root e digite os comandos abaixo:


# cd /usr/local/apache/conf/
# mkdir modsec_rules
# cd modsec_rules
# wget https://www3.atomicorp.com/channels/rules/delayed/modsec-201212291012.tar.gz
# tar zvxf modsec-201212291012.tar.gz
# rm -fr zvxf modsec-201212291012.tar.gz

Agora crie alguns diretórios com os comandos abaixo:


# mkdir /var/asl
# mkdir /var/asl/tmp
# mkdir /var/asl/data
# mkdir /var/asl/data/msa
# mkdir /var/asl/data/audit
# mkdir /var/asl/data/suspicious
# mkdir /etc/asl

Configure a permissão dos diretórios criados:


# chown nobody.nobody /var/asl/data/msa
# chown nobody.nobody /var/asl/data/audit
# chown nobody.nobody /var/asl/data/suspicious
# chmod o-rx -R /var/asl/data/*
# chmod ug+rwx -R /var/asl/data/*

Crie o arquivo responsável por liberar o acesso ao servidor sem que seja aplicada as regras do Mod Security:


# touch /etc/asl/whitelist

Agora acesse o WHM e clique no link “Mod Security”, substitua as regras atuais pelas regras abaixo:


SecComponentSignature 201212291012
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType (null) text/html text/plain text/xml
SecResponseBodyLimit 2621440
SecServerSignature Apache
SecUploadDir /var/asl/data/suspicious
SecUploadKeepFiles Off
SecAuditLogParts ABIFHZ
SecArgumentSeparator '&'
SecCookieFormat 0
SecRequestBodyInMemoryLimit 131072
SecDataDir /var/asl/data/msa
SecTmpDir /tmp
SecAuditLogStorageDir /var/asl/data/audit
SecResponseBodyLimitAction ProcessPartial
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

# ConfigServer ModSecurity - descomente caso vc use o ConfigServer CMC.
# Include /usr/local/apache/conf/modsec2.whitelist.conf

#ASL Rules
Include /usr/local/apache/conf/modsec_rules/modsec/99_asl_jitp.conf
Include /usr/local/apache/conf/modsec_rules/modsec/50_asl_rootkits.conf
#Include /usr/local/apache/conf/modsec_rules/modsec/00_asl_rbl.conf
Include /usr/local/apache/conf/modsec_rules/modsec/00_asl_whitelist.conf
Include /usr/local/apache/conf/modsec_rules/modsec/05_asl_scanner.conf
Include /usr/local/apache/conf/modsec_rules/modsec/20_asl_useragents.conf

Agora salve as configurações que automaticamente as regras já estarão funcionando em seu servidor 🙂

maio 132012
 

Ao instalar o CSF caso receba o erro abaixo:


Checking Perl modules...
Can't locate LWP/UserAgent.pm in @INC (@INC contains: /etc/csf /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 19) line 2.
BEGIN failed--compilation aborted at (eval 19) line 2.
Using configuration defaults

You need to install the missing perl modules and then install cxs

Execute o seguinte comando para solucionar:


# yum -y install perl-libwww-perl

mar 192012
 

Scanner de rootkit é uma ferramenta de verificação para garantir que você está cerca de 99,9% limpo de ferramentas desagradáveis. Essa ferramenta verifica a existência de rootkits, backdoors e exploits locais, executando testes como:

– Compara MD5 Hash
– Procura por arquivos padrão utilizadas por rootkits
– Permissões de arquivo errada para binários
– Verifica strings suspeitas nos módulos LKM e KLD
– Procura por arquivos ocultos
– Scan opcional dentro arquivos de texto e arquivos binários

Segue abaixo os comandos para instalar o RkHunter


# cd /usr/local/src/
# wget http://hivelocity.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz
# tar -xzvf rkhunter-1.4.2.tar.gz
# cd rkhunter-1.4.2
# ./installer.sh --install
# vi /etc/cron.daily/rkhunter.sh

Após instalar crie o arquivo no cron com o seguinte conteúdo:


#!/bin/bash
#
(/usr/local/bin/rkhunter -c --cronjob 2>&1 | mail -s "RKhunter Scan Detalhes" email@dominio.com.br)

Altere o email “email@dominio.com.br” pelo email que receberá as notificações, após criar o arquivo será necessário conceder permissão para execução, faça isso com o comando abaixo:


# chmod +x /etc/cron.daily/rkhunter.sh

dez 152011
 

Para verificar a existência de malware no servidor você pode instalar o maldetect, segue abaixo os comandos para instalar o maldetect:


# cd /usr/local/src/
# rm -vrf maldetect-*
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar -xzf maldetect-current.tar.gz
# cd maldetect-*
# sh ./install.sh
# maldet --update-ver
# maldet --update

Para configurar o maldetect edite o arquivo /usr/local/maldetect/conf.maldet e altere as linhas conforme abaixo:


email_alert=1
email_addr="email@dominio.com.br"
quar_hits=1

Altere o email_addr para o email que irá receber as notificações.

Para pesquisar por malware em todas as contas digite o comando abaixo:

maldet -a /home?/?/public_html

Para pesquisar por malware em apenas uma conta digite o comando abaixo:

maldet --scan-all /home?/USER/public_html

Substitua USER pelo usuário que irá analisar.

Por enquanto é só 🙂