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/suidperlAgora o qmail-scanner:
É necessário criar um grupo e um
user chamados qscand:
# groupadd qscand# useradd -s /bin/false -g qscand qscandA seguir:
# ./configureAqui, respondemos "Y":
I
t will then generate qmail-scanner-queue.pl - it is up to you to install itcorrectly.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.plfor 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 --installe 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 -doitEste ú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":allowe refazer o binário tcp.smtp.cdb:
# cat tcp.smtp | tcprules tcp.smtp.cdb rules.tempO 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/shexec 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-sendTudo pronto, vou enviar uma mensagem de teste:
# telnet planetgeek.dynip.sapo.pt 25Trying 192.168.0.101...Connected to planetgeek.dynip.sapo.pt (192.168.0.101).Escape character is '^]'.220 planetgeek.dynip.sapo.pt ESMTPEHLO planetgeek.dynip.sapo.pt250-planetgeek.dynip.sapo.pt250-PIPELINING250 8BITMIMEMAIL FROM: root@planetgeek.dynip.sapo.pt250 okRCPT TO: teste@planetgeek.dynip.sapo.pt250 okDATA354 go aheadTeste do qmail-scanner, SpamAssassin e f-prot.250 ok 1187615673 qp 360QUIT221 planetgeek.dynip.sapo.ptConnection closed by foreign host.Mudo para o directório /home/vpopmail/domains/planetgeek.dynip.s
apo.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# ls1187615674.372.planetgeek.dynip.sapo.pt,S=593Faço agora um cat ao ficheiro para analisar o envelope da mensagem:
# cat 1187615674.372.planetgeek.dynip.sapo.pt\,S\=593Return-Path: <root@planetgeek.dynip.sapo.pt>Delivered-To: teste@planetgeek.dynip.sapo.ptReceived: (qmail 369 invoked by uid 513); 20 Aug 2007 13:14:33 -0000Received: 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 -0000Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101) by 0 with SMTP; 20 Aug 2007 13:14:08 -0000Teste do qmail-scanner, SpamAssassin e f-protComo 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\=2363Return-Path: <gamito@gmail.com>Delivered-To: teste@planetgeek.dynip.sapo.ptReceived: (qmail 4397 invoked by uid 513); 20 Aug 2007 14:30:58 -0000Received: 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 -0000X-Spam-Status: No, score=0.1 required=5.0X-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 -0000Received: 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.1187620276171Content-Type: text/plain; charset=ISO-8859-1Content-Transfer-Encoding: 7bitContent-Disposition: inlineTeste de fora - GMail------=_Part_111403_22450460.1187620276171Content-Type: text/html; charset=ISO-8859-1Content-Transfer-Encoding: 7bitContent-Disposition: inlineTeste 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\=4131Return-Path: <gamito@gmail.com>Delivered-To: teste@planetgeek.dynip.sapo.ptReceived: (qmail 4447 invoked by uid 513); 20 Aug 2007 14:37:53 -0000Received: 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 -0000X-Spam-Status: Yes, score=29.0 required=5.0X-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 -0000Received: 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 vd0a01Conforme 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# lsplanetgeek.dynip.sapo.pt11876213385404534Podemos fazer um cat ao ficheiro para vermos o vírus:
# cat planetgeek.dynip.sapo.pt11876213385404534Received: from unknown (HELO ?192.168.0.100?) (192.168.0.100) by 0 with SMTP; 20 Aug 2007 14:48:57 -0000Message-ID: <46C9A9F4.7030700@gmail.com>Date: Mon, 20 Aug 2007 15:49:24 +0100From: =?ISO-8859-1?Q?M=E1rio_Gamito?= <gamito@gmail.com>User-Agent: Thunderbird 2.0.0.6 (Windows/20070728)MIME-Version: 1.0To: teste@planetgeek.dynip.sapo.ptSubject: Teste do =?ISO-8859-1?Q?anti-v=EDrus?=Content-Type: multipart/mixed; boundary="------------010207090307060604020104"This is a multi-part message in MIME format.--------------010207090307060604020104Content-Type: text/plain; charset=ISO-8859-1; format=flowedContent-Transfer-Encoding: 8bitVírus EICAR--:wq! Mário Gamito--------------010207090307060604020104Content-Type: application/octet-stream; name="eicar.com"Content-Transfer-Encoding: base64Content-Disposition: attachment; filename="eicar.com"WDVPIVAlQEFQWzRcUFpYNTQoUF4pN0NDKTd9JEVJQ0FSLVNUQU5EQVJELUFOVElWSVJVUy1URVNULUZJTEUhJEgrSCo=--------------010207090307060604020104--*** Qmail-Scanner Quarantine Envelope Details Begin ***X-Qmail-Scanner-Mail-From: "gamito@gmail.com" via planetgeek.dynip.sapo.ptX-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...
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.