Archiv fü Februar, 2007

Postfix, AOL und Freenet

25. Februar 2007

Ich hab mal versucht, auf meinem Debian-Server einen Mailserver mit Postfix aufzusetzen, der meine Mails bei Freenet abliefert. Da ich bei Freenet angemeldet bin, sollte das ganze mit SMTP_AUTH kein Problem darstellen. Also ein beherztes

apt-get install postfix libsasl2 libsasl2-modules

ausgeführt und schon war die nötige Software installiert und auch eine Grundkonfiguration vorgenommen. Dann noch ein paar Zeilen in /etc/postfix/main.cf geändert und es sollte gehen. Als zusätzliche Zeilen habe ich noch eingetragen


## SMTP AUTH Client
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtpd_sasl_security_options = noanonymous

Danach habe ich in /etc/postfix eine Datei sasl_passwd als Passwortdatei für sasl angelegt. Der Inhalt sieht so aus:

mx.freenet.de [MeinUserName@freenet.de]:[MeinPasswort]

Danach die Passwort-datei mit

postmap /etc/postfix/sasl_passwd

Postfixfreundlich codiert, mit

postfix reload

die neuen Einstellungen geladen und schon sollte es funktionieren.
Also Mailprogramm angeschmissen, eine Probemail geschickt und gewartet. Nichts passiert. Warum nicht?
Zum Glück wird bei Fehlern in der Datei /var/log/mail.info ein Eintrag hinterlassen und da stand tatsächlich auch drin, warum es nicht geht.
Kurze Zwischenbemerkung dazu: Als DSL-Provider benutze ich AOL und eben jener Provider leitet seit Mitte 2006 alle ausgehenden Mails über einen Zwangsproxy. Da ich die Mail statt an den AOL Mailserver an den Freenet Mailserver senden wollte, war der Proxy der Meinung ich spamme und hat das einfach verwehrt.
Nach einigen googlen bin ich dann auf die Lösung gekommen. Der Proxy verweigert nur die Auslieferung über den normalen Mailport 25. Für SMTP_AUTH ist aber auch der Port 587 zuständig und der wird vom Proxy nicht geblockt.
Zur Lösung des Problems trägt man in die entsprechende Zeile in der main.cf hinter der Adresse des Realyhosts noch den Port ein, also etwa so:

relayhost = mx.freenet.de:587

Gesagt, getan. Nach einem erneuten

postfix reload

konnte ich dann tatsächlich Mails senden.

Jetzt war noch etwas Feintuning angesagt. In der Grundkonfiguration versendet Postfix die Mails mit dem Absender [Benutzer_auf_Mailserver]@[hostanem.domain]. Ich hätte jedoch gerne, das dort meine Freenet-Adresse steht. Auch dafür gab’s eine Lösung, die sogenannte sender_canonical_maps. Über den Eintrag

sender_canonical_maps = hash:/etc/postfix/sender_canonical

in main.cf konnte ich eine Datei angeben, deren Inhalt so aussieht:

Benutzer_auf_Mailserver gewünschte@emailadresse.de

Das ganze dann wieder mit

postmap /etc/postfix/sender_canonical

in ein Postfixfreundliches Format gebracht,

postfix reload

ausgeführt und seit dem werden meine Mails mit meiner richtigen Adresse verschickt ;-)

Als Beispiel hier mal meine main.cf und die master.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version 

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname 

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no 

# appending .domain is the MUA's job.
append_dot_mydomain = no 

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h 

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache 

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client. 

myhostname = Trubadix
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, localhost
relayhost = mx.freenet.de:587
mynetworks = 192.168.178.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
disable_dns_lookups = yes 

## SMTP AUTH Client
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtpd_sasl_security_options = noanonymous
#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd -vv
#submission inet n       -       -       -       -       smtpd
#  -o smtpd_enforce_tls=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps     inet  n       -       -       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#628      inet  n       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       -       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       -       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       -       -       -       smtp
	-o fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache	  unix	-	-	-	-	1	scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
Schlagwörter: , , , ,

Erster Eintrag

24. Februar 2007

So, nun ist es passiert. Ich hab mir mein eigenes Blog eingerichtet :-) Ich nutze die Software WordPress . War garnicht so schwer, vor allem wenn man schon einen laufenden Webserver mit PHP und MySQL sein eigen nennt. Einfach das ganze Verzeichniss wordpress ins Root-Verzeichnis des Webservers packen, http://www.meinserver.de/wordpress aufrufen und den Anweisungen folgen. Siehe da, keine 5 Minuten später schreibe ich auch schon den ersten Eintrag.