Virtuelle Benutzer und Domains Mit Postfix, Courier Und MySQL (Ubuntu 7.10) - Seite 3

7 Konfiguriere Courier

Nun müssen wir Courier mitteilen, dass es sich gegenüber unserer MySQL Datenbank autentifizieren soll. Bearbeite zunächst /etc/courier/authdaemonrc und ändere den Wert von authmodulelist sodass es heißt:

vi /etc/courier/authdaemonrc


[...]
authmodulelist="authmysql" [...]
Sichere dann /etc/courier/authmysqlrc und leere die alte Datei:

cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig
cat /dev/null > /etc/courier/authmysqlrc

Öffne dann /etc/courier/authmysqlrc und füge folgende Zeilen ein:

vi /etc/courier/authmysqlrc


MYSQL_SERVER localhost
MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/home/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') #MYSQL_NAME_FIELD MYSQL_QUOTA_FIELD quota
Starte Courier dann neu:

/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop restart
/etc/init.d/courier-pop-ssl restart

Indem Du Folgendes laufen lässt

telnet localhost pop3

kannst Du feststellen, ob Dein POP3 Server richtig funktioniert. Es sollte +OK Hello there zurück geben. (Gib quit ein um wieder zur Linux Kommandozeile zu gelangen)

root@server1:/etc/postfix# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
quit
+OK Better luck next time.
Connection closed by foreign host.
root@server1:/etc/postfix#

8 Bearbeite /etc/aliases

Nun sollten wir /etc/aliases öffnen. Vergewissere Dich, dass postmaster auf root zeigt und root auf Deinen eigenen Benutzernamen oder Deine E-Mail Adresse, z.B. wie folgt:

vi /etc/aliases


[...]
postmaster: root root: postmaster@yourdomain.tld [...]
oder wie das (wenn administrator Dein eigener Benutzername ist):
[...]
postmaster: root root: administrator [...]
Wann immer Du /etc/aliases bearbeitest, musst Du danach Folgendes laufen lassen

newaliases

und Postfix neu starten:

/etc/init.d/postfix restart


9 Installiere amavisd-new, SpamAssassin, Und ClamAV

Um amavisd-new, spamassassin und clamav zu installieren, lass folgenden Befehl laufen:

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax

Danach müssen wir amavisd-new konfigurieren. Die Konfiguration ist in verschiedene Dateien aufgesplittet, die sich im /etc/amavis/conf.d Verzeichnis befinden. Sieh Dir jede einzelne an um Dich mit der Konfiguration vertraut zu machen. Die meisten Einstellungen sind in Ordnung, jedoch müssen wir drei Dateien bearbeiten:

Zuerst müssen ClamAV und SpamAssassin in /etc/amavis/conf.d/15-content_filter_mode aktivieren indem wir die Zeile @bypass_virus_checks_maps und die Zeile @bypass_spam_checks_maps aktivieren:

vi /etc/amavis/conf.d/15-content_filter_mode

Die Datei sollte wie folgt aussehen:
use strict;
# You can modify this file to re-enable SPAM checking through spamassassin # and to re-enable antivirus checking. # # Default antivirus checking mode # Uncomment the two lines below to enable it back # @bypass_virus_checks_maps = ( %bypass_virus_checks, @bypass_virus_checks_acl, $bypass_virus_checks_re); # # Default SPAM checking mode # Uncomment the two lines below to enable it back # @bypass_spam_checks_maps = ( %bypass_spam_checks, @bypass_spam_checks_acl, $bypass_spam_checks_re); 1; # insure a defined return
Dann solltest Du Dir die Spam Einstellungen und die Vorgänge für Spam-/Virus-Mails in /etc/amavis/conf.d/20-debian_defaults ansehen. Es gibt keinen Grund etwas zu ändern wenn Dir die Standardeinstellungen zusagen. Die Datei beinhaltet viele Erklärungen, es besteht kein Anlass die Einstellungen hier zu erklären:

vi /etc/amavis/conf.d/20-debian_defaults


