Diese Installations-Anleitung wurde erfolgreich auf folgenden Mac OS X Server Versionen getestet:
10.2.6, 10.2.8, 10.3.0, 10.3.4, 10.3.5 und 10.3.6
Unter den vielen Artikeln im Web ist es schwer, einen zu finden, der alle Instruktionen beinhaltet, die benötigt werden, um eine problemlose Installation durchzuführen. Darum habe ich für Euch eine Anleitung zusammengestellt, welche die Installation so einfach und schmerzlos wie möglich machen soll.
Einleitung und Voraussetzungen
Dieser Artikel behandelt den Einsatz von AMaViS (A Mail Virus Scanner) als Spam-Virus-Filter unter Mac OS X Server. Dieses pfiffige Programm arbeitet mit allen gängigen Mailservern und natürlich auch mit Postfix zusammen. AMaViS checkt Ihnen auf bequeme Art alle E-Mail nach Viren und - heute fast wichtiger - bindet Ihnen gleichzeitig den hervorragenden Spam-Filter SpamAssassin ein, mit dem Sie einen Grossteil des eingehenden Spam herausfiltern und wirklich beachtliche Erfolge erzielen können.
Genaugenommen gibt es heute gleich eine Vielzahl verschiedener AMaViS-Abarten: amavis, amavis-perl, amavisd, amavis-ng und amavisd-new. Alle sind Variationen des immer gleichen Prinzips mit verschiedenen Vor- und Nachteilen.
Ich möchte Ihnen aber ganz klar amavisd-new empfehlen, da er äusserst stabil, performant und ressourcenschonend läuft, aktiv weiterentwickelt wird und hervorragend mit SpamAssassin zusammenarbeitet.
Da gerade die Art und Weise der jeweiligen Installationen bei den verschiedenen AMaViS-Abarten auseinanderfallen, gilt die nachfolgende Funktionsbeschreibung und Installationsanleitung ausschliesslich für amavisd-new!
Dieser Prozess arbeitet nach folgendem Ablauf:
[LIST]
% sudo dscl localhost -create /NetInfo/root/Groups/clamav
% sudo dscl localhost -create /NetInfo/root/Groups/clamav gid 30
% sudo dscl localhost -create /NetInfo/root/Users/clamav
% sudo dscl localhost -create /NetInfo/root/Users/clamav uid 30
% sudo dscl localhost -create /NetInfo/root/Users/clamav gid 30
% sudo dscl localhost -create /NetInfo/root/Users/clamav shell /bin/tcsh
% sudo dscl localhost -create /NetInfo/root/Users/clamav home /tmp
% sudo dscl localhost -create /NetInfo/root/Users/clamav passwd ”*”
% sudo niutil -create . /groups/clamav
% sudo niutil -createprop . /groups/clamav gid 30
% sudo niutil -create . /users/clamav
% sudo niutil -createprop . /users/clamav uid 30
% sudo niutil -createprop . /users/clamav gid 30
% sudo niutil -createprop . /users/clamav shell /bin/tcsh
% sudo niutil -createprop . /users/clamav home /tmp
% sudo niutil -createprop . /users/clamav passwd ”*”
% sudo mkdir /var/amavis
% sudo mkdir /var/amavis/tmp
% sudo mkdir /var/amavis/db
% sudo chown -R clamav:clamav /var/amavis
% sudo chmod -R 750 /var/amavis
% sudo mkdir /var/virusmails
% sudo chown clamav:clamav /var/virusmails
% sudo chmod 750 /var/virusmails
% sudo touch /var/amavis/whitelist_sender
% sudo mkdir /var/clamav
% sudo chown clamav:clamav /var/clamav
% sudo chmod 0750 /var/clamav
% sudo mkdir /var/log/clamav
% sudo touch /var/log/clamav/clamd.log
% sudo touch /var/log/clamav/freshclam.log
% sudo chmod 0644 /var/log/clamav/clamd.log
% sudo chmod 0644 /var/log/clamav/freshclam.log
% sudo chown clamav /var/log/clamav/clamd.log
% sudo chown clamav /var/log/clamav/freshclam.log
% curl -O http://www.ijs.si/software/amavisd/amavisd-new-2.2.0.tar.gz
% curl -O http://mesh.dl.sourceforge.net/sourceforge/clamav/clamav-0.80.tar.gz
% curl -O ftp://sleepycat1.inetu.net/releases/db-4.2.52.NC.tar.gz
% curl -O http://swox.com/gmp/gmp-4.1.4.tar.gz
% ls *.gz | xargs -n 1 tar zxvf
% ls *.bz2 | xargs -n 1 tar jxvf
% mv ./clamav-0.80 ./clamav
% sudo rm -r *.gz
% sudo rm -r *.bz2
% cd ./db/build_unix
% ../dist/configure
% make; sudo make install
% cd ../
config
nach «BerkeleyDB» sucht und nicht nach «BerkeleyDB.4.2».
% ln -s /usr/local/BerkeleyDB.4.2 /usr/local/BerkeleyDB
% cd ../gmp
% ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --enable-devel
% make; sudo make install
% cd ../clamav
% ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc
% make; sudo make install
/etc/freshclam.conf
und ändern Sie diese wie folgt (die Zeile «Example» muss gelöscht oder auskommentiert werden):
# Example
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose
PidFile /var/clamav/freshclam.pid
DatabaseOwner clamav
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror database.clamav.net
MaxAttempts 5
Checks 24
# Example
LogTime
LogFile /var/log/clamav/clamd.log
LogVerbose
PidFile /var/clamav/clamd.pid
LocalSocket /var/clamav/clamd.sock
MaxThreads 20
SelfCheck 1800
User clamav
% sudo /usr/local/bin/freshclam
clamav
und scannen Sie den Ordner mit:
% sudo /usr/local/bin/clamscan -r -l scanlog.txt clamav
test
sind einige Beispiele versteckt, wie Sie der Logdatei scanlog.txt
entnehmen können. Wohlgemerkt, es handelt sich dabei nicht um echte Viren, sondern nur um Test-Signaturen für diesen Virenscanner.
% sudo perl -MCPAN -e shell
o conf init
(beachten Sie den Buchstaben «o» am Anfang des Aufrufs). install
. Mit den untenstehenden Befehlen installieren Sie alle benötigten Ingredienzien. Nach jeder Anweisung lädt Perl das Modul herunter, kompiliert und installiert es.
cpan> install Archive::Tar Archive::Zip BerkeleyDB Compress::Zlib Convert::UUlib Digest::MD5
cpan> install IO::Stringy Mail::ClamAV Mail::Internet Mail::SpamAssassin MIME::Base64 MIME::Parser
cpan> install Net::SMTP Net::Server Time::HiRes Unix::Syslog Digest::SHA1
cpan> force install Convert::TNEF Net::SMTP
cpan> quit
/etc/amavisd.conf
. Diese Datei ist zwar sehr lang und umfangreich, allerdings auch sehr gut dokumentiert und weitgehend selbsterklärend. Ich werde hier auflisten, welche Zeilen auf jedenfall geändert werden sollten.$mydomain
tragen Sie hier Ihre Domäne ein$myhostname
tragen Sie hier Ihren Hostnamen ein$daemon_user
sollte auf «clamav» gesetzt werden$daemon_group
sollte auf «clamav» gesetzt werden$pid_file
zu ”/var/amavis/amavisd.pid”$lock_file
zu ”/var/amavis/amavisd.lock”D_DISCARD
setzen, was die fragliche Mail effektiv löscht.$virus_admin
und $spam_admin
Einstellungen festlegen, wohin die entsprechenden Meldungen geschickt werden.undef
setzen, was die Mails löscht. Falls Sie sie behalten, sollten Sie daran denken, den entsprechenden Ordner regelmässig zu entleeren, da Sie sonst Ihre Festplatte damit füllen.sa_tag
Level bestimmen, wann Spam Mail in Quarantäne geht und wann diese gelöscht wird. Ebenfalls in dieser Sektion sollten Sie die Rauten (#) vor den Zeilen im clamd
Abschnitt entfernen, damit es ungefähr so aussieht:
[”Clam Antivirus-clamd”,
&ask_daemon, [”CONTSCAN {}n”, ”/var/clamav/clamd.pid”],
qr/bOK$/, qr/bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
% cd ../amavisd-new
% sudo cp amavisd.conf /etc/
% sudo chown root /etc/amavisd.conf
% sudo chmod 644 /etc/amavisd.conf
% sudo cp amavisd /usr/bin/
% sudo chown root /usr/bin/amavisd
% sudo chmod 755 /usr/bin/amavisd
/etc/postfix/main.cf
eintragen, welche Postfix anweist, amavisd vor der Übermittlung als Content-Filter zu benutzen.
#
# =================================================
# Amavis-new/ClamAV
# =================================================
#
content_filter=smtp-amavis:[127.0.0.1]:10024
/etc/postfix/master.cf
folgendes hinzu:
#
# =================================================
# Amavis-new/ClamAV
# =================================================
#
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - y - - 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=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o receive_override_options=no_header_body_checks
reload
von Postfix eine Fehlermeldung:
fatal: /etc/postfix/master.cf: line 126: bad transport type: smtp_data_done_timeout=1200
% sudo postfix check
% sudo postfix reload
amavisd-new
Ordner, entpacken Sie das darin enthaltene Archiv «Macintosh.tar.gz» und begeben Sie sich anschliessend in den neu erzeugten Ordner «Macintosh»:
% cd amavisd-new
% tar xvfz Macintosh.tar.gz
% cd Macintosh
AMAVISCLAMAV
in das Verzeichnis /System/Library/StartupItems/
und vergeben Sie die richtigen Rechte:
% sudo mv AMAVISCLAMAV /System/Library/StartupItems/
% sudo chown root:admin /System/Library/StartupItems/AMAVISCLAMAV/*
% sudo chmod 0755 /System/Library/StartupItems/AMAVISCLAMAV/AMAVISCLAMAV
/Library/StartupItems/
ablegen./etc/hostconfig
in Ihrem bevorzugten Editor und fügen Sie folgende Variable hinzu:
AMAVISCLAMAV=-YES-
/etc/hostconfig
und ändern AMAVISCLAMAV=-YES-
in AMAVISCLAMAV=-NO-
.
% sudo SystemStarter start ”AMAVISCLAMAV”
% sudo SystemStarter stop ”AMAVISCLAMAV”
% sudo SystemStarter restart ”AMAVISCLAMAV”
/private/etc/hostconfig
deaktiviert haben.[/I]clamav
Mac OS X Ordner und entpacken Sie das darin enthaltene Archiv «Macintosh.tar.gz».
% cd clamav/docs/MacOSX
% tar xvfz Macintosh.tar.gz
clamav
Ordner, erzeugen einige Dateien und vergeben die richtigen Rechte:
% sudo mv ./clamav /etc/periodic/clamav
% sudo touch /var/log/clamav/amavis.log
% sudo chmod 0644 /var/log/clamav/amavis.log
% sudo chown clamav /var/log/clamav/amavis.log
% chmod 0755 /etc/periodic/clamav
% chmod 0755 /etc/periodic/clamav/*
% chown root:wheel /etc/periodic/clamav
% chown root:wheel /etc/periodic/clamav/*
/etc/crontab
in einem Editor und fügen Sie folgende Zeile hinzu:
30 4 * * 0 root periodic clamav
periodic
darauf zuzugreifen:
% cd /etc
% sudo ln -s periodic/clamav/500.clamav clamav
% sudo touch /var/log/clamav/amavis.log
amavisd.conf
folgende Änderungen hinzu:
$LOGFILE = ”/var/log/clamav/amavis.log”;
$DO_SYSLOG = 0;
periodic
Konfigurations-Datei hinzufügen, indem wir die Datei editieren
% sudo pico /private/etc/default/periodic.conf
# clamav options
# These options are used by periodic(8) itself to determine what to do
# with the output of the sub-programs that are run, and where to send
# that output.
#
clamav_output=”/var/log/clamav.out” # user or /file
clamav_show_success=”YES” # scripts returning 0
clamav_show_info=”YES” # scripts returning 1
clamav_show_badconfig=”NO” # scripts returning 2
/usr/share/man/man8/periodic.8
und /usr/share/man/cat8/periodic.8.gz
ebenfalls bearbeitet, um meine Routinen zu integrieren.periodic.8.gz
zu bearbeiten, müssen Sie sie zuerst entpacken. Ich empfehle BBEdit zu verwenden, um die Datei zu editieren, da es eine Option beinhaltet unsichtbare Zeichen anzuzeigen - und diese Datei ist gespickt mit solchen./usr/share/man/cat8
. Fertig!
% sudo SystemStarter start ”AMAVISCLAMAV”
% sudo postfix reload
© by macjaner.ch | Powered by GoeGG-ArT.ch