1. Vorwort
2. Ziel
3. Lib-SASL installieren
4. Postfix installieren
5. Configuration
6. Postfix + SASL starten
7. Greetings
1. Vorwort:
Ich richte mich mit diesem Tutorial an halbwegs erfahrene Linux/BSD
Benutzer die einen sicheren und flexiblen
Internet Mailserver aufsetzen wollen.
2. Ziel:
Ja was genau ist denn nun unser Ziel?
Klar, wir wollen einen funktionierenden E-Mail Server, aber er sollte
auch per SMTP-Auth gegen das Versenden von
Spam-mails abgesichert sein, dazu setzen wir auf Postfix in Verbindung
mit SASL.
3. Lib-SASL installieren:
Zuerst einmal benötigen wir die SASL Library. Die Quellen bekommt
ihr hier:
http://ftp.andrew.cmu.edu/pub/cyrus-mail/
Ihr solltet jedoch den 1.5er tree und nicht den 2.1er verwenden, da
dieser mit Postfix Probleme bereitet.
taktloss@pimperator:~> wget
http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.28.tar.gz
taktloss@pimperator:~> tar
xvfz cyrus-sasl-1.5.28.tar.gz
taktloss@pimperator:~> cd
cyrus-sasl-1.5.28
taktloss@pimperator:~>
./configure --enable-login
Die Option --enable-login muss zum einloggen via Outlook Express
aktiviert werden. Wird Outlook Express nicht verwendet
empfehle ich diese Funktion ab zu schalten.
taktloss@pimperator:~> make
Nach der Compilierung solltet ihr euch per su zum root machen um die
Installation vornehmen zu können.
root@pimperator:~> make
install
Nun noch den Symlink setzen...
root@pimperator:~> ln -s
/usr/local/lib/sasl /usr/lib/sasl
Und fertig ist unsere lib-sasl Installation.
Machen wir uns nun an Postfix!
4. Postfix installieren:
Nun benötigen wir wieder die Qullen, welche ihr unter
www.postfix.org finden solltet. Ihr
solltet allerdings immer zur aktuellen Stable
Version greifen und nicht zu den Halb- Experimentellen Test Versionen,
denn die sind nichts für den täglichen Gebrauch.
taktloss@pimperator:~> wget
ftp://ftp.gwdg.de/pub/misc/postfix/official/postfix-1.1.13.tar.gz
taktloss@pimperator:~>
tar xvfz postfix-1.1.13.tar.gz
Nach dem entpacken kommt es nun
nicht zum gewöhnlichen Unix Drei- Satz (configure, make, make
install)...
taktloss@pimperator:~>
make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include"
AUXLIBS="-L/usr/local/lib -lsasl"
taktloss@pimperator:~> make
Der Aufruf make makefiles teilt
Postfix mit die Lib-SASL mit ein zu binden, was der Lümmel sonst
nicht macht.
Wer schon ein Postfix laufen hat, sollte dieses nun besser stoppen.
root@pimperator:~>
/etc/init.d/postfix stop
Solltet ihr noch nicht root sein,
wechselt ihr eure UID mal wieder per su.
Jetzt gilt es zwischen einem Upgrade und einer Neuinstallation zu
unterscheiden:
Bei einer Neu- Installation müsst ihr
root@pimperator:~> make install
verwenden. Nun werdet ihr noch mit
einem Haufen von Fragen überschüttet welche ihr brav
beantworten solltet, da euer Postfix sonst nicht laufen wird.
Solltet ihr ein Upgrade vornehmen,
so müsst ihr
root@pimpeartor:~> make
upgrade
verwenden.
Damit wäre die Installation ansich abgeschlossen, kommen wir zum
Configurieren!
5. Configuration:
So, testen wir doch erstmal, ob unser neues Postfix auch die lib-sasl
kennt:
root@pimperator:~> postconf
smtp_sasl_auth_enable
smtp_sasl_auth_enable = no
Gut, die Variable smtp_sasl_auth_enable existiert, d.h. SASL wurde
eingebunden.
SMTP-AUTH ist zwar noch aus, aber das wird sich noch
ändern.
Nun Konfigurieren wir unser Postfix so, dass es ohne Authentizierung
keine Mails mehr an nimmt.
Hierzu editieren wir die Datei /usr/lib/sasl/smtpd.conf mit einem
beliebigen Editor wie z.B. vi, mcedit oder joe (ok, meinetwegen auch
emacs *g*)
Wir schreiben nur eine Zeile in die Datei:
pwcheck_method: pwcheck
Diese Zeile teilt der Lib-SASL mit, dass ein Helper Daemon die
Passwörter mit denen in /etc/passwd vergleicht.
Als root legen wir nun das Startscript pwcheck an:
#! /bin/sh
#
# pwcheck
Startet pwcheck für SMTP-Auth mit Postfix
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/pwcheck
NAME=pwcheck
DESC="pwcheck daemon"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
ln
-s /var/spool/postfix/var/run/pwcheck /var/run/pwcheck
$DAEMON
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME "
rm
/var/run/pwcheck
/usr/bin/killall -KILL $NAME
echo "."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop}" >&2
exit 1
;;
esac
exit 0
Ihr könnt in den verschiedenen
Runleveln noch Symlinks setzen wenn ihr dies für noetig haltet,
ich tue es!
Dar Postfix für gewöhnlich in einer chroot Umgebung
läuft, sind noch einige Verzeichnisse von nöten:
root@pimperator:~>
mkdir -p
/var/spool/postfix/var/run/pwcheck; \
root@pimperator:~>
chown
postfix.root /var/spool/postfix/var/run/pwcheck/; \
root@pimperator:~> chmod 700
/var/spool/postfix/var/run/pwcheck/
Sollte der user Postfix noch nicht existieren, so sollte dieser
per
adduser postfix
angelegt werden.
Selbiges gilt für die Gruppe postdrop, diese kann per
addgroup postdrop erzeugt
werden.
Jetzt bringen wir Postfix noch bei,
dass es nur Mails von Authentizierten Personen annehmen soll:
root@pimperator:~> postconf -e 'smtpd_sasl_local_domain =
$myhostname'
root@pimperator:~> postconf -e 'smtpd_sasl_auth_enable = yes'
root@pimperator:~> postconf -e 'smtpd_sasl_security_options =
noanonymous'
root@pimperator:~> postconf -e 'broken_sasl_auth_clients = yes'
root@pimperator:~> postconf -e 'smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
6. Postfix + Pwcheck starten:
So nun starten wir Pwcheck:
root@pimperator:~>
/etc/init.d/pwcheck start
und starten/restarn postfix:
root@pimperator:~>
/etc/init.d/postfix restart
Somit haetten wir nun ein
funktionierendes Mail System.
7. Greetings:
Greetz to:
#Natasha: Ich liebe dich...
#Chrisco: Lerne jetzt GFX und PHP...
#Neodeus: Delphi rockt...
#Xnet: kannste nicht an nem anderen Datum?
~Und alle die ich mal wieder vergessen habe insbesondere die excluded
crew.