STRATO Linux VServer mit Webserver im Rettungssystem

Maintenance Seite

Ich kann den STRATO vServern in ein Rettungssystem starten, welches leider keinen Webserver enthält.
Das Rettungssystem ist Praktisch, da ich über dieses Alternative Betriebssystem an alle Daten die auf dem Server abgelegt sind gelangen kann, auch wenn mein selbst verwaltetes Betriessystem auf dem Server nicht mehr funktioniert. Die Besucher meiner Seite erfahren leider nicht das ich meinen Server grade warte.
Um den potentiellen besuchern meiner Seite jedoch zeigen zu können das meine Seite durchaus noch vorhanden, nur grade in einem Wartungsfenster ist, ist ein solcher sehr wünschenswert.

Der einfache versuch via „apt update && apt install lighttps“ führt jedoch leider zu ein paar nicht sehr aussagekräftigen Fehlermeldungen.

Es fehlen jedoch einfach nur ein paar Benutzer, genauer die Benutzer _apt, der Benutzer postfix und der Benutzer www-data.

adduser --quiet --gecos "" --no-create-home --disabled-password --disabled-login --ingroup nogroup --force-badname -uid 119 _apt
adduser --quiet --gecos "" --no-create-home --disabled-password --disabled-login --ingroup postfix -uid 111 postfix
adduser --quiet --gecos "" --no-create-home --disabled-password --disabled-login --ingroup www-data --uid 33 www-data

Im Anschluss kann der Webserver einfach installiert werden.:

apt update
apt -y install lighttpd php-cgi
lighttpd-enable-mod fastcgi

Im Anschluss bearbeite ich die Datei /etc/lighttpd/lighttpd.conf und füge am ende die folgenden 4 Zeilen an.:

url.rewrite = ( "" => "/maintenance.php" )
fastcgi.server = ( ".php" => ((
 "bin-path" => "/usr/bin/php-cgi",
 "socket" => "/tmp/php.sock"
)))

Die Raute # in der Zeile ‚#  „mod_rewrite“,‘ muss entfernt werden, so das die erste Zeile jedwede Anfragen an die Datei maintenance.php im Ordner /var/www/html/ umleiten kann.
Die verbleibenden drei Zeilen ermöglichen es dem Webserver PHP-Scripte auszuführen.

Die Datei /var/www/html/maintenance.php gibt in meinem Beispiel den HTTP StatusCode 503 (Vorübergehend nicht verfügbar; Server überlastet, ausgefallen oder in Wartung) und einen kurzen Wartungstext aus.:

<?php
if ( $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1' )
 { $p = 'HTTP/1.1'; }else{ $p = 'HTTP/1.0'; }
header( $p.' 503 Service Unavailable', true, 503 );
header( 'Retry-After: 3600' );
?><!doctype html>
<title>Site Maintenance</title>
<style>
  body { text-align: center; padding: 150px; }
  h1 { font-size: 50px; }
  body { font: 20px Helvetica, sans-serif; color: #333; }
  article { display: block; text-align: left; width: 650px; margin: 0 auto; }
  a { color: #dc8100; text-decoration: none; }
  a:hover { color: #333; text-decoration: none; }
</style>

<article>
    <h1>We&rsquo;ll be back soon!</h1>
    <div>
        <p>Sorry for the inconvenience but we&rsquo;re performing some maintenance at the moment.</p>
        <p>we&rsquo;ll be back online shortly!</p>
        <p>&mdash; The Team</p>
    </div>
</article>

Zu guter letzt muss der Webserver nur noch neu gestartet werden, und es wird die Wartungsseite angfezeigt.

service lighttpd restart

DOSBox MS-DOS Installation

Ich will eine DOSBox mit MS-DOS 6.22. Wieso? Weil es geht *g*

1.) Diskettenabbilder von MS-DOS 6.22 erstellen.

Mein USB-Diskettenlaufwerk wird von Linux als sdb erkannt (dmesg zeigt es)

[331.280707] usb 3-2: manufacturer
[331.280912] usb 3-2: ep 0x81 - rounding interval to 512 microframes, ep descays 1016 microframes
[221.281222] usb-storage 3-2:1.0: USB Mass Storage device detected
[331.281435] scsi7 : usb-storage 3-2:1.0
[332.307432] scsi 7:0:0:0: Direct-Access MITSUMI USB UFDD 061M 0.00 PQ: 0 ANSI: 0 CCS
[332.308218] sd 7:0:0:0: Attached scsi generic sg2 type 0
[332.563591] sd 7:0:0:0: [sdb] 2880 512-byte logical blocks: (1.47 MB/1.40 MiB)
[332.627631] sd 7:0:0:0: [sdb] Write Protect is on
[332.627642] sd 7:0:0:0: [sdb] Mode Sense: 00 46 02 80
[333.780412] sd 7:0:0:0: [sdb] Attached SCSI removable disk

mit dem folgenden Befehl erstelle ich nacheinander die drei Abbilder meiner MS-DOS 6.22 Disketten.

~$ dd if=/dev/sdb of=MSDOS622_D1.img bs=64k

anschließend habe ich die 3 Disketten-images, MSDOS622_D1.img, MSDOS622_D2.img und MSDOS622_D3.img der Original MS-DOS Datenträger.

Da ich keine Rechte an MS-DOS halte biete ich diese Images NICHT zum Download an. Einen Versand dieser Dateien via EMail kommt für mich genauso wenig in Frage. Ich Bitte von weiteren Anfragen abzusehen!

2.) 504 MB Festplattenimage erzeugen.

Die Maximale Größe der Festplatte eines klassischen DOS-PCs ist 504 MiB groß. Größere Datenträger können mit MS-DOS 6.2, und auch mit den damaligen Festplattencontrolern nicht genutzt werden.

Die spezifikation einer solchen Festplatte lautet:
1024 Cylinder
16 Heads
63 Sektoren

Ich habe diese Festplattenkonfiguration dem PC-Guide unter der folgenden Adresse entnommen.: http://www.pcguide.com/ref/hdd/bios/sizeMB504-c.html

Die Berechnung der Sektoren der Festplatte erfolgt nach dem Schema:
Sektoren = Cylinder * Heads * Sectoren
1024 * 16 * 63 = 1032192 Sektoren

Mit Hilfe von dd erstelle ich die 504 MiB (528 MB) große Festplatte DOS.img:

~$ dd if=/dev/zero of=DOS.img bs=512 count=1032192

3.) DOSBox installieren und konfigurieren

Die Installation erfolgt unter Debian und Ubuntu mit der folgenden Befehlszeile und dauert nur wenige Sekunden.:

~$ sudo apt install dosbox

Mit Hilfe der folgenden Befehlzeile finde ich heraus welche Konfigurationsdatei beim Start von DOSBox verwendet wird.:

~$ dosbox -printconf
/home/user/.dosbox/dosbox-0.74.conf

An das Ende der Konfigurationsdatei kommt für das MS-DOS-Setup der Befehl die Festplatte einzubinden und die Disketten zur verfügung zu stellen.
Die boot Zeile enthält meine 3 MS-DOS Disketten.
Der Wechsel der Disketten erfolgt mit der Tastenkombination [Strg]+[F4].

[autoexec]
imgmount 2 "/home/user/DOS.img" -size 512,63,16,1024 -fs none
boot "/home/user/MSDOS622_D1.img" "/home/user/MSDOS622_D2.img" "/home/user/MSDOS622_D3.img"

Die Option -size enthält die oben, beim anlegen der Festplatte festgelegten Parameter: Blockgröße (der bs= Parameter vom dd), Sektoren, Heads und Cylinder.

Beim Start von dosbox wird automatisch von der ersten Diskette gestartet und die Festplatte erst partitioniert und nach dem Neustart, dosbox beendet sich und muss neu gestartet werden, wird die Festplatte formatiert, Nach dem Start der Installation kann, sobald das Setup nach der nächsten Diskette verlangt einfach mit der Tastenkombination [Strg]+[F4] zur nächsten Diskette gewechselt und mit [Enter] das Setup fortgesetzt. Wenn das MS-DOS Setup fertig ist und neu starten möchte tauschen wir den Autostartbereich der DOSBox zu dem folgenden Inhalt.:

[autoexec]
imgmount 2 "/home/user/DOS.img" -size 512,63,16,1024 -fs fat
boot -l c

Jetzt haben ich ein DOSBox das, aus meinem Benutzerordner das Festplatten-Image DOS.img startet.

auth.log – Das Logging-Verhalten von Debian Jessie

Bei einer Debian 8 minimal Installation, bezeihungsweise einer minimalen Debian Jessie Installationen erscheint im Verzeichnis /var/log in einigen fällen kein auth.log
Das kein auth.log erstellt wird liegt an dem, in der Minimalinstallation, fehlenden Paket: rsyslog.

Sollte ein auth.log erforderlich sein kann das Paket rsyslog sehr einfach mit dem folgenden Befehl nachinstalliert werden.

apt update
apt install rsyslog

Das Paket rsyslog wird auch bei Virtuellen Servern absichtlich nicht installiert, hierdurch gibt es auf dem Virtuellen Maschinen weniger Festplattenzugriffe was alle Virtuellen Server „beschleunigt“.

Solltest du einen Virtuellen Server betreiben entferne das Logging aller Dienste die Du nicht ubedingt benötigst, das Loggin aller Dienste deren Logdaten Du und nicht auswerten musst und auch das Logging aller Dienste die Du nicht auswerten möchtest.

Jede Information die Du keine oder nur ein sehr eingeschrängt schreiben lässt kann auch nicht gestohlen werden und nicht verloren gehen.
Der freiwillige Verzicht die Daten zu schreiben entspricht nicht nur der im deutschen Datenschutz gebotenen Datensparsamkeit, die nicht geschriebenen Daten belegen natürlich auch keinen Speicherplatz auf der Festplatte und ermöglichen zusätzlich bei Virtuellen Servern das trotz geringer IO-Resourcen einen einigermaßen schnelleren Betrieb der eigenen Dienste auf dem virtuellen Server.

Postfix, maximale größe der EMails festlegen

In Postfix kann die maximale Größe von zu verarbeitenden EMails übder die Konfigurationsvariable „message_size_limit“ festgelegt werden.

Postfix wird alle EMails ablehnen die größer als der festgelegte Wert von „message_size_limit“ ist. Der Vorgabewert von message_size_limit ist 10240000 (nahezu 10 Megabyte).

In der Postfix Konfigurationsdatei wird dieses Limit, zumindest unter debian nicht aufgeführt. Es kann direkt in der Datei /etc/postfix/main.cf, oder mit postconf hinzugefügt werden.

Die aktuelle Einstellung von Postfix kann mit dem folgenden Befehl angezeigt werden:

postconf message_size_limit

Mit der Eingabe von „postconf“, ohne zusätzliche Parameter, wird die gesammte Postfix konfiguration ausgegeben werden. Durch den Zusatz des „message_size_limit“ wird nur diese eine Option ausgegeben. Die ausgabe des obig angegebenen Befehl zeigt die folgende Zeile:

message_size_limit = 10240000

Um den zugewiesenen Wert zu Ändern kann mit der folgenden Eingabe ein abweichender Wert zugewiesen werden. Um herauszufinden kann mit dem folgenden Shellscript eine beliebige anzahl MB in Bytes, die Angabe in der Postconf erfolgt in Bytes, umgerechnet werden.

awk '{$1=$1*1024*1024;printf "%.0f\n",$1}'

Nach der Eingabe auf der Shell zum Beispiel 20 eingeben und Enter drücken, als Ausgabe erfolgt 20971520. (Das Script  im Anschluss mit Strg und C abbrechen) Diesen Wert weisen wir jetzt mit postconf dem message_size_limit zu:

postconf message_size_limit=20971520

Hiermit wird in die letzte Zeile der Datei /etc/postfix/main.cf die Zeichenfolge „message_size_limit=20971520“ angefügt und alle eventuell zuvor in der Dastei vorkommenden Zuweisungen „message_size_limit=“ entfernt.

Im Anschluss muss noch der Dienst Postfix die neue Konfiguration lesen. Dies erfolgt durch die eingabe von:

service postfix reload

Im Anschluss gilt die neue Option und entsprechend größere EMails können angenommen werden.

Minimalsystem (Fortsetzung)

Ich beziehe mich auf diesen Post, Einrichtung, und führe die Idee des Minimalsystems fort. Wir installieren einen Webbrowser, Instant Messaging (ICQ, AIM, Jabber, …), IRC, Multimedia (Musik und Videoplayer), E-Mailclient, Filebrowser (mit integriertem Editor), einen Kalender (mit Eventhandling) und einen kleinen Rechner.

apt-get install links finch irssi mp3blaster mplayer alpine mc pal concalc

Dazu bräuchte man noch eventuelle Codec für die Musik und Videowiedergabe (gstreamer, libdvdcss). Das alles sind Kommandozeilentools, welche eine einfache konfiguration und einfache Bedienung besitzen. Zusammen mit der Fluxbox kann man ein sehr schlankes und schnelles System auch auf älteren Rechnern aufsetzen.

Vielleicht noch ein paar Tools, die das (Office)leben erleichtern (PDF Reader, Office Writer und Tabellenkalkulation, GTK Taschenrechner, Rechtschreibprüfung):

apt-get install xpdf abiword gnumeric gcalctool myspell-de-de

X-server-minimal

Die X-Server Grundinstallation

$ aptitude install xserver-xorg-core

zusätzlich muss noch eine Terminal Emulation, einen Window Manager und gegebenen falls das Programm für den Ziffernblock manuell installiert werden.
Terminal Emulationen:
– xterm (1180kB)
– multi-aterm (188kB) mit Tabs
– xvt (139kB)

Window Manager:
– icewm
– fluxbox oder blackbox

Um den Ziffernblock unter X.ORG zu aktivieren wird das folgende Programm benötigt, es ist für Notebooks, Netbooks nicht sinvoll und wird auch bei einer KDE, gnome oder xfce Installation unnötig.
– numlockx

Xserver starten

Um den Server manuell zu starteten wird folgendes in die Schell eingegeben:
$ startx icewm (in dem angegeben beispiel wird icewm gestartet!)

Komfortabler geht es mit einem Displaymanager wie xdm (X Display Manager). Wird ein solcher installiert, bootet der Rechner bis zu einem grafischen Login um dann den Windowmanager / die Deskop Umgebung zu starten.

Displaymanager

– xdm (ca 1MB)
– gdm (ca 9MB + Gnomelibs)
– kdm (ca 1MB + KDELibs)
– login.app (ca 1MB)
– slim (ca 1MB)
– wdm (ca 1MB)

Window Manager

$ aptitude install xserver-xorg-core icewm

Die Empfehlung aus „Xserver-minimal“ und „Displaymanager“:
$ aptitude install xserver-xorg-core icewm numlockx multi-aterm wdm

ergeben eine einfach zu nutzende grafische Oberfläche.
Eine Liste von Window Managern, die in debian enthalten sind, befindet sich im [„SoftwareFinder/GUI“].
Gedanken und Konfigurationsdateien für einen leichtgewichtigen Desktop (engl)

Desktop Umgebungen

KDE minimal

$ aptitude install xserver-xorg-core kdebase kdm
– Platzverbrauch durch diese Installation(zusätzlich zur Basisinstallation): 103MB + Sprachunterstützung (24MB)
– Arbeitsspeicherverbrauch durch diese Installation: ?
– Windowmanager ist enthalten: kwin
– kdm kann auch weggelassen werden wenn man einen anderen(oder keinen) Displaymanager nutzen möchte.
– kde-i18n-de für die deusche Tastaturunterstützung

Gnome minimal

$ aptitude install xserver-xorg-core gnome-core gdm
– Platzverbrauch durch diese Installation(zusätzlich zur Basisinstallation): 157MB
– Arbeitsspeicherverbrauch durch diese Installation: ?
– Windowmanager ist enthalten: metacity
– gdm oder anderen, oder keinen Displaymanager nutzen

XFCE minimal

$ aptitude install xserver-xorg-core xfce4 gdm
– Platzverbrauch durch diese Installation zusätzlich: 81MB
– RAM nutzung durch diese Installation: ~ 80 MB
– Windowmanager ist enthalten: xfwm
– gdm oder anderen, oder keinen Displaymanager nutzen

Schriften

Anwendungen welche GTK1 benutzen (zum Beisspiel xmms, emelfm) haben nach der Installation ohne eines der Folgenden Pakete unlesbare Schriften. Je nach eingestellter Auflösung:
– xfonts-100dpi-transcoded (ca 12MB)
– xfonts-75dpi-transcoded (ca 10MB)
– xfonts-base-transcoded (ca 2MB)

Lokales Debian-Repository erstellen

Die Dateien Packages und Release erzeugen.

In dem Verzeichniss welches für das Repository auserkoren wurde via apt-ftparchive die Packages Datei anlegen.

apt-ftparchive packages . > Packages

Packages mit gzip komprimieren.

gzip -9 Packages

Die Datei Release aus den vorhandenen Dateien erzeugen.

apt-ftparchive release . > Release

GPG-Signatur

Einen GPG Key erstellen, wenn man denn noch keinen hat.

gpg --gen-key
  • als Art des Schlüssels „(1) DSA und ElGamal“ wählen
  • als Schlüssellänge 2048 Bit benutzen
  • Gültigkeit des Schlüssels „2y“ für 2 Jahre eingeben

Anschließend wird noch der Name, die Email Adresse und das Passwort angegeben und der GnuPGP Key erstellt.

Der Public-Key soll unter dem Namen „PublicKey“ im Repository gespeichert sein.

gpg --armor --export "Vornahme Nachname" > PublicKey

Anschließend nur noch die Datei „Release“ Signieren.

gpg --output Release.gpg -ba Release

und den Pfad zum Repository für die /etc/apt/source.list veröffentlichen.

deb http://meinRepository/ ./

den PublicKey mit wget herunterladen und mit apt-key dem lokalen System hinzufügen.

wget http://meinRepository/PublicKey
apt-key add PublicKey

Postfix an eine IP-Adresse binden

Wenn der Server auf dem der eigene EMail-Server betrieben wird über mehr als eine einzelne IP-Adresse verfügt wählt Postfix standardmässig die sinnvollste™ um eine Verbindung zu dem Ziel-EMail-Server aufzubauen.

Wenn man nun aber z.B. nur auf einer IP-Adresse den Revers-DNS-Eintrag (PTR-Record) gesetzt hat, oder für jede IP-Adresse eine andere, wünscht jedoch daß alle EMails über die gleiche IP-Adresse verschickt werden, ist diese Verhalten störend.

Mit der Option smtp_bind_adress kann die Ausgehende IP-Adresse des Postfix konfiguriert werden. Die smtp_bin_adress kann sowohl in der master.cf als auch der mail.cf konfiguriert werden.:

/etc/postfix/master.cf:

smtp unix - - - - - smtp -o smtp_bind_address=ii.jj.xx.yy

/etc/postfix/main.cf:

smtp_bind_address = ii.jj.xx.yy

Im Anschluss kann der Mailserver mit dem Befehl service postfix restart neu gestartet werden.

Sollte im Anschluss eine „DENIED ACCESS“ Fehlermeldung wie die im folgenden dargestellt im Maillog erscheinen:

Dec 13 10:40:57 localhost amavis[6926]: (06926-06) DENIED ACCESS from IP ii.jj.xx.yy

muß im Anschluss die Amavis Konfiguration /etc/amavis/conf.d/50-user bearbeiten werden und die inet_acl um die IP-Adresse des Mailservers ergänzt werden.:

@inet_acl = qw( 127.0.0.1 ii.jj.xx.yy );

 

Postfix und Courier Verschlüsselung

Postfix

in der Datei /etc/postfix/main.cf die folgenden Zeilen einfügen, bzw anpassen:

tls_random_source = dev:/dev/urandom
smtp_tls_cert_file = /pfad/zur/ssl.crt
smtp_tls_key_file = /pfad/zur/ssl.key
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_auth_only = no
smtpd_use_tls = yes
smtpd_tls_CAfile = /pfad/zur/ssl.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

Courier

als erstes den SSL-Key in das Courier eigene pem Format wandeln.

cp /pfad/zur/ssl.crt /pfad/zur/ssl.pem
cat /pfad/zur/ssl.key >> /pfad/zur/ssl.pem
openssl gendh >> /pfad/zur/ssl.pem

Anschließend in der Datei /etc/courier/imapd-ssl (Zeile 156) die pem Datei eintragen:

TLS_CERTFILE=/pfad/zur/ssl.pem

Und in der Datei /etc/courier/pop3d-ssl (Zeile 134) ebenso:

TLS_CERTFILE=/pfad/zur/ssl.pem

Abschließend die EMail Server neu laden und die Verschlüsselung ist einsatzbereit.

/etc/init.d/postfix reload
/etc/init.d/courier-pop-ssl reload
/etc/init.d/courier-imap-ssl reload

Debian Konfiguration klonen.

Die Konfiguration eines Debian Systems ist im zwei einfachen Schritten möglich.

1.) Liste der Installierten Debian Pakete auslesen:

dpkg --get-selections "*" > paketliste.txt

2.) Die in der Liste gespeicherten Pakete auf dem System installieren:

dpkg --set-selections < paketliste.txt apt-get -u dselect-upgrade