Der Perfekte Server - Mandriva 2008 Free (Mandriva 2008.0) - Seite 6

11 Postfix mit SMTP-AUTH und TLS

Installiere die benötigten Pakete (Postfix, cyrus-sasl, imap, etc.) wie folgt:

urpmi cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login postfix imap

Führe dann Folgendes aus (vergewissere Dich, dass Du die richtigen Werte für mydomain, myhostname und mydestination verwendest):

postconf -e 'mydomain = example.com'
postconf -e 'myhostname = server1.$mydomain'
postconf -e 'mydestination = /etc/postfix/local-host-names, localhost.example.com'
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_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'
touch /etc/postfix/local-host-names
touch /var/lib/mailman/data/aliases

Bearbeite /etc/sasl2/smtpd.conf. So sollte es aussehen:

vi /etc/sasl2/smtpd.conf


# SASL library configuration file for postfix
# all parameters are documented into: # /usr/share/doc/cyrus-sasl/options.html # The mech_list parameters list the sasl mechanisms to use, # default being all mechs found. mech_list: plain login # To authenticate using the separate saslauthd daemon, (e.g. for # system or ldap users). Also see /etc/sysconfig/saslauthd. pwcheck_method: saslauthd saslauthd_path: /var/lib/sasl2/mux # To authenticate against users stored in sasldb. #pwcheck_method: auxprop #auxprop_plugin: sasldb #sasldb_path: /var/lib/sasl2/sasl.db
Erstelle das SSL Zertifikat, das TLS benötigt:

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

und konfiguriere 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'

Starte nun Postfix, saslauthd, imap und pop3:

chkconfig imap on
chkconfig imaps on
chkconfig ipop3 on
chkconfig pop3s on
/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
/etc/init.d/xinetd restart

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

telnet localhost 25

Nachdem Du die Verbindung zu Deinem Postfix Mail Server eingerichtet hast, gib dies ein

ehlo localhost

Wenn Du die Zeile

250-STARTTLS

und

250-AUTH PLAIN LOGIN

siehst, ist alles in Ordnung:

[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 (2.4.5) (Mandriva Linux)
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 Folgendes ein

quit

um zur Kommandozeile des Systems zurückzukehren.

12 Apache2 mit PHP5

Um Apache2 und PHP5 zu installieren, führe folgenden Befehl aus (in einer Zeile):

urpmi apache-mod_suexec apache-mod_ssl apache-mod_php libphp5_common5 php-bz2 php-calendar php-ctype php-curl php-devel php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-suhosin php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php-ini curl libcurl4-devel perl-libwww-perl ImageMagick

Starte Apache:

/etc/init.d/httpd restart


12.1 PHP global deaktivieren

(Falls Du nicht vorhast, ISPConfig auf diesem Server zu installieren, überspringe bitte diesen Abschnitt!)

In ISPConfig wirst Du PHP pro Web Site konfigurieren, d.h. Du kannst festlegen, welche Web Site PHP Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn PHP global deaktiviert ist, da sonst alle Web Sites in der Lage wären, PHP Skripte auszuführen, egal was Du in ISPConfig festlegst.

Bearbeite /etc/httpd/modules.d/70_mod_php.conf und kommentiere die Zeile AddType aus:

vi /etc/httpd/modules.d/70_mod_php.conf


<IfDefine HAVE_PHP5>
<IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> <IfModule mod_mime.c> # AddType application/x-httpd-php .php # AddType application/x-httpd-php .phtml # AddType application/x-httpd-php-source .phps </IfModule> <IfModule mod_php5.c> <IfModule mod_dir.c> DirectoryIndex index.php index.phtml </IfModule> </IfModule>
Bearbeite /etc/httpd/conf/httpd.conf und füge folgende Zeile dem LoadModule Abschnitt hinzu:

vi /etc/httpd/conf/httpd.conf


[...]
LoadModule php5_module extramodules/mod_php5.so [...]
(Obwohl diese Zeile bereits in /etc/httpd/modules.d/70_mod_php.conf vorhanden ist, ist dies sehr wichtig, da sonst der Befehl

httpd -t

Fehler anstelle von Syntax OK anzeigen wird, wenn die virtuellen Hosts, die von ISPConfig erstellt werden, Zeile wie php_admin_flag safe_mode On oder ähnliche enthalten!)

Starte Apache neu:

/etc/init.d/httpd restart


13 Proftpd

Installiere Proftpd wie folgt:

urpmi proftpd

Aus Sicherheitsgründen kannst Du folgende Zeilen /etc/proftpd.conf hinzufügen (dank Reinaldo Carvalho; mehr Informationen findest Du hier: http://www.proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf


[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
Pass auf, dass Du die folgenden Zeilen am Ende von /etc/proftpd.conf auskommentierst, um ftp Benutzern CHMOD zu erlauben:
[...]
# Bar use of SITE CHMOD by default #<Limit SITE_CHMOD> # DenyAll #</Limit>
Starte dann Proftpd neu:

/etc/init.d/proftpd restart


14 Webalizer

Mandriva 2008 hat kein Webalizer Paket mehr. Daher installieren wir das statische Webalizer Binär-Paket von der Webalizer Web Site wie folgt:

urpmi libgeoip1 geoip libgeoipupdate0 awffull

cd /tmp
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-static.gz
gunzip webalizer-2.01-10-static.gz
mv webalizer-2.01-10-static /usr/bin/webalizer
chmod 755 /usr/bin/webalizer

15 Installation einiger Perl Module, die von SpamAssassin (in ISPConfig) benötigt werden

Um alle benötigten Perl Module zu installieren, können wir die entsprechenden Mandriva Pakete verwenden und sie mit Hilfe von urpmi installieren:

urpmi perl-HTML-Parser perl-Digest-SHA1 perl-DB_File perl-Net-DNS


16 Das End

Die Konfiguration des Servers ist nun ageschlossen. Wenn Du magst, kannst Du nun ISPConfig auf dem Server installieren.

17 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www als den Web Root für Web Sites festlegen, die von ISPConfig erstellt werden, da Mandriva's suExec mit /var/www als Doc_Root erstellt wird. Führe Folgendes aus

/usr/sbin/suexec -V

und die Ausgabe sollte wie folgt aussehen:

[root@server1 ~]# /usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_SUEXEC_UMASK=077
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
[root@server1 ~]#

Wenn Du also suExec mit ISPconfig verwenden möchtest, ändere nicht den Standard Web Root (/var/www) wenn Du den Expertenmodus während der ISPConfig Installation verwendest (im Standardmodus kannst Du den Web Root sowieso nicht ändern, also kannst Du suExec in jedem Fall verwenden).

18 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte