Der perfekte Server - CentOS 5.2 x86_64 - Seite 5

11 Postfix mit SMTP-AUTH und TLS

Nun installieren wir Postfix und Dovecot (Dovecot wird unser POP3/IMAP Server sein):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Als Nächstes konfigurieren wir SMTP-AUTH und TLS:

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'
postconf -e 'mynetworks = 127.0.0.0/8'

Wir müssen /usr/lib64/sasl2/smtpd.conf editieren so dass Postfix PLAIN und LOGIN Logins erlaubt. Es sollte folgendermassen aussehen:

vi /usr/lib64/sasl2/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login

Danach erstellen wir die Zertifikate 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:

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'

Dann vergeben wir den Hostnamen in unserer Postfix Installation. Bitte versichere Dich dass Du server1.example.com mit Deinem eigenen Hostnamen ersetzt :

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

Nach diesen Konfigurationsschritten solltest Du ein /etc/postfix/main.cf haben, dass folgendermassen aussieht (Ich habe alle Kommentare bereinigt):

cat /etc/postfix/main.cf

queue_directory = /var/spool/postfix
command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.3.3/samples readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES 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 mynetworks = 127.0.0.0/8 smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt 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 myhostname = server1.example.com

Als Standard bietet der CentOS Dovecot Dämon nur IMAP and IMAP Dienste. Da wir auch POP3 und POP3s benötigen, werden wir Dovecot entsprechend konfigurieren müssen. Wir editieren /etc/dovecot.conf und aktivieren die Zeile protocols = imap imaps pop3 pop3s:

vi /etc/dovecot.conf

[...]
# Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Protocols we want to be serving: imap imaps pop3 pop3s # If you only want to use dovecot-auth, you can set this to "none". protocols = imap imaps pop3 pop3s # IP or host address where to listen in for connections. It's not currently # possible to specify multiple addresses. "*" listens in all IPv4 interfaces. # "[::]" listens in all IPv6 interfaces, but may also listen in all IPv4 # interfaces depending on the operating system. [...]

Nun starten wir Postfix, saslauthd, und Dovecot:

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Um zu sehen ob SMTP-AUTH und TLS richtig funktionieren, führen wir folgenden Befehl aus:

telnet localhost 25

Nachdem die Verbindung zum Postfix Mail Servertyp erstellt wurde...

ehlo localhost

Wenn Du folgende Zeilen bekommst:

250-STARTTLS

and

250-AUTH LOGIN PLAIN

ist alles wunderbar!

[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server1.example.com ESMTP Postfix
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
qiot
502 5.5.2 Error: command not recognized
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#

Gib ein

quit

um zur Kommandozeile zurückzukehren.

11.1 Maildir

Dovecot benutzt das Maildir Format (nicht mbox), versichere Dich also dass Maildir aktiviert wurde unter Management -> Server -> Settings -> Email, wenn Du ISPConfig installieren möchtest. ISPConfig wird dann die notwendige Konfiguration übernehmen.

Wenn Du ISPConfig nicht installieren möchtest, dann musst Du Postfix so konfigurieren dass es die Mails zum Maildir eines Benutzers sendet (das geht aber auch wenn man ISPConfi einsetzt!):

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

7 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Till

Du hast da vermutlich einen Tippfehler in der /etc/fstab. Die Option heißt "grpquota" und nicht "grq". Vergleich sie nochmal hiermit:

/dev/VolGroup00/LogVol00 / ext3 defaults,usrquota,grpquota


Von: ronald

Danke Falko! für die super Anleitung.
Leider stehe ich gerade an der Stelle: "mount -o remount /"
Felermeldung: " EXT3-fs: Unrecognized mount option 'grq' or missing value " --> hat jemand eine idee?
Danke!


Von: salud

Mensch immer das gleiche HowTo nur mit unterschiedlichen Arch und CentOs Versioen.Wann kommt mal wieder was sinnvolles?


Von: salud

zu punkt 1. sage ich mal naja es ändert sich minimal was.
zu punkt 2. schreibe in fedorawiki (centos).


Von: Till

1. Die Howtos unterscheiden sich, da sich die Linux Distributionen weiterentwickeln und sie Konfigurationsoptionen ändern.
2. Warum schreibst Du dann nicht ein Howto und publizierst es? Howtoforge ist eine freie Plattform zum veröffentlichen von Tutorials.


Von: vzcrsa

was immer wieder vergessen wird ist ganz einfach, wenn ein user " make " ausführen soll, solltet ihr im auch sagen das er make installieren muss !!!!

also User " make " wird mit yum install make installiert


Von: vzcrsa

zu einem vernünftigen webserver gehört auch phpmyadmin, wäre gut wenn dies hier auch erwähnt werden würde, damit user die sich nicht auskennen auch einen vernünftigen webserver haben !!!!!!!!!!!!