Server Installation · 6 min read · Jan 14, 2026

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 die Verwendung von mod_php, mod_fcgi/PHP5, cgi/PHP5 und suPHP auf einer Website-Basis.

mod_fcgid ist in den offiziellen CentOS-Repositories nicht verfügbar, aber es gibt ein Paket für CentOS 5.x im Test-Repository von 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 setzen gpgcheck auf 0 und enabled auf 1 im Abschnitt [kbs-CentOS-Testing]:

| [...] # 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 die Fehlerberichterstattung (so dass Hinweise nicht mehr angezeigt werden) und fügen 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 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" |

Schließlich starten wir Apache neu:

/etc/init.d/httpd restart

15.1 Ruby

Ab Version 3.0.3 hat ISPConfig 3 eine integrierte Unterstützung für Ruby. Anstelle von CGI/FastCGI hängt ISPConfig davon ab, dass mod_ruby auf dem Apache des Servers verfügbar ist.

Für CentOS 5.7 gibt es kein mod_ruby-Paket, daher 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 mod_ruby-Modul 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 starten Apache neu:

/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 von PureFTPd

PureFTPd kann mit dem folgenden Befehl installiert werden:

yum install pure-ftpd

Dann erstellen Sie die Systemstartlinks und starten Sie PureFTPd:

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

Jetzt konfigurieren wir PureFTPd, um FTP- und TLS-Sitzungen zuzulassen. 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 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:

| [...] # Diese Option kann drei Werte annehmen: # 0 : SSL/TLS-Verschlüsselungsschicht deaktivieren (Standard). # 1 : sowohl traditionelle als auch verschlüsselte Sitzungen akzeptieren. # 2 : Verbindungen ablehnen, die keine SSL/TLS-Sicherheitsmechanismen verwenden, # einschließlich anonymer Sitzungen. # Kommentieren Sie dies _nicht_ blind aus. Stellen Sie sicher, dass : # 1) Ihr Server mit SSL/TLS-Unterstützung kompiliert wurde (--with-tls), # 2) Ein gültiges Zertifikat vorhanden ist, # 3) Nur kompatible Clients sich anmelden. TLS 1 [...] |

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

mkdir -p /etc/ssl/private/

Danach 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

Landesname (2-Buchstaben-Code) [GB]: <– Geben Sie Ihren Landesnamen ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) [Berkshire]: <– Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ort (z.B. Stadt) [Newbury]: <– Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [My Company Ltd]: <– Geben Sie den Namen Ihrer Organisation ein (z.B. den Namen Ihres Unternehmens).
Name der organisatorischen Einheit (z.B. Abteilung) []: <– Geben Sie den Namen Ihrer organisatorischen Einheit ein (z.B. “IT-Abteilung”).
Allgemeiner Name (z.B. Ihr Name oder der Hostname Ihres Servers) []: <– Geben Sie den vollqualifizierten Domainnamen 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

Schließlich starten Sie PureFTPd neu:

 /etc/init.d/pure-ftpd restart

Das war’s. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; jedoch sollten Sie Ihren FTP-Client so konfigurieren, dass er TLS verwendet.

17 Installieren eines chrooted DNS-Servers (BIND9)

Um ein chrooted BIND9 zu installieren, machen wir Folgendes:

yum install bind-chroot

Dann machen Sie Folgendes:

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 // Bereitgestellt von Red Hat bind-Paket zur Konfiguration des ISC BIND named(8) DNS // Servers als nur Caching-Nameserver (nur als localhost DNS-Resolver). // // Siehe /usr/share/doc/bind*/sample/ für Beispiel-named-Konfigurationsdateien. 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 named on
/etc/init.d/named start

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

18 Installieren von 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 danach nicht mehr 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 fail2ban installieren

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

yum install fail2ban

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

21 rkhunter installieren

rkhunter kann wie folgt installiert werden:

yum install rkhunter
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.