ClamAV ist ein Open-Source (GPL) Anti-Virus Toolkit für UNIX/Linux
Speziell für E-Mail-Scanning auf Mail-Gateways. Es bietet eine Reihe von Dienstprogrammen, einschließlich eines flexiblen und skalierbaren Multi-Threaded Daemon, sowie ein Kommandozeilen-Scanner als Fortgeschrittenes Werkzeug für die automatische Datenbankaktualisierungen. Der Kern des Pakets stellt eine Anti-Virus-Engine in Form einer gemeinsam genutzten Bibliothek zur Verfügung.
Dieser Artikel beschreibt die Integration von ClamAV auf einem CentOS 6 Mail Gateway (MTA) mit Postfix.
Als erstes wird der ClamAV Daemon aus dem EPL-Repo auf dem MTA installiert.
yum --enablerepo=epel -y install clamd clamsmtp
Nach der Installation wird der ClamAV-SMTP Daemon konfiguriert, bei den aufgeführten Zeilen das Kommentarzeichen-# entfernen (uncomment).
vi /etc/clamsmtpd.conf
Listen: 0.0.0.0:10025
Header: X-Virus-Scanned: ClamAV using ClamSMTP
Action: drop
Nun können die Dienste gestartet werden.
service clamsmtpd start
Mit freshclam die Antivirus-DB herunterladen.
freshclam
Den ClamAV Daemon starten
service clamsmtp-clamd start
Automatischer Systemstart aktivieren.
chkconfig clamsmtpd on
chkconfig clamsmtp-clamd on
Die Postfix content-filter Integration erfolgt in main.cf, über Port 10025 zu ClamAV, aus master.cf über Port 10026 der Rücktransport zu Postfix.
vi /etc/postfix/main.cf
content_filter = scan:127.0.0.1:10025
vi /etc/postfix/master.ch
scan unix - - n - 16 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
Postfix muss nun neu gestartet werden.
service postfix restart
Mit netstat kann die Daemon Bereitschaft überprüft werden.
[root@mail ~]# netstat -talpn | grep clam
tcp 0 0 0.0.0.0:10025 0.0.0.0:* LISTEN 21645/clamsmtpd
ClamAV kann mit telnet überprüft werden, wenn alles funktioniert sollte folgendes Resultat ausgegeben werden.
[root@mail ~]# telnet localhost 10025
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.passthru
ehlo localhost
250-smtp.passthru
250-SIZE 22000000
250-VRFY
250-ETRN
250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@mail ~]# telnet localhost 10026
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.odyssee.net ESMTP Postfix
ehlo localhost
250-mail.odyssee.net
250-PIPELINING
250-SIZE 22000000
250-VRFY
250-ETRN
250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
Auch sollte das Mail Protokoll konsultiert werden.
tail -f /var/log/maillog
Bei den E-Mail Internetkopfzeilen (SMTP-Envelope) erscheint die X-Header Signatur.
Troubleshooting
Werden keine Mails mehr empfangen, ist wahrscheinlich folgender Fehler in maillog zu finden:
clamsmtpd: 100006: CLAMAV: couldn’t connect to: /var/run/clamd.clamsmtp/clamd.sock: No such file or directory
clamsmtpd: 100004: SERVER: couldn’t connect to: 127.0.0.1:10026: Transport endpoint is not connected
Der clamd deamon ist nicht mehr aktive. Um die clamav Services neu zu starten, können diese in der Console beendet, und anschlissend wieder gestartet werden:
service clamd stop
service clamsmtp-clamd stop
service clamsmtpd stop
service clamd start
service clamsmtp-clamd start
service clamsmtpd start
Nach dem clamd und clamsmtpd gestartet ist, können die aktiven Ports wie folgt überprüft werden:
ls -al /var/run/clamd.clamsmtp/clamd.pid
-rw-rw-r-- 1 clamsmtp mail 6 Oct 28 16:24 /var/run/clamd.clamsmtp/clamd.pid
netstat -tulpn
tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 21134/clamsmtpd
tcp 0 0 127.0.0.1:10026 0.0.0.0:* LISTEN 21272/master
Weiter könnten noch Mails in der Queue liegen, diese mit dem Befehl mailq abgerfagt werden und postqueue abgearbeitet werden.
mailq
postqueue -f
Quelle: https://www.clamav.net/