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

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3]

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3]

Dieses Tutorial zeigt, wie Sie einen CentOS 5.7 x86_64-Server für die Installation von ISPConfig 3 vorbereiten und ISPConfig 3 installieren. ISPConfig 3 ist ein Webhosting-Kontrollfeld, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können:Apache-Webserver, Postfix Mailserver, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr.

Bitte beachten Sie, dass dieses Setup nicht für ISPConfig 2 funktioniert ! Es gilt nur für ISPConfig 3!

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3-Handbuch herunterzuladen.

Auf etwa 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Clients), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.

1 Voraussetzungen

Um ein solches System zu installieren, benötigen Sie Folgendes:

  • Laden Sie die zwei CentOS 5.7-DVDs oder die acht CentOS 5.7-CDs von einem Mirror neben Ihnen herunter (die Liste der Mirrors finden Sie hier:http://isoredirect.centos.org/centos/5/isos/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 abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

3 Installieren Sie das Basissystem

Booten Sie von Ihrer ersten CentOS 5.7-CD (CD 1) oder der ersten CentOS 5.7-DVD. Drücken Sie am Boot-Prompt :

Das Testen des Installationsmediums kann lange dauern, daher überspringen wir diesen Test hier:

Der Begrüßungsbildschirm des CentOS-Installationsprogramms wird angezeigt. Klicken Sie auf Weiter:

Wählen Sie als nächstes Ihre Sprache:

Wählen Sie Ihr Tastaturlayout aus:

Ich installiere CentOS 5.7 auf einem neuen System, daher antworte ich mit Ja auf die Frage Möchten Sie dieses Laufwerk initialisieren und ALLE DATEN löschen?

Jetzt müssen wir ein Partitionierungsschema für unsere Installation auswählen. Der Einfachheit halber wähle ich Linux-Partitionen auf ausgewählten Laufwerken entfernen und Standardlayout erstellen. Dies führt zu einer kleinen /boot- und einer großen /-Partition sowie einer Swap-Partition. Natürlich steht es Ihnen frei, Ihre Festplatte nach Belieben zu partitionieren. Dann drücke ich Weiter:

Beantworten Sie die folgende Frage (Sind Sie sicher, dass Sie dies tun möchten?) mit Ja:

Weiter zu den Netzwerkeinstellungen. Die Standardeinstellung hier ist, die Netzwerkschnittstellen mit DHCP zu konfigurieren, aber wir installieren einen Server, also sind statische IP-Adressen keine schlechte Idee... Klicken Sie oben rechts auf die Schaltfläche Bearbeiten.

Deaktivieren Sie in dem sich öffnenden Fenster Dynamische IP-Konfiguration (DHCP) und IPv6-Unterstützung aktivieren und geben Sie Ihrer Netzwerkkarte eine statische IP-Adresse (in diesem Tutorial verwende ich die IP-Adresse 192.168.0.100 zu Demonstrationszwecken) und eine geeignete Netzmaske (z. 255.255.255.0; wenn Sie sich über die richtigen Werte nicht sicher sind, hilft Ihnen vielleicht http://www.subnetmask.info):

Stellen Sie den Hostnamen manuell ein, z. server1.example.com und geben Sie ein Gateway (z. B. 192.168.0.1) und bis zu zwei DNS-Server (z. B. 8.8.8.8 und 145.253.2.75) ein:

Wählen Sie Ihre Zeitzone:

Geben Sie root ein Passwort:

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 2

4 /etc/hosts anpassen

Als nächstes bearbeiten wir /etc/hosts. Lass es so aussehen:

vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.0.100           server1.example.com server1
::1             localhost6.localdomain6 localhost6

5 Zusätzliche IP-Adressen konfigurieren

(Dieser Abschnitt ist völlig optional. Er zeigt nur, wie Sie Ihrer Netzwerkschnittstelle eth0 zusätzliche IP-Adressen hinzufügen, wenn Sie mehr als eine IP-Adresse benötigen. Wenn Sie mit einer IP-Adresse zufrieden sind, können Sie diesen Abschnitt überspringen.)

Nehmen wir an, unsere Netzwerkschnittstelle ist eth0. Dann gibt es eine Datei /etc/sysconfig/network-scripts/ifcfg-eth0, die die Einstellungen für eth0 enthält. Wir können dies als Beispiel für unsere neue virtuelle Netzwerkschnittstelle eth0:0:

verwenden
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Nun wollen wir die IP-Adresse 192.168.0.101 auf der virtuellen Schnittstelle eth0:0 verwenden. Dazu öffnen wir die Datei /etc/sysconfig/network-scripts/ifcfg-eth0:0 und modifizieren sie wie folgt (die HWADDR-Zeile können wir weglassen, da es sich um dieselbe physikalische Netzwerkkarte handelt):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

Danach müssen wir das Netzwerk neu starten:

/etc/init.d/network restart

Möglicherweise möchten Sie /etc/hosts auch anpassen, nachdem Sie neue IP-Adressen hinzugefügt haben, obwohl dies nicht erforderlich ist.

Führen Sie nun

aus
ifconfig

Sie sollten nun Ihre neue IP-Adresse in der Ausgabe sehen:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.100  Bcast:192.168.0.255  Maske:255.255. 255,0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX Pakete:307 Fehler:0 Ausgefallen:0 Überschreitungen:0 Frame:0
          TX Pakete:251 Fehler:0 Überschreitung:0 Überschreitung :0 Carrier:0
          Kollisionen:0 txqueuelen:1000
          RX Bytes:29217 (28,5 KiB)  TX Bytes:45961 (44,8 KiB)

eth0:0    Link encap:Ethernet HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.101  Bcast:192.168.0.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  M T:15
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX Pakete:0 Dropped Fehler :0  :0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 txqueuelen:0
          RX Bytes:560 (560,0 b)  TX Bytes:560 (560,0 b)

[[email protected] ~]#

6 Deaktivieren Sie die Firewall und SELinux

(Sie können dieses Kapitel überspringen, wenn Sie die Firewall und SELinux bereits am Ende der grundlegenden Systeminstallation (im Setup Agent) deaktiviert haben.)

Ich möchte ISPConfig am Ende dieses Tutorials installieren, das mit einer eigenen Firewall geliefert wird. Deshalb deaktiviere ich jetzt die standardmäßige CentOS-Firewall. Natürlich steht es Ihnen frei, sie eingeschaltet zu lassen und nach Ihren Bedürfnissen zu konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da diese höchstwahrscheinlich die CentOS-Firewall stört).

SELinux ist eine Sicherheitserweiterung von CentOS, 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 SELinux verursachte das Problem). Daher deaktiviere ich es auch (dies ist ein Muss, wenn Sie später ISPConfig installieren möchten).

