Bonding

IMG_20150805_162906-cut

Zwischenstadium beim Einrichten. Ein Upllink zu BelWue und der erste 4-er-Bond/Trunk zum Server.

Mit vier Netzwerkkabeln vom Server zum Core-Switch und vom dem aus weiter mit jeweils 4 Kabeln zum nächsten …

apt-get install ifenslave-2.6 net-tools ethtool

Die /etc/network/interfaces dazu

# The loopback network interface
auto lo
iface lo inet loopback

# Erst alle echten Interfaces hochziehen
auto eth0
iface eth0 inet manual
        bond-master bond0

auto eth1
iface eth1 inet manual
        bond-master bond0

auto eth2
iface eth2 inet manual
        bond-master bond0

auto eth3
iface eth3 inet manual
        bond-master bond0

# Trunk0 / Bond0
auto bond0
iface bond0 inet manual
        bond-slaves eth0 eth1 eth2 eth3
        bond-mode 0

# VLAN   FARBE   INHALT
# 100    BLACK   KABEL BW / Fritz BOX
# 101    GREY    Infrastruktur (Switches etc.)
# 102    RED     BELWUE Netze
# 20     BROWN   VWNetz
# 40     GREEN   paedagogisches Netz
# 41     BLUE    WLAN public (päd. Netz)
# 50     PINK    WLAN lehrer

# The LINK to BELWUE
auto bond0.102
iface bond0.102 inet static
        address xxx.xx.xx.194
        netmask 255.255.255.240
        network xxx.xx.xx.192
        broadcast xxx.xx.xx.207
        gateway xxx.xx.xx.193
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers xxx.xx.xx.4
        dns-search domain.tld
        # iptables vorbereiten - evtl. unnoetig
        up sysctl -w net.ipv4.ip_forward=1
        up modprobe ip_tables iptable_nat
        # Portweiterleitung von K9393 auf B443 fuer OMD
        up iptables -t nat -A PREROUTING -p tcp -i bond0.102 --dport 9393 -j DNAT --to-destination 192.168.0.2:443
        up iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 9393 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


auto bond0.101
iface bond0.101 inet static
        vlan-raw-device bond0
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
        dns-search grey
        # add NAT / Masquerade for grey network
        up sysctl -w net.ipv4.ip_forward=1
        up modprobe ip_tables iptable_nat
        up iptables -A FORWARD -o bond0.102 -i bond0.101 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
        up iptables -A FORWARD -o bond0.102 -i bond0.101 -s 192.168.0.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
        up iptables -t nat -A POSTROUTING -o bond0.102  -j MASQUERADE

auto bond0.40
iface bond0.40 inet manual
        vlan-raw-device bond0
        up ifconfig $IFACE up
        down ifconfig $IFACE down

auto bond0.41
iface bond0.41 inet manual
        vlan-raw-device bond0
        up ifconfig $IFACE up
        down ifconfig $IFACE down

auto bond0.50
iface bond0.50 inet manual
        vlan-raw-device bond0
        up ifconfig $IFACE up
        down ifconfig $IFACE down

auto bond0.20
iface bond0.20 inet manual
        vlan-raw-device bond0
        up ifconfig $IFACE up
        down ifconfig $IFACE down

Im Switch die Trunks einrichten und die VLANs den Trunks zuweisen. Reboot. Tut.

IMG_20150810_165043-2

Die zentralen Switches sind nun verkabelt und auch der Neubau hängt mit immerhin 2 Glasfasterleitungen an der Strippe.

Zuerst hatten wir Mode 4 eingerichtet. Die Geschwindigkeit war aber enttäuschend. Mit Round Robin / Mode 0 geht jetzt aber heftig mehr durch die Leitungen, wenn auch nicht das 4-fache. Außerdem: Einzelne Räume bleiben etwas magerer angebunden – z.B. der Neubau, der nun mit „nur“ 2 Glasfaserleitungen am Core-Switch hängt.

Moodle 2.9.x Teil I

Moodle 2.9.x braucht als DB-Engine zwingend InnoDB und läuft nicht mehr mit MyISAM. Im Verlauf des Updates meldet sich deswegen Moodle mit der Meldung

