Debian Maia: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Einleitung=
==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:
Voraussetzungen:
Zeile 8: Zeile 13:
* [[Debian_Subversion|Subversion]]
* [[Debian_Subversion|Subversion]]


=Installation=
==Installation==
Es sind zahlreiche Pakete erforderlich:
Es sind zahlreiche Pakete erforderlich:


'''Debian Paketmanager:'''  
'''Debian Paketmanager:'''  
  apt-get --yes install libgd2-xpm php5-imap php5-ldap php5-mcrypt php5-gd
  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
  apt-get --yes install clamav clamav-daemon clamav-docs
  apt-get --yes install clamav clamav-daemon clamav-docs
  apt-get --yes install spamassassin razor pyzor  
  apt-get --yes install spamassassin razor pyzor  
  apt-get --yes install curl rsync
  apt-get --yes install curl rsync dnsutils


'''Pear PHP-Manager:'''
'''Pear PHP-Manager:'''
pear channel-discover htmlpurifier.org
  pear channel-update pear.php.net
  pear channel-update pear.php.net
  pear upgrade pear
  pear upgrade pear
pear install XML_RPC
pear install Mail_Mime
  pear install DB_Pager
  pear install DB_Pager
pear install Auth_SASL
pear install Net_Socket
pear install Net_Smtp
pear install Net_IMAP
  pear install Net_POP3
  pear install Net_POP3
pear install Log
pear install DB
pear install Pager
  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-0.7.2
  pear install -f Image_Graph
pear install hp/HTMLPurifier
 