[...]
$QUARANTINEDIR = "$MYHOME/virusmails"; $log_recip_templ = undef; # disable by-recipient level-0 log entries $DO_SYSLOG = 1; # log via syslogd (preferred) $syslog_ident = 'amavis'; # syslog ident tag, prepended to all messages $syslog_facility = 'mail'; $syslog_priority = 'debug'; # switch to info to drop debug output, etc $enable_db = 1; # enable use of BerkeleyDB/libdb (SNMP and nanny) $enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1 $inet_socket_port = 10024; # default listenting socket $sa_spam_subject_tag = '***SPAM*** '; $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level $sa_kill_level_deflt = 6.31; # triggers spam evasive actions $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent $sa_mail_body_size_limit = 200*1024; # don't waste time on SA if mail is larger $sa_local_tests_only = 0; # only tests which do not require internet access? [...] $final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine) $final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; # False-positive prone (for spam) [...]
Bearbeite schließlich die Datei /etc/amavis/conf.d/50-user und füge die Zeile $pax='pax'; in der Mitte hinzu:

vi /etc/amavis/conf.d/50-user


use strict;
# # Place your configuration directives here. They will override those in # earlier files. # # See /usr/share/doc/amavisd-new/ for documentation and examples of # the directives you can use in this file # $pax='pax'; #------------ Do not modify anything below this line ------------- 1; # insure a defined return
Starte danach diese Befehle, um den clamav Benutzer der amavis Gruppe hinzuzufügen und amavisd-new und ClamAV neu zu starten:

adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

Nun müssen wir Postfix konfigurieren um eingehende E-Mails durch amavisd-new zu leiten:

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
postconf -e 'receive_override_options = no_address_mappings'

Füge danach folgende Zeile zu /etc/postfix/master.cf:

vi /etc/postfix/master.cf


[...]
amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1
Starte Postfix dann neu:

/etc/init.d/postfix restart

Führe nun Folgendes aus

netstat -tap

und Du müsstest sehen, dass Postfix (master) auf Port 25 (smtp) und 10025 hört, und amavisd-new auf Port 10024:

root@server1:/etc/postfix# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost.localdo:10024 *:* LISTEN 14770/amavisd (mast
tcp 0 0 localhost.localdo:10025 *:* LISTEN 15800/master
tcp 0 0 localhost.localdo:mysql *:* LISTEN 5742/mysqld
tcp 0 0 *:smtp *:* LISTEN 15800/master
tcp6 0 0 *:imaps *:* LISTEN 13290/couriertcpd
tcp6 0 0 *:pop3s *:* LISTEN 13359/couriertcpd
tcp6 0 0 *:pop3 *:* LISTEN 13320/couriertcpd
tcp6 0 0 *:imap2 *:* LISTEN 13253/couriertcpd
tcp6 0 0 *:www *:* LISTEN 4961/apache2
tcp6 0 0 *:ssh *:* LISTEN 3725/sshd
tcp6 0 0 server1.example.com:ssh ::ffff:192.168.0.2:4670 ESTABLISHED3783/0
root@server1:/etc/postfix#

3 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: planet_fox

Ich hatte Probleme bei erstellen der Tabelle CREATE TABLE transport und CREATE TABLE user auf einem mysql5 server könnte es so Lösen


CREATE TABLE `users` (
`email` varchar(80) NOT NULL,
`password` varchar(20) NOT NULL,
`quota` int(10) default '10485760',
PRIMARY KEY (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `forwardings` (
`source` varchar(80) NOT NULL,
`destination` text NOT NULL,
PRIMARY KEY (`source`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Von: Aerox95

Nach der Einrichtung nach diesem Tutorial ging das Empfangen von Mails problemlos, aber nicht das versenden.

Lösung war, unter
/var/run/saslauthd/ den Dateien neue Besitzer und Gruppen zu geben:

drwx--x--- 2 postfix sasl 100 May 11 15:24 .
drwxr-xr-x 13 root root 360 May 11 15:24 ..
srwxrwxrwx 1 postfix postfix 0 May 11 15:24 mux
-rw------- 1 postfix postfix 6 May 11 15:24 saslauthd.pid
-rw------- 1 postfix postfix 0 May 11 15:24 mux.accept

Danach gings.


Von: apoc

Danke für das super Howto. Ich möchte noch ergänzen das man bei forwardings auch einfach den PRIMARY KEY weglassen kann, dann ist es möglich eine eMail an 2 weitere zu verteilen, haben wir so für info@.. gemacht.

Und noch hier mein kleines Manage Script für die Konsole, kann nicht viel, aber vielleicht findet es ja jemand hilfreich:
http://apoc.sixserv.org/scripts/vmail_manage_script.rb