Der perfekte Server – Debian Lenny (Debian 5.0) [ISPConfig 2]

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 [email protected] als auch für [email protected] 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.

Das könnte dich auch interessieren …