unsupported_db_storage_engine

Erster Schritt ist die Kontrolle, ob die eigene mySQL DB InnoDB überhaupt unterstützt. Hierzu z.B. in phpmyadmin anmelden und dort auf dem Reiter SQL

SHOW ENGINES

absetzen [1]. Meist zeigt die Ausgabe das hier:

showengines

und alles ist gut. Wenn nicht, dann hat man richtig Arbeit an der Backe und muss zuerst die MySQL Installation auf Vordermann bringen.

Dann im Backend von Moodle (als Administrator) die URL wie folgt anpassen:

https://www.meinmoodle.tld/admin/tool/innodb/index.php

und der Migrationsprozess rattert los. Das kann dauern. Lange.

Moodle schimpft dann evtl. über Tabellen im Antelope Format, statt des gewünschten Barracuda:

unsupported_db_table_row_format

Hier ist man nun auf die Shell gezwungen, wenn ich das richtig sehe. DB-Experten mögen mich korrigieren.

Erst einmal nachschauen, welche Tabellen überhaupt bearbeitet werden müssen. Das geht mit einem Script, das Moodle mitbringt und das über dem Moodle-Stammverzeichnis ausgeführt werden muss:

sudo -u www-data /usr/bin/php moodle/admin/cli/mysql_compressed_rows.php --list

Bei mir ergab das

mdl_data                        Compact     (needs fixing)
mdl_data_fields                 Compact     (needs fixing)
mdl_enrol_paypal                Compact     (needs fixing)
mdl_lti                         Compact     (needs fixing)
mdl_user                        Compact     (needs fixing)
mdl_user_info_field             Compact     (needs fixing)

was sich mit Hilfe des oben genannten Scripts durch den Schalter –fix jedoch nicht reparieren lässt, weil man hierzu mehr Rechte innerhalb der MySQL-DB benötigt, als bei mir hier der Apache hat.

Moodle selbst läuft auch unter Version 2.9.x noch mit Antelope – das Upgrade kann also stattfinden. Da ich die Nebenwirkungen von Barracuda schlecht abschätzen kann, wenn ich mit der DB-Kompression spiele (da hängen auch noch WordPresse und Typos mit dran), bespreche ich mich mal lieber zuerst mit Frank. Mal sehen, was der meint – und dann geht es weiter.

 

 

Eins an der Waffel

kruppsrezepte

Krups hat gelinde gesagt eines an der Waffel: Da verticken die ein sehr brauchbares Waffeleisen zusammen mit einer unsäglich schlechten Rezept-CD.

Die CD ist nur für Windows und MacOS gedacht / gemacht. Mit Hilfe von wine bekommt man /DE/Rezepte.exe zwar auch unter Linux zum Laufen – allerdings erklärt das nicht, wie Krups überhaupt auf so einen Quatsch gekommen ist: Flash liefert für die Rezeptesammlung lediglich eine Umblätterfunktion, die leidlich nett aussieht und heute auch in HTML+CSS+JavaScript zu machen wäre. So oder so: Wer will in der Küche mit seinem Laptop werkeln? Wenn, dann befindet sich dort vielleicht ein Tablet und das hat kein CD-Laufwerk.

Die Druckfunktion der Flash-App für Einzelrezepte ist ebenfalls unbrauchbar: Sie erstellt Screenshots der Flashseiten. Zum Glück muss man sich nicht alle Rezepte einzeln per Screenshot-Export holen, sondern kann sich auch ein komplettes PDF aus der Flashoberfläche heraus exportieren. Um Flash herum kommt man nicht. Im Gesamt-PDF ist der Text dann auch als solcher enthalten – nicht nur Bilder. Allerdings: Man erhält auch hier ein PDF mit weißem Text auf braun-grauem Hintergrund, so dass der Spaß beim Drucken schnell vergeht. Offensichtlich arbeitet Krups mit den Herstellern von Tonern und Tinten zusammen.

einsanderwaffel

Überhaupt. Unter Windows würde die CD versuchen, so die Einstellungen in der autorun.inf, die Rezeptsammlung zu installieren, was auch wieder keiner, dem Systemsicherheit ein wenig wichtig ist, wollen kann. Da wundert es mich wenig, dass ClamAV einen PUA.Win32.Packer.Upx-28 in der setup.exe meldet. Auch wenn die Datei selbst harmlos ist (eine Suche bei virustotal zeigt 0 Schädlinge), ist das ein weiteres Indiz für die Strategie „Hauptsache es tut auf dem Rechner des Chefs der Marketingabteilung, der von Technik Gott sei Dank keine Ahnung hat“.

Und hier enden die Seltsamkeiten nicht: Auf der CD befindet sich im Ordner /AutoPlay/Videos eine Datei Magnolia.mpg in der ein Haus auf Englisch beworben wird. Ein Haus? Auf einer Waffel-Rezepte-CD? Wo haben die das Ding nur her?

Die Waffeleisen wurde vom ETM-Testmagazin mit der Note „sehr gut“ ausgezeichnet und erhielt 93,8% aller möglichen Punkte. Einen großen Anteil hieran wird die Dokumentation bzw. Beilage zum Waffeleisen nicht gehabt haben – oder ETM ist bei derartigen Dingen unkritisch. Die bei Testberichte verlinkten Amazon-Kommentare sind hier ebenfalls blind – oder beziehen sich offensichtlich auf eine ältere Version der ausgelieferten Ware, weil stellenweise noch von Rezepte-PDFs die Rede ist, was eindeutig die bessere Wahl wäre.

Im Ergebnis: Die Rezepte-CD ist voll mit sinnlosem Chichi und obendrein technisch grottenschlecht gemacht. Krups gibt hier kein gutes Bild ab.

Jetzt hoffe ich, dass bei Krups die Ingenieure mehr im Hirn haben als das Personal in der Marketing- und Verpackungsabteilung, denn die Idee des Waffeleisens ist an und für sich gut: Die Pfannen können einfach entfernt und gespült werden und für eine gleichmäßige Verteilung des Teigs sorgt ein händisch zu bedienender Drehmechanismus. Dazu kommt ein ebenfalls einfach zu spülender weil entfernbarer Teigtropfenfänger, der darüber hinaus magnetisch am Gehäuse befestigt werden kann, so dass dieser im Schrank am senkrecht gestellten Eisen bleibt.

Etwas kritisch bin ich, was das Material der Pfannen angeht. Diese sind aus Aluminium und können somit kaum Wärme speichern. Eisen wäre besser, Gußeisen ideal. Auch da ist noch Raum nach oben, bis man das hier elektrisch bekommt.

XMPP continued

Der XMPP Server unter Prosody läuft einfach. Etwas hakelig erwies sich die Konfiguration der Chaträume, die meinem Eindruck nach auch von den Fähigkeiten der mit dem Server verbundenen Clients abhängig ist: deren Zusammenspiel mit Prosody erzeugt einige Inkonsistenzen. Bei den folgenden Einstellungen für Prosody

# /etc/prosody/prosody.cfg.lua
Component "blabla.domain.tld" "muc"
         restrict_room_creation = "local"
         max_history_messages = 20

erlaubte es mir Conversations nicht, einen Chatraum einzurichten. Leider klappt das auch nicht mit

restrict_room_creation = true

das ja eigentlich das Recht zur Raumerstellung auf die Admins beschränken sollte. Das funktionierte bei meinen Versuchen ein einziges mal – danach dann nicht mehr. Warum, war den Logs für mich nicht zu entnehmen. Da stand

Out of connection options, can't connect to blabla
Sending error replies for 2 queued stanzas because of failed outgoing connection to blabla

(blabla steht hier für den gewählten Raumnamen) aber ich googlete mich in die Ecke ohne schlau zu werden. Ich stellte deswegen auf

restrict_room_creation = false

um und überwache zur Sicherheit das Verzeichnis mit den Raumdefinitionen, auf dass ich mitbekomme, was mein Server so alles hostet. Diese liegen hier:

/var/lib/prosody/blabla%2edomain%2etld/config/

Eine weitere Hürde auf dem Weg zu eigenen MUCs war, dass mein Zertifikat für den Server nur auf domain.tld und www.domain.tld läuft. Der Standard für MUCs scheint aber conference.domain.tld zu sein. Ich hätte mir demnach ein extra Zertifikat besorgen oder richtig Geld in die Hand nehmen müssen, was mir schlicht zu blöd war. Startssl muss reichen. Also sind die Chaträume nun eben unter www zu finden. Für die eigenen Bedürfnisse geht das.

Überhaupt: Die Clients.

Meine Erfahrungen beschränken sich auf xabber, tigase, yaxim und conversations. Von diesen beherrscht nur conversations in Zusammenspiel mit Prosody den (fast) reibungslosen Versand von Dateien und Bildern, den Austausch von OTR-verschlüsselten Nachrichten sowie nun auch die Einrichtung und Verwaltung (privat / öffentlich, Einladungen verschicken und annehmen) von Räumen.

Screenshot_2015-06-04-09-11-42

Beim Versand von Bildern und Dateien mit Conversations / Prosody muss man allerdings darauf achten, dass die Beteiligten gegenseitig ihren Online-Status sehen dürfen und auch beide online sind (grüner send / camera button) – sonst fällt der Prozess kommentarlos auf die Nase.

Eine Option zur Zwischenspeicherung von Dateien und Bildern auf dem Server habe ich in Prosody nicht gefunden und dafür scheint es auch kein Modul zu geben. Das Modul mod_storage_internal kann nur mit Text umgehen und auch mod_offline behandelt lediglich Text. Ich muss mir mal mod_storage_sql ansehen. Evtl geht ja da was (auch wenn die Beschreibung der DB-Felder für mich nicht so aussieht).

Dazu kommt: Verschickt man über Conversations dickere Dateien (getestet habe ich mit bis zu 16MB), dann fällt auch dies gelegentlich auf die Nase, obwohl sich die Beteiligten gegenseitig sehen. Hier scheint das Zusammenspiel zwischen Conversations und Cyanogenmod (Energieeinstellungen) eine Fehlerquelle zu sein: schaltet sich der Bildschirm ab, dann bricht häufig auch die Dateiübertragung zusammen.

Insgesamt betrachtet: Die grundlegenden Dinge funktionieren nun – bei vielen Details ist noch Luft nach oben.

De B ian

Was ich auch an einem Debian 7 mit Apache 2.2 zu drehen versuche, mehr als ein B hole ich bei SSLLabs nicht raus. Apache 2.2 kennt

SSLOpenSSLConfCmd

nicht und damit scheint man am Ende.

Wer einen moderneren Apachen fährt, dem sollte ein

SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder  on
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

zumindest nicht nur meiner Denke nach weiterhelfen.

Unter Ubuntu 14.04 mit Apache 2.4 reicht auch das

SSLHonorCipherOrder on
SSLProtocol All -SSLv3
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

meinen Versuchen nach für ein A Rating, sofern die Schlüssel lang genug sind.

Es ist ein Gewürge …

XMPP

Ich habe meine Metadaten gerne unter Kontrolle und mir deswegen einen XMPP Server unter Prosody gegönnt. Hier einige Notizen rund um die Installation.

Basis

Prosody Paketquellen einbinden um von der trägen Paketverwaltung in den Ubuntu Repos unabhängig zu werden:

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list

Den Key der Paketquelle holen und in APT werfen:

wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
sudo apt-get update

Prosody installieren:

apt-get install prosody

Einstellungen für den Benutzer prosody in /etc/passwd kontrollieren, der nur /bin/false als Shell erhalten darf:

prosody:x:113:121:Prosody XMPP Server,,,:/var/lib/prosody:/bin/false

Prosody Konfiguration anpassen – unter Lua ist ein doppeltes Minus ein Kommentarzeichen:

vi /etc/prosody/prosody.cfg.lua

