IPv6 mit pfSense und ewb.INTERNET

Auf meiner pfSense Firewall habe ich IPv4 / IPv6 Dualstack installiert.

Von meinem Provider ewb.INTERNET erhalte ich ein /56 IPv6 Subnetz, welches ich entsprechend verteilen kann.

Das Ziel, für WAN und LAN Interface je eine v4 und v6 Adresse zu erhalten.

Die Konfiguration habe ich gemäss nachfolgenden Screenshots vorgenommen.

Wichtigste Einstellung zuerst, IPv6 generell aktivieren.

WAN Interface

LAN Interface

Firewall Rules WAN

Firewall Rule LAN

Firewall Rules Floating (Broadcast Pakete nicht loggen)

DHCPv6 Server bleibt deaktiviert

P.S. Da ewb.INTERNET Services via iway produziert werden, kann diese Anleitung 1:1 für iway Anschlüsse in Schweizer FTTH Netzen verwendet werden.

Neue pfSense Firewall

Im Dezember 2017 habe ich meinen Glasfaser Internet Anschluss von iWay Internet Economy 100/100 Mbit/s auf ewb.INTERNET VOUGAS 1000/1000 Mbit/s upgraded.

Mit diesem Update war auch ein Wechsel der Hardware für meine pfSense Firewall nötig. Der vorher eingesetzte APU1D4 mochte Gigabit Traffic nicht durchbringen. Trotz Gigabit Ethernet Karten, DualCore x64 CPU und 4GB RAM, konnte auch bei minimaler Firewall Konfiguration höchstens eine Bandbreite von 300MBit/s erreicht werden.

Obwohl ich bei ewb.INTERNET gratis eine Fritzbox 5490 erhalten hätte, entschied ich mich weiterhin für die pfSense Lösung. Anstelle der Fritzbox wählte ich einen CTS MCT-3002-DR Medien Konverter um das optische Signal in ein elektrisches umzuwandeln.

Nun musste nur noch die passende Firewall Hardware gefunden werden.
Folgende Bedingungen sollten erfüllt werden:

  • Passive Kühlung
  • Geringer Energieverbrauch
  • Kleines Gehäuse
  • Serielle Schnittstelle
  • Hardware / CPU Crypto Modul

Ich entschied mich schlussendlich für ein Shuttle DS77U Barebone:

Quelle: http://www.shuttle.eu/de/produkte/slim/ds77u/

  • Intel(R) Celeron(R) CPU 3865U @ 1.80GHz
  • Lüfterloses Heatpipe-Kühlsystem
  • Corsair ValueSelect SO-DDR4 4GB RAM
  • Transcend MTS600 M.2 2260 32 GB SSD
  • 2 x Intel Gigabit LAN (i211 und i219LM PHY)
  • 2 x COM-Port (RS-232)
  • Stromverbrauch im IDLE 7-8W

Kostenpunkt: ~360CHF (Dez 2017)

Vor der pfSense Installation habe ich das BIOS auf die neuste Version gebracht, anschliessend konnte ich pfSense (2.4.2) per USB Stick und Serial Konsole installiert. Nach erfolgter Basis Installation habe ich die Konfiguration der alten pfSense Firewall eingespielt.

Seit ein paar Tagen läuft darauf die neuste pfSense Version 2.4.3.



Die Firewall läuft im Dual Stack Betrieb (IPv4 mit NAT und IPv6), da ewb.INTERNET jeweils pro Kunde ein IPv6 /56 Subnetz zuweist.

Folgende Dienste sind im Einsatz:

  • Unbound (DNS Resolver)
  • pfBlocker-NG
  • Snort
  • HAProxy
  • OpenVPN
  • NtopNG

Die CPU Auslastung ist trotz der vielen Dienste, insbesondere Snort und pfBlocker-NG sehr gering. Auch die CPU Temperatur ist im Vergleich zum APU1D4 nur noch halb so hoch (28°C vs. 60°C).


Die maximale Bandbreite gemäss Speedtest.net ist wie folgt:



Damit hat die neue Hardware meine Anforderungen vollumfänglich erfüllt und die maximale Bandbreite kann abgerufen werden.

Neues Design

Nach Jahren der Inaktivität habe ich mich entschlossen das Blog Design anzupassen und mir vorgenommen wieder ab und zu einen Artikel zu schreiben.

Hier sollen wieder Lösungen zu Problemen aus der IT Welt, Tourenberichte aus der schönen Bergwelt, so wie Gedanken über die Welt publiziert werden.

Das neue Design ist Responsive und ziemlich leichtgewichtig, so dass der Inhalt an erster Stelle steht und auch schnell geladen wird.

Tourenbericht: Tschajetuhorn

Tourenbericht den ich im Jahr 2015 auf hikr.org veröffentlicht habe.

Bei wechselhaftem Wetter starten wir unsere Tour ab dem Parkplatz der Bushaltestelle Leukerbad – Birchen. Bis zum Wegpunkt Plammis (2146m) ist die Wanderung nicht besonders anspruchsvoll und ist gut durch Wegweiser markiert.

 

Mit zunehmender Höhe wird es kälter und Überreste des Winters werden sichtbar. Ab etwa 2200m sind noch immer einige Schneefelder vorhanden. Für den Aufstieg wählen wir eine Route leicht unterhalb des Jägerchrüz, wir umgehen so die grossen Schneefelder, müssen allerdings einige steile Passagen mit viel Geröll überwinden.

 Nach passieren des Jägerchrüzes steigen wir über den Grat bis zum Gipfel auf.


Nach einem kurzen Rast auf dem Gipfel und einem Schluck Schnaps aus dem Flachmann steigen wir wieder ab.

 

Beim Abstieg gehen wir über den Grat zurück in die Nähe des Jägerchrüz, dann wählen wir eine Route über die Schneefelder. Auf diesem Weg können wir in relativ kurzer Zeit viele Höhenmeter überwinden.

Auf der Höhe Plammis kommen wir dann wieder auf den uns bekannten Wanderweg und wandern auf der Anreiseroute zurück zum Parkplatz in Birchen.

Gesamtzeit: 7h 28min
Distanz: 19.81km
Höhenmeter aufwärts: 1668m
Höhenmeter abwärts: 1668m
Bericht auf hikr.org

[sgpx gpx=“https://blog.darky.ch/wp-content/uploads/2015-05-30_tschajetuhorn.gpx“ showele=“false“]

Tourenbericht: Alpenpässeweg – Visperterminen nach Simplonpass

Hier starte ich eine neue Rubrik Wandern / Tourenberichte mit einem ersten Beitrag.

Das Ziel dieser Tour vom 17.07.2014 war den Alpenpässeweg von Visperterminen nach Simplonpass zu bewandern, weitere Zwischenstationen waren der Gibidumpass, der Gibidumsee sowie der Bistinenpass.

Auf dieser Tour waren wir zu Dritt unterwegs, Treffpunkt war der Bahnhof in Bern. Um 8:07 verliess der Zug den Bahnhof Bern in Richtung Wallis. In Visp angekommen stiegen wir ins Postauto um. Entgegen unseren Plänen war bereits in Niederhäusern Endstation, wegen einer Baustelle war die Strasse nach Visperterminen nicht befahrbar. So nahmen wird den Weg von Niederhäusern nach Visperterminen bei bestem Wetter zu Fuss in Angriff.

Auf dem Weg überholten wir eine einheimische Frau, die uns sogleich auf unser zügiges Marschtempo sowie unser Ziel ansprach. Sie empfahl uns die Strecke von Visperterminen nach Giw mit der Sesselbahn zurückzulegen, da einige Höhenmeter zu überwinden seien und wir bis zum Simplon noch genug zu gehen hätten. Etwas verwirrt ab der Widersprüchlichkeit ihrer Aussage, entschieden wir uns diesen Entscheid noch bis nach Visperterminen aufzuschieben.

Nachdem wir den Dorfkern von Visperterminen passiert hatten, kamen wir in Richtung Talstation der Sesselbahn. Da die Bahn zu dieser Zeit nicht zu laufen schien, entschieden wir uns gar nicht erst zur Talstation zu gehen, sondern den Aufstieg zu Fuss in Angriff zu nehmen. Auf schmalem Fussweg wanderten wir bis zum Giw. Oben angekommen konnten wir dann die Betriebszeiten der Bahn, die nun lief, einsehen. Kurz nach unserer Ankunft traf ein älteres Paar, dass wir im Dorf überholt hatten, mit der Bahn ein. Wir hatten mit unserem Fussmarsch also keine Zeit verloren.

Ab dem Giw führt ein relativ breiter Karrweg zu unserem nächsten Ziel dem Gibidumpass. Auf dem Gibidumpass startet dann auch der Alpenpässe Weg den wir beschreiten wollen, zuvor machten wir aber einen kurzen Abstecher an den Gibidumsee. Auf einer Holzbank machten wir unseren ersten Verpflegungshalt, während wir assen konnten wir zwei unerschrockene Schwimmer beobachten, die sich in den kalten Bergsee gestürzt hatten. Nachdem wir zwei herannahende Wandergruppen gesichtet hatten, machten wir uns zügig auf den Weg um auf dem weiteren Weg unsere Ruhe zu haben.

Nachdem wir wieder auf dem Gibidumpass waren, hatten wir den grössten Teil der Höhenmeter bereits gemeistert. Auf dem Alpenpässe-Weg 6 wanderten wir entlang der Gebirgskette in einer U-Form, um einen Abstieg ins Tal zu vermeiden. Bei gutem Wetter mit blauem Himmel und wenig Wolken bot sich ein wunderbares Panorama auf den Alpensüd-Hang.

Auf dem schmalen Alpenpässe-Weg entlang eines Bergbaches wanderten wir in Richtung des Bistinenpasses. Nach etwa 1.5 Stunden fanden wir ein schönes Plätzchen für einen weiteren Rast. Nach der Stärkung ging es auf dem schmalen Pfad weiter, bergseits konnten wir immer wieder wunderschöne Bergbach Zuflüsse und Wasserfälle sehen, einige mussten wir auch durchquerten.

Schliesslich erreichten wir den Bistinenpass und waren unserem Ziel augenscheinlich so nah wie nie zuvor. Vor uns lag ein Panorama auf den Simplonpass, die Passstrasse Richtung Simplon Dorf sowie dem über alles hinausragenden Hübschhorn als Kulisse. Zum Schluss mussten wir etwa 800 Höhenmeter Abstieg bewältigen, bevor wir die Postauto Station auf dem Simplonpass erreichten.

Nach kurzer Wartezeit stiegen wir ins Postauto in Richtung Brig. Dort angekommen erholten wir uns bei einem Bier von den Strapazen, ehe wir mit dem Zug den Rückweg nach Bern antraten.

Gesamtzeit: 7h 05min
Distanz: 22.3km
Höhenmeter aufwärts: 1630m
Höhenmeter abwärts: 870m

[sgpx gpx=“https://blog.darky.ch/wp-content/uploads/Visperterminen-gibidumpass-bistinepass-simplonpass.gpx“]

imapfilter selber kompilieren

Vor einiger Zeit habe ich in einem Artikel erklärt, wie ich meine E-Mails automatisch vorsortiere.
Nach einer Betriebssystem Aktualisierung funktionierte das Mail sortieren mit imapfilter nicht mehr.

Durch ein Paket Update des Betriebssystems wurden anscheinend einige Bibliotheken aktualisiert, welche vom Programm imapfilter verwendet wurden.

Das Ausgeben der Programmschritte förderte folgende Fehlermeldung zutage.

imapfilter: timeout period expired while waiting to read data

Nach einer kurzen Google Rechere fand ich einen Launchpad Bugreport mit Link zur Ursache des Problems.

Folgender Diff-Auszug zeigt die kleine Änderung, welche das Benützen des Programms verunmöglichte.

} else

return -1;

– return response_authenticate(ssn, t, NULL);

+ return response_generic(ssn, t);

}

#endif /* NO_CRAMMD5 */

Da für Ubuntu 10.04 kein aktualisiertes Paket angeboten wird und von imapfilter bereits eine neuere Version vorliegt, habe ich mich entschieden das Programm selbst zu kompilieren.

Die aktuellste Version von imapfilter ist auf github zu finden und kann direkt aus dem Repository gecloned und kompiliert werden.

Mit dem Befehl

git clone https://github.com/lefcha/imapfilter.git

wird das ganze Repository auf den Rechner geladen.

Hat man git nicht installiert oder möchte es nicht verwenden ist es möglich die aktuellen Dateien als .zip von der github Seite zu laden und zu entpacken.

Um imapfilter unter Ubuntu Server 10.04 zu kompilieren müssen folgende Bibliotheken zuerst installiert werden, da ein Kompilieren sonst unmöglich ist.

liblua5.1-0-dev
libssl-dev
libpcre3-dev

Laut README wechselt man nun ins zuvor heruntergeladene Verzeichnis imapfilter und führt den Befehl make aus.
Dies funktioniert unter der gegebenen Ubuntu Version aber nicht richtig, da die lua Bibliotheken an einer andern Stelle zu finden sind als gewöhnlich.
Mit einer kleinen Modifikation gelingt das Kompilieren dann trotzdem, man muss lediglich folgenden Befehl ausführen:

make INCDIRS=-I/usr/include/lua5.1 LIBLUA=-llua5.1

Das Programm sollte nun kompilieren und kann anschliessend mit sudo make install ins Verzeichnis /usr/local/bin/ installiert werden.

Nun funktioniert das E-Mail sortieren wieder fehlerfrei. Allerdings muss beachtet werden das zukünftige Sicherheitsaktualisierungen von imapfilter nicht wie üblich über den Paketmanager eingespielt werden können, sondern durch das Kompilieren des neuen Source Codes installiert werden müssen.

Schlechtes Marketing

 

Gesehen im Coop Ryflihof Bern

Ohne Worte.

Wie man Diagramme nicht gestalten sollte

 

Quelle: http://www.tagesanzeiger.ch/schweiz/standard/Wer-die-prallste-Wahlkampfkasse-hat/story/29703199

Ein klassisches Beispiel für die Verwendung des falschen Diagrammtyps. Balkendiagramme wären wesentlich aussagekräftiger, ausserdem ist die Gesamtsumme der Prozentzahlen 101% anstatt 100% (Rundungsfehler).

E-Mail Postfach mit imapfilter (vor)sortieren

Seit einiger Zeit verwende ich das IMAP Protokoll, um meine E-Mails auf meiner Workstation, meinem Laptop sowie meinem Smartphone abrufen zu können. Das IMAP Protokoll bietet den Vorteil Ordner zu erstellen und die Mails so zu Sortieren.

Allerdings störte ich mich zunehmend daran, die Mails selber in die Ordner abzulegen, ich wollte dies automatisieren.
Zunächst verwendete ich die Filterfunktion von Mozilla Thunderbird, allerdings wurde es mir auf Dauer zu mühsam, die neuen Filterregeln jeweils auf der Workstation wie auch auf dem Laptop einzutragen. Auf dem Smartphone gab es eine solche Möglichkeit erst gar nicht.
So suchte ich nach einer Lösung, die unabhängig vom Endgerät die E-Mails (vor)sortieren würde.

Durch einen Blog Artikel stiess ich auf das Linux-Programm imapfilter, welches ich auf meinem Homeserver regelmässig ausführen kann.

Imapfilter sortiert E-Mails verschiedener E-Mailkonten ausgehend von einer einfachen Konfigurationsdatei.
Glücklicherweise ist imapfilter in den Ubuntu Quellen enthalten und lässt sich einfach via

sudo apt-get install imapfilter

installieren.

Die Konfigurationsdatei basiert auf der Skriptsprache LUA, diese Sprache ist sehr intuitiv und somit sind einfache Filterregeln schnell realisiert.
Mit einer Konfigurationsdatei können mehrere E-Mailaccounts sortiert werden, sogar ein Account übergreifendes verschieben oder kopieren von E-Mails ist möglich.
Anbei eine Beispielkonfiguration:
sample-config.lua

—————
— Options —
—————
options.timeout = 20
options.subscribe = true

—————-
— Accounts —
—————-

account1 = IMAP {
server = ‚imap.bluewin.ch‘,
username = ‚username‘,
password = ‚password‘,
}

account2 = IMAP {
server = ‚mail.unibe.ch‘,
username = ‚username‘,
password = ‚password‘,
ssl = ’ssl3′,
}

—————–
— Mail rules —
—————–

— Twitter
messages = account1.INBOX:contain_from(‚postmaster.twitter.com‘)
account1.INBOX:move_messages(account1[‚Twitter‘], messages)

— EBay
messages = account1.INBOX:contain_from(‚reply.ebay.ch‘)
account1.INBOX:move_messages(account1[‚eBay – Ricardo‘], messages)

messages = account1.INBOX:contain_from(‚ebay.ch‘)
account1.INBOX:move_messages(account1[‚eBay – Ricardo‘], messages)

— Ricardo
messages = account1.INBOX:contain_from(‚ricardo.ch‘)
account1.INBOX:move_messages(account1[‚eBay – Ricardo‘], messages)
— Facebook
messages = account1.INBOX:contain_from(‚facebookmail.com‘)
account1.INBOX:move_messages(account1[‚Facebook‘], messages)
— Partyguide
messages = account1.INBOX:contain_from(‚partyguide.ch‘)
account1.INBOX:move_messages(account1[‚Partyguide‘], messages)

————————–
— Push to Uni Mailbox —
————————–

— Mails from students.unibe.ch
messages = account1.INBOX:contain_from(’students.unibe.ch‘)
account1.INBOX:move_messages(account2[‚INBOX‘], messages)

— SUB
messages = account1.INBOX:contain_from(’sub.unibe.ch‘)
account1.INBOX:move_messages(account2[‚INBOX/SUB‘], messages)

————————
— Mail rules Uni BE —
————————

— ILIAS
messages = account2.INBOX:contain_field(‚Received‘, ‚curtis.unibe.ch‘)
account2.INBOX:move_messages(account2[‚INBOX/Ilias‘], messages)

— Imatrikulationsdienst (IMD)
messages = account2.INBOX:contain_from( ‚info@imd.unibe.ch‘)
account2.INBOX:move_messages(account2[‚INBOX/IMD‘], messages)

— SUB
messages = account2.INBOX:contain_from(’sub.unibe.ch‘)
account2.INBOX:move_messages(account2[‚INBOX/SUB‘], messages)

— MSDNAA
messages = account2.INBOX:contain_from(‚billing@e-academy.com‘)
account2.INBOX:move_messages(account2[‚INBOX/MSDNAA – Software‘], messages)

— EPub
messages = account2.INBOX:contain_from(’support@epub.unibe.ch‘)
account2.INBOX:move_messages(account2[‚INBOX/ePub‘], messages)

Weitere Informationen zu den Konfigurationsparametern findet man unter:

  • http://imapfilter.hellug.gr/sample.config.lua.txt
  • http://imapfilter.hellug.gr/imapfilter_config.5.txt

Damit nun diese Konfiguration regelmässig ausgeführt wird, erstellt man sich einen Cronjob der das Skript in einem bestimmten Zeitabstand regelmässig aufruft.
Den Cronjob erstelle man folgendermassen:

sudo crontab -e

Anschliessend fügt man folgende Zeile an und speichert das ganze ab.

*/5 * * * * /usr/bin/imapfilter -c /path/to/config-example.lua > /dev/null 2>&1

Somit wird die Konfiguration alle 5 Minuten ausgeführt und allfällige Konsolenausgaben werden ins Datennirwana (/dev/null) weitergeleitet.

Zu guter Letzt muss man noch eine Option in Thunderbird aktivieren, damit man die bereits verschobenen neuen Mails angezeigt erhält, muss Thunderbird jeweils alle Ordner auf neue Mails prüfen anstatt nur des Posteinganges.

Im Menu Bearbeiten -> Einstellungen wählt man den Reiter Erweitert -> Allgemein anschliessend drückt man den Button Konfiguration bearbeiten.

Nun muss man nach der Einstellung:

mail.check_all_imap_folders_for_new

suchen und den Wert auf true setzen.

SoftwareRAID unter Ubuntu 10.04 SE

Diese Tage wollte ich unseren Familien Fileserver vom langsam ein bisschen angestaubten Kubuntu 8.04 LTS auf die neuste Long Term Support Version Ubuntu 10.04 Server upgraden. In der Hoffnung das ganze sei innerhalb einer Stunde erledigt, startete ich das Unterfangen, doch leider rechnete ich nicht mit Komplikationen beim Installieren des SoftwareRAID.

Bisher war die Festplatten Konfiguration wie folgt:
2 x 400 GB Samsung SATA II Disks.
Software RAID 1 (Mirror) unter Kubuntu 8.04
3 Partitionen:

  • System Partition 15 GB: Mountpoint /
  • Swap Partition 2 GB
  • Daten Partition ~ 383GB: Mountpoint /srv

Der Plan war die bestehende RAID Konfiguration zu übernehmen und nur die System Partition zu formatieren und das neue Betriebssystem zu installieren.

Doch weit gefehlt, die Installationsroutine von Ubuntu 10.04 SE lief zwar wie gewünscht durch, doch nach dem Neustart hatte man bereits die erste Fehlermeldung betreffend des RAIDs. Trotzdem lies sich das System booten und ich entschloss mich zu einem Systemupdate, von welchem ich eine Verbesserung des Zustandes erhoffte.
Diese Entscheidung allerdings war fatal, nach dem obligaten Neustarten beim Updaten von Kernelpakete, bootete das System nicht mehr.

Nach einigen weiteren misslungenen Installationsversuchen, entschied ich mich eine zusätzliche Festplatte für das Betriebssystem einzubauen und in Zukunft nur noch die Datenfestplatten im SoftwareRAID-Verbund zu betreiben.
Nach der Neuinstallation auf die Systemfestplatte sollten die Datenfestplatten neu partitioniert werden, zu einem SoftwareRAID verbund zusammengefügt werden und anschliessend das zuvor gemachte Backup zurück gespielt werden.

Nach dem ich endlich ein lauffähiges, mit allen Sicherheitsupdates versehenes System aufgesetzt hatte, konnte ich mich an die Neu-Konfiguration der Datenfestplatten machen.

Dazu bin ich nach dem ubuntuuser Wikiartikel über Software-RAID vorgegangen.

Allerdings erhielte ich beim erstellen des RAID Arrays immer folgenden Fehler, den ich mir nicht erklären konnte.

user@server:/$ sudo mdadm –create –verbose /dev/md0 –auto=yes –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm: Cannot open /dev/sdb1: Device or resource busy
mdadm: Cannot open /dev/sdc1: Device or resource busy
mdadm: create aborted

Obwohl die Partitionen nicht gemounted waren und problemlos unter sudo fdisk -l angezeigt wurden, konnte nicht darauf zugegriffen werden.

Ein cat /proc/partitions lieferte dann des Rätsels Lösung.
Zusätzlich zu den in fdisk sichtbaren Partitionen wurden zwei Partitionen: dm-0 und dm-1 angezeigt.

Nach einigen Recherchen fand ich heraus, dass der Device-Mapper für diese Partitionen / Geräte verantwortlich war.
Aus einem unerfindlichen Grund erkannte der RAID-Device-Mapper, den per Jumper deaktivierten onBoard fake-RAID Controller und erstellte ein RAID-Array-Set, welches die beiden Festplatten blockierte.

Durch das deinstallieren des Paketes dmraid via

sudo apt-get remove dmraid

und anschliessendem Neustarten des Systems, wurden die Devices nun endlich freigegeben und der SoftwareRAID konnte korrekt installiert werden.