{{Rechteck2|'''Achtung:'''
:Das Paket NET_IMAP enthält einen Bug, der relativ einfach gefixt werden kann:}}
(Details zum Bug und Lösung siehe auch http://www.maiamailguard.com/maia/ticket/266):
vi /usr/share/php/Net/IMAPProtocol.php
Die Zeilen 700 bis 702 folgendermaßen abändern:
#return $args;
// not for now
return $this->_genericImapResponseParser($args,$cmdid);


'''Perl-Module (MCPAN):'''
perl -MCPAN -e shell
install Net::Server
install Mail::SPF::Query
install Convert::UUlib
install Crypt::CBC
install MIME::Parser
install DBD::Pg
exit


'''Maia und AmvisD'''
'''Maia und AmvisD'''
  cd /usr/local/src
mkdir /usr/local/src/maia
  svn checkout https://www.maiamailguard.com/svn/branches/1.0
  cd /usr/local/src/maia
(Die Abfrage mit temporär '''''t''''' beantworten)
svn checkout https://www.maiamailguard.com/svn/branches/1.0
  mv 1.0 maia
(Die Abfrage mit permanent '''''p''''' beantworten)
cd maia
  cd 1.0
  mkdir /var/amavisd
  mkdir /var/amavisd
  mkdir /var/amavisd/maia
  mkdir /var/amavisd/maia
  mkdir /var/amavisd/db
  mkdir /var/amavisd/db
  mkdir /var/amavisd/tmp
  mkdir /var/amavisd/tmp
mkdir /var/amavisd/var
mkdir /var/maia
mkdir /var/run/maia
mkdir /var/lock/maia
   
   
  cp scripts /var/amavisd/maia/
  cp -R scripts /var/amavisd/maia/
  cp maia.conf.dist /etc/maia.conf
cp -R templates  /var/amavisd/maia/
  cp 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 php/config.php.dist php/config.php
  cp php /var/www/
  cp -R php /var/www/
  mv /var/www/php /var/www/maia
  mv /var/www/php /var/www/maia
  cp amavisd-maia /usr/sbin
  cp maiad /usr/sbin
cp amavisd.conf.dist /etc/amavisd.conf
   
   
cd /root
  addgroup amavis
  addgroup amavis
  adduser www-data amavis
  adduser www-data amavis
Zeile 90: 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
  chown amavis.amavis /etc/maia.conf
  chown amavis. /etc/maia.conf
  chmod 640 /var/amavisd/maia/templates/*.tpl
  chmod 640 /var/amavisd/maia/templates/*.tpl
  chmod 750 /var/amavisd/maia/scripts/*.pl
  chmod 750 /var/amavisd/maia/scripts/*.pl
  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/amavisd-maia /usr/sbin/amavisd
  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/amavisd-init
  wget ftp://download:download@schiele.homelinux.org/debian/maia-init
  mv amavisd_init amavisd
  mv maia-init maia
  chmod 755 amavisd
  chmod 755 maia
  update-rc.d amavisd defaults
  update-rc.d maia defaults


Default-File anlegen:
Default-File anlegen:
  vi /etc/default/amavisd
  vi /etc/default/maia
Folgenden Inhalt einfügen:
Folgenden Inhalt einfügen:
  # /etc/default/amavisd
  # /etc/default/maia
  #
  #
   
   
Zeile 115: Zeile 101:
  ENABLED=1
  ENABLED=1
   
   
  PIDFILE="/var/run/amavis/amavisd.pid"
  PIDFILE="/var/amavisd/var/amavisd.pid"
   
   
  # Set nice level of spamd
  # Set nice level of spamd
  #NICE="--nicelevel 15"
  #NICE="--nicelevel 15"


=SQL-Datenbank anlegen=
==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.
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/src/maia
  cd /usr/local/src/maia/1.0
   mysql -u root -p mysql
   mysql -u root -p mysql
'''''mysql_root_pwd''''' eingeben
'''''mysql_root_pwd''''' eingeben
Zeile 134: Zeile 120:
'''''mysql_root_pwd''''' eingeben
'''''mysql_root_pwd''''' eingeben


=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


 
==Konfiguration==
=Konfiguration=
===Spamassassin===
==Spamassassin==
  vi /etc/default/spamassassin
  vi /etc/default/spamassassin
Spamassassin aktivieren:
Spamassassin aktivieren:
  ENABLED=1
  ENABLED=1
Cronjob zum Update der Spamassassin-Regeln aktivieren:
CRON=1


'''Plugin Pyzor:'''
'''Plugin Pyzor:'''
Zeile 181: Zeile 166:
'''Aktivieren der Plugins und Bayes-Filter:'''
'''Aktivieren der Plugins und Bayes-Filter:'''
  vi /etc/spamassassin/local.cf
  vi /etc/spamassassin/local.cf
Kommentarzeichen (#) von folgenden Einträgen entfernen:
Kommentarzeichen (#) von folgenden Einträgen entfernen bzw. Einträge einfügen:
  lock_method flock
  lock_method flock
  use_bayes 1
  use_bayes 1
Zeile 227: Zeile 212:
  sa-update
  sa-update


==ClamAV==
===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.
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.


Zeile 233: Zeile 218:
  adduser clamav amavis
  adduser clamav amavis
  adduser amavis clamav
  adduser amavis clamav
Für den Einsatz von ClamAV auf einem Mailserver empfiehlt sich, die zusätzlichen Phishing, Spam und Mailware 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.
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/sbin
  cd /usr/local/src/maia
  wget http://www.retrosnub.co.uk/sanesecurity/script/fetch-sanesecurity-sigs
  wget http://www.inetmsg.com/pub/clamav-unofficial-sigs.tar.gz
  chmod +x fetch-sanesecurity-sigs
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.
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.
  fetch-sanesecurity-sigs
  clamav-unofficial-sigs.sh
Wenn die Signaturen erfolgreich und fehlerfrei heruntergeladen werden konnten, empfiehlt es sich einen Cronjob anzulegen, der sich um die regelmäßigen Updates der Sanesecurity Signaturen kümmert:
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/sanesecurity_updater
  vi /etc/cron.d/clamav-unofficial-sigs-cron
Folgende Zeilen einfügen, damit der Updater alle zwei Stunden aufgerufen wird:
Die Cron-Zeile um  '''>/dev/null''' erweitern:
  22 */2 * * * root /usr/sbin/fetch-sanesecurity-sigs > /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:
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:
ClamAV neustarten:
Zeile 249: Zeile 263:




===Maia und AmavisD===


==Maia und AmavisD==
  vi /etc/maia/maia.conf
 
  vi /etc/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 341: Zeile 354:
  $protection = array( 'off'    => array ('Y','Y','Y','Y','Y','Y','Y','Y','N','N','N','N','N','999','999','999'),
  $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'),
                       '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','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','15')
                       'high'    => array ('N','N','N','N','N','N','N','N','N','N','N','N','Y','-999','5','5')
  );
  );


Zeile 350: Zeile 363:




  vi /etc/amavisd.conf
  vi /etc/maia/maiad.conf
Kommentarzeichen entfernen:
$pid_file  = "$MYHOME/var/amavisd.pid";
Domain ändern:
Domain ändern:
  $mydomain = 'domain.org';  # a convenient default for other settings
  $mydomain = 'domain.org';  # a convenient default for other settings
