Server Setup · 13 min read · Jan 14, 2026

Der perfekte Server - OpenSUSE 11.2 x86_64 [ISPConfig 3] - Seite 5

12 MyDNS

Wir installieren das MyDNS rpm-Paket für i386, das auch auf x86_64 funktioniert:

wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm  
rpm -ivh --force mydns-mysql-1.1.0-1.i386.rpm

Erstellen Sie das folgende MyDNS-Init-Skript:

vi /etc/init.d/mydns

| #! /bin/sh # Copyright (c) 1995-2004 SUSE Linux AG, Nuernberg, Deutschland. # Alle Rechte vorbehalten. # # Autor: Kurt Garloff # Bitte senden Sie Feedback an http://www.suse.de/feedback/ # # /etc/init.d/mydns # und sein symbolischer Link # /(usr/)sbin/rcmydns # # Dieses Programm ist freie Software; Sie können es weiterverbreiten und/oder modifizieren # es unter den Bedingungen der GNU General Public License, wie sie von # der Free Software Foundation veröffentlicht wurde; entweder Version 2 der Lizenz oder # (nach Ihrer Wahl) jede spätere Version. # # Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, # aber OHNE JEDE GARANTIE; ohne sogar die implizite Garantie der # MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die # GNU General Public License für weitere Details. # # Sie sollten eine Kopie der GNU General Public License # zusammen mit diesem Programm erhalten haben; wenn nicht, schreiben Sie an die Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # Template-System-Startskript für einige Beispiel-Dienste/Dämonen mydns # # LSB-kompatibles Dienststeuerungsskript; siehe http://www.linuxbase.org/spec/ # # Hinweis: Dieses Template verwendet Funktionen rc_XXX, die in /etc/rc.status auf # UnitedLinux (UL) basierenden Linux-Distributionen definiert sind. Wenn Sie Ihr # Skript auf diesem Template basieren und sicherstellen möchten, dass es auf nicht UL-basierten LSB # konformen Linux-Distributionen funktioniert, müssen Sie entweder die rc.status # Funktionen von UL bereitstellen oder das Skript ändern, um ohne sie zu funktionieren. # ### BEGIN INIT INFO # Provides: mydns # Required-Start: $syslog $remote_fs # Should-Start: $time ypbind sendmail # Required-Stop: $syslog $remote_fs # Should-Stop: $time ypbind sendmail # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: mydns XYZ-Dämon, der ZYX bereitstellt # Description: Starten Sie mydns, um XY zu ermöglichen und YZ bereitzustellen # fortgesetzt in der zweiten Zeile mit '#' # sollte genügend Informationen für den Runlevel-Editor enthalten # um dem Administrator eine Vorstellung davon zu geben, was dieser Dienst tut und # wofür er benötigt wird ... # (Die Kurzbeschreibung sollte bereits ein guter Hinweis sein.) ### END INIT INFO # # Alle Erweiterungen zu den oben angegebenen Schlüsselwörtern sollten mit # X-VendorTag- (X-UnitedLinux- X-SuSE- für uns) gemäß LSB vorangestellt werden. # # Hinweise zu Required-Start/Should-Start: # * Es gibt zwei verschiedene Probleme, die durch Required-Start # und Should-Start gelöst werden # (a) Harte Abhängigkeiten: Dies wird vom Runlevel-Editor verwendet, um zu bestimmen, # welche Dienste unbedingt gestartet werden müssen, damit der Start dieses # Dienstes sinnvoll ist. Beispiel: nfsserver sollte haben # Required-Start: $portmap # Außerdem werden erforderliche Dienste vor den abhängigen gestartet. # Der Runlevel-Editor wird über fehlende harte Abhängigkeiten warnen # und vorschlagen, sie zu aktivieren. Während des Systemstarts können Sie mit einem Fehler rechnen, # wenn die Abhängigkeit nicht erfüllt ist. # (b) Angabe der Reihenfolge des Init-Skripts, keine echten (harten) Abhängigkeiten. # Dies wird von insserv benötigt, um zu bestimmen, welcher Dienst zuerst gestartet werden sollte # (und zu einem späteren Zeitpunkt, welche Dienste parallel gestartet werden können). # Das Tag Should-Start: wird dafür verwendet. # Es sagt, dass, wenn ein Dienst verfügbar ist, er vorher gestartet werden sollte. # Wenn nicht, ist es egal. # * Bei der Angabe harter Abhängigkeiten oder Reihenfolgenanforderungen können Sie # die Namen von Diensten (Inhalte ihres Provides: Abschnitts) # oder Pseudonamen, die mit einem $ beginnen, verwenden. Die folgenden sind verfügbar # gemäß LSB (1.1): # $local_fs alle lokalen Dateisysteme sind gemountet # (die meisten Dienste sollten dies benötigen!) # $remote_fs alle entfernten Dateisysteme sind gemountet # (beachten Sie, dass /usr entfernt sein kann, sodass # viele Dienste dies benötigen sollten!) # $syslog Systemprotokollierungsdienst aktiv # $network Netzwerk auf niedriger Ebene (eth-Karte, ...) # $named Hostnamenauflösung verfügbar # $netdaemons alle Netzwerk-Dämonen laufen # Der Pseudodienst $netdaemons wurde in LSB 1.2 entfernt. # Für jetzt bieten wir ihn weiterhin zur Rückwärtskompatibilität an. # Dies sind neu (LSB 1.2): # $time die Systemzeit wurde korrekt eingestellt # $portmap SunRPC-Portmapping-Dienst verfügbar # UnitedLinux-Erweiterungen: # $ALL zeigt an, dass ein Skript am Ende eingefügt werden sollte # # * Die in den Stop-Tags angegebenen Dienste # (Required-Stop/Should-Stop) # geben an, welche Dienste weiterhin laufen müssen, wenn dieser Dienst # heruntergefahren wird. Oft sind die Einträge dort nur Kopien oder eine Teilmenge # aus dem jeweiligen Start-Tag. # * Should-Start/Stop sind jetzt Teil von LSB seit 2.0, # früher verwendeten SUSE/Unitedlinux X-UnitedLinux-Should-Start/-Stop. # insserv unterstützt beide Varianten. # * X-UnitedLinux-Default-Enabled: ja/nein wird zur Installationszeit verwendet # (%fillup_and_insserv-Makro in %post vieler RPMs), um anzugeben, ob # ein Startskript standardmäßig nach der Installation aktiviert werden sollte. # Es wird nicht von insserv verwendet. # # Hinweis zu Runlevels: # 0 - Halt/Ausschalten 6 - Neustart # 1 - Einzelbenutzer 2 - Mehrbenutzer ohne Netzwerk exportiert # 3 - Mehrbenutzer mit Netzwerk (Textmodus) 5 - Mehrbenutzer mit Netzwerk und X11 (xdm) # # Hinweis zu Skriptnamen: # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html # Ein Register wurde eingerichtet, um den Namespace der Init-Skripte zu verwalten. # http://www.lanana.org/ # Bitte verwenden Sie die bereits registrierten Namen oder registrieren Sie einen oder verwenden Sie einen # Vendor-Präfix. # Überprüfen auf fehlende Binaries (veraltete Symlinks sollten nicht auftreten) # Hinweis: Besondere Behandlung von Stop für LSB-Konformität MYDNS_BIN=/usr/sbin/mydns test -x $MYDNS_BIN || { echo "$mydns_BIN nicht installiert"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } # Überprüfen auf Existenz der benötigten Konfigurationsdatei und lesen Sie sie #MYDNS_CONFIG=/etc/sysconfig/mydns #test -r $MYDNS_CONFIG || { echo "$mydns_CONFIG existiert nicht"; # if [ "$1" = "stop" ]; then exit 0; # else exit 6; fi; } # Konfiguration lesen #. $MYDNS_CONFIG # LSB-Init-Funktionen einfügen # die start_daemon, killproc, pidofproc, # log_success_msg, log_failure_msg und log_warning_msg bereitstellen. # Dies wird derzeit von UnitedLinux-basierten Distributionen nicht verwendet und # ist für Init-Skripte nur für UnitedLinux nicht erforderlich. Wenn es verwendet wird, # sollten die Funktionen aus rc.status nicht geladen oder verwendet werden. #. /lib/lsb/init-functions # Shell-Funktionen, die aus /etc/rc.status geladen werden: # rc_check überprüfen und lokalen und Gesamtstatus rc festlegen # rc_status überprüfen und lokalen und Gesamtstatus rc festlegen # rc_status -v im lokalen rc-Status ausführlich sein und ihn danach zurücksetzen # rc_status -v -r ebenso und sowohl den lokalen als auch den Gesamtstatus rc zurücksetzen # rc_status -s "übersprungen" anzeigen und mit Status 3 beenden # rc_status -u "nicht verwendet" anzeigen und mit Status 3 beenden # rc_failed lokalen und Gesamtstatus rc auf fehlgeschlagen setzen # rc_failed lokalen und Gesamtstatus rc auf setzen # rc_reset sowohl den lokalen als auch den Gesamtstatus rc zurücksetzen # rc_exit entsprechend dem Gesamtstatus rc beenden # rc_active überprüft, ob ein Dienst durch Symlinks aktiviert ist . /etc/rc.status # Status dieses Dienstes zurücksetzen rc_reset # Rückgabewerte gemäß LSB für alle Befehle außer Status: # 0 - Erfolg # 1 - allgemeiner oder nicht spezifizierter Fehler # 2 - ungültiges oder überflüssiges Argument(e) # 3 - nicht implementierte Funktion (z.B. "reload") # 4 - Benutzer hatte unzureichende Berechtigungen # 5 - Programm ist nicht installiert # 6 - Programm ist nicht konfiguriert # 7 - Programm läuft nicht # 8--199 - reserviert (8--99 LSB, 100--149 distrib, 150--199 appl) # # Hinweis, dass das Starten eines bereits laufenden Dienstes, das Stoppen # oder Neustarten eines nicht laufenden Dienstes sowie der Neustart # mit force-reload (falls Signalisierung nicht unterstützt wird) als # Erfolg betrachtet werden. case "$1" in start) echo -n "Starte mydns " ## Starten Sie den Dämon mit startproc(8). Wenn dies fehlschlägt ## wird der Rückgabewert entsprechend von startproc festgelegt. startproc $MYDNS_BIN # Status merken und ausführlich sein rc_status -v ;; stop) echo -n "Fahre mydns herunter " ## Stoppen Sie den Dämon mit killproc(8) und wenn dies fehlschlägt ## setzt killproc den Rückgabewert gemäß LSB. killproc -TERM $MYDNS_BIN # Status merken und ausführlich sein rc_status -v ;; try-restart|condrestart) ## Führen Sie einen Neustart nur durch, wenn der Dienst zuvor aktiv war. ## Hinweis: try-restart ist jetzt Teil von LSB (seit 1.9). ## RH hat einen ähnlichen Befehl namens condrestart. if test "$1" = "condrestart"; then echo "${attn} Verwenden Sie try-restart ${done}(LSB)${attn} anstelle von condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Nicht laufen ist kein Fehler. fi # Status merken und ruhig sein rc_status ;; restart) ## Stoppen Sie den Dienst und unabhängig davon, ob er ## lief oder nicht, starten Sie ihn erneut. $0 stop $0 start # Status merken und ruhig sein rc_status ;; force-reload) ## Signalisieren Sie dem Dämon, seine Konfiguration neu zu laden. Die meisten Dämonen ## tun dies bei Signal 1 (SIGHUP). ## Wenn es dies nicht unterstützt, starten Sie neu. echo -n "Lade Dienst mydns neu " ## wenn es dies unterstützt: killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## Andernfalls: #$0 try-restart #rc_status ;; reload) ## Wie force-reload, aber wenn der Dämon nicht unterstützt ## Signalisierung, tun Sie nichts (!) # Wenn es Signalisierung unterstützt: echo -n "Lade Dienst mydns neu " killproc -HUP $MYDNS_BIN #touch /var/run/mydns.pid rc_status -v ## Andernfalls, wenn es kein Reload unterstützt: #rc_failed 3 #rc_status -v ;; status) echo -n "Überprüfen des Dienstes mydns " ## Überprüfen Sie den Status mit checkproc(8), wenn der Prozess läuft ## checkproc gibt mit Exit-Status 0 zurück. # Rückgabewert ist für den Statusbefehl leicht unterschiedlich: # 0 - Dienst aktiv und läuft # 1 - Dienst tot, aber /var/run/ pid Datei existiert # 2 - Dienst tot, aber /var/lock/ Sperrdatei existiert # 3 - Dienst läuft nicht (nicht verwendet) # 4 - Dienststatus unbekannt :-( # 5--199 reserviert (5--99 LSB, 100--149 distro, 150--199 appl.) # HINWEIS: checkproc gibt LSB-konforme Statuswerte zurück. checkproc $MYDNS_BIN # HINWEIS: rc_status weiß, dass wir dieses Init-Skript mit # "status"-Option aufgerufen haben und passt seine Nachrichten entsprechend an. rc_status -v ;; probe) ## Optional: Überprüfen Sie die Notwendigkeit eines Reloads, geben Sie aus, das ## Argument zu diesem Init-Skript, das für einen Reload erforderlich ist. ## Hinweis: probe ist (noch) nicht Teil von LSB (seit 1.9) test /etc/mydns/mydns.conf -nt /var/run/mydns.pid && echo reload ;; *) echo "Verwendung: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit |

Machen Sie das Init-Skript ausführbar…

chmod 755 /etc/init.d/mydns

… und erstellen Sie die Systemstart-Links für MyDNS:

chkconfig --add mydns

13 Installieren Sie vlogger und Webalizer

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*
yast2 -i webalizer perl-DateManip

14 Installieren Sie fail2ban

rpm -i http://download.opensuse.org/repositories/home:/kolbma/openSUSE_11.1/x86_64/fail2ban-0.8.4-2.1.x86_64.rpm

Warnungen wie warning: /var/tmp/rpm-xfer.SCm0TM: Header V3 DSA-Signatur: NOKEY, Schlüssel-ID 5b00c76e können ignoriert werden.

15 Installieren Sie jailkit

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

16 Synchronisieren Sie die Systemuhr

Wenn Sie die Systemuhr mit einem NTP-Server synchronisieren möchten, tun Sie Folgendes:

yast2 -i xntp

Fügen Sie dann Systemstart-Links für ntp hinzu und starten Sie ntp:

chkconfig --add ntp  
/etc/init.d/ntp start

17 ISPConfig 3

Laden Sie die aktuelle ISPConfig-Version herunter und installieren Sie sie. Der ISPConfig-Installer konfiguriert alle Dienste wie Postfix, SASL, Courier usw. für Sie. Eine manuelle Einrichtung, wie sie für ISPConfig 2 erforderlich war, ist nicht mehr notwendig.

cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.6.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.6.tar.gz
cd ispconfig3_install/install/

Starten Sie nun den Installationsprozess, indem Sie Folgendes ausführen:

php -q install.php

server1:/tmp/ispconfig3_install/install # php -q install.php

——————————————————————————–
_ _ _
|
/
| _ \/ \ / ()
| | |\ --.| |_/ /| |/ \/___ _ __ | |_ _ __ _ | | |–. \ / | | / \| ‘ \| | |/ ` |
| |_|\
/ / | | _/\ () | | | | | | | (| |
__
/_/| __/_/|| ||| ||\, |
/ |
|_
/
——————————————————————————–

>> Initiale Konfiguration

Betriebssystem: openSUSE 11.2 oder kompatibel

Folgendes sind einige Fragen zur primären Konfiguration, seien Sie also vorsichtig.
Standardwerte stehen in [Klammern] und können mit akzeptiert werden.
Tippen Sie “quit” (ohne Anführungszeichen), um den Installer zu stoppen.

Wählen Sie die Sprache (en,de) [en]: <– ENTER

Installationsmodus (standard, experte) [standard]: <– ENTER

Vollqualifizierter Hostname (FQDN) des Servers, z.B. server1.domain.tld [server1.example.com]: <– ENTER

MySQL-Server-Hostname [localhost]: <– ENTER

MySQL-Root-Benutzername [root]: <– ENTER

MySQL-Root-Passwort []: <– yourrootsqlpassword

MySQL-Datenbank zu erstellen [dbispconfig]: <– ENTER

MySQL-Zeichensatz [utf8]: <– ENTER

Generierung eines 2048-Bit-RSA-Privatschlüssels
…………………+++
…………..+++
Schreiben des neuen privaten Schlüssels in ‘smtpd.key’
—–
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.
Es gibt einige Felder, die Sie leer lassen können
Für einige Felder gibt es einen Standardwert,
Wenn Sie ‘.’ eingeben, bleibt das Feld leer.
—–
Ländercode (2 Buchstaben) [AU]: <– ENTER
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– ENTER
Ortsname (z.B. Stadt) []: <– ENTER
Organisationsname (z.B. Unternehmen) [Internet Widgits Pty Ltd]: <– ENTER
Name der organisatorischen Einheit (z.B. Abteilung) []: <– ENTER
Allgemeiner Name (z.B. IHR Name) []: <– ENTER
E-Mail-Adresse []: <– ENTER
Konfigurieren von Jailkit
Konfigurieren von SASL
Konfigurieren von PAM
Konfigurieren von Courier
Konfigurieren von Spamassassin
Konfigurieren von Amavisd
Konfigurieren von Getmail
Konfigurieren von Pureftpd
Konfigurieren von MyDNS
Konfigurieren von Apache
Konfigurieren von vlogger
Konfigurieren der Firewall
Installation von ISPConfig
ISPConfig-Port [8080]: <– ENTER

Konfigurieren des DBServers
Installation von Crontab
kein Crontab für root
kein Crontab für getmail
Neustart der Dienste …
Neustart des Dienstes MySQL
Herunterfahren des Dienstes MySQL ..fertig
Starten des Dienstes MySQL ..fertig
Herunterfahren des Maildienstes (Postfix)..fertig
Starten des Maildienstes (Postfix)..fertig
Herunterfahren des Dienstes saslauthd..fertig
Starten des Dienstes saslauthd..fertig
Warten auf den Prozess [1836], um zu beenden
Warten auf den Prozess [1836], um zu beenden
Warten auf den Prozess [1836], um zu beenden
Warten auf den Prozess [1836], um zu beenden
Daemon [1836] wurde durch SIGTERM beendet
Herunterfahren des Virus-Scanners (amavisd-new): ..fertig
Starten des Virus-Scanners (amavisd-new): ..fertig
Herunterfahren des Clam AntiVirus-Daemons ..fertig
Starten des Clam AntiVirus-Daemons ..fertig
Herunterfahren des Courier-Authentifizierungs-Daemons ..fertig
Starten des Courier-Authentifizierungs-Daemons ..fertig
Herunterfahren des Courier-IMAP ..fertig
Starten des Courier-IMAP ..fertig
Herunterfahren des Courier-IMAP (SSL)..fertig
Starten des Courier-IMAP (SSL) Zertifikat generieren…..fertig
Herunterfahren des Courier-POP3 ..fertig
Starten des Courier-POP3 ..fertig
Herunterfahren des Courier-POP3 (SSL)..fertig
Starten des Courier-POP3 (SSL) Zertifikat generieren…..fertig
Syntax OK
Herunterfahren von httpd2 (wartet darauf, dass alle Kinder beendet werden) ..fertig
Starten von httpd2 (prefork) ..fertig
Herunterfahren von pure-ftpd..fertig
Starten von pure-ftpd..fertig
Installation abgeschlossen.
server1:/tmp/ispconfig3_install/install # Erstellen Sie einen Symlink für phpMyAdmin: ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin Bereinigen Sie das /tmp-Verzeichnis: rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3.0.1.6.tar.gz Um sich beim ISPConfig-Kontrollpanel anzumelden, öffnen Sie diese URL in Ihrem Browser (ersetzen Sie die IP durch Ihre Einstellungen!): http://192.168.0.100:8080/ Die Standardanmeldung ist: Benutzer: admin
Passwort: admin #### 17.1 ISPConfig 3 Handbuch Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3 Handbuch herunterzuladen. Auf fast 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Kunden), erklärt, wie man ISPConfig 3 installiert und aktualisiert, enthält ein Referenzhandbuch 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 man seinen Server sicherer macht und enthält am Ende einen Abschnitt zur Fehlersuche. ### 18 Optional Installieren Sie einen webbasierten E-Mail-Client: rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.2/noarch/squirrelmail-1.4.19-4.1.noarch.rpm ln -s /srv/www/htdocs/squirrelmail /usr/local/ispconfig/interface/web/webmail ### 19 Deaktivieren Sie AppArmor AppArmor ist eine Sicherheitserweiterung von SUSE (ähnlich wie Fedores SELinux), die erweiterte Sicherheit bieten soll. Meiner Meinung nach benötigen Sie es nicht, um ein sicheres System zu konfigurieren, und es verursacht normalerweise mehr Probleme als Vorteile (denken Sie daran, nachdem Sie eine Woche mit Fehlersuche verbracht haben, weil ein Dienst nicht wie erwartet funktionierte, und dann herausfinden, dass alles in Ordnung war, nur AppArmor das Problem verursacht hat). Daher deaktiviere ich es (dies ist ein Muss, wenn Sie später ISPConfig installieren möchten). Wir können es so deaktivieren: /etc/init.d/boot.apparmor stop chkconfig -d boot.apparmor ### 20 Links - OpenSUSE: http://www.opensuse.org/ - ISPConfig: http://www.ispconfig.org/

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.