Server Installation · 7 min read · Nov 07, 2025
Der perfekte Server - CentOS 6.0 x86_64 [ISPConfig 3] - Seite 5
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-mysqlDann 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
15 Apache2 mit mod_php, mod_fcgi/PHP5 und suPHP installieren
ISPConfig 3 ermöglicht es Ihnen, mod_php, mod_fcgi/PHP5, cgi/PHP5 und suPHP pro Website zu verwenden.
Wir können Apache2 mit mod_php5, mod_fcgid und PHP5 wie folgt 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-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 kommentieren cgi.fix_pathinfo=1 aus:
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE [...] ; cgi.fix_pathinfo bietet *echte* PATH_INFO/PATH_TRANSLATED Unterstützung für CGI. PHP's ; vorheriges Verhalten war, PATH_TRANSLATED auf SCRIPT_FILENAME zu setzen und nicht zu verstehen, ; was PATH_INFO ist. Für weitere Informationen zu PATH_INFO siehe die CGI-Spezifikationen. Das Setzen ; dieses Wertes auf 1 bewirkt, dass PHP CGI seine Pfade an die Spezifikation anpasst. Ein Wert ; von null bewirkt, dass PHP sich wie zuvor verhält. Standard ist 1. Sie sollten Ihre Skripte ; so anpassen, dass sie SCRIPT_FILENAME anstelle von PATH_TRANSLATED verwenden. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |
Als nächstes installieren wir suPHP (es gibt ein mod_suphp-Paket in den Repositories, aber leider ist es nicht mit ISPConfig kompatibel, daher müssen wir suPHP selbst erstellen):
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] ;Pfad zur Protokolldatei logfile=/var/log/httpd/suphp.log ;Protokollstufe loglevel=info ;Benutzer, unter dem Apache läuft webserver_user=apache ;Pfad, in dem sich alle Skripte befinden müssen docroot=/ ;Pfad zu chroot() vor der Ausführung des Skripts ;chroot=/mychroot ; Sicherheitsoptionen allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Überprüfen, ob das Skript innerhalb von DOCUMENT_ROOT ist check_vhost_docroot=true ;Sendet kleinere Fehlermeldungen an den Browser errors_to_browser=false ;PATH-Umgebungsvariable env_path=/bin:/usr/bin ;Umask, die gesetzt werden soll, in oktaler Notation angeben umask=0077 ; Mindest-UID min_uid=100 ; Mindest-GID min_gid=100 [handlers] ;Handler für PHP-Skripte x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler für CGI-Skripte 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 im Apache des Servers verfügbar ist.
Für CentOS 6.0 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 RubyAddPath /1.8 |
… und starten Apache neu:
/etc/init.d/httpd restart(Wenn Sie die RubyAddPath /1.8-Direktive weglassen, sehen Sie Fehler wie die folgenden im Fehlerprotokoll von Apache, wenn Sie Ruby-Dateien aufrufen:
[Thu May 26 02:05:05 2011] [error] modruby: ruby:0:in `require’: keine Datei zum Laden gefunden – apache/ruby-run (LoadError)
[Thu May 26 02:05:05 2011] [error] mod_ruby: konnte apache/ruby-run nicht laden
[Thu May 26 02:05:05 2011] [error] mod_ruby: Fehler in Ruby ) #### 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 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 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/ 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 Land (2-Buchstaben-Code) [XX]: <-- Geben Sie Ihren Ländernamen ein (z. B. "DE"). Bundesland oder Provinzname (vollständiger Name) []: <-- Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein. Ort (z. B. Stadt) [Standardstadt]: <-- Geben Sie Ihre Stadt ein. Name der Organisation (z. B. Firma) [Standard 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 vollständig qualifizierten 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 BIND installieren Wir können BIND wie folgt installieren: yum install bind bind-utils Öffnen Sie als nächstes /etc/sysconfig/named... vi /etc/sysconfig/named ... und stellen Sie sicher, dass die Zeile ROOTDIR=/var/named/chroot auskommentiert ist: | # BIND benannter Prozessoptionen # ~~~~~~ # Derzeit können Sie die folgenden Optionen verwenden: # # ROOTDIR=”/var/named/chroot” – wird benannt in einer chroot-Umgebung ausführen. # Sie müssen die chroot-Umgebung einrichten # (installieren Sie das bind-chroot-Paket), bevor # Sie dies tun. # HINWEIS: # Diese Verzeichnisse werden automatisch in chroot gemountet, wenn sie # im ROOTDIR-Verzeichnis leer sind. Dies vereinfacht die Wartung Ihrer # chroot-Umgebung. # - /var/named # - /etc/pki/dnssec-keys # - /etc/named # - /usr/lib64/bind oder /usr/lib/bind (architekturabhängig) # # Diese Dateien werden ebenfalls gemountet, wenn die Zieldatei nicht existiert # in chroot. # - /etc/named.conf # - /etc/rndc.conf # - /etc/rndc.key # - /etc/named.rfc1912.zones # - /etc/named.dnssec.keys # - /etc/named.iscdlv.key # # Vergessen Sie nicht, die Zeile “$AddUnixListenSocket /var/named/chroot/dev/log” # zu Ihrer /etc/rsyslog.conf-Datei hinzuzufügen. Andernfalls wird Ihr Protokoll # beschädigt, wenn der rsyslogd-Daemon neu gestartet wird (z. B. aufgrund eines Updates). # # OPTIONS=”whatever” – Diese zusätzlichen Optionen werden beim Start an benannt # übergeben. Fügen Sie hier kein -t hinzu, verwenden Sie stattdessen ROOTDIR. # # KEYTAB_FILE=”/dir/file” – Geben Sie die benannte Dienst-Keytab-Datei an (für GSS-TSIG) #ROOTDIR=/var/named/chroot | Machen Sie eine Sicherung der vorhandenen /etc/named.conf-Datei und erstellen Sie eine neue wie folgt: cp /etc/named.conf /etc/named.conf_bak cat /dev/null > /etc/named.conf vi /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”; dump-file “/var/named/data/cache_dump.db”; statistics-file “/var/named/data/named_stats.txt”; memstatistics-file “/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.ca”; }; include “/etc/named.conf.local”; | Erstellen Sie die Datei /etc/named.conf.local, die am Ende von /etc/named.conf enthalten ist ( /etc/named.conf.local wird später von ISPConfig gefüllt, wenn Sie DNS-Zonen in ISPConfig erstellen): touch /etc/named.conf.local Dann erstellen wir die Startlinks und starten BIND: chkconfig --levels 235 named on /etc/init.d/named start ### 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 danach nicht 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
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.