Zeile 365: Zeile 380:
  @keep_decoded_original_maps = (new_RE(
  @keep_decoded_original_maps = (new_RE(
   qr'^MAIL$',  # retain full original message for virus checking (can be slow)
   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:
Socket für Clam_AV anpasen:
  ['ClamAV-clamd',
  ['ClamAV-clamd',
   \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
   \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],


==Wartungsscripte==
===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.
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
  vi /etc/cron.d/maia
Folgende Zeilen enfügen:
Folgende Zeilen enfügen:
  0 * * * * amavis /var/amavisd/maia/scripts/stats-snapshot.pl > /dev/null
  0 * * * * amavis /var/amavisd/maia/scripts/stats-snapshot.pl > /dev/null
  5 * * * * amavis /var/amavisd/maia/scripts/process-quarantine.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
  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
  15 8 * * * amavis /var/amavisd/maia/scripts/send-quarantine-reminders.pl > /dev/null
  */3 * * * * amavis /var/amavisd/maia/scripts/send-quarantine-digests.pl > /dev/null
  0 * * * * amavis /var/amavisd/maia/scripts/send-quarantine-digests.pl > /dev/null




==Postfix==
===Postfix===
An den Postfix Konfigurationsfiles müssen Änderungen durchgeführt werden, um den Spamfilter in die Mail-Transportkette einzuschleifen:
An den Postfix Konfigurationsfiles müssen Änderungen durchgeführt werden, um den Spamfilter in die Mail-Transportkette einzuschleifen:
  vi /etc/master.cf
  vi /etc/postfix/master.cf
Folgende Zeilen ans Ende anfügen:
Folgende Zeilen ans Ende anfügen:
  lmtp-amavis    unix  -      -      n      -      2      lmtp
  lmtp-amavis    unix  -      -      n      -      2      lmtp
Zeile 414: Zeile 452:




=Starten der Services=
==Starten der Services==
  /etc/init.d/spamassassin start
  /etc/init.d/spamassassin start
  /etc/init.d/amavisd start
  /etc/init.d/maia start
  /etc/init.d/postfix restart
  /etc/init.d/postfix restart


=Webbasierte Einrichtung=
==Webbasierte Einrichtung==
==Konfigurations- und Datenbank Test==
===Konfigurations- und Datenbank Test===
Im Webbrowser 'http://192.168.0.28/maia/admin/configtest.php' eingeben.
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.
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 Einstellungen==
===Super-User und Admin-Einstellungen===
Für Konfigurationsarbeiten an Maia ist ein Super-User nötig.
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.
Webbrowser öffnen und Adresse: '''''http://IP_DES_SERVERS/maia/login.php?super=register''''' eingeben.
Zeile 433: Zeile 471:


Einstellungen vornehmen:
Einstellungen vornehmen:
*Auf der 'Welcome' Seite  '''''Protection Level''''' (Current protection level)wählen: Medium
* Auf der 'Welcome' Seite  '''''Protection Level''''' (Current protection level)wählen: '''''Medium'''''
*Zur Seite 'Admin' wechseln
* Button '''''Change Level''''' anklicken
**Unterpunkt 'Languages' selektieren
* Zur Seite 'Admin' wechseln
*** Unter 'Install new Language' Deutsch auswählen
** Unterpunkt 'Languages' selektieren
*** Unter 'Install new Language' '''''Deutsch(de)''''' auswählen
*** Button '''''Install Language'''''
*** Button '''''Install Language'''''
*** Link '''''[Return to the Administration Menu]''''' anklicken um ins Admin Menü zurückzukehren
*** Link '''''[Return to the Administration Menu]''''' anklicken um ins Admin Menü zurückzukehren
**Unterpunkt 'System Configuration' wählen
**Unterpunkt 'System Configuration' wählen
*** Administrator's contact e-mail address: postmaster@domain.org
*** 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.)
*** 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  
*** E-mail reminder template file: '''''/var/amavisd/maia/templates/reminder.tpl '''''
*** Maia login URL for e-mail reminders:  [?] http://'''''IP_Des_Servers'''''/maia
*** Maia login URL for e-mail reminders:  [?] http://'''''IP_Des_Servers'''''/maia
*** Enable graphical charts?  [?] '''''yes'''''
*** Enable graphical charts?  [?] '''''yes'''''
*** Button '''''Update Settings''''' anklicken
*** Button '''''Update Settings''''' anklicken
* Zur Seite 'Settings' wechseln, umd 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'''''


Ausloggen mit '''''Exit'''''
Ausloggen mit '''''Exit'''''


=Funktionstest=
 
Der Funktionstest umfaßt mehrere Schritte. Es wird geprüft, normale Mails nachwievor ankommen, ob SPAM korrekt erkannt wird, und ob Viren in Quarantäne genommen werden. Weiterhin werden die Sanesecurity Signaturen korrekt funktioneren. Zum Schluß wird verifiziert, ob die Maia-Quarantäne und die Freigabe von Mails korrekt funktioneren.
===User- Einstellungen===
==Clean Mail==
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.
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.
=> Die Mail muß ganz normal im Postfach des Benutzers abgelegt werden.
==SPAM==
 
===SPAM===
Eine Nachricht mit Betreff 'Test GTUBE' an einen gültigen Mailuser - z.B. 'tux' - mit und folgendem Inhalt senden:
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
  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.
=> Die Mail wird nicht zugestellt, da Sie einen sehr hohen Spam-Score (>1000) aufweist.
==Virustest==
 
===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.  
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===
 
====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.
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.
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.
Zeile 473: Zeile 569:
Den selben Vorgang für den EICAR Testvirus im .zip-File wiederholen.  
Den selben Vorgang für den EICAR Testvirus im .zip-File wiederholen.  


===Sanesecurity===
====Sanesecurity====
Mit Hilfe von drei Mails wird die korrekte Funktionalität der Sanesecurity Signaturen verifiziert:
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. Test1 - und folgendem Text:
* Test1: Eine '''HTML-Testmail''' an einen lokalen User versenden - z.B. Tux - mit Betreff - z.B. Test Sanesecurity 1 - und folgendem Text:
  body_rrg63uhj2ucyeccrux7d83a4qd5ua5vnlgwjp6b6fmpzpobzjabftehuhraxfbyzzzzz
  body_rrg63uhj2ucyeccrux7d83a4qd5ua5vnlgwjp6b6fmpzpobzjabftehuhraxfbyzzzzz
* Test2: Eine Testmail an einen lokalen User versenden - z.B. Tux - mit folgendem '''Subject (Betreff)''':
* Test2: Eine Testmail mit Inhalt - z.B. Test Sanesecurity 2 - an einen lokalen User versenden - z.B. Tux - mit folgendem '''Subject (Betreff)''':
  rrg63Uhj2UCyECcruX7D83A4qd5UA5vnlgwJp6b6fmPZpObZJAbftehuhRAXFby
  rrg63Uhj2UCyECcruX7D83A4qd5UA5vnlgwJp6b6fmPZpObZJAbftehuhRAXFby
* Test3: '''Eine Text-Testmail (kein HTML)''' an einen lokalen User versenden - z.B. Tux - mit Betreff - z.B. Test3 - und folgendem Text:
* 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
  body_rrg63Uhj2UCyECcruX7D83A4qd5UA5vnlgwJp6b6fmPZ0ajdjkwjnSSDfsdfsdfnwerd


{{Rechteck3|'''Hinweis:'''
{{Hinweis|
* Die Zeichenfolgen müssen exakt eingehalten werden (kein Zeichen mehr eingeben, auch keine Leerzeichen). Ansonsten werden sie nicht zuverlässig erkannt.
* Die Zeichenfolgen müssen exakt eingehalten werden (kein Zeichen mehr eingeben, auch keine Leerzeichen). Ansonsten werden sie nicht zuverlässig erkannt.
* Alle drei Testmails müssen als Virus identifiziert werden und in Quarantäne landen (keine Zustellung).
* Alle drei Testmails müssen als Virus identifiziert werden und in Quarantäne landen (keine Zustellung).
* Falls dies nicht der Fall sein sollte, prüfen, ob die Vorgaben exakt eingehalten wurden: Test1: HTML-Mail , Test2: SUBJECT exakt nach Vorgabe, Test3: Text-Mail}}
* Falls dies nicht der Fall sein sollte, prüfen, ob die Vorgaben exakt eingehalten wurden: Test1: HTML-Mail , Test2: SUBJECT exakt nach Vorgabe, Test3: Text-Mail}}


===Check der Quarantäne===
 
====Check der Quarantäne====
Webbrowser öffnen und Adresse: '''''http://IP_DES_SERVERS/maia''''' eingeben.
Webbrowser öffnen und Adresse: '''''http://IP_DES_SERVERS/maia''''' eingeben.
Einloggen mit den Userdaten:
Einloggen mit den Userdaten:
Zeile 522: 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

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.
Bulbgraph.png 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
Bulbgraph.png Hinweis:
  • Die Zeichenfolgen müssen exakt eingehalten werden (kein Zeichen mehr eingeben, auch keine Leerzeichen). Ansonsten werden sie nicht zuverlässig erkannt.
  • Alle drei Testmails müssen als Virus identifiziert werden und in Quarantäne landen (keine Zustellung).
  • Falls dies nicht der Fall sein sollte, prüfen, ob die Vorgaben exakt eingehalten wurden: Test1: HTML-Mail , Test2: SUBJECT exakt nach Vorgabe, Test3: Text-Mail


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'])) {