Server Installation · 8 min read · Feb 11, 2026

Der perfekte Server - Fedora 15 x86_64 [ISPConfig 3] - Seite 5

15 Amavisd-new, SpamAssassin und ClamAV installieren

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

yum install amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 perl-DBD-mysql

Als wir ClamAV installiert haben, wurde ein Cron-Job installiert, der versucht, die ClamAV-Virendatenbank alle drei Stunden zu aktualisieren. Dies funktioniert jedoch nur, wenn wir es in /etc/sysconfig/freshclam und /etc/freshclam.conf aktivieren:

vi /etc/sysconfig/freshclam

Kommentieren Sie die FRESHCLAM_DELAY-Zeile am Ende aus:

| ## Wenn Sie die Periodizität der freshclam-Ausführungen im Crontab ändern, ## muss dieser Wert ebenfalls angepasst werden. Sein Wert ist der Zeitraum zwischen ## zwei aufeinander folgenden freshclam-Ausführungen in Minuten. Zum Beispiel für die Standard ## ## | 0 */3 * * * ... ## ## Crontab-Zeile, der Wert ist 180 (Minuten). # FRESHCLAM_MOD= ## Ein vordefinierter Wert für die Verzögerung in Sekunden. Standardmäßig wird der Wert ## vom Programm 'hostid' berechnet. Dieser vordefinierte Wert garantiert ## konstante Zeitabstände von 3 Stunden zwischen zwei aufeinander folgenden freshclam-Ausführungen. ## ## Diese Option akzeptiert zwei spezielle Werte: ## 'disabled-warn' ... deaktiviert das automatische freshclam-Update und ## gibt eine Warnung aus ## 'disabled' ... deaktiviert das automatische freshclam stillschweigend # FRESHCLAM_DELAY= ### !!!!! ENTFERNEN SIE MICH !!!!!! ### ENTFERNEN SIE MICH: Standardmäßig ist das freshclam-Update deaktiviert, um ### ENTFERNEN SIE MICH: Netzwerkzugriff ohne vorherige Aktivierung zu vermeiden #FRESHCLAM_DELAY=disabled-warn # ENTFERNEN SIE MICH |

vi /etc/freshclam.conf

Kommentieren Sie die Beispielzeile aus:

| [...] # Kommentieren oder entfernen Sie die folgende Zeile. #Beispiel [...] |

Dann starten wir freshclam, amavisd und clamd…

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

Als nächstes tun Sie dies:

rm -f /var/spool/amavisd/clamd.sock
mkdir /var/run/clamav.amavisd /var/run/clamd.amavisd /var/run/amavisd
chown amavis /var/run/clamav.amavisd
chown amavis /var/run/clamd.amavisd
chown amavis /var/run/amavisd
ln -sf /var/spool/amavisd/clamd.sock /var/run/clamav.amavisd/clamd.sock
ln -sf /var/spool/amavisd/clamd.sock /var/run/clamd.amavisd/clamd.sock
/etc/init.d/clamd.amavisd restart

Fedora 15 hat ein /run-Verzeichnis zum Speichern von Laufzeitdaten. /run ist jetzt ein tmpfs, und /var/run und /var/lock sind jetzt von tmpfs nach /run und /run/lock gebunden montiert und daher beim Neustart geleert (siehe https://docs.fedoraproject.org/en-US/Fedora/15/html/Release_Notes/sect-Release_Notes-Changes_for_SysAdmin.html für weitere Details).

Das bedeutet, dass nach einem Neustart die Verzeichnisse /var/run/clamav.amavisd, /var/run/clamd.amavisd und /var/run/amavisd, die wir gerade erstellt haben, nicht mehr existieren werden, und daher clamd und amavisd nicht gestartet werden können. Daher erstellen wir die Datei /etc/tmpfiles.d/amavisd.conf, die diese Verzeichnisse beim Systemstart erstellt (siehe http://0pointer.de/public/systemd-man/tmpfiles.d.html für weitere Details):

vi /etc/tmpfiles.d/amavisd.conf

| D /var/run/clamav.amavisd 0755 amavis root - D /var/run/clamd.amavisd 0755 amavis root - D /var/run/amavisd 0755 amavis root - |

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

cd /tmp
wget http://www.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 ;Protokollebene loglevel=info ;Benutzer, unter dem Apache läuft webserver_user=apache ;Pfad, in dem alle Skripte sein müssen docroot=/ ;Pfad zu chroot(), bevor das Skript ausgeführt wird ;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 ;Send minor error messages to 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 restart

16.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 Fedora 15 ist kein mod_ruby-Paket verfügbar, daher müssen wir es selbst kompilieren. Zuerst installieren wir einige Voraussetzungen:

yum install 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 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 in den Apache-Fehlerprotokollen, wenn Sie Ruby-Dateien aufrufen:

[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in `require’: no such file to load – apache/ruby-run (LoadError)
[Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run
[Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby ) #### 16.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 ### 17 PureFTPd installieren 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 können. TLS 1 [...] | Um TLS zu verwenden, 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 Landname (2-Buchstaben-Code) [XX]: <– Geben Sie Ihren Landnamen ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) []: <– Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ortsname (z.B. Stadt) [Standardstadt]: <– Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [Standardfirma GmbH]: <– Geben Sie Ihren Organisationsnamen 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; Sie sollten jedoch Ihren FTP-Client so konfigurieren, dass er TLS verwendet. ### 18 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 kommentieren Sie die ROOTDIR=/var/named/chroot-Zeile aus: | # BIND named-Prozessoptionen # ~~~~~~~~~~~~~~~~~~~~~~~~~~ # Derzeit können Sie die folgenden Optionen verwenden: # # ROOTDIR="/var/named/chroot" -- wird named in einer chroot-Umgebung ausgeführt. # 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 im # chroot vorhanden ist. # - /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 "$AddUnixListenSocket /var/named/chroot/dev/log" # Zeile in Ihre /etc/rsyslog.conf-Datei hinzuzufügen. Andernfalls wird Ihr Logging # beschädigt, wenn der rsyslogd-Daemon neu gestartet wird (z.B. aufgrund eines Updates). # # OPTIONS="whatever" -- Diese zusätzlichen Optionen werden beim Start an named # übergeben. Fügen Sie hier kein -t hinzu, verwenden Sie stattdessen ROOTDIR. # # KEYTAB_FILE="/dir/file" -- Geben Sie die Keytab-Datei für den named-Dienst an (für GSS-TSIG) # # DISABLE_ZONE_CHECKING -- Standardmäßig ruft das Initscript das named-checkzone # Dienstprogramm für jede Zone auf, um sicherzustellen, dass alle Zonen # gültig sind, bevor named gestartet wird. Wenn Sie diese Option # auf 'ja' setzen, führt das Initscript diese Überprüfungen nicht durch. #ROOTDIR=/var/named/chroot | Dann erstellen wir die Startlinks: chkconfig --levels 235 named on Wir starten BIND jetzt nicht, da es zuerst konfiguriert werden muss - dies wird später automatisch vom ISPConfig 3-Installer erledigt. ### 19 Vlogger, Webalizer und AWStats installieren 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 ### 20 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
### 21 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 ### 22 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.