Segunda-feira, 20 de Agosto de 2007

Servidor caseiro - XX

Agora, instálo o qmail-scanner, para que as mensagens possam ser processadas pelo anti-vírus e pelo SpamAssassin.

Tenho que instalar o pacote perl-suidperl e mudar-lhe o ownership e as permissões antes de instalar o qmail-scanner:

# yum install perl-suidperl
# chown root /usr/bin/suidperl
# chmod 4711 /usr/bin/suidperl

Agora o qmail-scanner:

É necessário criar um grupo e um user chamados qscand:

# groupadd qscand
# useradd -s /bin/false -g qscand qscand

A seguir:

# ./configure

Aqui, respondemos "Y":

It will then generate qmail-scanner-queue.pl - it is up to you to install it
correctly.

Continue? ([Y]/N)

Agora faz-nos outra pergunta:

virus-admin=System Anti-Virus Administrator <root@planetgeek.dynip.sapo.pt>
local-domains='planetgeek.dynip.sapo.pt'
silent-viruses='klez','bugbear','hybris','yaha','braid','nimda','tanatos','sobig','winevar','palyh','fizzer','gibe','cailont','lovelorn','swen','dumaru','sober','hawawi','holar-i','mimail','poffer','bagle','worm.galil','mydoom','worm.sco','tanx','novarg','\@mm'
scanners="fprot","fast_spamassassin"

If that looks correct, I will now generate qmail-scanner-queue.pl
for your system...
Continue? ([Y]/N)

Como aparece na linha a string scanners="fprot","fast_spamassassin", é sinal de que o qmail-scanner reconheceu o anti-vírus e o SpamAssassin, por isso respondo "Y".
Se não aparecer um ou outro ou os dois, é porque alguma coisa está mal. Nesse caso, é melhor responder "N" e verificar a instalação do que não aparece na linha.


De seguida,

# ./configure --install

e volto a responder "Y" às perguntas

Aqui:

Hit RETURN to create initial directory structure under /var/spool/qscan,
and install qmail-scanner-queue.pl under /var/qmail/bin:

clico simplesmente em ENTER.


Para terminar:

# ./contrib/test_installation.sh
# ./contrib/test_installation.sh -doit

Este útlimo passo, envia para o root, um e-mail com o "virus" EICAR para podermos verificar se o sistema está a funcionar, contudo, o qmail não aceita mensagens endereçadas ao root.

Para que o qmail passe a utilizar o qmail-scanner, é necessário modificar o ficheiro tcp.smtp para:

127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
127.0.0.2:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.100:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.101:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
:allow


e refazer o binário tcp.smtp.cdb:

# cat tcp.smtp | tcprules tcp.smtp.cdb rules.temp


O SpamAssassin é excelente, mas é um autêntico devorador de RAM, pelo que temos que alterar a run file do qmail-send e alterar o parâmetro softlimit para um valor superior, caso contrário as mensagens não passam:

#!/bin/sh
exec env - PATH="/usr/local/bin:/var/qmail/bin" \
 softlimit -m 150000000 tcpserver -v -P -R -H -l 0 \
 -x /var/qmail/control/tcp.smtp.cdb -u qmaild -g nofiles 0 smtp \
 qmail-smtpd \
 2>&1


É necessário reiniciar o qmail-send para que assuma a alteração:

# svc -t /service/qmail-send


Tudo pronto, vou enviar uma mensagem de teste:

# telnet planetgeek.dynip.sapo.pt 25
Trying 192.168.0.101...
Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
Escape character is '^]'.
220 planetgeek.dynip.sapo.pt ESMTP
EHLO planetgeek.dynip.sapo.pt
250-planetgeek.dynip.sapo.pt
250-PIPELINING
250 8BITMIME
MAIL FROM: root@planetgeek.dynip.sapo.pt
250 ok
RCPT TO: teste@planetgeek.dynip.sapo.pt
250 ok
DATA
354 go ahead
Teste do qmail-scanner, SpamAssassin e f-prot
.
250 ok 1187615673 qp 360
QUIT
221 planetgeek.dynip.sapo.pt
Connection closed by foreign host.


Mudo para o directório /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new onde deverá estar o ficheeiro da mensagem acabada de enviar.

# cd /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new

# ls
1187615674.372.planetgeek.dynip.sapo.pt,S=593

Faço agora um cat ao ficheiro para analisar o envelope da mensagem:

# cat 1187615674.372.planetgeek.dynip.sapo.pt\,S\=593
Return-Path: <root@planetgeek.dynip.sapo.pt>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 369 invoked by uid 513); 20 Aug 2007 13:14:33 -0000
Received: from 192.168.0.101 by planetgeek.dynip.sapo.pt (envelope-from <root@planetgeek.dynip.sapo.pt>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:1(192.168.0.101):.
 Processed in 0.079826 secs); 20 Aug 2007 13:14:33 -0000
Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
  by 0 with SMTP; 20 Aug 2007 13:14:08 -0000
Teste do qmail-scanner, SpamAssassin e f-prot


Como se pode ver no bold, a mensagem foi analisada pelo anti-vírus e pelo f-prot.

Está tudo bem :)

Vou experimentar enviando uma mensagem a partir do exterior, através do interface webmail do GMail, da conta gamito@gmail.com para teste@planetgeek.dynip.sapo.pt.

Mensagem recebida, faço o cat do respectivo ficheiro para verificar o envelope:

# cat 1187620258.4399.planetgeek.dynip.sapo.pt\,S\=2363
Return-Path: <gamito@gmail.com>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 4397 invoked by uid 513); 20 Aug 2007 14:30:58 -0000
Received: from 209.85.128.187 by planetgeek.dynip.sapo.pt (envelope-from <gamito@gmail.com>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:0(209.85.128.187):SA:0(0.1/5.0):.
 Processed in 11.372664 secs); 20 Aug 2007 14:30:58 -0000
X-Spam-Status: No, score=0.1 required=5.0
X-Spam-Level:
Received: from unknown (HELO fk-out-0910.google.com) (209.85.128.187)
  by 0 with SMTP; 20 Aug 2007 14:30:45 -0000
Received: by fk-out-0910.google.com with SMTP id f40so1256164fka
        for <teste@planetgeek.dynip.sapo.pt>; Mon, 20 Aug 2007 07:31:16 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed;
        d=gmail.com; s=beta;

(...)

------=_Part_111403_22450460.1187620276171
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Teste de fora - GMail

------=_Part_111403_22450460.1187620276171
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Teste de fora - GMail

------=_Part_111403_22450460.1187620276171--

Também funciona, como se pode ver a bold, o SpamAssassin atribuiu um score de 0.1 valores ao mail. Por omissão, para scores iguais ou superiores a 5.0, a mensagem é marcada como sendo SPAM.
Este valor pode ser alterado, mas 5.0 é uma boa opção.


Agora envio também a partir do GMail uma mensagem da caixa do SPAM, para ver como o meu servidor a recebe.
Cat ao ficheiro:

# cat 1187620673.4450.planetgeek.dynip.sapo.pt\,S\=4131
Return-Path: <gamito@gmail.com>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 4447 invoked by uid 513); 20 Aug 2007 14:37:53 -0000
Received: from 72.14.214.235 by planetgeek.dynip.sapo.pt (envelope-from <gamito@gmail.com>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:0(72.14.214.235):SA:1(29.0/5.0):.
 Processed in 12.438092 secs); 20 Aug 2007 14:37:53 -0000
X-Spam-Status: Yes, score=29.0 required=5.0
X-Spam-Level: +++++++++++++++++++++++++++++
Received: from unknown (HELO hu-out-0506.google.com) (72.14.214.235)
  by 0 with SMTP; 20 Aug 2007 14:37:40 -0000
Received: by hu-out-0506.google.com with SMTP id 23so1958072huc
        for <teste@planetgeek.dynip.sapo.pt>; Mon, 20 Aug 2007 07:38:11 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed;
        d=gmail.com; s=beta;

(...)

Received: by 10.82.151.14 with SMTP id y14mr7892319bud.1187620690859;
        Mon, 20 Aug 2007 07:38:10 -0700 (PDT)
Received: by 10.82.100.3 with HTTP; Mon, 20 Aug 2007 07:38:10 -0700 (PDT)
Message-ID: <91df29a20708200738n1c235ce0labf65c16e8ff25ba@mail.gmail.com>
Date: Mon, 20 Aug 2007 15:38:10 +0100
From: "=?ISO-8859-1?Q?M=E1rio_Gamito?=" <gamito@gmail.com>
To: teste@planetgeek.dynip.sapo.pt
Subject: [+++ SPAM +++] Cheap Pharmacy- Buy Xanax Valium Viagra and other meds cheap vd0a01



Conforme se pode ver, esta mensagem atingiu um score de 29.0, pelo que foi marcada como sendo SPAM, e o respectivo Subject ficou com a string [+++ SPAM +++] adicionada no início.

Tudo a correr sobre rodas :)

Falta testar o anti-vírus, para isso, uso o EICAR que não é um vírus, mas que foi criado para que todos os anti-vírus o identifiquem como tal.
Pode ser descarregado aqui.

Ao contrário das mensagens de SPAM, as que contêm vírus não são entregues.
São colocadas no directório /var/spool/qscan/quarantine/viruses/new

# cd /var/spool/qscan/quarantine/viruses/new

# ls
planetgeek.dynip.sapo.pt11876213385404534


Podemos fazer um cat ao ficheiro para vermos o vírus:

# cat planetgeek.dynip.sapo.pt11876213385404534
Received: from unknown (HELO ?192.168.0.100?) (192.168.0.100)
  by 0 with SMTP; 20 Aug 2007 14:48:57 -0000
Message-ID: <46C9A9F4.7030700@gmail.com>
Date: Mon, 20 Aug 2007 15:49:24 +0100
From: =?ISO-8859-1?Q?M=E1rio_Gamito?= <gamito@gmail.com>
User-Agent: Thunderbird 2.0.0.6 (Windows/20070728)
MIME-Version: 1.0
To:  teste@planetgeek.dynip.sapo.pt
Subject: Teste do =?ISO-8859-1?Q?anti-v=EDrus?=
Content-Type: multipart/mixed;
 boundary="------------010207090307060604020104"

This is a multi-part message in MIME format.
--------------010207090307060604020104
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Vírus EICAR
--
:wq! Mário Gamito

--------------010207090307060604020104
Content-Type: application/octet-stream;
 name="eicar.com"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="eicar.com"

WDVPIVAlQEFQWzRcUFpYNTQoUF4pN0NDKTd9JEVJQ0FSLVNUQU5EQVJELUFOVElWSVJVUy1U
RVNULUZJTEUhJEgrSCo=
--------------010207090307060604020104--

*** Qmail-Scanner Quarantine Envelope Details Begin ***
X-Qmail-Scanner-Mail-From: "gamito@gmail.com" via planetgeek.dynip.sapo.pt
X-Qmail-Scanner-Rcpt-To: "teste@planetgeek.dynip.sapo.pt"
X-Qmail-Scanner: 2.01 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.  virus Found. Processed in 2.139228 secs)
Quarantine-Description: EICAR_Test_File
*** Qmail-Scanner Envelope Details End ***


Encontrado.

Está tudo a funcionar 5* :)


Going shopping...
tags:
publicado por gamito às 15:17
link do post | comentar
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.

Mais sobre mim

pesquisar

Janeiro 2008

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Posts recentes

Portagens

Há 20 anos atrás... *sigh...

Vou criar a minha própria...

Finalmente

SAPO codebits

Sporting

Caixa Mágica e Mandriva

A1 Aveiro - Lisboa

Browser mamão

gFTP

PlayStation 3 e Sony

Mas quem é o gajo ?

Negócios do Open Source

Não estão fartos disto ?

Naughty, naughty

PHP chrooted

Joomla

Novo Projecto

MySQL :: It's the ctl, st...

MySQL :: Just a little ti...

MySQL chrooted

BASH, stdout e stderr

4 kb stack ou 8kb stack

A funny guy...

Truques, Minas e Alçapões...

Truques, Minas e Alçapões...

Logs do mrtg

Salmos, 23

Servidor caseiro - XXVII

Servidor caseiro - XXVI

Servidor caseiro - XXV

Números de telemóvel aban...

Servidor caseiro - XXIV

Humm...

Servidor caseiro - XXIII

Servidor caseiro - XXII

Servidor caseiro - XXI

Servidor caseiro - XX

Servidor caseiro - XIX

Ubuntu : O Enigma

Leixões 1 - Benfica 1

Servidor caseiro - XVIII

Servidor caseiro - XVII

Servidor caseiro - XVI

Servidor caseiro - XV

Servidor caseiro - XIV

Servidor caseiro - XIII

Servidor caseiro - XII

Servidor caseiro - XI

Servidor caseiro - X

Arquivos

Contacto

gamito@gmail.com

No Planeta Geek

tags

todas as tags

subscrever feeds