Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 >

mercredi 6 août 2008

[Qmail - LDAP] Qmail-remove pour purger ses mails

Depuis plusieurs jours, j'ai ce mail qui traine dans mon serveur

2008-08-06 17:42:56.238200500 starting delivery 81: msg 11748527 to remote depressions@ideas-now.com
2008-08-06 17:42:56.238205500 status: local 0/10 remote 1/20
2008-08-06 17:42:57.712704500 delivery 81: deferral: Sorry,_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
2008-08-06 17:42:57.712710500 status: local 0/10 remote 0/20
2008-08-06 17:58:07.262245500 status: exiting

C'est ce que me confirme qmail-qstat

root@olivia:~/qmail-remove-0.95# qmail-qstat 
messages in queue:1
messages in queue but not yet preprocessed: 0

Il faut s'en débarasser!

Pour celà , il y a qmail-remove

Installation

Rien de plus simple que

wget http://www.linuxmagic.com/opensource/qmail/qmail-remove/qmail-remove-0.95.tar.gz
tar xvzf qmail-remove-0.95.tar.gz 
cd qmail-remove-0.95
   make
make install

Il faut aussi créer le répertoire nécessaire

mkdir /var/qmail/queue/yanked

Utilisation

Avant de le lancer, il faut arrêter le serveur

