Configuração · 5 min read · Sep 28, 2025
O SpamSnake Perfeito - Ubuntu Jaunty Jackalope - Página 5
17.11 Defina permissões para juntar tudo
chown -R postfix:www-data /var/spool/MailScanner
chown -R postfix:www-data /var/lib/MailScanner
chown -R postfix:www-data /var/spool/postfix/hold
chmod -R ug+rwx /var/spool/postfix/hold
chmod -R u+rwx,g+rx /var/spool/MailScanner/quarantineFinalmente, certifique-se de reiniciar o MailScanner:
killall mailscannercheck_mailscannerTeste a configuração:
spamassassin -x -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lintVerifique se há linhas como:
debug: bayes: Database connection established
debug: bayes: found bayes db version 3
debug: bayes: Using userid: 2Você deve ver linhas aparecerem com DCC, Pyzor e Razor que dizem carregando plugin e, esperançosamente, sem erros.
Finalizando esta parte, precisamos adicionar tarefas cron que farão a limpeza/atualização, você provavelmente viu a mensagem sobre isso após o script de instalação do MailScanner terminar.
Primeiro, edite conf.php e defina ‘QUARANTINE_DAYS_TO_KEEP’ em conf.php e altere a seguinte linha em /usr/src/mailwatch-1.0.4/tools/db_clean para:
#!/usr/bin/php -q
require('/var/www/mailscanner/functions.php');Instale o script de limpeza de quarentena:
cp /usr/src/mailwatch-1.0.4/tools/quarantine_maint.php /usr/bin/quarantine_maint.php
cp /usr/src/mailwatch-1.0.4/tools/db_clean.php /usr/bin/db_clean.php
chmod +x /usr/bin/quarantine_maint.php
chmod +x /usr/bin/db_clean.phpExecute
crontab -ee adicione o seguinte:
15 10 * * 2 /usr/bin/quarantine_maint.php --clean &> /dev/null
58 23 * * * /usr/bin/db_clean.php &> /dev/nullDesative o script cron instalado do mailscanner /etc/cron.daily/clean.quarantine (nota: faça isso apenas se o script clean.quarantine existir).
$disabled = 1; 17.12 Reinicie o sistema
rebootVerifique seu mail.log ( tail –f /var/log/mail.log) e você deve ver o seguinte:
Jun 13 12:18:23 hoshi MailScanner[26388]: MailScanner E-Mail Virus Scanner version 4.20-3 starting...
Jun 13 12:18:24 hoshi MailScanner[26388]: Config: calling custom init function MailWatchLogging
Jun 13 12:18:24 hoshi MailScanner[26388]: Initialising database connection
Jun 13 12:18:24 hoshi MailScanner[26388]: Finished initialising database connectionParabéns - agora você tem o MailScanner registrando no MySQL.
17.13 Teste a interface do MailWatch
Aponte seu navegador para http://
Se você não conseguir ver os e-mails, pode ser necessário definir as seguintes permissões:
chgrp -R www-data /var/spool/MailScannerVocê pode ter que criar o seguinte para evitar um erro em um teste de lint:
mkdir /var/www/.spamassassin17.14 Atualize a tabela de regras do SpamAssassin
O MailWatch mantém uma lista de todas as regras e descrições do SpamAssassin que são exibidas na página ‘Detalhe da Mensagem’ - para mostrar as descrições, você precisa executar o atualizador toda vez que adicionar novas regras ou atualizar o SpamAssassin. Clique no menu ‘Ferramentas/Links’ e selecione ‘Atualizar Descrições das Regras do SpamAssassin’ e clique em ‘Executar Agora’.
17.15 Atualize o banco de dados GeoIP
Altere esta linha em /var/www/mailscanner/geoip_update.php para ficar assim:
dbquery("LOAD DATA LOCAL INFILE *Nota: Certifique-se de que allow_url_fopen = On está definido em seu php.ini.
Clique no menu ‘Ferramentas/Links’ e selecione ‘Atualizar banco de dados GeoIP’ e clique em ‘Executar Agora’.
17.16 Correção para permitir curingas na Lista Branca/Lista Negra
Adicione o seguinte ao final da seção return 1 em seu /opt/MailScanner/lib/MailScanner/CustomFunctions/SQLBlackWhiteList.pm:
return 1 if $BlackWhite->{$to}{'*@'.$fromdomain};
return 1 if $BlackWhite->{$to}{'*@*.'.$fromdomain};
return 1 if $BlackWhite->{$todomain}{'*@'.$fromdomain};
return 1 if $BlackWhite->{$todomain}{'*@*.'.$fromdomain};
return 1 if $BlackWhite->{'default'}{'*@'.$fromdomain};
return 1 if $BlackWhite->{'default'}{'*@*.'.$fromdomain};17.17 Correção para Operações de Mensagens Não Encontrarem Mensagens
Altere o seguinte no arquivo /var/www/mailscanner/do_message_ops.php:
$id = $Regs[1]; para
$id = str_replace("_", ".",$Regs[1]); 17.18 Liberando Mensagens de Spam
Para permitir que o MailWatch libere mensagens de Spam sem que elas sejam processadas novamente, adicione 127.0.0.1 como um item da lista branca na interface MailWatch/List. Certifique-se de reiniciar o MailScanner após configurar essas opções. Abaixo está como minha entrada se parece.
| 127.0.0.1 | default | Delete |
17.19 Correção para Permitir Múltiplas Liberações de Mensagens em Operações de Mensagens
Edite /var/www/mailscanner/do_message_ops.php e faça as seguintes alterações:
case 'F':
$type='forget';
break;
case 'R':
$type='release';
break;
default:
continue;
break;Em seguida, encontre a seguinte seção e altere-a para ficar assim:
$itemnum = array($num);
if ($type == 'release'){
if($quarantined = quarantine_list_items($id,RPC_ONLY)) {
$to = $quarantined[0]['to'];
}
echo "$id $type " . quarantine_release($quarantined, $itemnum, $to, RPC_ONLY) . " \n";
} else {
echo "$id $type " . quarantine_learn($items, $itemnum, $type, RPC_ONLY) . " \n";
}
}
echo "\n";
}
}
}
}
echo " \n";Em seguida, editamos o arquivo /var/www/mailscanner/functions.php e alteramos:
$fieldname[$f] = "Ops
S H F"; para
$fieldname[$f] = "Ops
S H F R"; Em seguida, altere:
array_unshift($row, " " ); Para:
array_unshift($row, " "); Em seguida, encontre o bloco com a função javascript para lidar com botões de rádio. Adicione um terceiro valor assim:
echo "function SetRadios(p) {\n";
echo " var val;\n";
echo " if (p == 'S') {\n";
echo " val = 0;\n";
echo " } else if (p == 'H') {\n";
echo " val = 1;\n";
echo " } else if (p == 'F') {\n";
echo " val = 2;\n";
echo " } else if (p == 'R') {\n";
echo " val = 3;\n";
echo " } else if (p == 'C') {\n";
echo " ClearRadios();\n";Agora, adicione o texto para os rádios:
Finalmente, altere:
echo "S = Spam H = Ham F = Forget\n";
para:
echo "S = Spam H = Ham F = Forget R = Release\n";
17.20 Patch para corrigir erro de autocommit ao parar o MailScanner
Edite a linha 80 do MailWatch.pm para ficar assim:
$dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host", $db_user, $db_pass, {PrintError => 0, AutoCommit => 0}); *Nota: Isso desativa o autocommit quando se conecta, para que a linha de commit ao fechar não lance um erro.
18. Instale e Configure SPF
O pacote postfix-policyd-spf-perl depende dos módulos Perl Mail::SPF e NetAddr::IP.
Precisamos baixar o postfix-policyd-spf-perl de http://www.openspf.org/Software para o diretório /usr/src/ e instalá-lo no diretório /usr/lib/postfix/ assim:
cd /usr/src
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xvfz postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /usr/lib/postfix/policyd-spf-perlEm seguida, editamos /etc/postfix/master.cf e adicionamos a seguinte estrofe no final:
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(Os espaços iniciais antes de user=nobody são importantes para que o Postfix saiba que esta linha pertence à anterior!)
Então, abra /etc/postfix/main.cf e procure pela diretiva smtpd_recipient_restrictions. Você deve ter reject_unauth_destination nessa diretiva, e logo após reject_unauth_destination você adiciona check_policy_service unix:private/policy assim:
[...]
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policy
[...]É importante que você especifique check_policy_service DEPOIS de reject_unauth_destination ou seu sistema pode se tornar um relay aberto!
Então reinicie o Postfix:
/etc/init.d/postfix restartÉ isso já.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.