Nachdem sich Debian immer weiterdreht, habe ich meine Mail- und Antispamhowtos zusammengefasst und mal auf den aktuellen Stand gebracht. Ich beziehe mich zwar im wesentlichen auf Debian, allerdings dürften abweichend von der Grundinstallation der Pakete, dieses Howto auf jeden anderen Linuxsystem ebenso funktionieren. Als Mailsystem kommen cyrus und postfix zum Einsatz, zur Authentifizierung der saslauthd. Zum Filtern und Virencheck setze ich Amavisd-new, Spamassassin, Razor, DCC und Pyzor ein.
Stand: 06.12.2009
ToDo – List:
– Authentifizierung (unterschiedliche Mechanismen)
– Usermanagement (Ldap)
– Usermanagement (MySQL)
– IMAP Backup
Als erstes installieren wir folgende Pakete:
#>apt-get install spamassassin razor perl pyzor procmail fetchmail postfix amavisd-new cyrus-common-2.2 cyrus-imapd-2.2 cyrus-admin-2.2 sasl2-bin saslauthd sasl2-bin libsasl2-modules libsasl2 libgsasl7 libauthen-sasl-perl ca-certificates
SASLAUTHD
Auch wenn es zunächst unsinnig erscheint, benutzen wir für unser kleines Szenario den saslauthd. Das macht es uns später einfacher den Authentifikationsmechanismus zu ändern. In der der /etc/default/saslauthd überprüfen wir die Konfiguration auf folgende Werte:
START=yes MECHANISMS="sasldb"
CURUS
Die Konfiguration des Imap-Daemon geschiet durch das Editieren der /etc/imapd.conf. Das von Debian angelegte File ist vollkommen brauchbar. Es muss allerdings noch mindestens ein Administrator des Daemons festgelegt werden und wie die Athentifizierung von statten gehen soll..
Hier ein Auszug aus /etc/imapd.conf:
admins: cyrus sasl_mech_list: PLAIN sasl_pwcheck_method: saslauthd
Der User cyrus sollte automatisch von DEBIAN erstellt worden sein. Sollte dies nicht der Fall sein, kann das mittels
#> adduser cyrus
nachholgeholt werden.
Mit saslauthd stehen unterschiedliche Möglichkeiten der Authentifizierung zur Verfügung. Ich gehe vorerst nur auf die Voreingestellte ein, gegen die Sasldb. Bevor man den User cyrus zur Administration des imap-servers verwenden kann, müssen Sie ihm noch ein Passwort zuweisen (Hierzu muss sasl2-bin installiert sein):
#> passwd cyrus #> saslpasswd2 -c cyrus
Somit sollte der Imapd voll funktionsfähig sein. Nun müssen wir nur noch dafür sorgen, dass die Userkonten eingerichtet werden. Hierfür gibt es als frontend zum Beispiel http://www.web-cyradm.org. Ich möchte hier nur kurz auf die Kommandozeile eingehen.
#> cyradm --user cyrus --server localhost IMAP Password: localhost.localdomain> cm user.test1 localhost.localdomain> sam user.test1 cyrus all localhost.localdomain> quit
Abhängig von den Authentifizierungsmechanismen muss man eventuell noch mit
#> saslpasswd2 -c test1
ein Passwort vergeben.
POSTFIX
Bei der Installation wurden Sie in der Regel gefragt, wie POSTFIX genutzt werden soll. (local-delivery, Internet-Site…). Das ist egal, da wir die Konfigurationsdateien sowieso abändern. POSTFIX wird durch die Dateien /etc/postfix/main.cf und /etc/postfix/master.cf konfiguriert. Achtung: bitte etwaige Werte wie Subnetze etc. an die eigenen Gegebenheiten anpassen. Damit das Zusammenspiel mit CYRUS problemlos klappt, müssen folgende Zeilen in die Datei /etc/postfix/master.cf geschrieben werden:
smtp-amavis unix - - n - 2 smtp \ -o smtp_data_done_timeout=1200 \ -o smtp_send_xforward_command=yes \ -o disable_dns_lookups=yes \ -o max_use=20 127.0.0.1:10025 inet n - n - - smtpd \ -o content_filter= \ -o smtpd_restriction_classes= \ -o smtpd_delay_reject=no \ -o smtpd_client_restrictions=permit_mynetworks,reject \ -o smtpd_helo_restrictions= \ -o smtpd_sender_restrictions= \ -o smtpd_recipient_restrictions=permit_mynetworks,reject \ -o smtpd_data_restrictions=reject_unauth_pipelining \ -o smtpd_end_of_data_restrictions= \ -o mynetworks=127.0.0.0/8,192.168.0.0/16 \ -o smtpd_error_sleep_time=0 \ -o smtpd_soft_error_limit=1001 \ -o smtpd_hard_error_limit=1000 \ -o smtpd_client_connection_count_limit=0 \ -o smtpd_client_connection_rate_limit=0 \ -o smtpd_milters= \ -o local_header_rewrite_clients= \ -o local_recipient_maps= \ -o relay_recipient_maps= \ -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/bin/spamc -e /usr/sbin/cyrdeliver -e -r ${sender} -m ${extension} ${user}
Die Datei /etc/postfix/main.cf wird um folgende Einträge ergänzt:
content_filter=smtp-amavis:[127.0.0.1]:10024 mailbox_transport = cyrus mailbox_command = /usr/bin/procmail -t -a $EXTENSION mynetworks = 192.168.1.0/8, 127.0.0.0/8
Der Eintrag mynetworks dient dazu, dass Mails von diesen Rechnern, mit beliebigem Absender verschickt werden können(sogenannter Relayserver).
FETCHMAIL
Wenn der Mailserver mit MX Eintrag für Ihre Domain zu erreichen ist und sie keine weiteren Postfächer und Konten abholen müssen überspringen Sie den Teil. Fetchmail muss mitgeteilt werden, welche Accounts geholt und wie sie verarbeitet werden müssen. Globale Einstellungen können im File /etc/fetchmailrc vorgenommen werden. Hier, die auf unser Szenario abgestimmte, /etc/fetchmailrc.
defaults proto pop3 no dns poll pop.gmx.net proto pop3 auth password via pop.gmx.net user "1234567" pass "geheim" is "test1" here
Im Detail passiert hier folgendes: Wir holen die Emails vom GMX – Konto des Users 1234567 ab und stellen sie lokal an den User test1 zu. Wenn Sie beispielsweise ein sogenanntes Catch-All-Postfach abholen, lassen Sie den Part „is „test1″ here“ einfach weg. Die Mails können dann via den verschiedenen Aliasmechanismen auf unterschiedliche Nutzer verteilt werden.
AMAVIS-NEW
Ich installiere Avira AntiVir PersonalEdition Classic. Hier sei darauf verwiesen, dass es noch jede Meneg weitere Virenscanner gibt, die von Amavis-new unterstützt werden. Ansonsten muss man amavis noch verständlich machen, wer sich auf ihn verbinden darf. Dies erfolgt mittels @inet_acl am besten in der 50-user
@inet_acl = qw(127.0.0.1 192.168.0.1);
Abschliessend sollte man noch einige Werte anpassen:
$sa_tag_level_deflt = 3.0; $sa_tag2_level_deflt = 5.0; $sa_kill_level_deflt = 14.0;
und nicht vergessen folgende Zeilen in /etc/amavis/conf.d/15-content_filter_mode auskommentieren(# entfernen):
@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
SPAMASSASSIN
SpamAssassin wird unter dem User cyrus ausgeführt, deswegen müssen wir ein paar Anpassungen zur Nutzung der Bayes Datenbank vornehmen. Die /etc/spamassassin/local.cf wird wie folgt umgeschrieben:
report_safe 1 bayes_path /var/spool/cyrus/.spamassassin/bayes razor_config /var/spool/cyrus/.razor/razor-agent.conf auto_whitelist_path /var/spool/cyrus/.spamassassin/auto-whitelist bayes_file_mode 0777 auto_whitelist_file_mode 777 lock_method flock required_score 5.0 use_bayes 1 bayes_auto_learn 1 bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status use_razor2 1 use_pyzor 1 use_dcc 1 ok_languages en de ok_locales en de score RAZOR2_CHECK 2.500 score BAYES_99 4.300 score BAYES_90 3.500 score BAYES_80 3.000 rewrite_header Subject Spam [_HITS_]
Damit die Filterung nach Sprachen funktioniert müssen wir in /etc/spamassassin/v310.pre
# TextCat - language guesser # loadplugin Mail::SpamAssassin::Plugin::TextCat und für dcc # DCC - perform DCC message checks. # # DCC is disabled here because it is not open source. See the DCC # license for more details. # loadplugin Mail::SpamAssassin::Plugin::DCC
entkommentieren.
Ebenso müssen wir die /etc/default/spamassassin mittels der Option -A anpassen, ansonsten kann spamc nicht auf den spamd konnektieren, weiterhin ergänzen wir ein Log.
OPTIONS="--create-prefs --max-children 5 --helper-home-dir -i 127.0.0.1 -A 192.168.0.1 -A 127.0.0.1 -s /var/log/spamlog"
RAZOR
Vipul’s Razor ist ein verteilter serverseitiger Spam Filter. Razor erstellt kontinuierlich einen Katalog Server zur Spamerkennung. Dieser Server wird durch Internetnutzer mit Spam-Mails gefüllt. Erhält der Server dieselbe Spam Nachricht öfters und von verschiedenen Nutzern wird diese im Katalogserver als Spam gelistet. SpamAssassin prüft ob auf dem Razor Server eine Nachricht als Spam gelistet ist und vergibt im Falle einer positiven Anwort Punkte. Damit das auch funktioniert müssen wir unter dem User cyrus Razor einrichten
#> razor-admin -home=/var/spool/cyrus/.razor/ -create #> razor-admin -home=/var/spool/cyrus/.razor/ -discover #> razor-admin -home=/var/spool/cyrus/.razor/ -register
PYZOR
Pyzor ist ähnlich wie Razor und DCC ein verteiltes System zur Erkennung von Spam und basiert auf der Programmiersprache Python. Leute die unerwünschte Mails bekommen, können diese an öffentliche Pyzor Server senden. Wenn dieselbe Mail von mehreren Nutzern als Spam an die Pyzor Datenbank übermittelt wurde wird diese dort gelistet. Bei der Listung in Pyzor wird nicht der Inhalt der Mail gespeichert sondern eine Checksumme der Nachricht. SpamAssassin kann diese Pyzor Datenbank nutzen um zu prüfen ob Nachrichten als Spam gelistet sind und vergibt in diesem Falle Spampunkte.
Als User curus wiederum richten wir pyzor ein
#> pyzor discover #> pyzor ping
Wenn ein timout kommen sollte nicht gleich erschrecken, pyzor funktioniert bei mir trotz alledem. Alternativ kann man auch die Datei ~/.pyzor/server editieren und einen alternativen Server eintragen 82.94.255.100:24441. Nachzulesen: Bug Track
DCC
Distributed Checksum Clearinghouse ist ähnlich wie Razor und Pyzor ein verteiltes System zur Erkennung von unerwünschten Werbe-Emails, UBE(englisch: unerwünschte bzw. unverlangte Massenmail), UCE (englisch: unerwünschte bzw. unverlangte Werbemail) oder schlicht Spam oder Junk-Mail.
DCC kann man sich von http://www.rhyolite.com/anti-spam/dcc downloaden. Entpacken Sie das Archiv in ein Verzeichnis und installieren Sie durch folgende Befehle:
#>./configure --disable-server --disable-dccm #>make #>make install
SASL & TLS/SSL
Ebenso wichtig wie das Einbinden von Filtermechanismen in einen Maildeamon ist das Verhindern, dass man selbst unwissentlich zum Spammer wird. Im Folgenden soll Postfix so abgesichert werden, dass Mails nur mittels einer Authentifizierung via ssl abgeschickt werden können und Mails die er entgegen nimmt, an ein UserKonto z.B. bei unseren Domain – Hoster ausliefert. Hierzu fügen wir in die /etc/postfix/main.cf folgendes ein:
smtp_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_always_send_ehlo = yes smtpd_sasl_security_options = noanonymous relayhost = relayhost.de broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject
Zu den Optionen im Einzelnen:
Mit smtp(d)_sasl_auth_enable = yes aktivieren wir die Authentifizierung gegen SASL, sowohl ausgehend als auch eingehend. Mit smtp_always_send_ehlo = yes zwingen wir postfix immer ESMTP konform zu senden. Mit smtpd_sasl_security_options = noanonymous verhindern wir anonyme Anmeldungen. Mit broken_sasl_auth_clients = yes erlauben wir älteren Outlook Clients die Anmeldung. Wenn wir unsere Emails ebenfalls über einen Relayhost mit Authentifizierung schicken wollen(unseren Hoster), sind nachfolgende Zeilen notwendig:
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd relayhost = relayhost.de
Dann muss die Datei /etc/postfix/sasl_passwd mit folgendem Inhalt angelegt werden:
relayhost.de username:password
Wobei relayhost.de unser Relayhost ist, über den wir unsere Emails versenden wollen. Danach wird eine neue Map erzeugt:
#>postmap /etc/postfix/sasl_passwd
Der Parameter smtpd_recipient_restrictions wird so abgeändert, dass unser MTA nur SASL authentifizierte Clients und Clients aus Netzen, die in mynetworks deklariert wurden, akzeptiert. Der Rest wird abgewiesen.Als nächstes konfigurieren wir je nach Installation SASL. In den meisten Fällen muss die /etc/postfix/sasl/smtpd.conf mit folgendem Inhalt angelegt werden:
pwcheck_method: saslauthd
Abschließend Postfix mittels /etc/init.d/postfix force-reload mit der neuen Konfiguration versorgen und das Ganze testen.
User legen wir wie folgt an:
#> saslpasswd2 -c USERNAME
Nachdem wir unserem User ein Passwort verabreicht haben, können wir die SASL Funktion mittels Telnet überprüfen:
#> perl -MMIME::Base64 -e 'print encode_base64("USERNAME\0USERNAME\0PASSWORT")';
gibt uns den Authentifizierungsstring den wir benötigen, wenn wir uns plain authentifizieren wollen. Nun loggen wir uns in unseren MTA:
#> telnet 127.0.0.1 smtp Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 test.rfc822.org ESMTP Postfix ehlo test 250-test.rfc822.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH LOGIN PLAIN CRAM-MD5 250-XVERP 250 8BITMIME auth plain <STRING> 235 Authentication successful quit 221 Bye Connection closed by foreign host.
SASL funktioniert, nun wir können uns der Verschlüsselung zuwenden.
TLS/SSL
Wenn wir bereits SSL – Zertifikate erworben haben, kopieren wir den öffentlichen nach /etc/ssl/certs/$hostname.pem und den privaten Schlüssel nach /etc/ssl/private/$hostname.key. Solche können beispielsweise hier erworben werden: (CaCert) Vom Gebrauch selber erstellter Schlüssel, die nicht gegen eine Zertifizierungsstelle authorisiert sind, rate ich dringend ab. Auch an dieser Stelle setzen wir TLS eingehend und ausgehend ein.
# serverside TLS smtpd_tls_cert_file=/etc/ssl/certs/$hostname.pem smtpd_tls_key_file=/etc/ssl/private/$hostname.key smtpd_use_tls=yes smptd_tls_CApath=/etc/ssl/certs smtpd_tls_received_header = yes smtpd_tls_loglevel = 1 smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache # client-side TLS smtp_use_tls = yes smtp_tls_CApath=/etc/ssl/certs smtp_tls_loglevel = 1 smtp_tls_security_level = may smtp_tls_cert_file=/etc/ssl/certs/$hostname.pem smtp_tls_key_file=/etc/ssl/private/$hostname.key smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
Letztlich starten wir postfix durch und schauen uns die Logfiles an. Wenn alles ordnungsgemäß konfiguriert wurde, nutzt Postfix nun SASL und TLS als Schutzmechanismen vor unauthorisertem Gebrauch.
SPAMTRAINING & AUSWERTUNG
Mit sa-update besteht ein Tool, mit dem wir das Spamassassin Regelwerk anpassen und aktuell halten können. Der Mechanismus ist immer der gleiche, wenn man sich für einen sogenannten Channel entschieden hat, muss man den gpg Schlüssel importieren und dann sa-update mittels
#> sa-update --allowplugins --gpgkey D1C035168C1EBC08464946DA258CDB3ABDE9DC10 --channel saupdates.openprotect.com
Um den ganzen Prozess zu vereinfachen habe ich mir ein File /etc/spamassassin/sa-update-channels.txt angelegt und in diesem die Channels eingetragen:
updates.spamassassin.org saupdates.openprotect.com 70_sare_stocks.cf.sare.sa-update.dostech.net 70_sare_adult.cf.sare.sa-update.dostech.net 70_sare_spoof.cf.sare.sa-update.dostech.net 70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net 70_sare_genlsubj_x30.cf.sare.sa-update.dostech.net 70_sare_oem.cf.sare.sa-update.dostech.net 70_sare_random.cf.sare.sa-update.dostech.net 70_sare_specific.cf.sare.sa-update.dostech.net 70_zmi_german.cf.zmi.sare.sa-update.dostech.net 70_sare_evilnum0.cf.sare.sa-update.dostech.net 70_sare_highrisk.cf.sare.sa-update.dostech.net 70_sare_header0.cf.sare.sa-update.dostech.net 70_sare_html0.cf.sare.sa-update.dostech.net 70_sare_obfu0.cf.sare.sa-update.dostech.net 70_sare_stocks.cf.sare.sa-update.dostech.net 70_sare_unsub.cf.sare.sa-update.dostech.net 70_sare_uri0.cf.sare.sa-update.dostech.net 70_sare_uri1.cf.sare.sa-update.dostech.net 70_sare_uri3.cf.sare.sa-update.dostech.net 70_sc_top200.cf.sare.sa-update.dostech.net 72_sare_bml_post25x.cf.sare.sa-update.dostech.net 99_sare_fraud_post25x.cf.sare.sa-update.dostech.net 88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net 88_FVGT_Tripwire.cf.sare.sa-update.dostech.net 88_FVGT_rawbody.cf.sare.sa-update.dostech.net 88_FVGT_subject.cf.sare.sa-update.dostech.net chickenpox.cf.sare.sa-update.dostech.net
damit alles automatisch funktioniert, auch die gpg – Überprüfung muss noch ein Keyfile angelegt werden /etc/spamassassin/keys
856AA88A 5244EC45 BDE9DC10
Als nächstes können wir uns dann einen Cronjob einrichten, der die Regelfiles aktualisiert:
0 0 * * 0 root /usr/bin/sa-update -D --channelfile /etc/spamassassin/sa-update-channels.txt --gpgkeyfile /etc/spamassassin/keys > /dev/null
Spamassassin übernimmt die neuen regeln nur nach einem Neustart. Dieser sollte jedoch nicht durchgeführt werden, bevor man mittels
#> spamassassin -D --lint
die Regeln überprüft hat.
SA-LEARN-CYRUS
In unserer /etc/spamassassin/local.conf haben wir mit bayes_path schon eine globale Bayes Datenbank definiert. Der Grundgedanke dahinter ist, jeden User etwaigen SPAM und HAM in einen bestimmten IMAP-Ordner abzulegen und Spamassassin diese regelmässig lernen zu lassen. Hierzu gibt es ein schönes Tool für den Cyrus, welches mitlerweile der Debian Distribution beiliegt: sa-learn-cyrus Das Tool kommt von http://www.pollux.franken.de/hjb/mail-server/index.html und leistet schon mehrere Jahre bei mir hervorragend seinen Dienst. Ich habe mich entschieden 2 Imapfolder unter Inbox anzulegen einmal sa-spam und sa-ham. dementsprechend muss in der /etc/spamassassin/sa-learn-cyrus.conf folgendes angepasst werden:
# Spam folder relative to INBOX (cyrus nomenclature: e.g. 'junk.Spam') spam_folder = 'sa-spam' # Ham folder relative to INBOX (cyrus nomenclature: e.g. 'junk.Ham') ham_folder = 'sa-ham'
Damit wir keine Berechtigungsprobleme bekommen, folgende Werte noch wie unten beschrieben anpassen:
# SA user and group user = cyrus group = mail
Mit folgenden Cronjob wird dann automatisch alles eingesammelt:
0 */1 * * * root /usr/sbin/sa-learn-cyrus -c /etc/spamassassin/sa-learn-cyrus.conf > /dev/null
SA-STATS
Sa-stats ist ein Log-Datei-Analysator, der Statistiken über die Spam-und Ham-Einträge durch die Analyse der Einträge in einer Log-Datei von pamassassin generiert. Es können Statistiken für eine gesamte Log-Datei bestimmte User, Zeiten oder Domains abgerufen werden. Die Webseite und den Download findet Ihr hier: Mirror1 Mirror2. Ein Hinweis sa-stats funktioniert bei mir nur korrekt, wenn ich mich in dem Verzeichnis des Logfiles, in unserem Szeanrio /var/log/spamlog, befindet.
CACTI
Als nächstes soll es uns darum gehen Cacti an den Start zu bringen. Cacti soll uns den Überblick über unser Filteraufkommen zeigen. Ich setze dabei eine funktionierende Postfix, Amavis und Spamassassin Installation vorraus, sowie einen funktionierenden Apache und MySQL Datenbank.
#> apt-get install snmpd
Als nächstes richten wir den SNMP Deamon so ein, dass nur lokale Zugriffe erlaubt sind. In /etc/snmp/snmpd.conf ändern wir die Zeile
com2sec readonly default public
in
com2sec readonly 127.0.0.0/24 public
Des weiteren fügen wir unter dem Abschnitt „System contact information“ ein paar Daten ein.
system.sysContact.0 = "Name des System Admin/Email Adresse" system.sysName.0 = "Rechner Name und Systembeschreibung"
Damit der snmpd nur auf 127.0.0.1 läuft tragen wir noch
smuxsocket 127.0.0.1
in die /etc/snmp/snmpd.conf nach. Danach wird noch in der folgenden Datei /etc/default/snmpd die Zeile „SNMPDOPTS“ durch den Parameter „udp:127.0.0.1:161“ ergänzt. Der snmpd soll schließlich auch nur auf der lokalen IP lauschen.
SNMPDOPTS='udp:127.0.0.1:161 -Lsd -Lf /dev/null -p /var/run/snmpd.pid'
Damit sollte die Konfiguration des snmpd abgeschlossen sein. Jetzt nur noch schnell ein Neustart zum übernehmen der Änderungen. Zum Schluß können wir das ganze auch schnell mal Testen. Das folgende Kommando sollte diverse Informationen über das System liefern.
snmpwalk -v 2c -c public localhost system
Als nächstes kommen wir zur Installation von Cacti.
Am besten legen wir vorher schon die Datenbank und einen Datenbank Benutzer für Cacti an. (MySQL) Der Datenbanknutzer sollte für die spätere Überwachung von mysql mit dem globalen Recht „PROCESS“ angelegt werden. Bitte Datenbankname, Datenbankuser und Password in die gewünschten Werte ändern.
CREATE DATABASE datenbankname;
GRANT PROCESS ON *.* TO ‚datenbankuser’@’localhost‘ IDENTIFIED BY ‚Password‘;
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER ON `datenbankname` . * TO ‚datenbankuser’@’localhost‘;
FLUSH PRIVILEGES;
Einfach Cacti und gleich auch Cactid per apt-get installieren.
apt-get install cacti cactid
Dem Installer geben wir wahrheitsgemäß Auskunft und nach erflogreicher Installation spielen wir die Datenbank ein:
zcat /usr/share/doc/cacti/cacti.sql.gz | mysql -u datenbankuser -p datenbankname
Nun können wir das ganze unter http://hostname/cacti/ bestaunen. Benutzer und Passwort für das erste einloggen ist jeweils „admin“. Nach dem ersten Einloggen, werden wir sofort aufgefordert dies zu ändern.Zum Schluss aktibieren wir noch cactid, da dieser wesentlich performanter läuft. Um cactid zu aktivieren sollte man unter den „Settings“ unter dem Reiter „Paths“ den Pfad zu cactid anpassen… unter Debian /usr/sbin/cactid. Danach unter dem Reiter „Poller“ den „Poller Type“ auf „cactid“ umstellen.
Als nächstes besorgen wir uns von http://forums.cacti.net/viewtopic.php?p=51584#p51584 das Mailstatistik Paket und installieren dieses wie vorgegeben. Als erstes fügen wir folgende Zeile in die /etc/snmp/snmpd.conf ein:
pass .1.3.6.1.4.1.2021.255 /usr/local/sbin/fetch_mail_statistics.pl \ /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255
Hierbei bitte aufpassen, dass der User unter dem der SNMP Deamon läuft auch die Leserechte für /var/log/mail.log und Schreibrechte für /var/log/mailstats.db besitzt und die Pfade korrekt angepasst wurden. Eine einfache aber auch sicherheitstechnisch bedenkliche Methode ist, den snmpd unter root zu starten mittels der Angabe „-u root“ in der /etc/default/snmpd.
Nachdem wir SNMP neugestartet haben, prüfen wir mittels
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.255
ob unsere Konfiguration erfolgreich übernommen wurde. Parallel dazu können wir auch händisch versuchen ob alles korrekt eingerichtet wurde. Unter dem User snmp starten wir dazu das fetch_mail script wie folgt
./fetch_mail_statistics.pl /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255 -g .1.3.6.1.4.1.2021.255.1
Wenn alles korrekt läuft, sollte das Script eine ähnliche Ausgabe erzeugen:
.1.3.6.1.4.1.2021.255.2
integer
0
Im falle, dass uns
UCD-SNMP-MIB::ucdavis.255 = No Such Instance currently exists at this OID
angezeigt wird, liegt dies wahrscheinlich darin, dass die Scripte keine ausreichenden Rechte haben. Nun importieren wir in Cacti das xml Template und richten die Graphen ein. Entsprechende Ergebnisse sollten so oder so ähnlich aussehen: