The Perfect Server - CentOS 5.2 - 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/lib/sasl2/smtpd.conf editieren, so dass Postfix PLAIN und LOGIN Logins erlaubt. Es sollte so aussehen:

vi /usr/lib/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

To see if SMTP-AUTH and TLS work properly now run the following command:

telnet localhost 25


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

ehlo localhost


Wenn Du folgende Zeilen bekommst:

250-STARTTLS


und

250-AUTH PLAIN LOGIN


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 PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
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

5 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Der_Paul

Servus,

sehr schönes Howto, nur finde ich den Teil zu Procmail nicht. Oder bin ich einfach nur blind?

Viele Grüße
Paul


Von: Till

Procmail wird komplett durch ispconfig konfiguriert. Also einfach nur ispconfig installieren und dann email accounts anlegen.


Von: Momo

Hi Leute ich habe das tut jetzt mal gemacht doch ich bleib am fierwall hängen wenn ich auf Fierwamll configurationen gehe steht bei spache select ein freier platz und kann so nichts anwählen helft mir bitte
grüße maurice


Von: salud

also für ein einstieg im intranet ganz nett aber für rootserver im internet unbrauchbar.da alle "themen" nur minimal bis kaum angeschnitten werden.eine grundkonfiguration würde ich das auch nicht nennen.der text ist immer der gleiche wie bei "The perfect Server - CentOS x.y" nur mit minimalen anpassungen.


Von: Till

Du Scheinst den Sinn eines solchen Tutorials nicht ganz verstanden zu haben. Es ist eine Anleitung die Schrittweise die Instalation beschreibt und zwar komplett und vollständig. Es ist kein Lehrbuch für Systemadministratoren und soll dies auch nicht sein. Wenn Du also alle Themen in voller Tiefe behandelt haben möchtest, dann kauf Dir halt ein Buch. Und natürlich gibt es nur minimale Anpassungen in den Varianten für verschiedene CentOS Versionen, da sich CenTOS ja auch nicht fundemantal in jeder Version ändert. Da aber auch diese kleinen Änderunge dazu führen dass ein Setup unbrauchbar ist, wird das Tutorial für jede Version neu aufgelegt und so angepasst, dass alle Schritte funktionieren!