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-develAls 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 restart15.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-develAls 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 restart15.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-ftpdDann 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.confWenn 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.pemLandesname (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.pemSchließlich starten Sie PureFTPd neu:
/etc/init.d/pure-ftpd restartDas 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-chrootDann 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-Buildercd /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 fail2banchkconfig –levels 235 fail2ban on
/etc/init.d/fail2ban start
21 rkhunter installieren
rkhunter kann wie folgt installiert werden:
yum install rkhunterErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.