GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

Der perfekte Server - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

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

eingeben
sudo su 

(Sie können die Root-Anmeldung auch aktivieren, indem Sie

ausführen
sudo 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

aus
apt-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

aus
apt-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).##     
 proc /proc proc nodev,noexec,nosuid 0 0/dev/mapper/server1-root / ext4 Fehler =remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1# /boot war während der Installation auf /dev/sda1UUID=deae7cd1-b106-47aa-9a7c-512f046d2ebf /boot ext2 defaults 0 2/ dev/mapper/server1-swap_1 none swap sw 0 0/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

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":

lautet
vi /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...

erstellen
vi /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

aus
apt-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:

aus
vi /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

aus
netstat -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

ein
ehlo localhost

Wenn Sie die Linien

sehen
250-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

ein
beenden

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:

 #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index .htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

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
  #SetHandler application/x-httpd-php   #SetHandler application/x-httpd-php-source  # Um PHP in Benutzerverzeichnissen wieder zu aktivieren, kommentieren Sie die folgenden Zeilen # (von  bis .) Setzen Sie es NICHT auf On, da es # verhindert, dass .htaccess-Dateien es deaktivieren.   php_admin_value engine Off  

Starten Sie dann Apache neu:

/etc/init.d/apache2 Neustart

18 Proftpd

Um Proftpd zu installieren, führen Sie

aus
apt-get install proftpd ucf

Ihnen wird eine Frage gestellt:

Führen Sie proftpd:<-- standalone

aus

For 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).

  • Ubuntu:http://www.ubuntu.com/
  • ISPConfig:http://www.ispconfig.org/

Panels
  1. Der perfekte Desktop – Ubuntu 11.04 (Natty Narwhal) (mit dem Ubuntu Classic Desktop)

  2. So aktualisieren Sie einen Ubuntu 7.10-Server ("Das perfekte Setup" + ISPConfig) auf Ubuntu 8.04 LTS

  3. So aktualisieren Sie einen Ubuntu 7.04-Server ("Das perfekte Setup" + ISPConfig) auf Ubuntu 7.10

  4. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 2]

  5. Der perfekte Server – Fedora 15 x86_64 [ISPConfig 3]

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3]

Der perfekte Server – CentOS 6.0 x86_64 [ISPConfig 2]

Der perfekte Server – CentOS 6.0 x86_64 [ISPConfig 3]

Der perfekte Server – Ubuntu 12.04 LTS (Apache2, BIND, Dovecot, ISPConfig 3)

Der perfekte Server – Ubuntu 12.10 (Apache2, BIND, Dovecot, ISPConfig 3)

Der perfekte Server – Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)