Der perfekte Server - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]
Dieses Tutorial zeigt, wie man einen Ubuntu Natty Narwhal (Ubuntu 11.04) Server einrichtet, der alle von ISPs und Hostern benötigten Dienste anbietet:Apache Webserver (SSL-fähig), Postfix Mailserver mit SMTP-AUTH und TLS, BIND DNS Server, Proftpd FTP-Server, MySQL-Server, Courier POP3/IMAP, Quota, Firewall usw. Am Ende sollte man ein System haben, das zuverlässig funktioniert, und wenn man möchte, kann man das kostenlose Webhosting-Control-Panel ISPConfig 2 installieren (d.h. ISPConfig läuft darauf). aus der Box).
Ich werde die folgende Software verwenden:
- Webserver:Apache 2.2.17 mit PHP 5.3.5, Python, Ruby und WebDAV
- Datenbankserver:MySQL 5.1.54
- Mailserver:Postfix
- DNS-Server:BIND9
- FTP-Server:proftpd
- POP3/IMAP:Ich werde das Maildir-Format verwenden und daher Courier-POP3/Courier-IMAP installieren.
- Webalizer für Website-Statistiken
Bitte beachten Sie, dass dieses Setup nicht für ISPConfig 3 funktioniert ! Es gilt nur für ISPConfig 2!
Ich möchte zunächst sagen, dass dies nicht die einzige Möglichkeit ist, ein solches System einzurichten. Es gibt viele Wege, dieses Ziel zu erreichen, aber ich gehe diesen Weg. Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!
1 Voraussetzungen
Um ein solches System zu installieren, benötigen Sie Folgendes:
- die Ubuntu 11.04 Server-CD, erhältlich hier:http://releases.ubuntu.com/releases/11.04/ubuntu-11.04-server-i386.iso (i386) oder http://releases.ubuntu.com/releases /11.04/ubuntu-11.04-server-amd64.iso (x86_64)
- eine schnelle Internetverbindung.
2 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie unterschiedlich sein, daher müssen Sie sie gegebenenfalls ersetzen.
3 Das Basissystem
Legen Sie Ihre Ubuntu-Installations-CD in Ihr System ein und booten Sie davon. Wählen Sie Ihre Sprache:
Wählen Sie dann Ubuntu Server installieren:
Wählen Sie Ihre Sprache erneut (?):
Wählen Sie dann Ihren Standort aus:
Wenn Sie eine ungewöhnliche Kombination aus Sprache und Ort ausgewählt haben (z. B. Englisch als Sprache und Deutschland als Ort, wie in meinem Fall), teilt Ihnen das Installationsprogramm möglicherweise mit, dass für diese Kombination kein Gebietsschema definiert ist. in diesem Fall müssen Sie das Gebietsschema manuell auswählen. Ich wähle hier en_US.UTF-8 aus:
Wählen Sie ein Tastaturlayout (Sie werden aufgefordert, einige Tasten zu drücken, und das Installationsprogramm versucht, Ihr Tastaturlayout anhand der gedrückten Tasten zu erkennen):
Der Installer überprüft die Installations-CD, Ihre Hardware und konfiguriert das Netzwerk mit DHCP, wenn sich ein DHCP-Server im Netzwerk befindet:
Der perfekte Server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Seite 2
4 Root-Rechte erhalten
Nach dem Neustart können Sie sich mit Ihrem zuvor erstellten Benutzernamen (z. B. Administrator) anmelden. Da wir alle Schritte aus diesem Tutorial mit Root-Rechten ausführen müssen, können wir entweder allen Befehlen in diesem Tutorial die Zeichenfolge sudo voranstellen oder wir werden sofort root, indem wir
eingebensudo su
(Sie können die Root-Anmeldung auch aktivieren, indem Sie
ausführensudo passwd root
und root ein Passwort geben. Sie können sich dann direkt als root anmelden, was jedoch von den Ubuntu-Entwicklern und der Community aus verschiedenen Gründen verpönt ist. Siehe http://ubuntuforums.org/showthread.php?t=765414.)
5 Installieren Sie den SSH-Server (optional)
Wenn Sie den OpenSSH-Server nicht während der Systeminstallation installiert haben, können Sie dies jetzt tun:
apt-get install ssh openssh-server
Von nun an können Sie einen SSH-Client wie PuTTY verwenden und sich von Ihrer Workstation mit Ihrem Ubuntu 11.04-Server verbinden und den verbleibenden Schritten aus diesem Tutorial folgen.
6 vim-nox installieren (optional)
In diesem Tutorial verwende ich vi als Texteditor. Das standardmäßige vi-Programm zeigt unter Ubuntu und Debian ein merkwürdiges Verhalten; Um dies zu beheben, installieren wir vim-nox:
apt-get install vim-nox
(Sie müssen dies nicht tun, wenn Sie einen anderen Texteditor wie Joe oder Nano verwenden.)
7 Konfigurieren Sie das Netzwerk
Da der Ubuntu-Installer unser System so konfiguriert hat, dass es seine Netzwerkeinstellungen über DHCP bezieht, müssen wir das jetzt ändern, da ein Server eine statische IP-Adresse haben sollte. Bearbeiten Sie /etc/network/interfaces und passen Sie es an Ihre Bedürfnisse an (in diesem Beispiel-Setup verwende ich die IP-Adresse 192.168.0.100 ):
vi /etc/network/interfaces
# Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen# und wie sie aktiviert werden. Weitere Informationen finden Sie unter Interfaces (5). vor> |
Starten Sie dann Ihr Netzwerk neu:
/etc/init.d/networking restart
Bearbeiten Sie dann /etc/hosts. Lass es so aussehen:
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts::1 ip6 -localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters |
Jetzt ausführen
echo server1.example.com> /etc/hostname
/etc/init.d/hostname restart
Führen Sie anschließend
aus
Hostname
Hostname -f
Beide sollten jetzt server1.example.com anzeigen.
8 Bearbeiten Sie /etc/apt/sources.list und aktualisieren Sie Ihre Linux-Installation
Bearbeiten Sie /etc/apt/sources.list. Kommentieren Sie die Installations-CD aus oder entfernen Sie sie aus der Datei und stellen Sie sicher, dass die Universe- und Multiverse-Repositories aktiviert sind. Es sollte so aussehen:
vi /etc/apt/sources.list
## deb cdrom:[Ubuntu-Server 11.04 _Natty Narwhal_ - Release amd64 (20110426)]/ natty main limited#deb cdrom:[Ubuntu-Server 11.04 _Natty Narwhal_ - Release amd64 (20110426)]/ natty main limited# Siehe http://help.ubuntu.com/community/UpgradeNotes für ein Upgrade auf# neuere Versionen der Distribution.deb http://de.archive. ubuntu.com/ubuntu/ natty main limiteddeb-src http://de.archive.ubuntu.com/ubuntu/ natty main limited## Wichtige Bugfix-Updates nach der endgültigen Veröffentlichung von the## distribution.deb http:// de.archive.ubuntu.com/ubuntu/ natty-updates main limiteddeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates main limited## N.B. Software aus diesem Repository wird vom Ubuntu##-Team VÖLLIG NICHT UNTERSTÜTZT. Bitte beachten Sie auch, dass die Software im Universum KEINE## Überprüfungen oder Aktualisierungen vom Ubuntu-Sicherheitsteam erhält. deb http://de.archive.ubuntu.com/ubuntu/ natty universedeb-src http://de.archive. ubuntu.com/ubuntu/ natty universedeb http://de.archive.ubuntu.com/ubuntu/ natty-updates universedeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates universe## N.B. Software aus diesem Repository wird vom Ubuntu##-Team VOLLSTÄNDIG NICHT UNTERSTÜTZT und steht möglicherweise nicht unter einer freien Lizenz. Bitte vergewissern Sie sich über # Ihre Rechte zur Nutzung der Software. Bitte beachten Sie auch, dass Software in## multiverse KEINE Überprüfung oder Updates vom Ubuntu## Sicherheitsteam.deb http://de.archive.ubuntu.com/ubuntu/natty multiversedeb-src http://de erhält. archive.ubuntu.com/ubuntu/ natty multiversedeb http://de.archive.ubuntu.com/ubuntu/ natty-updates multiversedeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates multiverse## Entkommentieren Sie die folgenden zwei Zeilen, um Software aus dem 'backports'##-Repository hinzuzufügen.## N.B. Software aus diesem Repository wurde möglicherweise nicht so## ausführlich getestet wie die in der Hauptversion enthaltene, obwohl sie## neuere Versionen einiger Anwendungen enthält, die möglicherweise nützliche Funktionen bieten.## Bitte beachten Sie auch, dass Software in Backports NICHT empfangen wird alle Überprüfungen## oder Updates vom Ubuntu-Sicherheitsteam.# deb http://de.archive.ubuntu.com/ubuntu/ natty-backports Main Restricted Universe Multiverse# deb-src http://de.archive.ubuntu.com /ubuntu/ Natty-Backports Main Restricted Universe Multiversedeb http://security.ubuntu.com/ubuntu Natty-Security Main Restricteddeb-src http://security.ubuntu.com/ubuntu Natty-Security Main Restricteddeb http://security. ubuntu.com/ubuntu natty-security universedeb-src http://security.ubuntu.com/ubuntu natty-security universedeb http://security.ubuntu.com/ubuntu natty-security multiversedeb-src http://security.ubuntu .com/ubuntu natty-security multiverse## Entkommentieren Sie die folgenden zwei Zeilen, um Software aus Canonicals## „Partner“-Repository hinzuzufügen ory.## Diese Software ist nicht Teil von Ubuntu, sondern wird von Canonical und den jeweiligen Anbietern## als Service für Ubuntu-Benutzer angeboten.# deb http://archive.canonical.com/ubuntu natty partner# deb-src http ://archive.canonical.com/ubuntu natty partner## Entkommentieren Sie die folgenden zwei Zeilen, um Software aus Ubuntus## „Extras“-Repository hinzuzufügen.## Diese Software ist nicht Teil von Ubuntu, sondern wird von Drittanbietern angeboten## Entwickler, die ihre neuste Software ausliefern wollen.# deb http://extras.ubuntu.com/ubuntu natty main# deb-src http://extras.ubuntu.com/ubuntu natty main |
Dann ausführen
apt-get-Update
um die apt-Paketdatenbank zu aktualisieren und
apt-get-Upgrade
um die neuesten Updates zu installieren (falls vorhanden). Wenn Sie sehen, dass im Rahmen der Updates ein neuer Kernel installiert wird, sollten Sie das System danach neu starten:
Neustart
9 Standard-Shell ändern
/bin/sh ist ein symbolischer Link zu /bin/dash, wir brauchen jedoch /bin/bash, nicht /bin/dash. Deshalb machen wir das:
dpkg-reconfigure dash
Dash als Standardsystem-Shell verwenden (/bin/sh)? <-- Nein
Andernfalls schlägt die Installation von ISPConfig fehl.
10 AppArmor deaktivieren
AppArmor ist eine Sicherheitserweiterung (ähnlich wie SELinux), die erweiterte Sicherheit bieten soll. Meiner Meinung nach brauchen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche lang Fehler behoben haben, weil ein Dienst nicht wie erwartet funktioniert hat, und dann Sie feststellen, dass alles in Ordnung war, nur AppArmor verursachte das Problem). Daher deaktiviere ich es (dies ist ein Muss, wenn Sie später ISPConfig installieren möchten).
Wir können es wie folgt deaktivieren:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
Der perfekte Server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Seite 4
11 Einige Software installieren
Jetzt installieren wir ein paar Pakete, die später benötigt werden. Führen Sie
ausapt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential
(Dieser Befehl muss in einer Zeile stehen !)
12 Journaled-Quote
(Falls Sie ein anderes Partitionierungsschema gewählt haben als ich, müssen Sie dieses Kapitel anpassen, damit Quota für die Partitionen gilt, wo Sie es brauchen.)
Um Quota zu installieren, führen Sie
ausapt-get Installationskontingent
Bearbeiten Sie /etc/fstab. Meine sieht so aus (ich habe ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 zur Partition mit dem Einhängepunkt / hinzugefügt):
vi /etc/fstab
# /etc/fstab:Statische Dateisysteminformationen.## Verwenden Sie 'blkid -o value -s UUID', um die universell eindeutige Kennung# für auszugeben Ein Gerät; Dies kann mit UUID=als robusterer Weg zum Benennen von # Geräten verwendet werden, der auch dann funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).## |
Führen Sie die folgenden Befehle aus, um Kontingente zu aktivieren:
mount -o remount /
quotecheck -avugm
quotaon -avug
13 DNS-Server
Ausführen
apt-get install bind9
Aus Sicherheitsgründen wollen wir BIND chroot ausführen, also müssen wir die folgenden Schritte ausführen:
/etc/init.d/bind9 stop
Bearbeiten Sie die Datei /etc/default/bind9 so, dass der Daemon als unprivilegierter Benutzer bind ausgeführt wird, chrooted nach /var/lib/named. Ändern Sie die Zeile:OPTIONS="-u bind" so, dass sie OPTIONS="-u bind -t /var/lib/named":
lautetvi /etc/default/bind9
# resolvconf ausführen?RESOLVCONF=yes# Startoptionen für serverOPTIONS="-u bind -t /var/lib/named" |
Erstellen Sie die erforderlichen Verzeichnisse unter /var/lib:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
Verschieben Sie dann das Konfigurationsverzeichnis von /etc nach /var/lib/named/etc:
mv /etc/bind /var/lib/named/etc
Erstellen Sie einen symbolischen Link zum neuen Konfigurationsverzeichnis vom alten Speicherort (um Probleme zu vermeiden, wenn bind in Zukunft aktualisiert wird):
ln -s /var/lib/named/etc/bind /etc/bind
Erstellen Sie Null- und Zufallsgeräte und korrigieren Sie die Berechtigungen der Verzeichnisse:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var /lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
Wir müssen die Datei /etc/rsyslog.d/bind-chroot.conf...
erstellenvi /etc/rsyslog.d/bind-chroot.conf
... und fügen Sie die folgende Zeile hinzu, damit wir weiterhin wichtige Meldungen in den Systemprotokollen protokollieren können:
$AddUnixListenSocket /var/lib/named/dev/log |
Starten Sie den Logging-Daemon neu:
/etc/init.d/rsyslog neu starten
Starten Sie BIND und überprüfen Sie /var/log/syslog auf Fehler:
/etc/init.d/bind9 start
14 MySQL
Um MySQL zu installieren, führen wir
ausapt-get install mysql-server mysql-client libmysqlclient-dev
Sie werden aufgefordert, ein Passwort für den MySQL-Root-Benutzer anzugeben – dieses Passwort gilt sowohl für den Benutzer [email protected] als auch für [email protected], sodass wir später kein MySQL-Root-Passwort manuell angeben müssen :
Neues Passwort für den MySQL-„root“-Benutzer:<-- yourrootsqlpassword
Wiederholen Sie das Passwort für den MySQL-„root“-Benutzer:<-- yourrootsqlpassword
Wir möchten, dass MySQL auf allen Schnittstellen lauscht, nicht nur auf localhost, deshalb bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address =127.0.0.1:
ausvi /etc/mysql/my.cnf
[...]# Anstatt das Netzwerk zu überspringen, wird jetzt standardmäßig nur auf# localhost gelauscht, was kompatibler und nicht weniger sicher ist. #Bind-Adresse =127.0.0.1[...] |
Dann starten wir MySQL neu:
/etc/init.d/mysql Neustart
Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Führen Sie
ausnetstat -tap | grep mysql
Die Ausgabe sollte wie folgt aussehen:
[email protected]:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 7220/mysqld
[email protected]:~#
Der perfekte Server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Seite 5
15 Postfix mit SMTP-AUTH und TLS
Um Postfix mit SMTP-AUTH und TLS zu installieren, führen Sie die folgenden Schritte aus:
apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail
Ihnen werden zwei Fragen gestellt. Antworten Sie wie folgt:
Allgemeine Art der E-Mail-Konfiguration:<-- Internet Site
System-Mail-Name:<-- server1.example.com
Dann ausführen
dpkg-reconfigure postfix
Auch hier werden Ihnen einige Fragen gestellt:
Allgemeine Art der E-Mail-Konfiguration:<-- Internet-Site
System-E-Mail-Name:<-- server1.example.com
Stamm- und Postmaster-E-Mail-Empfänger:<-- [leer]
Andere Ziele an Mail akzeptieren für (leer für keine):<-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
Synchrone Updates für Mail-Warteschlange erzwingen? <-- Nein
Lokale Netzwerke:<-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Procmail für lokale Zustellung verwenden? <-- Ja
Postfachgrößenbeschränkung (Bytes):<-- 0
Lokales Adresserweiterungszeichen:<-- +
Zu verwendende Internetprotokolle:<-- alle
Führen Sie als Nächstes Folgendes aus:
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 =permission_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
Anschließend 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 (stellen Sie sicher, dass Sie den richtigen Hostnamen für myhostname verwenden):
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
# Siehe /usr/share/postfix/main.cf.dist für eine kommentierte, vollständigere Version# Debian-spezifisch:Die Angabe eines Dateinamens führt zu die erste # Zeile dieser Datei, die als Name verwendet werden soll. Der Debian-Standard# ist /etc/mailname.#myorigin =/etc/mailnamesmtpd_banner =$myhostname ESMTP $mail_name (Ubuntu)biff =no# Anhängen von .domain ist der Job des MUA.append_dot_mydomain =no# Entkommentieren Sie die nächste Zeile, um „delayed mail" warnings#delay_warning_time =4hreadme_directory =no# TLS parameterssmtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crtsmtpd_tls_key_file =/etc/postfix/ssl/smtpd.keysmtpd_use_tls =yessmtpd_tls_session_cache_database =btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database =btree:${ data_directory}/smtp_scache# Siehe /usr/share/doc/postfix/TLS_README.gz im postfix-doc-Paket für # Informationen zum Aktivieren von SSL im SMTP client.myhostname =server1.example.comalias_maps =hash:/etc/aliasalias_database =hash:/etc/aliasesmyorigin =/etc/mailnamemydestination =server1.example.com, localhost.example.com, localhost.localdomain, localhostrelayhost =mynetworks =127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_command =procmail -a "$EXTENS ION"mailbox_size_limit =0recipient_delimiter =+inet_interfaces =allinet_protocols =allsmtpd_sasl_local_domain =smtpd_sasl_auth_enable =yessmtpd_sasl_security_options =noanonymousbroken_sasl_auth_clients =yessmtpd_sasl_authenticated_header =yessmtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtpd_tls_auth_only =nosmtp_use_tls =yessmtp_tls_note_starttls_offer =yessmtpd_tls_CAfile =/etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_random_source =dev:/dev/urandom |
Die Authentifizierung erfolgt durch saslauthd. Wir müssen ein paar Dinge ändern, damit es richtig funktioniert. Da Postfix chrooted in /var/spool/postfix läuft, müssen wir folgendes tun:
mkdir -p /var/spool/postfix/var/run/saslauthd
Jetzt müssen wir /etc/default/saslauthd bearbeiten, um saslauthd zu aktivieren. Setzen Sie START auf yes und ändern Sie die Zeile OPTIONS="-c -m /var/run/saslauthd" in OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":
vi /etc/default/saslauthd
## Einstellungen für saslauthd-Daemon# Bitte lesen Sie /usr/share/doc/sasl2-bin/README.Debian für Details.## Sollte saslauthd laufen automatisch beim Start? (Standard:nein)START=yes# Beschreibung dieser saslauthd-Instanz. Recommended.# (Vorschlag:SASL Authentication Daemon)DESC="SASL Authentication Daemon"# Kurzname dieser saslauthd-Instanz. Dringend empfohlen.# (Vorschlag:saslauthd)NAME="saslauthd"# Welche Authentifizierungsmechanismen sollte saslauthd verwenden? (Standard:pam)## Verfügbare Optionen in diesem Debian-Paket:# getpwent – verwendet die Bibliotheksfunktion getpwent()# kerberos5 – verwendet Kerberos 5# pam – verwendet PAM# rimap – verwendet einen entfernten IMAP-Server# shadow – - Verwenden Sie die lokale Shadow-Passwortdatei# sasldb -- Verwenden Sie die lokale sasldb-Datenbankdatei# ldap -- Verwenden Sie LDAP (Konfiguration ist in /etc/saslauthd.conf)## Es kann immer nur eine Option verwendet werden. Weitere Informationen finden Sie in der saslauthd-Manpage#.## Beispiel:MECHANISMS="pam"MECHANISMS="pam"# Zusätzliche Optionen für diesen Mechanismus. (Standard:keine)# Informationen zu mechspezifischen Optionen finden Sie in der saslauthd-Manpage. MECH_OPTIONS=""# Wie viele saslauthd-Prozesse sollten wir ausführen? (Standard:5)# Ein Wert von 0 forkt einen neuen Prozess für jede Verbindung. THREADS=5# Andere Optionen (Standard:-c -m /var/run/saslauthd)# Hinweis:Sie MÜSSEN die Option -m oder angeben saslauthd wird nicht ausgeführt. Dadurch wird verhindert, dass Ihr System ordnungsgemäß bootet. Wenn Sie saslauthd im Debug-Modus ausführen möchten, führen Sie es bitte sicherheitshalber von Hand aus.## Siehe /usr/share/doc/sasl2-bin/README.Debian für Debian-spezifische Informationen die Ausgabe von 'saslauthd -h' für allgemeine # Informationen zu diesen Optionen. var/run/saslauthd"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" |
Als nächstes fügen Sie den postfix-Benutzer zur sasl-Gruppe hinzu (dies stellt sicher, dass Postfix die Berechtigung hat, auf saslauthd zuzugreifen):
adduser postfix sasl
Starten Sie nun Postfix neu und starten Sie saslauthd:
/etc/init.d/postfix restart
/etc/init.d/saslauthd start
Um zu sehen, ob SMTP-AUTH und TLS jetzt richtig funktionieren, führen Sie den folgenden Befehl aus:
telnet localhost 25
Nachdem Sie die Verbindung zu Ihrem Postfix-Mailserver hergestellt haben, geben Sie
einehlo localhost
Wenn Sie die Linien
sehen250-STARTTLS
und
250-AUTH PLAIN LOGIN
alles ist gut.
Die Ausgabe auf meinem System sieht so aus:
[email protected]:/etc/postfix/ssl# telnet localhost 25
Versuche 127.0.0.1...
Verbunden mit localhost.localdomain.
Escape-Zeichen ist '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
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
Verbindung von fremdem Host geschlossen.
[email protected]:/etc/postfix/ssl#
Geben Sie
einbeenden
um zur Shell des Systems zurückzukehren.
16 Kurier-IMAP/Kurier-POP3
Führen Sie dies aus, 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
Ihnen werden zwei Fragen gestellt:
Verzeichnisse für die webbasierte Verwaltung erstellen? <-- Kein
SSL-Zertifikat erforderlich <-- Ok
Während der Installation werden die SSL-Zertifikate für IMAP-SSL und POP3-SSL mit dem Hostnamen localhost erstellt. Um dies in den richtigen Hostnamen (server1.example.com in diesem Tutorial) zu ändern, löschen Sie die Zertifikate...
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
... und ändern Sie die folgenden zwei Dateien; Ersetzen Sie CN=localhost durch CN=server1.example.com (Sie können bei Bedarf auch die anderen Werte ändern):
vi /etc/courier/imapd.cnf
[...]CN=server1.example.com[...] |
vi /etc/courier/pop3d.cnf
[...]CN=server1.example.com[...] |
Erstellen Sie dann die Zertifikate neu...
mkimapdcert
mkpop3dcert
... und starten Sie Courier-IMAP-SSL und Courier-POP3-SSL neu:
/etc/init.d/courier-imap-ssl-Neustart
/etc/init.d/courier-pop-ssl-Neustart
Wenn Sie ISPConfig nicht verwenden möchten, konfigurieren Sie Postfix so, dass E-Mails an das Maildir* eines Benutzers gesendet werden:
postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
*Hinweis: Sie müssen dies nicht tun, wenn Sie beabsichtigen, ISPConfig auf Ihrem System zu verwenden, da ISPConfig die notwendige Konfiguration unter Verwendung von procmail-Rezepten durchführt. Aber bitte stellen Sie sicher, dass Sie Maildir unter Management -> Server -> Settings -> EMail in der ISPConfig-Weboberfläche aktivieren.
Der perfekte Server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Seite 6
17 Apache/PHP5/Ruby/Python/WebDAV
Jetzt installieren wir Apache:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert
Als nächstes installieren wir PHP5, Ruby und Python (alle drei als Apache-Module):
apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Als nächstes bearbeiten wir /etc/apache2/mods-available/dir.conf:
vi /etc/apache2/mods-available/dir.conf
und ändern Sie die DirectoryIndex-Zeile:
|
Jetzt müssen wir einige Apache-Module aktivieren (SSL, rewrite, suexec, include und WebDAV):
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod dav_fs
a2enmod dav
Starten Sie Apache neu:
/etc/init.d/apache2 Neustart
Wir müssen ein kleines Problem mit Ruby beheben. Wenn Sie ISPConfig installieren und Ruby für eine Website aktivieren, werden .rbx-Dateien problemlos ausgeführt und im Browser angezeigt, aber das funktioniert nicht für .rb-Dateien – Sie werden aufgefordert, die .rb-Datei herunterzuladen – dasselbe passiert, wenn Sie konfigurieren Ruby manuell für einen vhost (d.h. es hat nichts mit ISPConfig zu tun). Um dies zu beheben, öffnen wir /etc/mime.types...
vi /etc/mime.types
... und kommentieren Sie die Zeile application/x-ruby aus:
[...]#application/x-ruby rb[...] |
Starten Sie Apache neu:
/etc/init.d/apache2 Neustart
Jetzt werden .rb-Dateien genauso wie .rbx-Dateien ausgeführt und im Browser angezeigt.
Im nächsten Kapitel (17.1) werden wir PHP deaktivieren (dies ist nur notwendig, wenn Sie ISPConfig auf diesem Server installieren möchten). Im Gegensatz zu PHP sind Ruby und Python standardmäßig deaktiviert, daher müssen wir dies nicht tun.
17.1 PHP global deaktivieren
(Wenn Sie ISPConfig nicht auf diesem Server installieren möchten, überspringen Sie bitte diesen Abschnitt!)
In ISPConfig konfigurieren Sie PHP pro Website, d. h. Sie können angeben, welche Website PHP-Skripte ausführen kann und welche nicht. Dies kann nur funktionieren, wenn PHP global deaktiviert ist, da sonst alle Websites in der Lage wären, PHP-Skripte auszuführen, egal was Sie in ISPConfig angeben.
Um PHP global zu deaktivieren, bearbeiten wir /etc/mime.types und kommentieren die Zeilen application/x-httpd-php aus:
vi /etc/mime.types
[...]#application/x-httpd-php phtml pht php#application/x-httpd-php-source phps#application/x -httpd-php3 php3#application/x-httpd-php3-preprocessed php3p#application/x-httpd-php4 php4#application/x-httpd-php5 php5[...] |
Bearbeiten Sie /etc/apache2/mods-enabled/php5.conf und kommentieren Sie die SetHandler-Zeilen aus:
vi /etc/apache2/mods-enabled/php5.conf
|
Starten Sie dann Apache neu:
/etc/init.d/apache2 Neustart
18 Proftpd
Um Proftpd zu installieren, führen Sie
ausapt-get install proftpd ucf
Ihnen wird eine Frage gestellt:
Führen Sie proftpd:<-- standalone
ausFor security reasons add the following lines to /etc/proftpd/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here:http://proftpd.org/localsite/Userguide/linked/userguide.html):
vi /etc/proftpd/proftpd.conf
[...]DefaultRoot ~ServerIdent on "FTP Server ready."[...] |
ISPConfig expects the configuration to be in /etc/proftpd.conf instead of /etc/proftpd/proftpd.conf, therefore we create a symlink (you can skip this command if you don't want to install ISPConfig):
ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf
Then restart Proftpd:
/etc/init.d/proftpd restart
The Perfect Server - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 7
19 Webalizer
To install webalizer, just run
apt-get install webalizer geoip-database
20 Synchronize the System Clock
It is a good idea to synchronize the system clock with an NTP (n etwork t ime p rotocol) server over the internet. Simply run
apt-get install ntp ntpdate
and your system time will always be in sync.
21 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)
Ausführen
apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl libnetaddr-ip-perl perl-modules
22 ISPConfig
The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. Please check out the ISPConfig installation manual:http://www.ispconfig.org/manual_installation.htm
Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 671:
vi /usr/include/stdio.h
[...] This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur;#endif[...] |
If you don't do this, the installation will fail because of the following error:
htpasswd.c:101:error:conflicting types for 'getline'
/usr/include/stdio.h:671:note:previous declaration of 'getline' was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache
You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).
22.1 A Note On SuExec
If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Ubuntu's suExec is compiled with /var/www as Doc_Root. Ausführen
/usr/lib/apache2/suexec -V
and the output should look like this:
[email protected]:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
[email protected]:~#
So if you want to use suExec with ISPConfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).
23 Links
- Ubuntu:http://www.ubuntu.com/
- ISPConfig:http://www.ispconfig.org/