Debian Maia: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 18: | Zeile 18: | ||
'''Debian Paketmanager:''' | '''Debian Paketmanager:''' | ||
apt-get --yes install libgd2-xpm php-pear php5-imap php5-ldap php5-mcrypt php5-gd libmilter-dev | apt-get --yes install libgd2-xpm php-pear php5-imap php5-ldap php5-mcrypt php5-gd libmilter-dev | ||
apt-get --yes install libcrypt-blowfish-perl libossp-uuid-perl libio-zlib-perl | apt-get --yes install php5-xmlrpc php-mail-mime php-pager php-log php-htmlpurifier php-db | ||
apt-get --yes install libarchive-tar-perl libarchive-zip-perl libtemplate-perl | apt-get --yes install php-auth-sasl php-net-socket php-net-smtp php-net-imap | ||
apt-get --yes install libemail-address-perl libconvert-tnef-perl libnet-ldap-perl | apt-get --yes install libcrypt-blowfish-perl libossp-uuid-perl libio-zlib-perl libconvert-uulib-perl | ||
apt-get --yes install libunix-syslog-perl libnet-dns-perl libberkeleydb-perl | apt-get --yes install libarchive-tar-perl libarchive-zip-perl libtemplate-perl libio-socket-ssl-perl | ||
apt-get --yes install libemail-address-perl libconvert-tnef-perl libnet-ldap-perl libencode-detect-perl | |||
apt-get --yes install libnet-server-perl libnet-ident-perl libtext-csv-perl libmime-tools-perl libmail-dkim-perl | |||
apt-get --yes install libunix-syslog-perl libnet-dns-perl libberkeleydb-perl libcrypt-cbc-perl | |||
apt-get --yes install imagemagick smarty | apt-get --yes install imagemagick smarty | ||
apt-get --yes install unrar-free nomarch lzop cabextract bzip2 p7zip-full rar lha zoo ripole | apt-get --yes install unrar-free nomarch lzop cabextract bzip2 p7zip-full rar lha zoo ripole | ||
Zeile 29: | Zeile 32: | ||
'''Pear PHP-Manager:''' | '''Pear PHP-Manager:''' | ||
pear channel-update pear.php.net | pear channel-update pear.php.net | ||
pear upgrade pear | pear upgrade pear | ||
pear install DB_Pager | pear install DB_Pager | ||
pear install Net_POP3 | pear install Net_POP3 | ||
pear install --alldeps Image_Color | pear install --alldeps Image_Color | ||
pear install -f Image_Canvas | pear install -f Image_Canvas | ||
pear install -f Numbers_Words | pear install -f Numbers_Words | ||
pear install Numbers_Roman | pear install Numbers_Roman | ||
pear install -f Image_Graph | pear install -f Image_Graph | ||
'''Maia und AmvisD''' | '''Maia und AmvisD''' | ||
mkdir /usr/local/src/maia | |||
cd /usr/local/src/maia | |||
cd maia | |||
svn checkout https://www.maiamailguard.com/svn/branches/1.0 | svn checkout https://www.maiamailguard.com/svn/branches/1.0 | ||
(Die Abfrage mit permanent '''''p''''' beantworten) | (Die Abfrage mit permanent '''''p''''' beantworten) | ||
Zeile 71: | Zeile 54: | ||
mkdir /var/amavisd/tmp | mkdir /var/amavisd/tmp | ||
mkdir /var/amavisd/var | mkdir /var/amavisd/var | ||
mkdir /var/maia | |||
mkdir /var/run/maia | |||
mkdir /var/lock/maia | |||
cp -R scripts /var/amavisd/maia/ | cp -R scripts /var/amavisd/maia/ | ||
cp -R templates /var/amavisd/maia/ | cp -R templates /var/amavisd/maia/ | ||
cp maia.conf.dist /etc/maia.conf | cp maia.conf.dist /etc/maia/maia.conf | ||
cp maiad.conf.dist /etc/maia/maiad.conf | |||
cp *.cf /etc/spamassassin/ | cp *.cf /etc/spamassassin/ | ||
Zeile 85: | Zeile 67: | ||
cp -R php /var/www/ | cp -R php /var/www/ | ||
mv /var/www/php /var/www/maia | mv /var/www/php /var/www/maia | ||
cp | cp maiad /usr/sbin | ||
addgroup amavis | addgroup amavis | ||
Zeile 93: | Zeile 74: | ||
chown -R amavis. /var/amavisd | chown -R amavis. /var/amavisd | ||
chown -R amavis. /var/run/maia | |||
chown -R amavis. /var/lock/maia | |||
chown -R www-data. /var/www/maia | chown -R www-data. /var/www/maia | ||
chown root. /usr/sbin/amavisd-maia | chown root. /usr/sbin/amavisd-maia | ||
Zeile 100: | Zeile 83: | ||
chmod 640 /etc/maia.conf | chmod 640 /etc/maia.conf | ||
chmod 755 /usr/sbin/amavisd-maia | chmod 755 /usr/sbin/amavisd-maia | ||
ln -s /usr/sbin/ | ln -s /usr/sbin/maiad /usr/sbin/amavisd | ||
ln -s /usr/share/php/smarty/libs /usr/share/php/Smarty | ln -s /usr/share/php/smarty/libs /usr/share/php/Smarty | ||
cd /etc/init.d | cd /etc/init.d | ||
wget ftp://download:download@schiele.homelinux.org/debian/ | wget ftp://download:download@schiele.homelinux.org/debian/maia-init | ||
mv | mv maia-init maia | ||
chmod 755 | chmod 755 maia | ||
update-rc.d | update-rc.d maia defaults | ||
Default-File anlegen: | Default-File anlegen: | ||
vi /etc/default/ | vi /etc/default/maia | ||
Folgenden Inhalt einfügen: | Folgenden Inhalt einfügen: | ||
# /etc/default/ | # /etc/default/maia | ||
# | # | ||
Zeile 260: | Zeile 243: | ||
vi /etc/cron.d/clamav-unofficial-sigs-cron | vi /etc/cron.d/clamav-unofficial-sigs-cron | ||
Die Cron-Zeile um '''>/dev/null''' erweitern: | Die Cron-Zeile um '''>/dev/null''' erweitern: | ||
45 * * * * root /usr/local/bin/clamav-unofficial-sigs.sh -c /usr/local/etc/clamav-unofficial-sigs.conf '''>/dev/null''' | 45 * * * * root /usr/local/bin/clamav-unofficial-sigs.sh -c /usr/local/etc/clamav-unofficial-sigs.conf '''>/dev/null 2>dev/null''' | ||
Ergänzen der Sanesecurity Spamdomain-Regel: | Ergänzen der Sanesecurity Spamdomain-Regel: | ||
Zeile 282: | Zeile 265: | ||
===Maia und AmavisD=== | ===Maia und AmavisD=== | ||
vi /etc/maia.conf | vi /etc/maia/maia.conf | ||
In der folgenden Zeile '''''password''''' durch das oben vergebene Passwort '''''maia_db_pwd''''' ersetzen: | In der folgenden Zeile '''''password''''' durch das oben vergebene Passwort '''''maia_db_pwd''''' ersetzen: | ||
$password = "'''''password'''''"; | $password = "'''''password'''''"; | ||
Zeile 380: | Zeile 363: | ||
vi /etc/ | vi /etc/maia/maiad.conf | ||
Kommentarzeichen entfernen: | Kommentarzeichen entfernen: | ||
$pid_file = "$MYHOME/var/amavisd.pid"; | $pid_file = "$MYHOME/var/amavisd.pid"; | ||
Zeile 417: | Zeile 400: | ||
CRON aktivieren: | CRON aktivieren: | ||
CRON=1 | CRON=1 | ||
Folgende Zeilen | Folgende Zeilen ans Ende anfügen: | ||
# Import updated Rules to maia Mailguard | # Import updated Rules to maia Mailguard | ||
if [ -x /var/amavisd/maia/scripts/load-sa-rules.pl ]; then | if [ -x /var/amavisd/maia/scripts/load-sa-rules.pl ]; then | ||
Zeile 471: | Zeile 454: | ||
==Starten der Services== | ==Starten der Services== | ||
/etc/init.d/spamassassin start | /etc/init.d/spamassassin start | ||
/etc/init.d/ | /etc/init.d/maia start | ||
/etc/init.d/postfix restart | /etc/init.d/postfix restart | ||
Zeile 636: | Zeile 619: | ||
* Alle Virusmails wurden aus der Quarantäne entfernt | * Alle Virusmails wurden aus der Quarantäne entfernt | ||
* Die selben Schritte für die Spma-Quarantäne wiederholen | * Die selben Schritte für die Spma-Quarantäne wiederholen | ||
==Workaround for Debian7== | |||
In Debian wird PHP in Version 5.5 verwendet. Ab PHP 5.4 fehlt eine von Maia verwendete Funktion '''session_is_registered''' nicht mehr enthalten. Als Folge werden bei einigen Seiten der Weboberfläche nur weiße Seiten dargestellt. | |||
vi /var/www/maia/confirm.php | |||
In folgendem Block: | |||
if (array_key_exists('token', $_GET) && | |||
array_key_exists('id', $_GET) && | |||
array_key_exists('ts', $_GET)) { | |||
if (!'''''session_is_registered'''''("uid") || | |||
!'''''session_is_registered'''''("euid") || | |||
'''''session_is_registered''''' durch '''''isset($_SESSION''''' folgendermaßen ersetzen: | |||
if (array_key_exists('token', $_GET) && | |||
array_key_exists('id', $_GET) && | |||
array_key_exists('ts', $_GET)) { | |||
if (!'''''isset($_SESSION'''''['uid']) || | |||
!'''''isset($_SESSION'''''['euid']) || | |||
Selbe Änderung in /var/www/maia/rescue.php durchführen. | |||
Analog in logout.php: | |||
vi /var/www/maia/logout.php | |||
Die Zeile | |||
if (session_is_registered("uid")) { | |||
folgendermaßen ersetzen: | |||
if (isset($_SESSION['uid'])) { |
Aktuelle Version vom 22. August 2013, 17:38 Uhr
Einleitung
Maia Mailgurad (http://www.maiamailguard.com) ist ein sehr leistungsfähiges Tool zur Bekämpfung von Spam und Viren. Es bietet jedem einzelne User eine sehr komfortable Weboberfläche zur Konfigurierung der Optionen. Der Admin nimmt die Grundkonfiguration von. Maia basiert auf amavisd-new, das Spamassasin zur Spambekämpfung und ClamAV zur Virenabwehr einbindet.
Diese Anleitung ist angelehnt an http://www.maiamailguard.com/maia/wiki/Install. Sie enthält aber zahlreiche weitere Informationen und Konfigurationsschritte.
Voraussetzungen:
Installation
Es sind zahlreiche Pakete erforderlich:
Debian Paketmanager:
apt-get --yes install libgd2-xpm php-pear php5-imap php5-ldap php5-mcrypt php5-gd libmilter-dev apt-get --yes install php5-xmlrpc php-mail-mime php-pager php-log php-htmlpurifier php-db apt-get --yes install php-auth-sasl php-net-socket php-net-smtp php-net-imap apt-get --yes install libcrypt-blowfish-perl libossp-uuid-perl libio-zlib-perl libconvert-uulib-perl apt-get --yes install libarchive-tar-perl libarchive-zip-perl libtemplate-perl libio-socket-ssl-perl apt-get --yes install libemail-address-perl libconvert-tnef-perl libnet-ldap-perl libencode-detect-perl apt-get --yes install libnet-server-perl libnet-ident-perl libtext-csv-perl libmime-tools-perl libmail-dkim-perl apt-get --yes install libunix-syslog-perl libnet-dns-perl libberkeleydb-perl libcrypt-cbc-perl apt-get --yes install imagemagick smarty apt-get --yes install unrar-free nomarch lzop cabextract bzip2 p7zip-full rar lha zoo ripole apt-get --yes install clamav clamav-daemon clamav-docs apt-get --yes install spamassassin razor pyzor apt-get --yes install curl rsync dnsutils
Pear PHP-Manager:
pear channel-update pear.php.net pear upgrade pear pear install DB_Pager pear install Net_POP3 pear install --alldeps Image_Color pear install -f Image_Canvas pear install -f Numbers_Words pear install Numbers_Roman pear install -f Image_Graph
Maia und AmvisD
mkdir /usr/local/src/maia cd /usr/local/src/maia svn checkout https://www.maiamailguard.com/svn/branches/1.0
(Die Abfrage mit permanent p beantworten)
cd 1.0 mkdir /var/amavisd mkdir /var/amavisd/maia mkdir /var/amavisd/db mkdir /var/amavisd/tmp mkdir /var/amavisd/var mkdir /var/maia mkdir /var/run/maia mkdir /var/lock/maia cp -R scripts /var/amavisd/maia/ cp -R templates /var/amavisd/maia/ cp maia.conf.dist /etc/maia/maia.conf cp maiad.conf.dist /etc/maia/maiad.conf
cp *.cf /etc/spamassassin/ cp php/config.php.dist php/config.php cp -R php /var/www/ mv /var/www/php /var/www/maia cp maiad /usr/sbin addgroup amavis adduser www-data amavis useradd -g amavis -d /var/amavisd amavis chown -R amavis. /var/amavisd chown -R amavis. /var/run/maia chown -R amavis. /var/lock/maia chown -R www-data. /var/www/maia chown root. /usr/sbin/amavisd-maia chown amavis. /etc/maia.conf chmod 640 /var/amavisd/maia/templates/*.tpl chmod 750 /var/amavisd/maia/scripts/*.pl chmod 640 /etc/maia.conf chmod 755 /usr/sbin/amavisd-maia ln -s /usr/sbin/maiad /usr/sbin/amavisd ln -s /usr/share/php/smarty/libs /usr/share/php/Smarty cd /etc/init.d wget ftp://download:download@schiele.homelinux.org/debian/maia-init mv maia-init maia chmod 755 maia update-rc.d maia defaults
Default-File anlegen:
vi /etc/default/maia
Folgenden Inhalt einfügen:
# /etc/default/maia # # Change to one to enable amavis ENABLED=1 PIDFILE="/var/amavisd/var/amavisd.pid" # Set nice level of spamd #NICE="--nicelevel 15"
SQL-Datenbank anlegen
Maia benötigt eine MySQL-Datenbank. Diese wird im folgenden angelegt und mit Inhalt befüllt. maia_db_pwd mit einem Passwort für die maia Datenbank ersetzen.
cd /usr/local/src/maia/1.0 mysql -u root -p mysql
mysql_root_pwd eingeben
CREATE DATABASE maia; use maia; GRANT CREATE, DROP, ALTER, SELECT, INSERT,UPDATE, DELETE ON maia.* TO amavis@localhost IDENTIFIED BY 'maia_db_pwd'; exit mysql -u root -p maia < maia-mysql.sql
mysql_root_pwd eingeben
Konfiguration
Spamassassin
vi /etc/default/spamassassin
Spamassassin aktivieren:
ENABLED=1
Cronjob zum Update der Spamassassin-Regeln aktivieren:
CRON=1
Plugin Pyzor:
pyzor discover su amavis -c 'pyzor discover' su amavis -c 'pyzor ping'
Pyzor ping sollte ein Ok liefern: public.pyzor.org:24441 (200, 'OK')
Plugin Razor:
razor-admin -create razor-admin -register cp -r /root/.razor /var/lib/amavis chown -R amavis:amavis /var/lib/amavis
Plugin DCC:
cd /usr/local/src wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z tar xzvf dcc-dccproc.tar.Z cd dcc-dccproc-[tab][enter] ./configure --with-uid=amavis make make install ln -s /var/dcc/libexec/cron-dccd /usr/bin/cron-dccd chown -R amavis:amavis /var/dcc
Testen von DCC:
cdcc info
Es sollten Antworten von den DCC-Servern erfolgen. Localhost (127.0.0.1) wird nicht antworten. Dies ist normal hier.
DCC regelmäßig updaten:
vi /etc/cron.daily/amavisd-new
Folgenden Befehl anhängen:
test -e /usr/bin/cron-dccd && exec /usr/bin/cron-dccd
Aktivieren der Plugins und Bayes-Filter:
vi /etc/spamassassin/local.cf
Kommentarzeichen (#) von folgenden Einträgen entfernen bzw. Einträge einfügen:
lock_method flock use_bayes 1 bayes_auto_learn 1 bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status bayes_ignore_header X-Spam-Level bayes_ignore_header X-Received-From-IP bayes_ignore_header X-Virus-Scanned bayes_ignore_header X-Sender bayes_ignore_header X-Mailer #Store Bayes Information in SQL-Database bayes_store_module Mail::SpamAssassin::BayesStore::SQL bayes_sql_dsn DBI:mysql:maia:localhost bayes_sql_username amavis bayes_sql_password maia_db_pwd auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList user_awl_dsn DBI:mysql:maia:localhost user_awl_sql_username amavis user_awl_sql_password maia_db_pwd #this next part will store all data in just one user's table, no matter who runs sa-learn bayes_sql_override_username amavis #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf razor_timeout 8 #dcc use_dcc 1
DCC-Plugin aktivieren:
vi /etc/spamassassin/v310.pre
DCC Plugin aktivieren (#-Zeichen entfernen):
loadplugin Mail::SpamAssassin::Plugin::DCC
Spamassassin Regeln updaten:
sa-update
ClamAV
ClamAV ist ein Open Source Antivirentool, das sich in idealerweise in Zusammenarbeit mit AmavisD auf einem Mialserver zur Virenabwehr einsetzen läßt. Zusammen mit dem ClamAV-Daemon wird der freshclam-Daemon gestartet, der im Hintergrund ständig die aktuellsten Virensignaturen herünterlädt.
amavis- und clamav- User den jeweiligen Benutzergruppen hinzufügen, damit diese auf gewisse Files gemeinsamen Zugriff erhalten:
adduser clamav amavis adduser amavis clamav
Für den Einsatz von ClamAV auf einem Mailserver empfiehlt sich, die zusätzlichen Phishing, Spam und Malware Signatures von http://www.sanesecurity.net einzubinden. Dazu steht auf der Homepage ein Script bereit, das diese Signaturen downloaded und ClamAV zur Verfügung stellt.
cd /usr/local/src/maia wget http://www.inetmsg.com/pub/clamav-unofficial-sigs.tar.gz tar -xvf clamav-unofficial-sigs.tar.gz cd clamav-unofficial-sigs- <tab+enter> chmod 755 *.sh cp clamav-unofficial-sigs.sh /usr/local/bin cp clamav-unofficial-sigs.conf /etc/ cp clamav-unofficial-sigs.8 /usr/local/man/man8 cp clamav-unofficial-sigs-cron /etc/cron.d cp clamav-unofficial-sigs-logrotate /etc/logrotate.d ln -s /etc/clamav-unofficial-sigs.conf /usr/local/etc/clamav-unofficial-sigs.conf
Konfiguration des updatescripts:
vi /etc/clamav-unofficial-sigs.conf
Folgende Einstellungen vornehmen:
clamd_pid="/var/run/clamav/clamd.pid" reload_dbs="yes" clamd_socket="/var/run/clamav/clamd.ctl" user_configuration_complete="yes"
Beim ersten Start des Update Scripts legt dieses nötige Verzeichnisse an und lädt einen GPG-Key herunter, der für die Updates nötig ist, um deren Integrität zu verifizieren.
clamav-unofficial-sigs.sh
Das Script gibt jede Menge Informationen und Statusmeldungen aus. Das Updatescript wird regelmäßig jede Stunde ausgeführt. Auch dabei erzeugt das Script diese Ausgaben, die Cron per Mail an User root weitergibt. Um dies zu vermeiden sollten die Ausgaben folgendermaßen unterdrückt werden:
vi /etc/cron.d/clamav-unofficial-sigs-cron
Die Cron-Zeile um >/dev/null erweitern:
45 * * * * root /usr/local/bin/clamav-unofficial-sigs.sh -c /usr/local/etc/clamav-unofficial-sigs.conf >/dev/null 2>dev/null
Ergänzen der Sanesecurity Spamdomain-Regel:
vi /etc/spamassassin/sanesecurity.cf
Ans Ende folgende Zeilen einfügen:
# Sanesecurity.InetMsg.SpamDomain header AV_SS_INETMSG X-Maia-AV-Status =~ m{\bInetMsg\.SpamDomain-2(m|w)\.}m describe AV_SS_INETMSG Sanesecurity InetMsg Domain signature detected score AV_SS_INETMSG 5 # Sanesecurity.Jurlbl.* header AV_SS_JURLBL X-Maia-AV-Status =~ m{\bSanesecurity\.Jurlbl\.}m describe AV_SS_JURBL Sanesecurity jurbl signature detected score AV_SS_JURBL 5
ClamAV neustarten:
/etc/init.d/clamav-freshclam restart /etc/init.d/clamav-daemon restart
Maia und AmavisD
vi /etc/maia/maia.conf
In der folgenden Zeile password durch das oben vergebene Passwort maia_db_pwd ersetzen:
$password = "password";
Auth Methode auf Imap ändern:
$auth_method = "imap";
Keine Spam-Reports an Razor, Pyzor und DCC versenden:
$report_options = 0;
vi /var/www/maia/config.php
In der folgenden Zeile password durch das oben vergebene Passwort maia_db_pwd ersetzen:
$maia_sql_dsn = "mysql://amavis:password@tcp(localhost:3306)/maia";
Anpassen der Policy-Level (Prtotection). Die Standardeistellung von medium und high haben relativ niedrige Score-Score Werte zur Erkennung von Spam. Dadurch könnten versehentlich Ham-Mails als Spam deklariert werden.
Bedeutung der einzelnen Einträge:
Parameter | amavisd-new equivalent | value |
---|---|---|
Pass viruses through? | virus_lover | 'Y' or 'N' |
Pass spam through? | spam_lover | 'Y' or 'N' |
Pass banned files through? | banned_files_lover | 'Y' or 'N' |
Pass mail with invalid headers through? | bad_header_lover | 'Y' or 'N' |
Disable virus scanning? | bypass_virus_checks | 'Y' or 'N' |
Disable spam checking? | bypass_spam_checks | 'Y' or 'N' |
Disable banned files checking? | bypass_banned_checks | 'Y' or 'N' |
Disable invalid header checking? | bypass_header_checks | 'Y' or 'N' |
Discard viruses? | discard_viruses | 'Y' or 'N' |
Discard spam? | discard_spam | 'Y' or 'N' |
Discard banned files? | discard_banned_files | 'Y' or 'N' |
Discard invalid mail headers? | discard_bad_headers | 'Y' or 'N' |
Add a prefix to spam subjects? | spam_modifies_subj | 'Y' or 'N' |
Add spam score headers when score is >= | spam_tag_level | -999.9 to 999.9 |
Consider mail spam when score is >= | spam_tag2_level | -999.9 to 999.9 |
Quarantine or discard spam when score is >= | spam_kill_level | -999.9 to 999.9 |
Das Array $protection besteht aus einer Kennung der Policy gefolgt von => und dann einem Array mit Einträgen gemäß obiger Tabelle.
$protection = array( 'off' => array ('Y','Y','Y','Y','Y','Y','Y','Y','N','N','N','N','N','999','999','999'), 'low' => array ('N','Y','Y','Y','N','Y','Y','Y','N','N','N','N','N','999','999','999'), 'medium' => array ('N','N','Y','Y','N','N','Y','Y','N','N','N','N','Y','-999','6.31','6.31'), 'high' => array ('N','N','N','N','N','N','N','N','N','N','N','N','Y','-999','5','5') );
Mit folgender Einstellung erfolgt die Authentifizierung gegen den Cyrus-Imap-Server:
$auth_method = "imap";
vi /etc/maia/maiad.conf
Kommentarzeichen entfernen:
$pid_file = "$MYHOME/var/amavisd.pid";
Domain ändern:
$mydomain = 'domain.org'; # a convenient default for other settings
Nach $mydomain folgenden Eintrag einfügen:
@local_domains_acl=( ".$mydomain" );
Folgende Einstellungen anpassen:
$DO_SYSLOG = 1; $sa_dsn_cutoff_level = 25; @lookup_sql_dsn = ( ['DBI:mysql:maia:localhost', 'amavis', 'maia_db_pwd'] ); $unrar = ['rar', 'unrar'];
Hostname anpassen:
$myhostname = 'debian.domain.org'; # must be a fully-qualified domain name!
Kommentarzeichen vor der Zeile 'qr'^MAIL$',' entfernen:
@keep_decoded_original_maps = (new_RE( qr'^MAIL$', # retain full original message for virus checking (can be slow)
Den Bereich @non_malware_viruses_maps folgendermaßen anpassen:
@non_malware_viruses_maps = (new_RE( qr'^(HTML\.Phishing|Phishing)\.', qr'^MSRBL-(Images|SPAM)\.', qr'^INetMsg\.SpamDomain-2(m|w)\.', qr'^Sanesecurity\.(Junk|Lott|Phishing|PhishingTestSig|Casino|Bou|Cred|Job|Jurlbl|Stk|Loan|Porn|Hdr|Dipl|Spear|Img|Img0|Spam|Spam4|SpamL|SpamImg|Scam|Scam4|ScamL)\.', ));
Socket für Clam_AV anpasen:
['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
Spamassassin-Regeln in die DB
Die Spamassassin-Regeln müssen in die Maia Datenbank eingelesen werden:
/var/amavisd/maia/scripts/load-sa-rules.pl --debug
Dieses Update Script sollte keine Fehler ausgeben.
Die Regeln sollten nach jedem Update der Spamassassin-Regeln via sa-update in die maia-Datenbank übernommen werden. Die Spamassassin Regeln werden täglich mittels Cronjob /etc/cron.daily/spamassassin upgedated.
vi /etc/cron.daily/spamassassin
CRON aktivieren:
CRON=1
Folgende Zeilen ans Ende anfügen:
# Import updated Rules to maia Mailguard if [ -x /var/amavisd/maia/scripts/load-sa-rules.pl ]; then /var/amavisd/maia/scripts/load-sa-rules.pl fi
Wartungsscripte
Maia bringt eine ganze Reihe von Skripten mit, die die Datenbanken pflegen und Übersichtsmails versenden. Damti Maia korrekt funktioniert, müssen diese regelmäßig via Cron ausgeführt werden.
vi /etc/cron.d/maia
Folgende Zeilen enfügen:
0 * * * * amavis /var/amavisd/maia/scripts/stats-snapshot.pl > /dev/null 5 * * * * root /var/amavisd/maia/scripts/process-quarantine.pl > /dev/null 20 5 * * * amavis /var/amavisd/maia/scripts/expire-quarantine-cache.pl > /dev/null 15 8 * * * amavis /var/amavisd/maia/scripts/send-quarantine-reminders.pl > /dev/null 0 * * * * amavis /var/amavisd/maia/scripts/send-quarantine-digests.pl > /dev/null
Postfix
An den Postfix Konfigurationsfiles müssen Änderungen durchgeführt werden, um den Spamfilter in die Mail-Transportkette einzuschleifen:
vi /etc/postfix/master.cf
Folgende Zeilen ans Ende anfügen:
lmtp-amavis unix - - n - 2 lmtp -o lmtp_data_done_timeout=1200 -o lmtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 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_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 -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 receive_override_options=no_header_body_checks,no_unknown_recipient_checks
vi /etc/postfix/main.cf
Folgende Option einfügen:
content_filter=lmtp-amavis:[127.0.0.1]:10024
Starten der Services
/etc/init.d/spamassassin start /etc/init.d/maia start /etc/init.d/postfix restart
Webbasierte Einrichtung
Konfigurations- und Datenbank Test
Im Webbrowser 'http://IP_DES_SERVERS/maia/admin/configtest.php' eingeben.eine Problem Maia sollte nun eine Auflistung ausgeben, die sämtliche Abhängigkeiten und Berechtigunen abprüft. Es sollten keine Probleme berichtet werden, außer solchen, die mit skipped bezeichnet sind.
Super-User und Admin-Einstellungen
Für Konfigurationsarbeiten an Maia ist ein Super-User nötig. Webbrowser öffnen und Adresse: http://IP_DES_SERVERS/maia/login.php?super=register eingeben. Einloggen mit den Userdaten:
User: tux@domain.org Pwd: tux_mail_pwd
Nun ist 'tux' der Superuser (Admin) von Maia Mailguard.
Einstellungen vornehmen:
- Auf der 'Welcome' Seite Protection Level (Current protection level)wählen: Medium
- Button Change Level anklicken
- Zur Seite 'Admin' wechseln
- Unterpunkt 'Languages' selektieren
- Unter 'Install new Language' Deutsch(de) auswählen
- Button Install Language
- Link [Return to the Administration Menu] anklicken um ins Admin Menü zurückzukehren
- Unterpunkt 'System Configuration' wählen
- Administrator's contact e-mail address: postmaster@domain.org
- Expiry period for quarantined mail (days): z.B: 14 (Hinweis: Nicht bearbeitete Mails in Quarantäne werden nach dieser Anzahl Tagen endgültig gelöscht.)
- E-mail reminder template file: /var/amavisd/maia/templates/reminder.tpl
- Maia login URL for e-mail reminders: [?] http://IP_Des_Servers/maia
- Enable graphical charts? [?] yes
- Button Update Settings anklicken
- Unterpunkt 'Languages' selektieren
Ausloggen mit Exit
User- Einstellungen
Webbrowser öffnen und Adresse: http://IP_DES_SERVERS/maia/ eingeben. Einloggen mit den Userdaten:
User: tux@domain.org Pwd: tux_mail_pwd
Zur Seite 'Settings' wechseln, um die User-Einstellungen vorzunehmen
- Send quarantine reminder e-mail? yes (um Hinweise über Mails, die in Quarantäne gesetzt wurden zu erhalten)
- Display graphic charts?: yes
- Display Language: deutsch
- Button Update Miscelleanous Settings
Einstellen/Feintunen des Protection Levels. Der generelle Protection-Level kann auf der 'Willkommensseite' in folgenden groben Schritten gewählt weden:
- Aus: kein Virenschutz, keine Spamabwehr, Mails werden ungecheckt zugestellt
- Niedrig: Virenschutz aktiv, keine Spamabwehr, kein Anhang-Check, kein Header Check
- Mittel: Virenschutz aktiv, Mails mit Score >6.31 werden als Spam markiert, kein Anhang-Check, kein Header Check
- Hoch: Virenschutz aktiv, Mails mit Score >5 sind Spam, >15 werden sie in Quarantäne genommen, Anhang und Header Check
Diese Stufen können detailliert für den aktuell eingeloggten User angepasst werden. Die Default Stufen bleiben davon unberührt. Zur Seite 'Settings' wechseln, um die User-Einstellungen vorzunehmen
- Auf die neben 'primäre Adresse' angezeigte Emailadress klicken, um die Einstellungen anpassen zu können
- Die Einstellungen wie gewüncht vornehmen (siehe Hinweise unten)
- Wenn alle Einstellungen den eigenen Vorstellungen entsprechen, dann den Button Aktualiesiere die Einstellungen dieser Adresse anwählen, um die Einstellungen zu übernehmen.
Hinweis: | |
Die einzelnen Einstellungen haben folgende Bedeutung: |
- VirenScanner aktiviert/deaktiviert
- Gefundene Viren werden ...
- Markiert: Die Mail wird zugestellt und als Virus markiert (Hat bei eigenen Tests nicht funktioniert)
- Quarantäne: Die Mail wird in Quarantäne gestellt
- Gelöscht: Die Mail wird dirkt gelöscht
- Spam-Filterung aktiviert/deaktiviert
- Gefundener Spam wird ...
- Markiert: Die Mail wird zugestellt, aber im Header wird ein 'X-Spam-Flag=Yes' Header eingefügt
- Quarantäne: Die Mail wird in Quarantäne gestellt
- Gelöscht: Die Mail wird dirkt gelöscht
- Präfix in den Bereff einer Spam-eMail?
- Ja: Dem Jubject wird ein '***SPAM***' vorangestellt
- Nein: Subject wird nicht geändert
- Füge 'X-Spam: Headers' ein, wenn Punkte >=:
- Wenn der Score der Mail höher als dieser Wert ist, wird ein Header mit dem aktuellen Score der Mail eingefügt. Der Client kann so erkennen, dass die Mail den Spam-Filter durchlaufen hat und erfährt den Score jeder Mail. Dies kann hilfreich sein, um die Grenze für Spam ja/nein feinzutunen (siehe nächster Wert).
- Betrachte eMail als 'Spam', wenn Punkte >=:
- Wenn der Score der Mail höher als dieser Wert ist, wird die Mail als Spam betrachtet und entsprechend behandelt
- Verschiebe in Quarantäne, wenn Punkte >=
- Wenn der Score der Mail höher als dieser Wert ist, wird die Mail in Quarantäne genommen, falls aktiviert
- eMail-Anhang Filter aktiviert/deaktiviert
- eMails mit gefährlichen Anhängen werden ...
- Markiert: Die Mail wird zugestellt und Markiert
- Quarantäne: Die Mail wird in Quarantäne gestellt
- Gelöscht: Die Mail wird dirkt gelöscht
- Filter für defekte Kopfzeilen aktiviert/deaktiviert
- eMails mit 'Bad Headers' werden ...
- Markiert: Die Mail wird zugestellt und Markiert
- Quarantäne: Die Mail wird in Quarantäne gestellt
- Gelöscht: Die Mail wird dirkt gelöscht
Funktionstest
Der Funktionstest umfaßt mehrere Schritte. Es wird geprüft, dass normale Mails nachwievor ankommen, ob SPAM korrekt erkannt wird, und ob Viren in Quarantäne genommen werden. Weiterhin werden die Sanesecurity Signaturen überprüft. Zum Schluß wird verifiziert, ob die Maia-Quarantäne und die Freigabe von Mails korrekt funktioneren.
Clean Mail
Eine Nachricht mit beliebigem Betreff - Z.B. Test Clean - und beliebigem Inhalt - Z.b. Testmail Clean- an einen gültigen Mailuser - z.B. 'tux' - senden. => Die Mail muß ganz normal im Postfach des Benutzers abgelegt werden.
SPAM
Eine Nachricht mit Betreff 'Test GTUBE' an einen gültigen Mailuser - z.B. 'tux' - mit und folgendem Inhalt senden:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
=> Die Mail wird nicht zugestellt, da Sie einen sehr hohen Spam-Score (>1000) aufweist.
Virustest
Mit Hilfe des EICAR-Virus wird die Funktionalität von ClamAV und dessen 'eingebauter' Signaturen verifiziert. Die korrekte Funktion der Sanesecurity Signaturen wird im zweiten Schritt mit drei weiteren Testmails verifiziert.
EICAR Test-Virus
Der EICAR-Testvirus wurde geschaffen, um Anti-Virentools einem Funktionscheck unterziehen zu können. Es gibt verschiedene "Erscheinungsformen" des EICAR Testvirus: als .txt-Files oder .Zip-Files. Das EICAR-Testvirus als .txt und .zip File von http://www.eicar.org/anti_virus_test_file.htm downloaden und Lokal auf dem PC speichern.
Eine Testmail mit Betreff 'Test EICAR' an einen lokalen Mailuser -z.B. Tux - verfassen und den EICAR Testvirus (.txt) anhängen. => Die Mail wird nicht zugestellt, da diese in Quarantäne gestellt wurde Den selben Vorgang für den EICAR Testvirus im .zip-File wiederholen.
Sanesecurity
Mit Hilfe von drei Mails wird die korrekte Funktionalität der Sanesecurity Signaturen verifiziert:
- Test1: Eine HTML-Testmail an einen lokalen User versenden - z.B. Tux - mit Betreff - z.B. Test Sanesecurity 1 - und folgendem Text:
body_rrg63uhj2ucyeccrux7d83a4qd5ua5vnlgwjp6b6fmpzpobzjabftehuhraxfbyzzzzz
- Test2: Eine Testmail mit Inhalt - z.B. Test Sanesecurity 2 - an einen lokalen User versenden - z.B. Tux - mit folgendem Subject (Betreff):
rrg63Uhj2UCyECcruX7D83A4qd5UA5vnlgwJp6b6fmPZpObZJAbftehuhRAXFby
- Test3: Eine Text-Testmail (kein HTML) an einen lokalen User versenden - z.B. Tux - mit Betreff - z.B. Test Sanesecurity 3 - und folgendem Text:
body_rrg63Uhj2UCyECcruX7D83A4qd5UA5vnlgwJp6b6fmPZ0ajdjkwjnSSDfsdfsdfnwerd
Check der Quarantäne
Webbrowser öffnen und Adresse: http://IP_DES_SERVERS/maia eingeben. Einloggen mit den Userdaten:
User: tux@domain.org Pwd: tux_mail_pwd
Auf der Willkommensseite wird die Statistik der Quarantäne angezeigt:
- 1 Ham-Mail (Test Clean)
- 1 Spam-Mail (Test GTUBE)
- 4 Virus-Mails (EICAR+3 Sanesecurity Mails)
Die Mails in Quarantäne ansehen:
- Auf das Briefsymbol im neben 'Ham-Mails'
- Auf den Betreff 'Test Clean' klicken
- Ein neues Fenster erscheint mit den Details der Mail.
- Fenster wieder schließen
- [Zurück zur Willkommen-Seite] anklicken
- Die selben Schritte für die Spam- und Virusmails wiederholen
Zustellen einer Mail aus der Quarantäne ins Postfach des Benutzers
- Die Mail 'Test Sanesecurity 1' in der Virus Quarantäne, wie oben beschrieben, in einem neuen Fenster öffnen
- Das Briefsymbol anklicken, um die Mail ins Postfach des Nutzers zustellen zu lassen
- Die Mail mit Betreff 'Sanesecurity 1' muß mit Origianl-Uhrzeit im Postfach des Nutzers abgelegt werden
Selektives Löschen einer Mail in Quarantäne
- Die Mail 'Test Sanesecurity 1' in der Virus Quarantäne, wie oben beschrieben, in einem neuen Fenster öffnen
- Auf 'Lösche diese Mail' klicken, um die Mail zu löschen
- Das Fenster wird geschlossen und die Mail wurde aus der Quarantäne entfernt
Löschen der kompletten Quarantäne
- Virus Quarantäne öffnen (siehe oben)
- Alle Mails in Quarantäne sollten mit 'Löschen' markiert sein. Falls nicht, markieren.
- Button 'Bestätige den Status dieser Mails' anklicken
- Alle Virusmails wurden aus der Quarantäne entfernt
- Die selben Schritte für die Spma-Quarantäne wiederholen
Workaround for Debian7
In Debian wird PHP in Version 5.5 verwendet. Ab PHP 5.4 fehlt eine von Maia verwendete Funktion session_is_registered nicht mehr enthalten. Als Folge werden bei einigen Seiten der Weboberfläche nur weiße Seiten dargestellt.
vi /var/www/maia/confirm.php
In folgendem Block:
if (array_key_exists('token', $_GET) && array_key_exists('id', $_GET) && array_key_exists('ts', $_GET)) { if (!session_is_registered("uid") || !session_is_registered("euid") ||
session_is_registered durch isset($_SESSION folgendermaßen ersetzen:
if (array_key_exists('token', $_GET) && array_key_exists('id', $_GET) && array_key_exists('ts', $_GET)) { if (!isset($_SESSION['uid']) || !isset($_SESSION['euid']) ||
Selbe Änderung in /var/www/maia/rescue.php durchführen.
Analog in logout.php:
vi /var/www/maia/logout.php
Die Zeile
if (session_is_registered("uid")) {
folgendermaßen ersetzen:
if (isset($_SESSION['uid'])) {