Ausführen

system-config-securitylevel

Setzen Sie sowohl Security Level als auch SELinux auf Disabled und klicken Sie auf OK:

Danach müssen wir das System neu starten:

reboot

7 Einige Software installieren

Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Aktivieren Sie die Repositorys contrib und centosplus:

vi /etc/yum.repos.d/CentOS-Base.repo

Bearbeiten Sie die folgenden Zeilen:

[base]
[...]
exclude=postfix
[...]
[updates]
[...]
exclude=postfix
[...]
[centosplus]
[...]
enabled=1
includepkgs=postfix
[...]
[contrib]
[...]
enabled=1
[...]

Dann aktualisieren wir unsere bestehenden Pakete auf dem System:

yum update

Jetzt installieren wir einige Softwarepakete, die später benötigt werden:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

8 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 wir diesen Befehl aus:

yum install quota

Bearbeiten Sie /etc/fstab und fügen Sie usrquota,grpquota zur Partition / hinzu (/dev/VolGroup00/LogVol00):

vi /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Dann ausführen

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

zum Aktivieren des Kontingents.

9 Installieren Sie Apache, MySQL, phpMyAdmin

Zuerst aktivieren wir das RPMforge-Repository auf unserem CentOS-System, da viele der Pakete, die wir im Laufe dieses Tutorials installieren werden, nicht in den offiziellen CentOS 5.7-Repositorys verfügbar sind:

wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

cd /tmp
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release- 0.5.2-2.el5.rf.x86_64.rpm

(Wenn der obige Link nicht mehr funktioniert, finden Sie die aktuelle Version von rpmforge-release hier:http://packages.sw.be/rpmforge-release/)

Danach können wir die benötigten Pakete mit einem einzigen Befehl installieren:

yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 4

10 Installieren Sie Dovecot

Es gibt ein Dovecot-Paket im CentOS-Repository, aber leider unterstützt es MySQL nicht. Daher müssen wir das vorhandene Dovecot entfernen und ein anderes Dovecot-Paket (von ATrpms) installieren, das mit MySQL-Unterstützung geliefert wird.

yum remove dovecot

Erstellen Sie eine neue Datei /etc/yum.repos.d/atrpms.repo...

vi /etc/yum.repos.d/atrpms.repo

... und fügen Sie folgende Zeilen in die Datei ein:

[atrpms]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/stable
failovermethod=priority
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable
#
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms testing
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/testing
failovermethod=priority
enabled=1
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable and testing
#
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/bleeding
failovermethod=priority
enabled=0

Importieren Sie dann den gpg-Schlüssel des atrpm-Repositorys ...

wget http://ATrpms.net/RPM-GPG-KEY.atrpms
rpm --import RPM-GPG-KEY.atrpms

...und installiere Dovecot:

yum install dovecot dovecot-sieve

Führen Sie auf einem 64-Bit-System auch Folgendes aus (nicht auf einem 32-Bit-System!):

ln -s /usr/lib64/dovecot/ /usr/lib/dovecot

Jetzt erstellen wir die Systemstartlinks für Dovecot:

chkconfig --levels 235 dovecot on
/etc/init.d/dovecot start

Wenn Dovecot mit folgendem Fehler nicht startet:

Fatal: listen(::, 143) failed: Address already in use

... öffnen Sie /etc/dovecot.conf...

vi /etc/dovecot.conf 

... und fügen Sie die Zeile listen =*:

hinzu
[...]
#listen = *, [::]
listen = *
[...]

Versuchen Sie dann Dovecot erneut zu starten:

/etc/init.d/dovecot start 

11 Installieren Sie Postfix mit MySQL-Unterstützung

Das "normale" Postfix-Paket aus dem CentOS-Repository enthält kein MySQL, das Postfix-Paket aus dem CentOS Plus-Repository jedoch. Deshalb entfernen wir Postfix...

yum remove postfix

... und erneut installieren, diesmal aus dem CentOS Plus-Repository:

yum install postfix   

Schalten Sie dann Sendmail aus und starten Sie Postfix und MySQL:

chkconfig --levels 235 mysqld beim
/etc/init.d/mysqld start

chkconfig --levels 235 sendmail aus
chkconfig --levels 235 postfix ein
/etc/init.d/sendmail stop
/etc/init.d/postfix start

12 Installieren Sie Getmail

Getmail kann wie folgt installiert werden:

yum install getmail

13 Legen Sie MySQL-Passwörter fest und konfigurieren Sie phpMyAdmin

Legen Sie Passwörter für das MySQL-Root-Konto fest:

mysql_secure_installation

[[email protected] tmp]# mysql_secure_installation




HINWEIS:DAS AUSFÜHREN ALLER TEILE DIESES SKRIPTS WIRD FÜR ALLE MySQL
      SERVER IN DER PRODUKTION EMPFOHLEN BENUTZEN! BITTE LESEN SIE JEDEN SCHRITT SORGFÄLTIG DURCH!


Um sich bei MySQL anzumelden, um es zu sichern, benötigen wir das aktuelle
Passwort für den Root-Benutzer. Wenn Sie gerade MySQL installiert und
das Root-Passwort noch nicht festgelegt haben, ist das Passwort leer,
also sollten Sie hier einfach die Eingabetaste drücken.

Enter Aktuelles Passwort für Root (Eingabe für Keine):
OK, erfolgreich verwendetes Passwort, weiter ...

Das Festlegen des Root-Passworts stellt sicher, dass sich niemand bei dem MySQL-Root anmelden kann.
Benutzer ohne die richtige Autorisierung.

Root-Passwort festlegen? [Y/n] <-- ENTER
Neues Passwort: <-- yourrootsqlpassword
Neues Passwort erneut eingeben: <-- yourrootsqlpassword
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen. .
 ... Erfolg!


Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer, der ermöglicht, dass sich jeder
bei MySQL anmelden kann, ohne einen Benutzeraccount haben zu müssen für
sie erstellt. Dies ist nur zum Testen sollte und damit die Installation
etwas flüssiger läuft. Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.

Anonyme Nutzer entfernen? [Y/n] <-- ENTER
 ... Erfolgreich!

Normalerweise sollte root nur erlaubt werden, sich von 'localhost' aus zu verbinden. Dies
stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.

Root-Anmeldung aus der Ferne nicht zulassen? [Y/n] <-- EINGABE
 ... Erfolg!

Standardmäßig wird MySQL mit einer Datenbank namens "test" geliefert, auf die jeder
zugreifen kann. Dies ist auch nur zum Testen vorgesehen und sollte entfernt werden
bevor in eine Produktionsumgebung umgezogen wird.

Testdatenbank und Zugriff darauf entfernen? [Y/n] <-- ENTER
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für Testdatenbank entfernen...
 ... Erfolg !

Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen
sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? [Y/n] <-- EINGABE
 ... Erfolgreich!

Aufräumen ...



Alle fertig! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MySQL
Installation jetzt sicher sein.

Vielen Dank, dass Sie MySQL verwenden!


[example @unixlinux.online tmp]#

Jetzt konfigurieren wir phpMyAdmin. Wir ändern die Apache-Konfiguration so, dass phpMyAdmin Verbindungen nicht nur von localhost zulässt (durch Auskommentieren der Zeilengruppe ):

vi /etc/httpd/conf.d/phpmyadmin.conf
#
#  Web application to manage MySQL
#

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Als nächstes ändern wir die Authentifizierung in phpMyAdmin von cookie auf http:

vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Dann erstellen wir die Systemstartlinks für Apache und starten es:

chkconfig --levels 235 httpd on
/etc/init.d/httpd start

Jetzt können Sie Ihren Browser auf http://server1.example.com/phpmyadmin/ oder http://192.168.0.100/phpmyadmin/ leiten und sich mit dem Benutzernamen root und Ihrem neuen root-MySQL-Passwort anmelden.

14 Installieren Sie Amavisd-new, SpamAssassin und ClamAV

Um amavisd-new, spamassassin und clamav zu installieren, führen Sie den folgenden Befehl aus:

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Öffnen Sie /etc/sysconfig/amavisd...

vi /etc/sysconfig/amavisd

... und kommentieren Sie die Zeile CONFIG_FILE="/etc/amavisd.conf":

aus
### Uncomment this if you want to use amavis with sendmail milter interface.
### See README.milter for details.
#
#MILTER_SOCKET="local:/var/amavis/amavis-milter.sock"
#MILTER_SOCKET="[email protected]"

### These are other defaults.
#AMAVIS_ACCOUNT="amavis"
CONFIG_FILE="/etc/amavisd.conf"
#MILTER_FLAGS=""

Dann starten wir freshclam, amavisd und clamd...

sa-update
chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd start

... und erstellen Sie einige notwendige Verzeichnisse:

mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
chown amavis /var/run/amavisd /var/spool/amavisd /var/ spool/amavisd/tmp /var/spool/amavisd/db
ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 5

15 Installation von Apache2 mit mod_php, mod_fcgi/PHP5 und suPHP

ISPConfig 3 ermöglicht Ihnen die Verwendung von mod_php, mod_fcgi/PHP5, cgi/PHP5 und suPHP pro Website.

mod_fcgid ist in den offiziellen CentOS-Repositorys nicht verfügbar, aber es gibt ein Paket für CentOS 5.x im Test-Repository centos.karan.org. Wir aktivieren das Repository wie folgt:

cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo

Als nächstes öffnen wir /etc/yum.repos.d/kbsingh-CentOS-Extras.repo...

vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

... und gpgcheck im Abschnitt [kbs-CentOS-Testing] auf 0 und enabled auf 1 setzen:

[...]
# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/

Danach können wir Apache2 mit mod_php5, mod_fcgid und PHP5 installieren:

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel

Als nächstes öffnen wir /etc/php.ini...

vi /etc/php.ini

... und ändern Sie die Fehlerberichterstattung (so dass keine Hinweise mehr angezeigt werden) und fügen Sie cgi.fix_pathinfo =1 am Ende der Datei hinzu:

[...]
;error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE
[...]
cgi.fix_pathinfo = 1

Als nächstes installieren wir suPHP:

cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7 .1/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable- SUPHP_USE_USERGROUP=yes
make
make install

Dann fügen wir das suPHP-Modul zu unserer Apache-Konfiguration hinzu...

vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so

... und erstellen Sie die Datei /etc/suphp.conf wie folgt:

vi /etc/suphp.conf
[global]
;Path to logfile
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=false
;PATH environment variable
env_path=/bin:/usr/bin
;Umask to set, specify in octal notation
umask=0077
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi="execute:!self"

Abschließend starten wir Apache neu:

/etc/init.d/httpd restart

15.1 Rubin

Ab Version 3.0.3 hat ISPConfig 3 eingebaute Unterstützung für Ruby. Anstatt CGI/FastCGI zu verwenden, hängt ISPConfig davon ab, dass mod_ruby im Apache des Servers verfügbar ist.

Für CentOS 5.7 ist kein mod_ruby-Paket verfügbar, also müssen wir es selbst kompilieren. Zuerst installieren wir einige Voraussetzungen:

yum install httpd-devel ruby ruby-devel

Als nächstes laden wir mod_ruby herunter und installieren es wie folgt:

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

Schließlich müssen wir das Modul mod_ruby zur Apache-Konfiguration hinzufügen, also erstellen wir die Datei /etc/httpd/conf.d/ruby.conf...

vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so

... und Apache neu starten:

/etc/init.d/httpd restart

15.2 WebDAV

WebDAV sollte bereits aktiviert sein, aber um dies zu überprüfen, öffnen Sie /etc/httpd/conf/httpd.conf und stellen Sie sicher, dass die folgenden drei Module aktiv sind:

vi /etc/httpd/conf/httpd.conf
[...]
LoadModule auth_digest_module modules/mod_auth_digest.so
[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
[...]

Wenn Sie /etc/httpd/conf/httpd.conf ändern müssen, vergessen Sie nicht, Apache danach neu zu starten:

/etc/init.d/httpd restart 

16 Installieren Sie PureFTPd

PureFTPd kann mit dem folgenden Befehl installiert werden:

yum install pure-ftpd

Erstellen Sie dann die Systemstartlinks und starten Sie PureFTPd:

chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start

Jetzt konfigurieren wir PureFTPd so, dass FTP- und TLS-Sitzungen zugelassen werden. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird.

OpenSSL wird von TLS benötigt; Um OpenSSL zu installieren, führen wir einfach Folgendes aus:

yum install openssl

Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf...

vi /etc/pure-ftpd/pure-ftpd.conf

Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, setzen Sie TLS auf 1:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.
TLS                      1
[...]

Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, also erstelle ich zuerst dieses Verzeichnis:

mkdir -p /etc/ssl/private/

Anschließend können wir das SSL-Zertifikat wie folgt generieren:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Ländername (2-Buchstaben-Code) [GB]:<-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Staats- oder Provinzname (vollständiger Name) [Berkshire]:<-- Geben Sie Ihren Bundesstaat oder Ihre Provinz ein Name.
Name des Ortes (z. B. Stadt) [Newbury]:<-- Geben Sie Ihre Stadt ein.
Name der Organisation (z. B. Firma) [My Company Ltd]:<-- Geben Sie den Namen Ihrer Organisation ein (z. B. , der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abschnitt) []:<-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. Ihr Name oder den Hostnamen Ihres Servers) []:<-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []:<-- Geben Sie Ihre E-Mail-Adresse ein.

Ändern Sie die Berechtigungen des SSL-Zertifikats:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Starten Sie abschließend PureFTPd neu:

 /etc/init.d/pure-ftpd restart

Das ist es. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten Ihren FTP-Client jedoch für die Verwendung von TLS konfigurieren.

17 Installieren Sie einen Chrooted-DNS-Server (BIND9)

Um ein chrooted BIND9 zu installieren, gehen wir wie folgt vor:

yum install bind-chroot

Dann tun Sie dies:

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/ named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/ var/named/
ln -s ../../ chroot
touch /var/named/chroot/var/named/named.local
cp /usr/share/doc/bind -9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
touch /var/named/chroot/etc/named.conf.local
vi /var/named/chroot/etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named/chroot/var/named";
        dump-file       "/var/named/chroot/var/named/data/cache_dump.db";
        statistics-file "/var/named/chroot/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/chroot/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion no;
        allow-recursion { none; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.root";
};
include "/var/named/chroot/var/named/named.local";

chkconfig --levels 235 benannt auf
/etc/init.d/named start

BIND wird in einem Chroot-Gefängnis unter /var/named/chroot/var/named/ ausgeführt. Ich werde ISPConfig verwenden, um BIND (Zonen usw.) zu konfigurieren.

18 Installieren Sie Vlogger, Webalizer und AWStats

Vlogger, Webalizer und AWStats können wie folgt installiert werden:

yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*

19 Jailkit installieren

Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (Wichtig:Jailkit muss vor ISPConfig installiert werden - es kann nicht nachträglich installiert werden!):

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*

20 Installieren Sie fail2ban

Dies ist optional, wird aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:

yum install fail2ban

chkconfig --levels 235 fail2ban on
/etc/init.d/fail2ban start

21 Installieren Sie rkhunter

rkhunter kann wie folgt installiert werden:

yum install rkhunter

Der perfekte Server – CentOS 5.7 x86_64 [ISPConfig 3] – Seite 6

22 Installieren Sie SquirrelMail

Um den SquirrelMail-Webmail-Client zu installieren, führen Sie...

aus
yum install squirrelmail

... und Apache neu starten:

/etc/init.d/httpd restart

Konfigurieren Sie dann SquirrelMail:

/usr/share/squirrelmail/config/conf.pl

Wir müssen SquirrelMail mitteilen, dass wir Courier-IMAP/-POP3 verwenden:

SquirrelMail Konfiguration : Lesen Sie: config.php (1.4.0)
---------------------------------------------- ------------------------
Hauptmenü --
1. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Themen
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
10. Sprachen

D. Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <-- D


SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury/32
    uw          = University of Washington's IMAP server

    quit        = Do not change anything
Command >> <-- dovecot


SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury/32
    uw          = University of Washington's IMAP server

    quit        = Do not change anything
Command >> dovecot

              imap_server_type = dovecot
         default_folder_prefix = 
                  trash_folder = Trash
                   sent_folder = Sent
                  draft_folder = Drafts
            show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_option = false
            optional_delimiter = detect
                 delete_folder = false

Press any key to continue... <-- press a key


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--S


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--Q

One last thing we need to do is modify the file /etc/squirrelmail/config_local.php and comment out the $default_folder_prefix variable - if you don't do this, you will see the following error message in SquirrelMail after you've logged in:Query:CREATE "Sent" Reason Given:Invalid mailbox name.

vi /etc/squirrelmail/config_local.php
<?php

/**
 * Local config overrides.
 *
 * You can override the config.php settings here.
 * Don't do it unless you know what you're doing.
 * Use standard PHP syntax, see config.php for examples.
 *
 * @copyright &copy; 2002-2006 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $
 * @package squirrelmail
 * @subpackage config
 */

//$default_folder_prefix                = '';
?>

Now you can type in http://server1.example.com/webmail or http://192.168.0.100/webmail in your browser to access SquirrelMail.

23 Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

The next step is to run

php -q install.php

This will start the ISPConfig 3 installer:

[[email protected] install]# php -q install.php


--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | | `--. \  __/  | | / _ \| '_ \| _| |/ _` | |_ |
 _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: CentOS 5 or compatible

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with .
    Tap in "quit" (without the quotes) to stop the installer.


Select language (en,de) [en]: <-- ENTER

Installation mode (standard,expert) [standard]: <-- ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- ENTER

MySQL server hostname [localhost]: <-- ENTER

MySQL root username [root]: <-- ENTER

MySQL root password []: <-- yourrootsqlpas sword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

Generating a 2048 bit RSA private key
...............+++
...+++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: <-- ENTER
State or Province Name (full name) [Berkshire]: <-- ENTER
Locality Name (eg, city) [Newbury]: <-- ENTER
Organization Name (eg, company) [My Company Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, your name or your server's hostname) []: <-- ENTER
Email Addre ss []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]
Stopping saslauthd:                                        [FAILED]
Starting saslauthd:                                        [  OK  ]
Shutting down Mail Virus Scanner (amavisd):                [  OK  ]
Starting Mail Virus Scanner (amavisd):                     [  OK  ]
Stopping Clam AntiVirus Daemon:                            [  OK  ]
Starting Clam AntiVirus Daemon:Bytecode:Security mode set to "TrustSigned".
                                                           [  OK  ]
Stopping Dovecot Imap:                                     [  OK  ]
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
Fatal: listen(::, 143) failed: Address already in use
Starting Dovecot Imap:                                     [FAILED]
Stopping httpd:                                            [  OK  ]
[Mon Sep 26 13:29:58 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
Starting httpd:                                            [  OK  ]
Stopping pure-ftpd:                                        [  OK  ]
Starting pure-ftpd:                                        [  OK  ]
Installation completed.
[[email protected] install]#

The installer automatically configures all underlying services, so no manual configuration is needed.

If Dovecot fails to start with the following error:

Fatal: listen(::, 143) failed: Address already in use

... open /etc/dovecot.conf...

vi /etc/dovecot.conf 

... and add the line listen =*:

[...]
#listen = *, [::]
listen = *
[...]

Then try to start Dovecot again:

/etc/init.d/dovecot start

Afterwards you can access ISPConfig 3 under http://server1.example.com:8080/ or http://192.168.0.100:8080/. Log in with the username admin and the password admin (you should change the default password after your first login):

The system is now ready to be used.

23.1 ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend to download the ISPConfig 3 Manual.

On about 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

  • CentOS:http://www.centos.org/
  • ISPConfig:http://www.ispconfig.org/

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

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

  3. Der perfekte Server - Ubuntu 11.04 [ISPConfig 3]

  4. Der perfekte Server – CentOS 5.6 x86_64 [ISPConfig 2]

  5. Der perfekte Server – CentOS 6.1 x86_64 mit Apache2 [ISPConfig 3]

Der perfekte Server – CentOS 6.1 x86_64 mit nginx [ISPConfig 3]

Der perfekte Server – CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (nginx, Courier, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)