Der perfekte Server - Debian Lenny (Debian 5.0) [ISPConfig 2] - Seite 5

11 MySQL

Um MySQL zu installieren, geben wir ein

apt-get install mysql-server mysql-client libmysqlclient15-dev


Du wirst um ein Passwort für den MySQL Root-Benutzer gebeten - dieses Passwort wird sowohl für den Benutzer root@localhost als auch für root@server1.example.com gültig sein, so dass wir später nicht manuell ein MySQL Root-Passwort erstellen müssen:

New password for the MySQL "root" user: <-- yourrootsqlpassword Repeat password for the MySQL "root" user: <-- yourrootsqlpassword
MySQL soll auf alle Oberflächen laufen, nicht nur auf localhost, daher editieren wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf

[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Dann starten wir MySQL neu:

/etc/init.d/mysql restart


Nun überprüfe ob das Netzwerk aktiviert ist. Gib ein

netstat -tap | grep mysql


Die Antwort sollte so aussehen:

server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      6612/mysqld
server1:~#

12 Postfix mit SMTP-AUTH und TLS

Um Postfix mit SMTP-AUTH und TLS zu installieren, befolge bitte folgende Schritte:

apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail


Du wirst um zwei Angaben gebeten. Bitte antworte folgendermassen:

General type of mail configuration: <-- Internet Site System mail name: <-- server1.example.com
Dann gib ein

dpkg-reconfigure postfix


Erneut wirst Du einige Angaben machen müssen:

General type of mail configuration: <-- Internet Site System mail name: <-- server1.example.com Root and postmaster mail recipient: <-- [blank] Other destinations to accept mail for (blank for none): <-- server1.example.com, localhost.example.com, localhost.localdomain, localhost Force synchronous updates on mail queue? <-- No Local networks: <-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 Use procmail for local delivery? <-- Yes Mailbox size limit (bytes): <-- 0 Local address extension character: <-- + Internet protocols to use: <-- all
Dann mach bitte folgendes:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Hiernach erstellen wir das Zertifikat für TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted


mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Als Nächstes konfigurieren wir Postfix für TLS (versichere Dich bitte dass Du für myhostname den richtigen Hostnamen benutzt):

postconf -e 'myhostname = server1.example.com'


postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'

Die Datei /etc/postfix/main.cf sollte nun so aussehen:

cat /etc/postfix/main.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 readme_directory = no # TLS parameters smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_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 = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Die Authentifizierung erfolgt von saslauthd. Wir müssen allerdings einige Dinge ändern damit es richtig funktioniert. Da Postfix gechrootet in /var/spool/postfix läuft, müssen wir folgende Schritte machen:

mkdir -p /var/spool/postfix/var/run/saslauthd


Jetzt editieren wir /etc/default/saslauthd um saslauthd zu aktivieren. Gib an START to yes und ändere die Zeile OPTIONS="-c -m /var/run/saslauthd" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

vi /etc/default/saslauthd

#
# Settings for saslauthd daemon # Please read /usr/share/doc/sasl2-bin/README.Debian for details. # # Should saslauthd run automatically on startup? (default: no) START=yes # Description of this saslauthd instance. Recommended. # (suggestion: SASL Authentication Daemon) DESC="SASL Authentication Daemon" # Short name of this saslauthd instance. Strongly recommended. # (suggestion: saslauthd) NAME="saslauthd" # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c -m /var/run/saslauthd) # Note: You MUST specify the -m option or saslauthd won't run! # # WARNING: DO NOT SPECIFY THE -d OPTION. # The -d option will cause saslauthd to run in the foreground instead of as # a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish # to run saslauthd in debug mode, please run it by hand to be safe. # # See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information. # See the saslauthd man page and the output of 'saslauthd -h' for general # information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" #OPTIONS="-c -m /var/run/saslauthd" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Als Nächstes füge den postfix Benutzer zu der sasl Gruppe hinzu. Das sorgt dafür, dass Postfix die Erlaubnis hat saslauthd anzusteuern:

adduser postfix sasl


Starte Postfix neu und starte saslauthd:

/etc/init.d/postfix restart
/etc/init.d/saslauthd start

Um zu sehen ob SMTP-AUTH und TLS korrekt funktionieren, gib folgenden Befehl ein:

telnet localhost 25


Nachdem Du die Verbindung zu Deinem Postfix Mailserver erstellt hast, gib ein

ehlo localhost


Wenn Du folgende Zeilen siehst

250-STARTTLS


und

250-AUTH LOGIN PLAIN


...dann ist alles in Ordnung!

Die Ausgabe sieht bei mir folgendermassen aus:

server1:/etc/postfix/ssl# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Debian/GNU)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
server1:/etc/postfix/ssl#

Gib ein

quit


um zur Kommandozeile des Systems zurückzukehren.

13 Courier-IMAP/Courier-POP3

Gib das ein um Courier-IMAP/Courier-IMAP-SSL (für IMAPs auf Port 993) und Courier-POP3/Courier-POP3-SSL (für POP3s auf Port 995) zu installieren:

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0


Du wirst nach zwei Angaben gefragt:

Create directories for web-based administration? <-- No SSL certificate required <-- Ok
Während der Installation werden die SSL Zertifikate für IMAP-SSL und POP3-SSL mit dem Hostnamen localhost erstellt. Um das in den richtigen Hostnamen abzuändern (in dieser Anleitung server1.example.com), lösche die Zertifikate...

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem

... und ändere folgende zwei Dateien ab; ersetze CN=localhost mit CN=server1.example.com (Du kannst natürlich auch andere Werte angeben, falls notwendig):

vi /etc/courier/imapd.cnf

[...]
CN=server1.example.com [...]

vi /etc/courier/pop3d.cnf

[...]
CN=server1.example.com [...]
Dann erstelle die Zertifikate neu...

mkimapdcert
mkpop3dcert

... und starte Courier-IMAP-SSL und Courier-POP3-SSL neu:

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

Wenn Du ISPConfig nicht nutzen möchtest, konfiguriere Postfix die Emails zum Benutzer Maildir zu versenden*:

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

*Achtung: Das brauchst Du nicht wenn Du ISPConfig auf Dein System benutzen möchtest, da ISPConfig die notwendige Konfiguration mit Procmail selbst vornimmt. Dennoch, bitte versichere Dich dass Maildir unter Management -> Server -> Settings -> EMail in der ISPConfig Web Interface aktiviert wurde.

7 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Flake

Schönes Tut! Für Anfänger wie mich wäre vielleicht noch gut gewesen wenn man ein bisschen mehr zu den Programmen geschrieben hätte. Was die alles bewirken. Aber sonst 1a!!!!


Von: Till

Ein Tutorial ist als Anleitung gedacht um eine bestimmtes Ziel oder in diesem Fall eine bestimmte Konfiguration erreichen. Es ist kein Ersatz für ein Linux Buch sein, dass Dir auch die Grundlagen und Funtionsweisen der Programme erläutert.


Von: Falcon37

127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1

Was muss ich da alles ersetzen? Auch die IP 192.168.0.100?


Von: Till

@starfish: Du verwecshelst howtoforge.de mit howtoforge.com. Subscriptions gibt es nur bei howtoforge.com und nicht howtoforge.de. Du kannst Das Tutorial bei howtoforge.com hier finden und wenn Du subscriber bist natürlich auch als PDF runter laden.http://www.howtoforge.com/perfect-server-debian-lenny-ispconfig2


Von: starfish

wie lade ich dieses howto als pdf herunter? habe extra dafür den supporter-beitrag bezahlt.


Von: Midas

Hallo Leute,

ich hätte mir bei "12 Postfix mit SMTP-AUTH und TLS" gewünscht das man die Positionen erklärt was man da machen muss um google zeit zu sparen... so wie etwa:
hier
http://www.howtoforge.de/forum/showthread.php?t=1050
und da:
http://www.howtoforge.de/forum/showthread.php?p=12742#post12742

Ansonsten: TOP Arbeit, 5 von 5 Stern :-)
Grüße


Von: Vision

Die /etc/postfix/sasl/smtpd.conf musste bei mir vorhanden sein, ansonsten bekomme ich nur SASL LOGIN authentication Fehler.

Cu