Hetzner - DokuWiki
DebianMailserver5
GIDDE (Diskussion | Beiträge) (→Postfix) |
GIDDE (Diskussion | Beiträge) (→Postfix) |
||
Zeile 124: | Zeile 124: | ||
addgroup --gid 1001 vmail | addgroup --gid 1001 vmail | ||
− | adduser --uid vmail | + | adduser --uid 1001 vmail |
Jetzt müssen wir noch sicherstellen das folgende einträge in der main.cf hinterlegt sind | Jetzt müssen wir noch sicherstellen das folgende einträge in der main.cf hinterlegt sind |
Version vom 15. Oktober 2007, 12:47 Uhr
Dieses How-to basiert auf diversen anderen How-To's mit denen ich damals meinen Mail server gebastelt habe. Leider habe ich zwischenzeitlich die Quellen dafür nicht mehr.
Funktionen:
- Virtual Domains
- Spam und Virenfilter mittels Spamassassin und Amavisd-new sowie Postgrey
- Verwaltung der Mailadressen mittels Postfixadmin
- Auto Reply/Vacation Funktion
- Shared Folders mit Courier
- ....
Als erstes benötigen wir ein paar Debian Pakete
apt-get install postfix postfix-mysql mysql-server-5.0 apache2 libapache2-mod-php5 courier-authdeamon courier-authlib-mysql courier-imap courier-pop spamassassin amavisd-new clamav
Postfixadmin
Nun holen wir uns den aktuellen postfixadmin aus dem SVN:
svn co https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk postfixadmin
Diese legen wir in /var/www/postfixadmin ab.
Berechtigungen ändern:
cd /var/www/postfixadmin chmod 640 *.php *.css cd /var/www/postfixadmin/admin/ chmod 640 *.php .ht* cd /var/www/postfixadmin/images/ chmod 640 *.gif *.png cd /var/www/postfixadmin/languages/ chmod 640 *.lang cd /var/www/postfixadmin/templates/ chmod 640 *.tpl cd /var/www/postfixadmin/users/ chmod 640 *.php chown -R www-data:www-data /var/www/postfixadmin
Grundsätzlich kann man nun auch nach der Install Anleitung von postfixadmin weitermachen. Der Vollständigkeithalber erkläre ich es hier dennoch.
In der DATABASE_MYSQL.TXT liegt das Template für die Datenbank. Nun müssen wir hier aber ein paar Zeilen auskommentieren:
# Postfix user & password INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('postfix'));
# Postfix Admin user & password INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('postfixadmin'));
#Priviledges INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y'); INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y');
Damit werden im MySQL dann ein user postfix und ein user postfixadmin angelegt.
Nun importieren wir das ganze in MySQL
mysql -u root < DATABASE_MYSQL.TXT
Bitte beachten das diese Vorgehensweise für die gegenwärtige SVN Version gilt (Stand 15.10.2007) evtl. ist bei neueren Versionen hier kein auskommentieren mehr nötig.
Nun ist alles importiert und wir können wenn unser Apache noch immer /var/www korrekt liest uns unter http://deineip/postfixadmin/setup.php den Status der Postfixadmin installation ansehen und unseren Superuser anlegen. Wenn das getan ist löschen wir die setup.php
rm /var/www/postfixadmin/setup.php
Leider muss nun noch per hand in der Datei config.inc.php folgende Zeile auf "true" geändert werden:
$CONF['configured'] = true;
Jetzt können wir unter http://deineip/postfixadmin uns mit unserem superuser einloggen und alles schön administrieren. Grundsätzlich denke ich ist hier alles selbsterklärend. Jeder von euch angelegte User mit Mailbox kann sich auch unter dieser Adresse einloggen und zb seinen Alias oder Passwort ändern oder später auch seine Out of Office replys verwalten.
Postfix
Nun müssen wir Postfix einrichten und ihm auch sagen das er bitteschön mit postfixadmin gemeinsame Sache machen soll.
Dazu müssen wir erst einmal ein paar Dateien mit folgenden Inhalten anlegen:
mysql_virtual_alias_maps.cf
user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = alias select_field = goto where_field = address
mysql_virtual_domains_maps.cf
user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = domain select_field = domain where_field = domain
mysql_virtual_mailbox_limit_maps.cf
user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = quota where_field = username
mysql_virtual_mailbox_maps.cf
user = postfix password = postfix hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = maildir where_field = username
Für das speichern der Mails benötigen wir einen seperaten User und Gruppe . Hierfür nehmen wir vmail für username und gruppe und eine statische id von 1001
addgroup --gid 1001 vmail adduser --uid 1001 vmail
Jetzt müssen wir noch sicherstellen das folgende einträge in der main.cf hinterlegt sind
myhostname = mail.domain.tld alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = localhost, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:1001 #hier geben wir das Verzeichnis an in dem wir die emails ablegen wollen virtual_mailbox_base = /email virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 512000000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 1001 virtual_transport = virtual virtual_uid_maps = static:1001 # Additional for quota support #virtual_create_maildirsize = yes #virtual_mailbox_extended = yes #virtual_mailbox_limit_maps = #virtual_mailbox_limit_override = yes #virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. #virtual_overquota_bounce = yes