svc -d /service/*

Puis, on procède à  une recherche sur le motif ideas

qmail-remove -r -p ideas
Puis on relance le serveur
svc -u /service/*

On vérifie que c'est bon avec qmail-qstat

root@olivia:~/qmail-remove-0.95# qmail-qstat 
messages in queue: 0
messages in queue but not yet preprocessed: 0

Source pour qmail-remove: http://www.debianadmin.com/delete-qmail-server-messages-queue.html

[Qmail - LDAP] Filter les mails avec SpamAssassin

J'ai fait la modification suivante pour mon coloc' Ludo qui en a besoin ces temps-ci. Il a besoin d'une boite mails ces temps-ci. Normalement, une fois que Qmail et LDAP sont configurés, il faut ajouter les 3 entrées suivantes à  l'annuaire pour chaque utilisateur

ChampsValeur
qmailDotModeldapwithprog
deliveryProgramPath/var/qmail/bin/spamcheck.sh
deliveryModenolocal

L'idée provient de http://www.mail-archive.com/qmail-ldap@argus.pipeline.ch/msg06122.html

Le contenu du script spamcheck.sh est
/usr/bin/spamc  |/usr/local/bin/maildir ./Maildir/

Rappel: SMBLDAP-QMAIL-TOOLS

Pour ceux qui ont un serveur Samba monté en PDC avec OpenLDAP et qui souhaitent configuré ce dernier avec un serveur de mail comme qmail, il existe aussi les smbldap-qmail-tools disponibles à  http://smbldap-addons.sourceforge.net/smbldap-qmail-tools/

Pour monter un tel serveur, deux liens bien intéressant

Surtout beaucoup de patience pour le monter car il en faut en suivant les diverses manip'...mais le jeu en vaut la chandelle!

Spamc

Il faut aussi avoir installer spamc et spamassassin. Voici c un descriptif de spamc fourni par apt-cache sur Ubuntu
root@olivia:~# apt-cache show spamc
Package: spamc
Priority: optional
Section: mail
Installed-Size: 168
Maintainer: Duncan Findlay 
Architecture: i386
Source: spamassassin
Version: 3.2.3-0.volatile1
Depends: libc6 (>= 2.3.6-6), libssl0.9.8 (>= 0.9.8c-1), zlib1g (>= 1:1.2.1)
Suggests: spamassassin
Conflicts: spamassassin (<< 2.30-2)
Filename: pool/volatile/main/s/spamassassin/spamc_3.2.3-0.volatile1_i386.deb
Size: 70290
MD5sum: 4b5efc0020b846897d5afb0fdc814345
SHA1: ac81d80d098366b593895c3643b4cc1b7804306a
SHA256: ba8f2238d3cb55183362bfa6acff80d66f18349cf775f2329412e37e37486700
Description: Client for SpamAssassin spam filtering daemon
 spamc is the client to communicate with spamd, the daemonized form of
 SpamAssassin (see the spamassassin package). It is written in C for
 maximum speed and minimum loading overhead.
 .
 spamc is quite useful for integrating spamassassin into an MTA or
 into a .procmailrc file because of its speed.
 .
 This package is useless unless you have spamassassin installed,
 either on this machine or another local machine (i.e. a mail server).
 .
 Homepage: http://www.spamassassin.org

Package: spamc
Priority: optional
Section: universe/mail
Installed-Size: 164
Maintainer: Ubuntu MOTU Developers 
Original-Maintainer: Duncan Findlay 
Architecture: i386
Source: spamassassin
Version: 3.1.7-2ubuntu1
Depends: libc6 (>= 2.5-0ubuntu1), libssl0.9.8 (>= 0.9.8c-1)
Suggests: spamassassin
Conflicts: spamassassin (<< 2.30-2)
Filename: pool/universe/s/spamassassin/spamc_3.1.7-2ubuntu1_i386.deb
Size: 75272
MD5sum: d8e4cefa71dc5fe2c8bf1f46eedcedd4
SHA1: 528b8249b60177a1dbeeb8c8be6d8e4707ffb15b
SHA256: 065f90cec4111edfb529fb3206a0840aac24043d679031a5efaa189a45e6b831
Description: Client for SpamAssassin spam filtering daemon
 spamc is the client to communicate with spamd, the daemonized form of
 SpamAssassin (see the spamassassin package). It is written in C for
 maximum speed and minimum loading overhead.
 .
 spamc is quite useful for integrating spamassassin into an MTA or
 into a .procmailrc file because of its speed.
 .
 This package is useless unless you have spamassassin installed,
 either on this machine or another local machine (i.e. a mail server).
 .
 Homepage: http://www.spamassassin.org
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu

Script PHP pour ajouter les trois entrées requis

On partira ici du principe qu'on a un utilisateur déjà  référencé sous qmail-ldap. Ici il s'appelle ludovic.pires. Si on a compilé PHP avec LDAP, on peut recourir au script suivant en utilisant ldap_modifiy()

<?
   $server = "localhost";
   $port = "389";
   $racine = "dc=chezdavid,dc=local";
 //  $rootdn = "uid=ludovic.pires,ou=Users,dc=chezdavid,dc=local";
   $rootdn = "cn=admin,dc=chezdavid,dc=local";
   $rootpw = "mot_de_passe";
   echo "Connexion...\n";
   $ds=ldap_connect($server);
if ($ds==1)
         {
                // on s'authentifie en tant que super-utilisateur, ici, ldap_admin
                $r=ldap_bind($ds,$rootdn,$rootpw);
                $entry["cn"]="ludovic.pires";
                $entry["sn"]="ludovic.pires";
                $entry["qmailDotMode"] = "ldapwithprog";
                $entry["deliveryProgramPath"] = "/var/qmail/bin/spamcheck.sh";
                $entry["deliveryMode"] = "nolocal";
                $r=ldap_modify($ds, "uid=ludovic.pires,ou=Users,dc=chezdavid,dc=local",$entry);
                echo "Deconnexion...\n";
                ldap_close($ds);
         }
else {
        echo  "Impossible de se connecter au serveur LDAP";

         }
?>
On l'exécute en ligne de commande en faisant
 /usr/lib/cgi-bin/php -q  php_qmail_spam_add.php

Pour vérifier que tout a été ajoutée sans souci

root@olivia:~# smbldap-usershow ludovic.pires|grep -e qmailDotMode -e delivery
qmailDotMode: ldapwithprog
deliveryProgramPath: /var/qmail/bin/spamcheck.sh
deliveryMode: nolocal

Test

Depuis mon bureau, je me suis envoyé deux fois le même mail à  la maison, et en regardant les logs de spamd.log
root@olivia:~# tail -f /var/log/spamd.log 
Wed Aug  6 11:06:32 2008 [5488] info: prefork: child states: II
Wed Aug  6 13:31:29 2008 [5623] info: spamd: connection from olivia.davidgis.fr [127.0.0.1] at port 45032
Wed Aug  6 13:31:29 2008 [5623] info: spamd: setuid to ludovic.pires succeeded
Wed Aug  6 13:31:29 2008 [5623] info: spamd: creating default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug  6 13:31:29 2008 [5623] warn: config: cannot write to /home/user/ludovic.pires/.spamassassin/user_prefs: No such file or directory
Wed Aug  6 13:31:29 2008 [5623] info: spamd: failed to create readable default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug  6 13:31:29 2008 [5623] info: spamd: processing message <1218022003.7698.0.camel@jdtecher.xerus.net> for ludovic.pires:1016
Wed Aug  6 13:31:31 2008 [5623] info: spamd: identified spam (10.8/5.0) for ludovic.pires:1016 in 2.2 seconds, 1111 bytes.
Wed Aug  6 13:31:31 2008 [5623] info: spamd: result: Y 10 - FB_BAD_ERECT scantime=2.2,size=1111,user=ludovic.pires,uid=1016,required_score=5.0,rhost=olivia.davidgis.fr,raddr=127.0.0.1,rport=45032,mid=<1218022003.7698.0.camel@jdtecher.xerus.net>,autolearn=no
Wed Aug  6 13:31:31 2008 [5488] info: prefork: child states: II
Wed Aug  6 13:35:12 2008 [5623] info: spamd: connection from olivia.davidgis.fr [127.0.0.1] at port 45188
Wed Aug  6 13:35:12 2008 [5623] info: spamd: setuid to ludovic.pires succeeded
Wed Aug  6 13:35:12 2008 [5623] info: spamd: creating default_prefs: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug  6 13:35:12 2008 [5623] warn: config: created user preferences file: /home/user/ludovic.pires/.spamassassin/user_prefs
Wed Aug  6 13:35:12 2008 [5623] info: spamd: processing message <1218022229.7698.2.camel@jdtecher.xerus.net> for ludovic.pires:1016
Wed Aug  6 13:35:12 2008 [5623] warn: pyzor: check failed: internal error
Wed Aug  6 13:35:15 2008 [5623] info: spamd: identified spam (10.8/5.0) for ludovic.pires:1016 in 2.5 seconds, 1111 bytes.
Wed Aug  6 13:35:15 2008 [5623] info: spamd: result: Y 10 - FB_BAD_ERECT scantime=2.5,size=1111,user=ludovic.pires,uid=1016,required_score=5.0,rhost=olivia.davidgis.fr,raddr=127.0.0.1,rport=45188,mid=<1218022229.7698.2.camel@jdtecher.xerus.net>,autolearn=no

Finalement les sous-répertoires de .spamassassin sont proprement créés.

mardi 5 août 2008

[MultiTail] Exemple avec Qmail

On peut utiliser l'exemple suivant

multitail \
-l "tail -F -q /var/log/qmail/main/current|tai64nlocal" \
-l "tail -F -q /var/log/smtpd/main/current|tai64nlocal" \
-l "tail -F -q /var/log/pop3/main/current|tai64nlocal" \
-l "tail -F -q /var/log/spamd.log"

mercredi 30 juillet 2008

[Squid + iptables] Comme proxy Web pour le réseau interne

Dans mon script général, je mets

OPEN_PORT_SQUID3=1
avec une petit fonction pour mettres en couleur mes messages
message()
{
   echo -e "\033[1;34;0m[ \033[1;32;20m$1 \033[1;34;0m]\033[0m"
}

Plus loin

# Squid3: Proxy Web
#
if [ $OPEN_PORT_SQUID3 -eq 1 ]
then
        message "Activation de Squid3"
        iptables -t nat -A PREROUTING -i eth0 -s 192.168.2.0/24 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1:3128
        iptables -A FORWARD -p tcp -i eth0 --dport 3128 -j ACCEPT
else
        message "Squid3 est inactif!"
fi

Ainsi toutes les demandes du réseau 192.168.2.1.X à  destination du port 80 (web) par le biais du l'interface eth0 sont redirigées vers le port 3128 - port du serveur squid -.