Configuration système · 6 min read · Sep 28, 2025
Le SpamSnake Parfait - Ubuntu Jaunty Jackalope - Page 5
17.11 Définir les permissions pour tout rassembler
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/quarantineEnfin, assurez-vous de redémarrer MailScanner :
killall mailscannercheck_mailscannerTestez la configuration :
spamassassin -x -D -p /opt/MailScanner/etc/spam.assassin.prefs.conf --lintVérifiez les lignes comme :
debug: bayes: Database connection established
debug: bayes: found bayes db version 3
debug: bayes: Using userid: 2Vous devriez voir des lignes apparaître avec DCC, Pyzor et Razor qui disent chargement du plugin et espérons-le pas d’erreurs.
Pour terminer cette partie, nous devons ajouter des tâches cron qui nettoieront/mettre à jour, vous avez probablement vu le message à ce sujet après que le script d’installation de MailScanner se soit terminé.
Tout d’abord, éditez conf.php et définissez ‘QUARANTINE_DAYS_TO_KEEP’ dans conf.php et changez la ligne suivante dans /usr/src/mailwatch-1.0.4/tools/db_clean en :
#!/usr/bin/php -q
require('/var/www/mailscanner/functions.php');Installez le script de nettoyage de la quarantaine :
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.phpExécutez
crontab -eet ajoutez ce qui suit :
15 10 * * 2 /usr/bin/quarantine_maint.php --clean &> /dev/null
58 23 * * * /usr/bin/db_clean.php &> /dev/nullDésactivez le script cron installé par mailscanner /etc/cron.daily/clean.quarantine (note : faites cela uniquement si le script clean.quarantine existe).
$disabled = 1; 17.12 Redémarrer le système
rebootVérifiez votre mail.log ( tail –f /var/log/mail.log) et vous devriez voir ce qui suit :
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 connectionFélicitations - vous avez maintenant MailScanner enregistrant dans MySQL.
17.13 Tester l’interface MailWatch
Pointez votre navigateur vers http://
Si vous ne parvenez pas à voir les mails, vous devrez peut-être définir les permissions suivantes :
chgrp -R www-data /var/spool/MailScannerVous devrez peut-être créer ce qui suit pour éviter une erreur dans un test lint :
mkdir /var/www/.spamassassin17.14 Mettre à jour la table des règles SpamAssassin
MailWatch garde une liste de toutes les règles et descriptions SpamAssassin qui sont affichées sur la page ‘Détails du message’ - pour afficher les descriptions, vous devez exécuter le programme de mise à jour chaque fois que vous ajoutez de nouvelles règles ou mettez à niveau SpamAssassin. Cliquez sur le menu ‘Outils/Liens’ et sélectionnez ‘Mettre à jour les descriptions des règles SpamAssassin’ et cliquez sur ‘Exécuter maintenant’.
17.15 Mettre à jour la base de données GeoIP
Changez cette ligne dans /var/www/mailscanner/geoip_update.php pour qu’elle ressemble à :
dbquery("LOAD DATA LOCAL INFILE *Note : Assurez-vous que allow_url_fopen = On est défini dans votre php.ini.
Cliquez sur le menu ‘Outils/Liens’ et sélectionnez ‘Mettre à jour la base de données GeoIP’ et cliquez sur ‘Exécuter maintenant’.
17.16 Correction pour permettre les jokers dans la liste blanche/noire
Ajoutez ce qui suit à la fin de la section return 1 dans votre /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 Correction pour les opérations de message ne trouvant pas les messages
Changez ce qui suit dans le fichier /var/www/mailscanner/do_message_ops.php :
$id = $Regs[1]; en
$id = str_replace("_", ".",$Regs[1]); 17.18 Libération des messages Spam
Pour permettre à MailWatch de libérer des messages Spam sans qu’ils soient traités à nouveau, ajoutez 127.0.0.1 comme élément de liste blanche dans l’interface MailWatch/Liste. Assurez-vous de redémarrer MailScanner après avoir configuré ces options. Ci-dessous, voici à quoi ressemble mon entrée.
| 127.0.0.1 | default | Supprimer |
17.19 Correction pour permettre plusieurs libérations de messages dans les opérations de message
Éditez /var/www/mailscanner/do_message_ops.php et apportez les modifications suivantes :
case 'F':
$type='forget';
break;
case 'R':
$type='release';
break;
default:
continue;
break;Ensuite, trouvez la section suivante et changez-la pour qu’elle ressemble à ceci :
$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";Ensuite, nous éditons le fichier /var/www/mailscanner/functions.php et changeons :
$fieldname[$f] = "Ops
S H F"; en
$fieldname[$f] = "Ops
S H F R"; Ensuite, changez :
array_unshift($row, " "); En :
array_unshift($row, " "); Ensuite, trouvez le bloc avec la fonction javascript pour gérer les boutons radio. Ajoutez une troisième valeur comme ceci :
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";Maintenant, ajoutez le texte pour les radios :
Enfin, changez :
echo "S = Spam H = Ham F = Oublier\n";
en :
echo "S = Spam H = Ham F = Oublier R = Libérer\n";
17.20 Patch pour corriger l’erreur d’autocommit lors de l’arrêt de MailScanner
Éditez la ligne 80 de MailWatch.pm pour qu’elle ressemble à ceci :
$dbh = DBI->connect("DBI:mysql:database=$db_name;host=$db_host", $db_user, $db_pass, {PrintError => 0, AutoCommit => 0}); *Note : Cela désactive l’autocommit lorsqu’il se connecte afin que la ligne de validation lors de la fermeture ne génère pas d’erreur.
18. Installer et configurer SPF
Le paquet postfix-policyd-spf-perl dépend des modules Perl Mail::SPF et NetAddr::IP.
Nous devons télécharger postfix-policyd-spf-perl depuis http://www.openspf.org/Software dans le répertoire /usr/src/ et l’installer dans le répertoire /usr/lib/postfix/ comme ceci :
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-perlEnsuite, nous éditons /etc/postfix/master.cf et ajoutons le passage suivant à la fin :
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(Les espaces en début de ligne avant user=nobody sont importants pour que Postfix sache que cette ligne appartient à la précédente !)
Ensuite, ouvrez /etc/postfix/main.cf et recherchez la directive smtpd_recipient_restrictions. Vous devez avoir reject_unauth_destination dans cette directive, et juste après reject_unauth_destination, vous ajoutez check_policy_service unix:private/policy comme ceci :
[...]
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policy
[...]Il est important que vous spécifiiez check_policy_service APRÈS reject_unauth_destination sinon votre système peut devenir un relais ouvert !
Ensuite, redémarrez Postfix :
/etc/init.d/postfix restartC’est tout.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.