0. Comment c'était avant...

Avant l'arrivée de melina sur le réseau (voir ce lien), P3Scan tournait sur olivia. Donc un coup de iptables et REDIRECT sur le port 8110 suffisait amplement sur la machine pour tout ça...Le problème est que clamav peut-être le temps d'un travail sur un mail assez consommateur au niveau CPU...

Comme Xen est opérationnel sur melina, il m'est maintenant possible de faire tourner p3scan sur une machine dédiée.

1. Google et solutions possibles pour p3scan:

  1. [1]http://irp.nain-t.net/doku.php/100iproute:010_topologie
  2. [2] http://irp.nain-t.net/doku.php/100iproute:020_iproute2
C'est exactement ce que je recherchais. Les exlications fournies par l'auteur sont bien détaillées comme il faut. D'ailleurs je le remercies au passage pour la clarté de son travail et de partager ses connaissances comme il le fait. .

2. Réseau et solution

J'ai donc retenu une solution sans "passerelle miroir" par rapport à lui comme exposé dans [1].

J'ai procédé samedi soir à la configuration suivante sur mon réseau:


Les habitués du site ont du remarqués des coupures ce vendredi ou samedi pour accéder au site. Normal, je procédais à des tests sur olivia...Désolé pour les coupures et les gênes encourus.

Installation de p3scan, clamav et spamassassin

Depuis melina-xen05:
apt-get update
apt-get install clamav spamassassin p3scan razor pyzor
Au niveau des configurations:
  1. spamassassin:
    melina-xen05:~# grep -vE '^(#|$)' /etc/spamassassin/local.cf
    rewrite_header Subject *****SPAM*****
    report_safe 1
    use_bayes 1
    bayes_auto_learn 1
    
  2. clamav

    Commencez par ajouter l'utilisateur au groupe

    adduser clamav p3scan
    melina-xen05:~# grep -vE '^(#|$)' /etc/clamav/clamd.conf 
    LocalSocket /var/run/clamav/clamd.ctl
    FixStaleSocket true
    User clamav
    AllowSupplementaryGroups true
    ScanMail true
    ScanArchive true
    ArchiveLimitMemoryUsage false
    ArchiveBlockEncrypted false
    MaxDirectoryRecursion 15
    FollowDirectorySymlinks false
    FollowFileSymlinks false
    ReadTimeout 180
    MaxThreads 12
    MaxConnectionQueueLength 15
    StreamMaxLength 10M
    LogSyslog false
    LogFacility LOG_LOCAL6
    LogClean false
    LogVerbose false
    PidFile /var/run/clamav/clamd.pid
    DatabaseDirectory /var/lib/clamav
    SelfCheck 3600
    Foreground false
    Debug false
    ScanPE true
    ScanOLE2 true
    ScanHTML true
    DetectBrokenExecutables false
    MailFollowURLs false
    ExitOnOOM false
    LeaveTemporaryFiles false
    AlgorithmicDetection true
    ScanELF true
    IdleTimeout 30
    PhishingSignatures true
    PhishingScanURLs true
    PhishingAlwaysBlockSSLMismatch false
    PhishingAlwaysBlockCloak false
    DetectPUA false
    ScanPartialMessages false
    HeuristicScanPrecedence false
    StructuredDataDetection false
    LogFile /var/log/clamav/clamav.log
    LogTime true
    LogFileUnlock false
    LogFileMaxSize 0
    
  3. p3scan
    melina-xen05:~# grep -vE '^(#|$)' /etc/p3scan/p3scan.conf 
    pidfile = /var/run/p3scan/p3scan.pid
    maxchilds = 10
    ip = 0.0.0.0
    port = 8110
    user = p3scan
    notifydir = /var/spool/p3scan/notify
    virusdir = /var/spool/p3scan
    justdelete
    scannertype = basic
    scanner = /usr/bin/clamscan --no-summary
    virusregexp = .*: (.*) FOUND
    template = /etc/p3scan/p3scan-fr.mail
    subject = [virus] dans un message pour vous:
    notify = Pour information, le message a ete detruit.
    checkspam
    spamcheck = /usr/bin/spamc 
    

4. Configuration

Avant de continuer merci de suivres les explications et tests fournis à
    Du coup avant que celà ne marche chez moi, le serveur a du être redémarré plusieurs fois.
  1. Depuis olivia
    echo "200    pop3" >> /etc/iproute2/rt_tables
    puis dans /etc/rc.local,on ajoute les lignes
    ip rule add fwmark 6 table pop3
    ip route add default via 192.168.2.246 dev eth0 table pop3
    iptables -t mangle -A PREROUTING  -i eth1 -p tcp -m tcp --dport 110 -j MARK --set-mark 6
    
  2. Sur melina-xen05:Dans /etc/rc.local, on ajoute
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j REDIRECT --to-port 8110
    iptables -t nat -A OUTPUT  -p tcp --dport pop3 -m owner --uid-owner 106 -j ACCEPT
    iptables -t nat -A OUTPUT  -p tcp --dport pop3 -j REDIRECT --to 8110
    

    Ici 106 correspond au uid de l'utilisateur de p3scan, obtenu par la commande id p3scan

5. Mise à jour pour SpamAssassin 3.3.0 et pour Clamav

Bien que celà fonctionne avec la version actuel de SpamAssassin sous Lenny, il est possible de profiter de la version de la toute dernière version de clamav et de SpamAssassin en suivant les indications depuis https://admin-serv.net/blog/2010/01/31/456/spamassassin-v3-3-0-nouveautes-et-mise-a-jour/#more-456.

Ca a marché au poil pour moi...