Die Konfigurationsdatei ist gut strukturiert und weitgehend selbsterklärend, so dass beim Lesen kaum Fragen offen bleiben. Im Zweifel alle Restfragen über die sauber strukturierte Dokumentation bei https://prosody.im klären.

In der Konfiguration

  1. den Admin für den XMPP Server festlegen
  2. die Sektion Module durchsehen und z.B. version sowie uptime deaktivieren, damit wir nach Außen hin nicht gleich alle Angriffspunkte verraten.

Ebenfalls kontrollieren, ob Registrierungen über Clients abgelehnt werden. Das scheint nötig zu sein, damit man nicht mit Konten zugespamt wird:

allow_registration = false;

Wir wollen die Verbindung zwischen Client und Server Zwangsverschlüsseln:

c2s_require_encryption = true

Das geht im Prinzip auch für s2s (Server to Server) Verbindungen. Hier liegt auch der Grund, warum wir dringend OTR Verschlüsselung haben wollen, wenn wir nicht auf der eigenen Domain chatten.

Die Passwörter der Benutzer verschlüsselt speichern, auch wenn die Nebenwirkung ist, dass manche Clients länger brauchen, um sich anzumelden:

authentication = "internal_hashed"

SSL Key einbinden. Hierbei für Zwischenzertifikate ein PEM basteln wie für Dovecot und Freunde ebenfalls üblich.

ssl = {
        key = "/etc/prosody/certs/domain.key";
        certificate = "/etc/prosody/certs/domain.pem";
}

Siehe zu intermediären Zertifikaten auch: https://prosody.im/doc/certificates?s[]=pem#certificate_chains

Unser Zertifikatsspeicher für Prosody verwendet schlicht Symlinks, um sich die Arbeit einfacher zu machen, wenn Zertifikate erneuert werden:

ls -la /etc/prosody/certs/
# Zeigt dann:
domain.key -> /etc/path/to/certs/ssl/domain.tld/domain.key
domain.pem -> /etc/path/to/certs/ssl/mailserver/domain.pem

Die Hosts einrichten:

VirtualHost "xmppserver.tld"

-- enabled = false -- Remove this line to enable this host
ssl = {
              key = "/etc/prosody/certs/domain.key";
              certificate = "/etc/prosody/certs/domain.pem";
      }

Prosody neu starten:

sudo service prosody restart

Nach Fehlern suchen:

tail -f /var/log/prosody/prosody.err

Einen Fehler finden und wohl erst einmal schlicht hinnehmen:

The version of LuaExpat on your system does not support stanza size limits, which may leave servers on untrusted networks (e.g. the internet) vulnerable to denial-of-service attacks. You should upgrade to LuaExpat 1.3.0 or higher as soon as possible. See http://prosody.im/doc/depends#luaexpat for more information.

Siehe hierzu auch https://prosody.im/doc/depends#luaexpat und den Hinweis, dass man in diesem Fall auf compression verzichten sollte (das ist der Default).

Die Benutzer anlegen – den oben eingetragenen Admin hierbei nicht vergessen:

prosodyctl adduser admin@xmppserver.tld

Jetzt mit den ersten Clients eine Verbindung aufbauen und den Verbindungen zusehen, wie sie reinkommen:

tail -f /var/log/prosody/prosody.log

Einen Blick in den Benutzerkontenbereich werfen:

ls -la /var/lib/prosody/xmppserver.tld/accounts

Dort nachsehen, ob die *.dat Dateien auch wirklich nur verschlüsselte Passwörter enthalten.

Am Ende den gesamten Server auf den Prüfstand stellen: https://xmpp.net/

Sicherheit

Siehe zum folgenden Abschnitt: https://code.google.com/p/prosody-modules/wiki/mod_log_auth und auch https://jabber.lqdn.fr/securing-our-jabber-server-with-fail2ban-securisation-du-serveur-jabber-avec-fail2ban/

Im Modules Verzeichnis von Prosody ein weiteres Modul hinterlegen:

# /usr/lib/prosody/modules
wget http://prosody-modules.googlecode.com/hg/mod_log_auth/mod_log_auth.lua

Das Modul umbenennen, damit es läuft:

mv mod_log_auth.lua mod_auth_log.lua

Das Modul in der Konfiguration einschalten

# /etc/prosody/prosody.cfg.lua
"auth_log" -- Anbindung fuer fail2ban http://prosody-modules.googlecode.com/hg/mod_log_auth/mod_log_auth.lua

Prosody neu starten und kontrollieren, ob nun die Connects mitgeschrieben werden:

tail -f /var/log/syslog
tail -f /var/log/prosody/prosody.log

Einen Filter für fail2ban anlegen:

vi /etc/fail2ban/filter.d/prosody-auth.conf

Inhalt:

# Fail2Ban configuration file for prosody authentication
[Definition]
failregex = Failed authentication attempt \(not-authorized\) from IP: <HOST>
ignoreregex =

In der jail.local hinterlegen:

# XMPP
[prosody-auth]
enabled  = true
port     = 5223
filter   = prosody-auth
logpath  = /var/log/prosody/*.log
maxretry = 10

Die Dienste neu starten:

sudo service prosody restart
sudo service fail2ban restart

In Check_MK die Service discovery für den XMPP-Server-Host neu anschubsen, damit man auch dort sieht, was passiert.

Die nächsten Schritte: Für meine Schule muss das auch noch eingerichtet werden – dann allerdings mit LDAPs Anbindung, damit es jeder gleich nutzen kann und die Benutzerverwaltung einfacher wird.

Tunnelbau

Die OMD steht in der Schule hinter der Dom0, die für diesen Rechner gleichzeitig das Gateway ins Netz ist:

cat /proc/sys/net/ipv4/conf/eth0/forwarding 
cat /proc/sys/net/ipv4/conf/eth0/forwarding

Die Ausgabe muss jeweils 1 lauten.

Zwei iptables Regeln sorgen dafür, dass die Ports und der Traffic zur OMD durchgereicht werden:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9393 -j DNAT --to-destination 192.168.0.2:443
iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 9393 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Ein Aufruf von https://domnullundgateway.tld:9393/checkmk/ sorgt so dafür, dass Anfragen an die OMD, die intern unter https://192.168.0.2 zu erreichen ist, weiter geleitet werden.

Damit man diese Regeln nicht immer wieder neu setzen muss, stehen sie in /etc/network/interfaces am Ende der Konfiguration der Netzwerkkarte eth0 jeweils nach einem up.

Warmtal

IMG_20150425_164422

Im Warmtal bei Langenenslingen befindet sich der Hohle Fels. Da wollte ich mal vorbei schauen, in der Hoffnung, hier eine der Selemannsküche vergleichbare Formation zu finden. War aber nix.

IMG_20150425_165852

Direkt im Warmtal liegt die Höhle nicht, sondern in einem kleinen Seitental und dort hinter viel Gebüsch verborgen.

IMG_20150425_170008

Und so richtig spannend ist sie auch nicht. Der Eingang ist evtl. 1,5m hoch und 4m breit. Von dort aus geht aus ca. 3m weit in eine schmucklose Halle, an deren Ende Verzweifelte versuchten, ein wenig mehr Länge mit einem Spaten zu gewinnen.

https://www.openstreetmap.org/#map=19/48.17040/9.34681

Wer länger graben würde, würde sicherlich noch ein wenig mehr Hohlraum finden – aber warum sich hier die Mühe machen?

Ich hab das Löchlein nun in OSM verortet und noch ein paar Wege dazu gepackt, ein paar andere der Realität angepasst und ein Naturschutzgebiet eingezeichnet, bei dem es wohl um Pflanzen auf extrem mageren Böden geht.

Arch Dovevot Postfix

Auf allen meinen Laptops schleppe ich eine Kopie des lokalen Mailservers meiner Workstation mit mir herum – inzwischen eine Mail-Sammlung die rund 7 Jahre zurück reicht und mehrere GB umfasst. Hier einige Notizen zur Installation von Dovecot und Postfix unter Arch für die ausschließlich lokale Nutzung. Sicherheit ist nur dadurch gegeben, dass dieser Mailserver von Außen nicht zu erreichen ist – auch weil noch eine Firewall die Zugriffe blockiert.

Die aktiven Zeilen in der /etc/postfix/main.cf

compatibility_level = 2
queue_directory = /var/spool/postfix
command_directory = /usr/bin
daemon_directory = /usr/lib/postfix/bin
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = localhost.localdomain
mydomain = localdomain
myorigin = $mydomain
inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/bin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
inet_protocols = ipv4
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Die aktiven Zeilen in der /etc/dovecot/dovecot.conf

ssl = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:~/Maildir
mail_privileged_group = mail
auth default {
      mechanisms = plain login
      passdb pam {
      }
      userdb passwd {
      }
      socket listen {
        client {
          # Assuming the default Postfix $queue_directory setting
          path = /var/spool/postfix/private/auth
          mode = 0660
          # Assuming the default Postfix user and group
          user = postfix
          group = postfix
        }
        # deliver and some other programs need also auth-master:
        #master {
        #  path = /var/run/dovecot/auth-master
        #  mode = 0600
        #}
      }
    }
protocol imap {
  mail_plugins = $mail_plugins autocreate
}

Damit die Anmeldung als lokaler Benutzer funktioniert, noch die /etc/pam.d/dovecot:

auth     required     pam_unix.so nullok
account  required     pam_unix.so

Man könnte nun die Dienste jeweils aktivieren

systemctl enable dovecot.service
systemctl enable postfix.service

und somit permanent auf den lokalen Mailserver zugreifen – muss man aber nicht. Da diese Konfiguration bei mir auf einem MSI Wind U 100 läuft, spare ich mir die Ressourcen lieber und starte den Mailserver per Bash-Script, wenn ich auf mein lokales Mail-Archiv wirklich zugreifen muss. So lange man den Server localhost.localdomain im Thunderbird nicht anklickt, funktioniert dieser ja auch so für alle anderen IMAP Konten – und wenn man aus Versehen doch klickt, dieser aber nicht gestartet wurde, dann motzt Thunderbird halt, dass der Server nicht zu erreichen sei.

Rossberghöhlensystem

rbh1

Die bei uns übliche Nebelhöhlen – Sommerrodelbahn – Rossberghöhlen-Tour für jüngere Besucher musste heute unser französischer Austauschschüler über sich ergehen lassen.

Ich finde den Rossberg auch heute noch [1, 2, 3] super. Das Rossberghöhlensystem mit den zwei im Binder benannten Höhlen (Rossberghöhle 1 und 2), einigen sehr schönen Dolinen, einer dritten Kleinhöhle und am gleichen Hang auch einigen Bohnerzgruben macht Lust auf mehr.

https://www.openstreetmap.org/#map=19/48.35469/9.17895

Ich habe heute versucht die Höhlen mit Hilfe von OSM Tracker genauer einzumessen. Irgendwie … am Ende habe ich das Gefühl, bei der Positionierung dann doch mehr geschätzt zu haben, als dass ich exakte Daten eingetragen hätte. Der Kontakt zu den Satelliten war relativ bescheiden – oder meine Hardware taugt nix.

Schön war es in der RBH 1 vor allem auch deswegen, weil die Sonne den Boden erhitzte und der Wasserdampf in Schwaden durch die Höhle zog. Sah richtig cool aus.

rbh3

Im Eingang zur kleinsten, von uns heute Rossberghöhle 3 genannten, Höhle am Hang steht ein Baum. Nach dem niedrigen Schlupf folgt eine kleine Halle, in der Kinder aufrecht stehen können.

rb-doline

Der gesamte der Sonnenmatte gegenüberliegende Hang bis vor zur Hardtstraße ist ein einziges Dolinenfeld. Teilweise wünscht man sich einen Spaten, weil der Geruch der Senken sehr stark an Höhle erinnert und viele kleine Spalten nach mehr Hohlraum dahinter aussehen.

rbh2

Der Einstiegsschacht in die RBH 2 verlangt nach einer Strickleiter. Seit viel zu vielen Jahren ist hier Ende für uns.