.:zefanjas:. https://zefanjas.de open source, web, education Thu, 07 Feb 2019 14:05:12 +0000 de-DE hourly 1 https://wordpress.org/?v=5.0.3 https://zefanjas.de/wp-content/uploads/2016/12/cropped-zefanjas_new-32x32.png .:zefanjas:. https://zefanjas.de 32 32 Netzwerkbrücke für LXD Container einrichten https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/ https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/#respond Thu, 07 Feb 2019 14:05:12 +0000 https://zefanjas.de/?p=2868 Die meisten unserer Webanwendungen laufen in LXD Containern. Nicht ohne Grund ist LXD für mich eines der wichtigsten Features von Ubuntu Server. Es gibt viele Wege um von außen auf eine Webanwendung in einem LXD Container zuzugreifen. So kann man z.B. einen Reverse Proxy nehmen und darüber die Zugriff auf die Container regeln (hier hatte ich schon mal davon berichtet). Eine andere Möglichkeit ist die Einrichtung einer Netzwerkbrücke, sodass sich die Container im gleichen Netz wie der Containerhost (Ubuntu Server)...

Weiterlesen Weiterlesen

Der Beitrag Netzwerkbrücke für LXD Container einrichten erschien zuerst auf .:zefanjas:..

]]>
Die meisten unserer Webanwendungen laufen in LXD Containern. Nicht ohne Grund ist LXD für mich eines der wichtigsten Features von Ubuntu Server. Es gibt viele Wege um von außen auf eine Webanwendung in einem LXD Container zuzugreifen. So kann man z.B. einen Reverse Proxy nehmen und darüber die Zugriff auf die Container regeln (hier hatte ich schon mal davon berichtet). Eine andere Möglichkeit ist die Einrichtung einer Netzwerkbrücke, sodass sich die Container im gleichen Netz wie der Containerhost (Ubuntu Server) befinden. In diesem Artikel möchte ich kurz beschreiben, wie man eine Netzwerkbrücke für LXD Container einrichtet.

Netzwerkbrücke für LXD Container

Um eine Netzwerkbrücke unter Ubuntu einzurichten, muss man die bridge-utils installieren:

$ apt install bridge-utils

Danach kann man die Netzwerkbrücke einrichten.

bis Ubuntu 16.04

Bis Ubuntu 16.04 nutzt Ubuntu ifupdown um Einstellungen für die Netzwerkverbindungen festzulegen. Die Konfiguration nimmt man in den Dateien unter /etc/network/ vor. Eine einfache Netzwerkbrücke, um die Container in das Host-Netzwerk zu bekommen, könnte so aussehen:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The main Bridge
auto br0
iface br0 inet dhcp
    bridge-ifaces enp4s0
    bridge-ports enp4s0
    up ip link set enp4s0 up

# The primary network interface
iface enp4s0 inet manual

Hier bekommt die Brücke ihre Adresse vom DHCP-Server mitgeteilt. Die reale Netzwerkkarte enp4s0 wird in den manuellen Modus gesetzt und der Brücke zugewiesen.

ab Ubuntu 18.04

Ab Ubuntu 18.04 wird Netplan für die Konfiguration der Netzwerkverbindungen verwendet. Die Konfigurationsdateien befinden sich unter /etc/netplan/. Eine Definition für die Brücke könnte folgendermaßen aussehen:

$ cat /etc/netplan/50-cloud-init.yaml 
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp3s0:
            dhcp4: no
    version: 2
    bridges:
        br0:
            dhcp4: no
            addresses:
            - 10.10.10.5/24
            gateway4: 10.10.10.254
            nameservers:
                addresses:
                - 10.10.10.254
            interfaces:
            - enp3s0

Im oberen Teil konfiguriert man die reale Netzwerkkarte (enp3s0) und weißt ihr keine Adresse zu. Danach folgt die Definition der Netzwerkbrücke. Sie wird wie eine statische Netzwerkverbindung eingerichtet und enthält zusätzlich den Punkt interfaces. Dort legt man fest, welche reale Netzwerkkarte „überbrückt“ werden soll. Weitere (komplexere) Beispiele zu Netzwerkbrücken gibt es auf der offiziellen Website.

Nun werden mit dem folgenden Befehl die Änderungen an den Netzwerkeinstellungen angewendet:

$ netplan apply  --debug

Netzwerkbrücke zuweisen

Hat man die Netzwerkbrücke fertig eingerichtet und bekommt sie auch die richtige IP-Adresse, muss man dem LXD Container noch mitteilen, dass er seine IP-Adresse über die Netzwerkbrücke beziehen soll. Das erledigt man mit folgendem Befehl:

$ lxc config device add containername eth0 nic nictype=bridged parent=br0 name=eth0

Mit name=eth0 legt man fest, unter welchen Namen man die Netzwerkkarte im Container findet. Nun kann man im Container eth0 nach Belieben konfigurieren. Ab sofort sollte der Container eine IP-Adresse aus dem Host-Netzwerk bekommen.

Fazit

Eine einfache Netzwerkbrücke lässt sich schnell einrichten und man kann sie ohne Probleme einem Container zuweisen. Andere Benutzer im Netzwerk können so ohne die Einrichtungen eines Reverse-Proxys auf eine Webanwendung zugreifen. Auch komplexere Szenarien sind denkbar (VLANs, mehrere Brücken, um die Container in verschiedene Netz zu bekommen etc.), doch das würde den Rahmen dieses kurzen Artikels sprengen.

Kommentar hinzufügen

Der Beitrag Netzwerkbrücke für LXD Container einrichten erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/feed/ 0
WLAN Access Point mit pfSense verbinden https://zefanjas.de/pfsense-wlan-access-point/ https://zefanjas.de/pfsense-wlan-access-point/#respond Tue, 15 Jan 2019 13:36:39 +0000 https://zefanjas.de/?p=2855 pfSense ist eine Open Source Firewalllösung, die man gut zu Hause, in der Schule oder in einem Unternehmen einsetzen kann (siehe Installation + Hardwareempfehlungen). In den meisten Fällen möchte man Clients nicht ausschließlich per Netzwerkkabel verbinden, sondern auch kabellos. Am einfachsten geht es, wenn man dazu einen WLAN Access Point an die Firewall mit anschließt, die sich um die kabellosen Geräte kümmert (z.B. Smartphones). Aufbau des Setups Ein Bild sagt bekanntlich mehr als 1000 Worte:   Die LAN-Schnittstelle von pfSense...

Weiterlesen Weiterlesen

Der Beitrag WLAN Access Point mit pfSense verbinden erschien zuerst auf .:zefanjas:..

]]>
pfSense ist eine Open Source Firewalllösung, die man gut zu Hause, in der Schule oder in einem Unternehmen einsetzen kann (siehe Installation + Hardwareempfehlungen). In den meisten Fällen möchte man Clients nicht ausschließlich per Netzwerkkabel verbinden, sondern auch kabellos. Am einfachsten geht es, wenn man dazu einen WLAN Access Point an die Firewall mit anschließt, die sich um die kabellosen Geräte kümmert (z.B. Smartphones).

Aufbau des Setups

Ein Bild sagt bekanntlich mehr als 1000 Worte:

pfSense AP Setup

 

Die LAN-Schnittstelle von pfSense verbindet man mit einem Switch, an dem man dann den Access Point und weitere kabelgebundene Clients anschließen kann.

Access Point einrichten

Nachdem der Access Point angeschlossen ist (in unserem Beispiel ein Access Point von tp-link), muss er noch eingerichtet werden. Jeder Access Point bringt meistens auch ein Webinterface mit, über dass man Einstellungen vornehmen kann. Die IP-Adresse des Access Point findet man in pfSense unter Status → DHCP-Leases heraus.

pfsense dhcp leases

Nun kann man auf das Webinterface des Access Point zugreifen.

accesspoint login

Nach dem Login (bei tp-link ist der Standardbenutzername und das Passwort admin) richtet man unter Quick Setup alle wichtigen Einstellungen ein:

  • Change the login accountJa (neuer Benutzername und Passwort festlegen)
  • Please select the proper operation mode according to your needsAccess Point
  • Access AP Mode Settings
    • Wireless Network Name(SSID)Name des WLAN-Netzes
    • ChannelAuto
    • Wireless Security ModeWPA2-PSK
    • Wireless PasswordWLAN Passwort
  • Type Static IP
  • IP Address → eine IP Adresse aus dem LAN auswählen, z.B. 10.10.10.253
  • DHCP ServerDisable (Da pfSense sich um die IP-Adressen kümmert).

access point dhcp

Fazit

Es gibt zwar auch Mini-Computer und -router für pfSense, die einen WLAN-Chip mitbringen, doch kann man davon nur sehr wenige im Access Point-Modus betreiben. Meistens unterstützen sie nur den Client-Mode, d.h. man kann sich damit mit einem WLAN-Netz verbinden, aber selbst keines aufspannen. PfSense unterstützt nur wenige Karten im Access Point-Modus. Eine Übersicht findet man hier. Schlussendlich ist es IMHO deutlich einfacher einen Access Point mit pfSense zu verbinden statt den richtigen WLAN Chip zu finden.

 

Kommentar hinzufügen

Der Beitrag WLAN Access Point mit pfSense verbinden erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/pfsense-wlan-access-point/feed/ 0
Auto-Type in KeeWeb konfigurieren https://zefanjas.de/auto-type-in-keeweb-konfigurieren/ https://zefanjas.de/auto-type-in-keeweb-konfigurieren/#respond Sat, 22 Dec 2018 00:15:30 +0000 https://zefanjas.de/?p=2846 KeeWeb ist ein Passwortmanager, der kompatibel zu KeePass ist und für sehr viele Plattformen verfügbar ist. Ich verwende ihn privat als auch beruflich seit einigen Jahren. Heute möchte ich ein geniales Feature vorstellen, das ich erst vor kurzem entdeckt habe: Auto-Type. Mit Auto-Type kann man automatisch seine Login-Daten eintragen lassen, egal ob es eine Website oder eine Desktopanwendung ist. Das Schöne ist, dass man kaum etwas tun muss, um Auto-Type in KeeWeb zu konfigurieren. Wie funktioniert Auto-Type? Animationen sagen mehr...

Weiterlesen Weiterlesen

Der Beitrag Auto-Type in KeeWeb konfigurieren erschien zuerst auf .:zefanjas:..

]]>
KeeWeb ist ein Passwortmanager, der kompatibel zu KeePass ist und für sehr viele Plattformen verfügbar ist. Ich verwende ihn privat als auch beruflich seit einigen Jahren. Heute möchte ich ein geniales Feature vorstellen, das ich erst vor kurzem entdeckt habe: Auto-Type. Mit Auto-Type kann man automatisch seine Login-Daten eintragen lassen, egal ob es eine Website oder eine Desktopanwendung ist. Das Schöne ist, dass man kaum etwas tun muss, um Auto-Type in KeeWeb zu konfigurieren.

Wie funktioniert Auto-Type?

Animationen sagen mehr als 1000 Worte, deshalb hier ein kleines GIF, das die Funktionsweise von Auto-Type zeigt (im Bild Check_MK):

keeweb auto type

Wie der Name sagt, füllt KeeWeb automatisch die Eingabefelder aus und meldet einen an. KeeWeb muss dazu (im Hintergrund) geöffnet sein.

Auto-Type in KeeWeb konfigurieren

Auto-Type ist standardmäßig ab Version 1.2 für alle Einträge aktiviert. Die Einstellung dazu findet man unter mehr → Auto-Type Einstellungen.

KeeWeb Einstellungen

Es erscheint ein Eingabefeld in das man nun verschiedenen Platzhalter oder Befehle eingeben kann. Für alle Einträge lautet der Standardeintrag:

{USERNAME}{TAB}{PASSWORD}{ENTER}

Es wird also zuerst der Benutzername automatisch ausgefüllt, dann mit TAB in das Passwortfeld gewechselt und das Passwort eingegeben. Am Ende bestätigt Auto-Type mit Enter den Anmelde-Button.

Für die meisten Websites oder Anwendungen funktioniert diese Einstellung ganz gut. Allerdings gibt es auch Seiten (z.B. GMail), die erst den Benutzernamen überprüfen, bevor sie das Passwortfeld anzeigen. Hier kann man mit {DELAY X} eine Verzögerung einbauen. Statt X muss man einen Wert in Millisekunden angeben, z.B.

{USERNAME}{ENTER}{DELAY 3000}{PASSWORD}{ENTER}

Auto-Type kennt viele Befehle und Platzhalter. Eine Übersicht findet man hier.

Auto-Type verwenden

Damit Auto-Type funktioniert, muss man unter Linux erst noch ein Paket installieren:

$ sudo apt install xdotool

Danach kann man mit UMSCHALT+ALT+T Auto-Type aktivieren (KeeWeb muss (im Hintergrund) geöffnet sein). Falls KeeWeb nur einen passenden Eintrag findet (z.B. anhand des Fenstertitels oder der URL) füllt KeeWeb die Felder automatisch aus. Wenn keine Überstimmung mit einem Eintrag festgestellt wurde, erscheint ein weiteres Fenster. Dort kann man dann manuell den passenden Benutzernamen / Passwort auswählen.

Fazit

KeeWeb schätze ich v.a. aufgrund seiner Verfügbarkeit auf sehr vielen Plattformen als auch die vielen Möglichkeiten der Synchronisation der Passwortdatenbank. Egal ob Nextcloud, Google Drive oder Dropbox – mit KeeWeb hat man seine Passwörter überall zur Hand (auch im Team).

Kommentar hinzufügen

Der Beitrag Auto-Type in KeeWeb konfigurieren erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/auto-type-in-keeweb-konfigurieren/feed/ 0
pfSense installieren https://zefanjas.de/pfsense-installieren/ https://zefanjas.de/pfsense-installieren/#respond Sat, 15 Dec 2018 07:17:10 +0000 https://zefanjas.de/?p=2824 pfSense gehört zu den am weitesten verbreiteten Open Source Firewalllösungen. Wir setzen sie seit einigen Jahren bei uns in der Schule ein und sind sehr zufrieden damit, weil sie einfach viele Features bietet, für die man woanders viel Geld hinlegen muss. Heute möchte ich deshalb zeigen wie man pfSense installieren und grundlegend einrichten kann. Davor möchte ich kurz auf verschiedene Hardware eingehen, die für den Betrieb von pfSense geeignet ist. Welche Hardware brauche ich? Allgemein kann man sagen, dass man...

Weiterlesen Weiterlesen

Der Beitrag pfSense installieren erschien zuerst auf .:zefanjas:..

]]>
pfSense gehört zu den am weitesten verbreiteten Open Source Firewalllösungen. Wir setzen sie seit einigen Jahren bei uns in der Schule ein und sind sehr zufrieden damit, weil sie einfach viele Features bietet, für die man woanders viel Geld hinlegen muss. Heute möchte ich deshalb zeigen wie man pfSense installieren und grundlegend einrichten kann. Davor möchte ich kurz auf verschiedene Hardware eingehen, die für den Betrieb von pfSense geeignet ist.

Welche Hardware brauche ich?

Allgemein kann man sagen, dass man für den Betrieb von pfSense theoretisch jeden Rechner nehmen kann, der mindestens zwei Netzwerkkarten hat. Das kann z.B. ein alter Computer sein, welchen man nicht mehr braucht und mit einer zweiten Netzwerkkarte ausstattet. Aber oft ist ein alter Rechner nicht sehr stromsparend und andere Alternativen sind angebrachter. Neben dem Stromverbrauch spielt vor allem der Einsatzzweck eine entscheidende Rolle. Es macht einen Unterschied, ob ich die Firewall zu Hause mit wenigen Benutzern einsetze oder in einer Schule oder einem Unternehmen mit wesentlich mehr Zugriffen.

Für den Heimgebrauch beliebt sind die APU2C4 Board von PC Engine, aber auch Kleinstrechner von Qotom (v.a. im asiatischen Raum). Für eine Schule oder Unternehmen ist – je nach Anforderung – ein Board mit mindestens 4 Netzwerkkarten zu empfehlen. Wir verwenden z.B. eine SG-4860 von Netgate. Wenn man bei Amazon oder AliExpress nach pfSense sucht, findet man viele Angebote. Wichtig ist nur, dass die CPU AES-NI unterstützt, da dieses Feature von pfSense in zukünftigen Versionen unbedingt nötig sein wird.

Auf der Website des pfSense Projekt gibt es noch ein paar allgemeine Hinweise zu den Hardwareanforderungen:

  • Minimal → 512MB RAM, 500 Mhz CPU
  • Empfohlen → 1GB RAM, 1Ghz CPU

Auch die verfügbare Bandbreite sollte bei der Hardwareauswahl berücksichtigt werden, da ansonsten pfSense zum Flaschenhals werden könnte.

  • 10-20 Mbps → Intel oder AMD CPU mit mindestens 500MHz.
  • 21-100 Mbps → aktuelle Intel oder AMD CPU mit 1Ghz
  • 101-500 Mbps → aktuelle Intel oder AMD CPU mit mindestens 2 Ghz und einer PCI-e Netzwarkkarte
  • 501+ Mbps → Serverhardware mit Mehrkern-CPUs mit jeweils mindestens 2 Ghz, PCI-e Netzwerkkarte

pfSense Installation vorbereiten

Image herunterladen

Bevor man mit der Installation beginnt, muss man wissen, welches pfSense Image man braucht. Das hängt z.B. davon ab, ob die verwendete Hardware einen VGA/HDMI Ausgang hat oder nur einen serielle Konsole. Oder ob man per CD, USB-Stick oder direkt auf die Festplatte installieren möchte. Deshalb möchte ich hier ein paar Hinweise geben:

Architektur:

  • Netgate ADI braucht man nur, wenn man auch ein Netgate Produkt verwendet.
  • AMD64 für alles andere (Intel / AMD 64bit CPU)

Art des Image

  • USB Memstick Installer wird für die Installation mit einem USB-Stick benötigt
  • CD Image (ISO) Installer wird für die Installation mit einer CD gebraucht oder für virtuelle Maschinen

Konsole

  • seriell – wenn nur eine Serielle Schnittstelle verfügbar ist (USB oder RS-232)
  • VGA – wenn die verwendete Hardware einen VGA/DVI oder HDMI Ausgang hat.

Wenn man weiß, welches Image man braucht, kann man es von der pfSense-Website herunterladen.

pfSense Download

USB-Stick vorbereiten

Die Dokumentation von pfSense enthält viele Informationen zur Vorbereitung eines USB-Sticks. In unserem Beispiel gehen wir von einen USB Memstick VGA Installer aus. Zuerst sollte man den USB-Stick formatieren oder leeren. Das geht unter Linux sehr einfach mit

$ sudo dd if=/dev/zero of=/dev/sdz bs=1M count=1

Hinweis: Unbedingt darauf achten, welches Gerät man hinter of=/dev/ angibt. Ansonsten kann es passieren, dass man seine Hauptpartition leert und somit Daten unwiederbringlich verloren sind! Um den Gerätenamen herauszufinden, steckt man am besten den USB-Stick an und führt danach dmesg in einem Terminal aus. Dann sieht man, welches Gerätenamen der USB-Stick bekommen hat (oft ist es /dev/sdb).

Anleitungen zum Leeren eines USB-Sticks unter Windows oder macOS finden sich in der oben verlinkten Dokumentation.

Nun kann man als nächstes das heruntergeladene Image auf den USB-Stick schreiben.

$ gzip -dc pfSense-memstick-2.4.4-RELEASE-amd64.img.gz | sudo dd of=/dev/sdz bs=1M
$ sync

Der USB-Stick ist nun fertig vorbereitet. Als nächstes bootet man von diesem USB-Stick und kann die Installation beginnen. Je nach BIOS wird der Stick als USB-Gerät oder weitere Festplatte erkannt. Die Bootreihenfolge muss oft geändert werden, damit nicht von der 1. Festplatte gebootet wird. Die Dokumentation liefert auch einige Ideen, falls das Booten nicht klappen sollte.

pfSense installieren

Nach dem erfolgreichen Booten erscheint der Willkommensbildschirm von pfSense.

pfsense welcome

Hier wählt man „Install„. Im nächsten Dialog kann man das Keyboard Layout festlegen. Für die Partitionierung nimmt man am besten „Auto (UFS)“ und bestätigt wieder mit Enter.

pfSense partitioning

Danach startet die automatische Installation. Ist die Installation beendet, wird man noch gefragt, ob man eine Shell öffnen möchte (kann man verneinen). Zum Schluss muss man das System neu starten („Reboot„). Beim anschließenden Start sollte man unbedingt darauf achten, dass nicht wieder vom USB-Stick gebootet wird, sondern von der Festplatte!

pfsense complete

 

Netzwerk-Schnittstellen einrichten

Netzwerkkarten zuweisen

Während des Neustarts versucht pfSense automatisch die WAN Schnittstelle zu konfigurieren. Die WAN Schnittstelle ist die Netzwerkkarte, die mit dem Router des Internetanbieters oder ganz allgemein mit dem Internet verbunden ist. Falls die automatische Konfiguration erfolgreich ist, erscheint das pfSense Konsolenmenü, ansonsten wird man mit einem Dialog begrüßt.

pfSense menu

Um die WAN und LAN Schnittstellen zu ändern, wählt man Nr. 1 „Assign Interfaces„. Nun muss man einige Fragen beantworten:

  • Should VLANs be set up now? → n (Nein)
  • Enter the WAN interface name or „a“ for auto-detection → hier muss man den Namen der WAN Netzwerkkarte eingeben. Die MAC-Adressen werden zu Beginn des Dialog angezeigt. In unserem Bsp. heißt sie em0
  • Enter the LAN interface name or „a“ for auto-detection → hier muss man den Namen der LAN Netzwerkkarte eingeben. In unserem Bsp. heißt sie em1
  • Do you want to proceed → y (Ja). Vorher wird noch eine kurze Zusammenfassung der Zuordnung angezeigt.

pfsense assign interfaces

IP-Adressen festlegen

Falls an der WAN-Schnittstelle ein DHCP-Server läuft, sollte sie automatisch eine IP-Adresse bekommen haben. Falls nicht muss man sowohl für die WAN als auch die LAN Schnittstelle eine IP Adresse konfigurieren. Beispielhaft werde ich es hier für die LAN Schnittstelle zeigen. Dazu wählt man Nr. 2 „Set interface(s) IP address“ aus.

  • Enter the number of the interface you wish to configure → 2 für die LAN Schnittstelle
  • Enter the new LAN IPv4 address→ z.B. 10.10.10.1 oder 10.10.10.1/24
  • Wenn man im vorherigen Schritt keine Netzwerkmaske angegeben hat, muss man es jetzt tun: Enter the new LAN IPv4 subnet bit count (1 t0 31). → 24 (entspricht 255.255.255.0, d.h. 254 IP Adressen).
  • In der nächsten Frage muss ein Gateway festgelegt werden. Bei einer LAN Schnittstelle ist das nicht nötig, nur bei einer WAN Schnittstelle. → einfach ENTER (für None) drücken
  • Enter the new LAN IPv6 address. Press <ENTER> for none → ENTER (für keine)
  • Do you want to enable the DHCP server on LAN? → y (Ja), außer es gibt bereits einen DHCP-Server im LAN-Netz.
  • Enter the start address of the IPv4 client address range → 10.10.10.10 (erste IP Adresse, die ein Client im LAN Netz bekommen kann)
  • Enter the end address of the IPv4 client address range → 10.10.10.200 (letzte IP Adresse, die ein Client im LAN Netz bekommen kann)
  • Do you want to revert to HTTP as the webConfigurator protocol? → n (nein, soll HTTPS bleiben)

pfsense LAN ip address

Weitere Einstellungen in der Weboberfläche

Mit einem Rechner, der ebenfalls LAN Netz ist, kann man unter https://10.10.10.1 auf Weboberfläche von pfSense zugreifen, um einige wenige Grundeinstellungen vorzunehmen. Beim ersten Mal erscheint eine Zertifikatswarnung. Da es sich um ein selbst signiertes Zertifikat für die HTTPS-Verbindung handelt, muss man es noch akzeptieren. Die Standardzugangsdaten sind admin mit dem Passwort pfsense.

pfsense login

Nachdem Login wird man von einem Assistenten begrüßt. Im zweiten Schritt kann man der Firewall einen Hostname vergeben und die Domain eintragen. Weiterhin wichtig ist der primäre und Sekundäre DNS Server und ob der DNS-Server per DHCP an der WAN-Schnittstelle überschrieben werden darf (um z.B. den DNS des Internetproviders zu verwenden).

pfSense dns setup

In den nächsten Schritten stellt man die Zeitzone ein, überprüft noch einmal die Konfiguration der WAN und LAN Schnittstelle und sollte in Schritt 6 auf jeden Fall ein neues Admin-Passwort vergeben. Damit ist das Setup abgeschlossen.

Fazit

Die Installation von pfSense geht meist leicht von der Hand. Schwierigkeiten gibt es manchmal bei der Auswahl des richtigen Images für die Installation bzw. dem Booten vom USB-Stick oder der Einrichtung der seriellen Verbindung. Die Dokumentation von pfSense geht aber auf viele dieser Probleme ein und bietet Lösungsvorschläge an. Nach der anfänglichen Konfiguration ist die Firewall einsatzbereit. Allerdings kann man die Firewall noch stark erweitern und anpassen. Das soll Thema zukünftiger Artikel sein.

Kommentar hinzufügen

Der Beitrag pfSense installieren erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/pfsense-installieren/feed/ 0
Wie man sein WLAN-Netzwerk mit Freeradius absichern kann https://zefanjas.de/freeradius-wlan-absichern/ https://zefanjas.de/freeradius-wlan-absichern/#comments Sun, 09 Dec 2018 03:35:33 +0000 https://zefanjas.de/?p=2811 An unserer Schule haben wir ein offenes WLAN mit einem Captive Portal sowie ein weiteres WLAN-Netz (WPA Enterprise, 802.1X), welches nur für Lehrkräfte gedacht ist. Für beide Netze nutzen wir einen RADIUS-Server für die Authentifizierung. Freeradius ist der am weitesten verbreitete OpenSource RADIUS-Server, der auch bei uns zum Einsatz kommt. In diesem Artikel wollen wir einen Freeradius-Server und Zertifikate für eine verschlüsselte Verbindung einrichten. Im Besonderen möchte ich auf die Anbindung an Linuxmuster 6.2 eingehen und die Authentifizierung mit einem...

Weiterlesen Weiterlesen

Der Beitrag Wie man sein WLAN-Netzwerk mit Freeradius absichern kann erschien zuerst auf .:zefanjas:..

]]>
An unserer Schule haben wir ein offenes WLAN mit einem Captive Portal sowie ein weiteres WLAN-Netz (WPA Enterprise, 802.1X), welches nur für Lehrkräfte gedacht ist. Für beide Netze nutzen wir einen RADIUS-Server für die Authentifizierung. Freeradius ist der am weitesten verbreitete OpenSource RADIUS-Server, der auch bei uns zum Einsatz kommt. In diesem Artikel wollen wir einen Freeradius-Server und Zertifikate für eine verschlüsselte Verbindung einrichten. Im Besonderen möchte ich auf die Anbindung an Linuxmuster 6.2 eingehen und die Authentifizierung mit einem LDAP-Server beschreiben.

Ein RADIUS-Server kümmert sich im Allgemeinen um 3 Dinge: Authentifizierung, Autorisierung und Accounting (oft auch als Triple-A oder AAA bezeichnet). Wir werden uns nur mit den ersten beiden „As“ beschäftigen, d.h. ob die Zugangsdaten korrekt sind und ob der Benutzer berechtigt ist, einen Zugang zu erhalten (zum WLAN z.B.).

Installation von freeradius

Die Installation führen wir auf einer aktuellen Linux-Installation (hier Ubuntu 18.04 Server) durch, z.B. in einem LXD Container oder einer virtuellen Maschine.

$ apt install freeradius freeradius-ldap freeradius-utils

Konfiguration

Grundkonfiguration

Um unseren freeradius Server zu testen, kommentieren wir folgende Zeile in /etc/freeradius/3.0/users aus oder fügen sie zu Beginn der Datei ein:

# Das Kommentarzeichen "#" vor dieser Zeile entfernen
steve Cleartext-Password := "testing"

Standardmäßig sollte in der Datei /etc/freeradius/3.0/clients.conf der localhost als Client eingerichtet sein:

client localhost {
  ipaddr = 127.0.0.1
  secret = testing123
}

Nun können wir einen ersten Test durchführen. Dazu stoppen wir den freeradius-Service und starten ihn manuell im Debug-Modus neu:

$ systemctl stop freeradius.service
$ freeradius -X
...
Ready to process request

Wichtig ist, dass am Ende „Ready to process requests“ steht.

Überprüfen der Grundkonfiguration

Als nächstes überprüfen wir, ob unser Test-Benutzer „Steve“ sich am RADIUS-Server anmelden kann (am besten in einem neuen/zweiten Terminal):

$ radtest steve testing 127.0.0.1 10 testing123

Falls alles passt, sollten wir folgende Antwort bekommen:

Sent Access-Request Id 234 from 0.0.0.0:40302 to 127.0.0.1:1812 length 75
    User-Name = "steve"
    User-Password = "testing"
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = "testing"
Received Access-Accept Id 234 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

Wichtig ist, dass wir ein „Received Access-Accept“ bekommen. Hat diese Anfrage geklappt ist der freeradius-Server grundlegend eingerichtet und die folgenden Authentifizierungsverfahren sollten ohne weitere Probleme klappen:

  • PAP
  • CHAP
  • MS-CHAPv1
  • MS-CHAPv2
  • PEAP
  • EAP-TTLS
  • EAP-GTC
  • EAP-MD5

Diese Verfahren sind unterschiedliche Protokolle, die verschieden „sicher“ sind. Alle verwenden einen Benutzernamen und Passwort zur Authentifizierung. Die Bedeutung der (P)EAP Verfahren kann man hier nachlesen. MS-CHAPv1 und v2 sind Verfahren aus dem Hause Microsoft.

Hinweis: Die Zeile mit unserem Benutzer „Steve“ sollten wir jetzt wieder kommentieren oder löschen!

Wir werden im Folgenden das LDAP-Modul konfigurieren und neue Zertifikate für EAP-TTLS erstellen.

LDAP Anbindung einrichten

Die Konfiguration des LDAP-Servers nehmen wir in der Datei /etc/freeradius/3.0/mods-enabled/ldap vor. Falls diese Datei nicht existiert, müssen wir vorher noch einen symbolischen Link erstellen.

$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ./

Ziemlich an Anfang der Datei konfigurieren wir unseren LDAP-Server:

server = "ldaps://linuxmuster.internal.example.com"
identity = "cn=admin,dc=internal,dc=example,dc=com"
password = superSecretPassword
base_dn = "ou=accounts,dc=internal,dc=example,dc=com"

...

group {
    ...
    membership_filter = "(|(member=%{control:Ldap-UserDn})(memberUid=%{%{Stripped-User-Name}:-%{User-Name}}))"
    ...
}

Es muss sichergestellt sein, dass alle nötigen Ports für die Kommunikation zwischen dem RADIUS und LDAP-Server offen sind.

Hinweis: Wenn man Freeradius 3.0 zusammen mit linuxmuster.net v6.2 verwenden möchte, müssen noch folgende Zeilen angepasst werden, damit die Authentifizierung mit Windows klappt (sign…):

update {
            control:Password-With-Header    += 'userPassword'
            control:NT-Password             := 'sambaNTPassword'
            ...
}

LDAP Verbindung testen

Nachdem der LDAP-Server in Freeradius konfiguriert ist, müssen wir ihn einmal neustarten und können anschließend testen, ob sich ein Benutzer aus dem LDAP am RADIUS-Server anmelden kann.

$ systemctl restart freeradius.service
$ radtest testuser password localhost 10 testing123
Sent Access-Request Id 213 from 0.0.0.0:46425 to 127.0.0.1:1812 length 73
    User-Name = "testuser"
    User-Password = "password"
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = "password"
Received Access-Accept Id 213 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

Wenn wir wieder ein „Received Access-Accept“ als Antwort erhalten, klappt die Verbindung zwischen RADIUS und LDAP-Server. Falls es nicht klappt, sollten wir den RADIUS Server manuell starten und schauen, welche Fehler uns der RADIUS-Server ausgibt.

$ systemctl stop freeradius.service 
$ freeradius -X 
... 
Ready to process request

Zertifikate erstellen (für EAP-TTLS)

Standardmäßig verwendet Freeradius sogenannte Snake-Oil-Zertifkate, die natürlich nicht für den produktiven Einsatz gedacht sind. Deshalb erstellen wir in den folgenden Schritten eine neue Root-CA und ein Zertifikat für den Server. Die Zertifikate und die dazugehörigen Konfigurationsdateien befinden sich unter /etc/freeradius/3.0/certs/. Zuerst öffnen wir die Datei ca.cnf und ändern ein paar wenige Einstellungen:

...
[ CA_default ]
...
default_days        = 3650
...
default_md      = sha256
...

[ req ]
....
default_bits        = 2048
input_password      = supersecretandlongpassword
output_password     = supersecretandlongpassword
...

[certificate_authority]
countryName     = US
stateOrProvinceName = My State
localityName        = My Town
organizationName    = My School
emailAddress        = admin@my-school.org
commonName      = "CA Freeradius"
...

Ähnliche Einstellungen nehmen wir nun der Datei server.cnf vor:

...

[ CA_default ]
...
default_days        = 3560
...
default_md      = sha256
...

[ req ]
...
default_bits        = 2048
input_password      = supersecretandlongpassword
output_password     = supersecretandlongpassword

[server]
countryName     = US
stateOrProvinceName = My State
localityName        = My Town
organizationName    = My School
emailAddress        = admin@my-school.org
commonName      = "Freeradius Server Certificate"

Das Passwort muss jetzt auch in der Datei /etc/freeradius/3.0/mods-enabled/eap geändert werden:

tls-config tls-common {
    private_key_password = supersecretandlongpassword
    ...
}

Die Zertifikate erstellen wir mit einem einfachen make:

$ cd /etc/freeradius/3.0/certs/
$ make

EAP-TTLS Anmeldung testen

epol_test kompilieren

radtest unterstützt leider keinen Test für eine EAP-TTLS Authentifizierung. Dazu brauchen wir das Tool eapol_test, welches Teil des wpa_supplicant Pakets ist. Leider wird dieses Tool standardmäßig nicht von wpa_supplicant gebaut, deswegen müssen wir das selbst machen. Wir laden den Quellcode herunter, entpacken ihn und müssen noch einige Abhängigkeiten installieren.

$ wget https://w1.fi/releases/wpa_supplicant-2.7.tar.gz
$ tar -xzvf wpa_supplicant-2.7.tar.gz
$ apt install build-essential pkg-config libnl-3-dev libssl-dev libnl-genl-3-dev
$ cd wpa_supplicant-2.7
$ cp defconfig .config

Danach müssen wir die Datei .config öffnen und die Zeile #CONFIG_EAPOL_TEST=y  finden und das Kommentarzeichen entfernen.

$ nano .config
# Kommentarzeichen "#" entfernen
CONFIG_EAPOL_TEST=y

Mit dem folgenden Befehlen bauen wir nun das Programm und kopieren es noch an die richtige Stelle:

$ make eapol_test
$ cp eapol_test /usr/local/bin

Anmeldung testen

Um EAP-TTLS zu testen, brauchen wir für eapol_test eine kleine Config-Datei, die folgendermaßen aussehen kann:

$ nano eapol_test.conf
network={
        ssid="example"
        key_mgmt=WPA-EAP
        eap=TTLS
        identity="mustermann"
        anonymous_identity="anonymous"
        password="strenggeheim"
        phase2="auth=PAP"
}

Nun können wir eapol_test aufrufen:

$  eapol_test -c eapol_test.conf -a 127.0.0.1 -p 1812 -s testing123

Wenn man am Ende diese Ausgabe erhält, war alles erfolgreich:

MPPE keys OK: 1  mismatch: 0
SUCCESS

Clients einrichten (z.B. Accesspoints)

Bisher haben wir immer nur direkt auf dem RADIUS-Server getestet. Im Normalfall wird die Anfrage für die Authentifizierung aber von einem Accesspoint, Captive Portal oder einem Wireless Controller kommen. Diese müssen auf dem RADIUS-Server als Clients eingerichtet werden. Wir öffnen dazu die Datei /etc/freeradius/3.0/clients.conf und fügen am Ende alle Accesspoints etc. mit ihrer IP und einem Passwort / Secret ein:

$ nano /etc/freeradius/3.0/clients.conf
client AP1 {
    ipaddr = 10.0.0.10
    secret = supersecretsecret
}

Nun kann man auf dem Accesspoint ein WPA Enterprise (802.1X) Netzwerk einrichten und den RADIUS-Server mit seiner IP, den Port (1812) und dem eben festgelegten Passwort/Secret konfigurieren. Nun sollte man sich mit seinem mobilen Gerät im WLAN anmelden können.

Zugang auf bestimmte LDAP Gruppen beschränken

An unserer Schule haben nur Mitarbeiter und Lehrkräfte sowie die Oberstufenschüler Zugang zum WLAN an der Schule. In linuxmuster.net ist das über die Gruppe p_wifi gelöst. Alle, die in dieser Gruppe sind, sollen Zugang bekommen. Bisher ist unser RADIUS-Server aber so konfiguriert, dass jeder Benutzer im LDAP Zugang erhält. Um den Zugang einzuschränken, fügen wir noch folgende Zeilen in der Datei /etc/freeradius/3.0/users hinzu:

DEFAULT Ldap-Group == "cn=p_wifi,ou=groups,dc=internal,dc=example,dc=com"
DEFAULT Auth-Type := Reject
   Reply-Message = "Your are not allowed to access the WLAN!"

Freeradius und linuxmuster.net 6.2

Die Installation von Freeradius für linuxmuster.net 6.2 ist in der Dokumentation beschrieben. Bis auf ein paar wenige Details ist die Konfiguration sehr ähnlich. In Freeradius 2.0 sind die Standardeinstellungen für die Zertifikate nicht mehr zeitgemäß, sodass es zu Verbindungsproblemen mit einigen Clients kommen kann (z.B. mit einem aktuellen macOS). Hier sollte man unbedingt die Vorgaben von Freeradius 3.0 verwenden (siehe oben)!

Unterschiedliche Zugangsbeschränkungen nach WLAN-Netz

An unserer Schule haben wir ein Captive Portal für Gäste und Schüler, sowie ein WPA 802.1X (Enterprise) Netz für Mitarbeiter und Lehrkräfte. Während sich am Captive Portal alle anmelden können, die in der Gruppe p_wifi sind, sollen sie im WPA 802.1X Netzwerk nur Lehrkräfte und Mitarbeiter anmelden dürfen. Die Anfragen vom Captive Portal kommen von einer anderen IP (pfSense) als die für das WPA Enterprise Netzwerk. In der Datei /etc/freeradius/sites-enabled/inner-tunnel haben wir deshalb eine Abfrage eingebaut, die überprüft, von welcher IP die Anfrage kommt und entsprechend entscheidet, ob jemand Zugang bekommt oder nicht:

post-auth {
    ...
    #Only allow Teacher&Staff on WPA 802.1X Teacher and Staff network  
    if (NAS-IP-Address == 10.0.0.10) {
        if (LDAP-Group == "cn=teachers,ou=groups,dc=internal,dc=example,dc=com" || LDAP-Group == "cn=staff,ou=groups,dc=internal,dc=example,dc=com") {
            noop
        } else {
            reject
        }
    }
    ...
}

Fazit

Dieser Artikel beschreibt nur eine von vielen Möglichen Konfigurationen. Ein RADIUS-Server ist komplex, aber dank der guten Standardkonfiguration von Freeradius (v.a. in Version 3) kommt man recht schnell zum Erfolg. Lange Zeit hatten wir nur das Captive Portal im Einsatz und es hat auch gut funktioniert, doch die Benutzerfreundlichkeit und Sicherheit ist mit einem WPA 802.1X (Enterprise) Netzwerk nochmal gestiegen. Ohne den RADIUS-Server wäre das aber nicht möglich gewesen.

Nützliche Links:

2 Kommentare

Der Beitrag Wie man sein WLAN-Netzwerk mit Freeradius absichern kann erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/freeradius-wlan-absichern/feed/ 2
pfSense automatisieren mit pfSsh.php https://zefanjas.de/pfsense-pfssh/ https://zefanjas.de/pfsense-pfssh/#comments Wed, 28 Nov 2018 13:29:24 +0000 https://zefanjas.de/?p=2803 pfSense hat seit einigen Versionen eine völlig überarbeitete Oberfläche. Damit lassen sich alle Einstellungen i.d.R. gut erreichen und einstellen. Das frei konfigurierbare Dashboard ist ebenfalls eine feine Sache. Trotz allem gibt es manchmal den Fall, dass man Einstellungen gern über eine API oder die Kommandozeile vornehmen möchte. pfSense hat aktuell keine API, diese soll erst in einer der kommenden Versionen integriert werden. Bis dahin kann man sich über die pfSense Entwickler-Shell behelfen, auch pfSsh.php genannt. Auf pfSsh.php zugreifen Am schnellsten...

Weiterlesen Weiterlesen

Der Beitrag pfSense automatisieren mit pfSsh.php erschien zuerst auf .:zefanjas:..

]]>
pfSense hat seit einigen Versionen eine völlig überarbeitete Oberfläche. Damit lassen sich alle Einstellungen i.d.R. gut erreichen und einstellen. Das frei konfigurierbare Dashboard ist ebenfalls eine feine Sache. Trotz allem gibt es manchmal den Fall, dass man Einstellungen gern über eine API oder die Kommandozeile vornehmen möchte. pfSense hat aktuell keine API, diese soll erst in einer der kommenden Versionen integriert werden. Bis dahin kann man sich über die pfSense Entwickler-Shell behelfen, auch pfSsh.php genannt.

Auf pfSsh.php zugreifen

Am schnellsten kommt man in die Entwickler-Shell, wenn man sich per SSH mit pfSense verbindet oder direkt einen Bildschirm an die Firewall anschließt. Wenn SSH noch nicht aktiviert ist, kann man das in der Weboberfläche unter System → Advanced nachholen.

pfSense SSH aktivieren

Besser ist es, wenn man das Einloggen mit Passwort verbietet und nur das Anmelden mit Zertifikat erlaubt.

Ist der SSH-Zugang aktivert, kann man sich nun mit dem Admin-Benutzer anmelden (IP anpassen):

$ ssh admin@192.168.1.254

pfSense CLI

Unter Punkt 12 findet man die Entwickler-Shell, die im Grunde eine PHP-Shell ist.

Beispielbefehle für pfSsh.php

Hier einige Beispielbefehle, die zeigen sollen, wie man die Shell verwenden kann. Jede Eingabe ist normaler PHP Code und muss mit exec; abgeschlossen werden.

DHCP Einstellungen anzeigen

pfSense shell: print_r($config["dhcpd"]);
pfSense shell: exec;
Array
(
    [lan] => Array
        (
            [range] => Array
                (
                    [from] => 10.0.1.7
                    [to] => 10.0.255.245
                )

        )

)

Domain festlegen

pfSense shell: $config['system']['domain'] = 'mydomain.com';
pfSense shell: write_config();
pfSense shell: exec;

Shell – Befehle ausführen

Innerhalb der PHP Shell kann man auch normale Shell-Befehle ausführen, indem man ein „!“ davor setzt:

pfSense shell: ! cat /etc/version 
pfSense shell: exec;
2.4.3-RELEASE

Befehle „aufnehmen“ und „abspielen“

Mit pfSsh.php kann man auch mehrere Befehle „aufnehmen“ und später „abspielen“. Diese sogenannten Sessions sind für wiederkehrende Aufgaben nützlich. Ein Beispiel:

pfSense shell: record echoTest
Recording of echoTest started.
pfSense shell: echo "Das\n";
pfSense shell: echo "ist\n";
pfSense shell: echo "ein\n";
pfSense shell: ! echo "Test\n"
pfSense shell: exec;
pfSense shell: stoprecording 
Recording stopped.

Die Eingaben werden unter /etc/phpshellsessions/ gespeichert und können dort bei Bedarf verändert werden.

Die „Aufnahme“ kann man nun wie folgt wiedergeben:

pfSense shell: playback echoTest

Playback of file echoTest started.

Das
ist
ein
Test

pfSense shell:

oder auch direkt von der root-Shell mit:

$ pfSsh.php playback echoTest

Fazit

pfSsh.php ist ein nützliches Werkzeug, um pfSense mit Skripten zu automatisieren oder Anpassungen vorzunehmen. Gerade, wenn man mehrere Instanzen verwaltet oder ein bestimmtes Setup immer wieder braucht, ist pfSsh.php eine große Hilfe. Man kann z.B. alle Einstellung (sprich PHP-Code) in eine Datei packen, unter /etc/phpshellsessions/ speichern und dann ausführen oder direkt die Ausgabe an pfSsh.php weiterleiten:

$ ssh admin@192.168.1.254 '/usr/local/sbin/pfSsh.php' < MeineConfig.txt

 

2 Kommentare

Der Beitrag pfSense automatisieren mit pfSsh.php erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/pfsense-pfssh/feed/ 2
Xubuntu – bester Kompromiss für Linux in der Schule? https://zefanjas.de/xubuntu-bester-kompromiss-fuer-linux-in-der-schule/ https://zefanjas.de/xubuntu-bester-kompromiss-fuer-linux-in-der-schule/#comments Sat, 17 Nov 2018 03:53:35 +0000 https://zefanjas.de/?p=2796 Auf der Suche nach einem neuen Desktop für unsere Schule möchte ich mir verschiedene Desktopumgebungen anschauen. Die Auswahl ist groß und ich habe einige sehr hilfreiche Kommentare und Vorschläge zu meinem letzten Artikel erhalten. Vielen Dank dafür.  Den Start macht heute Xubuntu. Xubuntu ist ein Derivat von Ubuntu, welches Xfce anstatt GNOME als Desktop nutzt. Auf der Website des Projekt beschreibt sich Xubuntu so: Xubuntu ist ein elegantes und einfach zu bedienendes Betriebssystem. Es wird mit Xfce ausgeliefert, einer stabilen,...

Weiterlesen Weiterlesen

Der Beitrag Xubuntu – bester Kompromiss für Linux in der Schule? erschien zuerst auf .:zefanjas:..

]]>
Auf der Suche nach einem neuen Desktop für unsere Schule möchte ich mir verschiedene Desktopumgebungen anschauen. Die Auswahl ist groß und ich habe einige sehr hilfreiche Kommentare und Vorschläge zu meinem letzten Artikel erhalten. Vielen Dank dafür.  Den Start macht heute Xubuntu. Xubuntu ist ein Derivat von Ubuntu, welches Xfce anstatt GNOME als Desktop nutzt. Auf der Website des Projekt beschreibt sich Xubuntu so:

Xubuntu ist ein elegantes und einfach zu bedienendes Betriebssystem. Es wird mit Xfce ausgeliefert, einer stabilen, leichten und konfigurierbaren Desktop-Umgebung.

Xubuntu ist perfekt für diejenigen, die das Beste aus ihren Desktops, Laptops und Netbooks mit einem modernen Look und genügend Funktionen für den effizienten, täglichen Gebrauch herausholen wollen. Es funktioniert auch auf älterer Hardware gut.

Bietet Xubuntu, was es verspricht? Ist es der beste Kompromiss aus modernem, aber ressourcenarmem Desktop? Das möchte ich mir anhand unserer Kriterien genauer anschauen.

Stabilität

Die Installation verlief ohne Probleme. Das ist heutzutage in den meisten Fällen kein Problem mehr 🙂 . Bei meinen Tests konnte ich bisher keine Stabilitätsprobleme erkennen.

Support

Im Gegensatz zu Ubuntu LTS bietet Xubuntu LTS 3 statt 5 Jahre Support. 5 Jahre sind sicher besser, aber in der Regel werden wir unser Image spätestens nach 3 Jahren updaten. Auf dem Server sind die längeren Support-Zeiträume wichtiger als auf dem Desktop.

Geringe Hardwareanforderungen

Die Hardwareanforderungen sind bei Xubuntu recht gering. Empfohlen werden 1GB Arbeitsspeicher und 20GB freier Speicher auf der Festplatte. Nach dem Start verbraucht Xubuntu ca. 500MB an Arbeitsspeicher. Sobald man aber Firefox mit ein paar Tabs startet steigt der Verbrauch schnell auf über 1GB an. Deshalb sollte man mindestens 2GB installiert haben. Ansonsten ist Xubuntu aber wesentlich genügsamer als Ubuntu mit GNOME oder Unity.

Einfache Bedienbarkeit

Dieser Punkt ist eher subjektiv, denn jeder hat sich im Laufe der Jahre an eine Desktop-Umgebung gewöhnt. Egal ob Windows, macOS, Unity, Gnome, Xfce, KDE – die Liste könnte ich noch lang weiterführen. Ich z.B. habe mich sehr an Unity gewöhnt und komme damit gut zurecht. Eine Umstellung auf GNOME oder eine andere Desktopumgebung fällt mir deshalb schwer. In einer Schule gibt es noch eine viel größere Bandbreite. Ich glaube man kann hier nicht so viel falsch machen, wenn man Linux in der Schule einsetzt. Für die meisten wird die Desktopumgebung neu sein. Es ist viel wichtiger Einführungen, Training und Workshops anzubieten, um die Kollegen an eine neue Umgebung zu gewöhnen. Generell kann man entscheiden, ob man sich eher an Windows 10 oder macOS orientiert.

Xfce hat ein Startmenü und kann mit einem Dock (z.B. Plank) erweitert werden. Dadurch sollten sich die meisten nach einiger Zeit gut zurechtfinden.

Modernes & hübsches Aussehen

Standardmäßig wirkt das Aussehen von Xubuntu eher altbacken, weder hübsch noch sonderlich modern. Über den Paketmanager kann man sich weitere Themes installieren, die dem Xfce-Desktop schöner machen. Das ist zum einen das Arc- oder Numix-Theme. Interessant fand ich auch noch das Qogir-Theme.

Xubuntu

Fazit

Xubuntu wird auf jeden Fall ein Kandidat für unseren Linux-Desktop in der Schule. Dafür sprechen v.a. die geringen Hardwareanforderungen. Sobald linuxmuster.net v7 als Beta veröffentlicht wird, werden wir Xubuntu noch den Praxistest unterziehen. Die meisten Schwierigkeiten und Stolpersteine zeigen sich bekanntlich erst, wenn man es auch tatsächlich einsetzt. Das Aussehen ist ein kleiner Dämpfer, auch wenn man es hübscher machen kann. An das neue Ubuntu-Theme in Ubuntu 18.10 kommt es m.M.n. aber nicht heran.

13 Kommentare

Der Beitrag Xubuntu – bester Kompromiss für Linux in der Schule? erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/xubuntu-bester-kompromiss-fuer-linux-in-der-schule/feed/ 13
Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile https://zefanjas.de/tipps-fuer-die-kommandozeile/ https://zefanjas.de/tipps-fuer-die-kommandozeile/#comments Mon, 12 Nov 2018 23:21:01 +0000 https://zefanjas.de/?p=2788 Letzte Woche kam ein Kollege auf mich zu, der ein paar individuelle Anpassungen für seinen Rechner im Klassenraum haben wollte. Es waren alles Dinge, die man recht schnell in den Systemeinstellungen einstellen konnte, doch wenn man das nach jedem Start machen muss, stört es schon. Es musste also eine Lösung her, wie man diese Dinge über die Kommandozeile lösen kann, damit wir die gewünschten Änderungen in ein Skript packen können, welches dann bei Anmelden ausgeführt wird. Deshalb hier ein paar...

Weiterlesen Weiterlesen

Der Beitrag Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile erschien zuerst auf .:zefanjas:..

]]>
Letzte Woche kam ein Kollege auf mich zu, der ein paar individuelle Anpassungen für seinen Rechner im Klassenraum haben wollte. Es waren alles Dinge, die man recht schnell in den Systemeinstellungen einstellen konnte, doch wenn man das nach jedem Start machen muss, stört es schon. Es musste also eine Lösung her, wie man diese Dinge über die Kommandozeile lösen kann, damit wir die gewünschten Änderungen in ein Skript packen können, welches dann bei Anmelden ausgeführt wird. Deshalb hier ein paar kleine Tipps für die Kommandozeile.

Ton anschalten / stumm schalten

In unserem Ubuntu-Image ist der Ton standardmäßig stumm geschaltet. Das macht in den meisten Fällen Sinn – v.a. im Computerraum. In manchen Räumen, z.B. im Musikraum oder auch allgemein an den Lehrkraftrechnern, wäre es benutzerfreundlicher, wenn der Ton automatisch eingeschaltet wird. Das geht mit folgendem Befehl:

# Ton einschalten
$ pactl set-sink-mute 0 0

Möchte man den Ton wieder stumm schalten, muss die letzte Null durch eine „1“ ersetzt werden:

# Ton stumm schalten
$ pactl set-sink-mute 0 1

Primären Bildschirm festlegen

In den meisten Räumen wird standardmäßig der Bildschirm gespiegelt, sobald ein Beamer oder Bildschirm über den HDMI-Switch angeschlossen wird. Im konkreten Fall nutzt der Kollege den Rechner in „seinem“ Raum mehr oder weniger allein und er wollte gern ein Setup mit einem erweiterten Bildschirm. Ubuntu platziert allerdings den Launcher / Starter standardmäßig auf dem Bildschirm mit der größeren Auflösung. Hier brauchten wir eine Lösung, wie man den primären Bildschirm per Kommandozeile umstellen kann, sodass der Hauptbildschirm der Monitor am Lehrertisch ist. Das lässt sich leicht mit xrandr lösen.

$ xrandr --output DVI-0 --primary

DVI-0 ist der Ausgang, an dem der Monitor auf dem Lehrertisch hängt. Über xrandr -q kann man sich alle verfügbaren Anschlüsse anzeigen lassen.

Mauszeiger Geschwindigkeit einstellen

Eigentlich geht es weniger um die Geschwindigkeit, als um die Beschleunigung des Mauszeigers. Wie kann man die Geschwindigkeit des Mauszeigers per Kommandozeile einstellen? Es gibt verschiedene Wege z.B. mit xset oder xinput. Wir haben uns über den Weg mit xinput entschieden. Allgemein kann man die Eigenschaften eines Eingabegerätes wie folgt einstellen:

$ xinput --set-prop Geräte-ID Eigenschafts-ID Wert

Die Geräte-ID bekommen wir indem wir xinput ohne Parameter oder mit --list ausführen. Hier im Beispiel ist eine kabellose Maus angeschlossen.

Mauszeiger Geschwindigkeit

Als nächstes brauchen wir noch die richtige Eigenschaft-ID. Diese bekommen wir über folgenden Befehl heraus („9“ ist unsere Geräte-ID):

$ xinput --list-props 9

Maus Beschleunigung

Um die Beschleunigung der Maus einzustellen, müssen wir den Wert bei Accel Speed (Eigenschaft-ID ist 290) verändern. Es sind Werte zwischen -1 und +1 zugelassen. Um z.B. die Mausbeschleunigung zu verlangsamen, können wir das mit diesem Befehl tun:

$ xinput --set-prop 9 290 -1

Fazit

Alle diese kleinen Änderungen haben wir in ein Skript gepackt und dann per Postsync an den entsprechenden Rechner verteilt. Diese Flexibilität, die Ubuntu oder in unserem Fall linuxmuster.net bietet, ist eines der Hauptargumente, warum wir es einsetzen.

Welche netten und nützlichen Tipps für die Kommandozeile kennst du?

4 Kommentare

Der Beitrag Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/tipps-fuer-die-kommandozeile/feed/ 4
Wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/ https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/#comments Tue, 30 Oct 2018 12:55:47 +0000 https://zefanjas.de/?p=2775 In unserer Schule haben wir einige Rechner, an denen ein Beamer fest angeschlossen ist. Der Beamer wiederum hängt an einem HDMI-Switch, damit man bequem zwischen verschiedenen Eingängen umschalten kann, z.B. eigener Laptop oder Dokumentenkamera. Ubuntu erweitert standardmäßig den Desktop, wenn man einen Bildschirm anschließt. In unserer Situation wollen wir aber etwas anderes. Der Desktop des Rechners sollte ebenfalls am Beamer gezeigt werden. Es gibt verschiedene Wege, wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird. Ich möchte beschreiben, wie...

Weiterlesen Weiterlesen

Der Beitrag Wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird erschien zuerst auf .:zefanjas:..

]]>
In unserer Schule haben wir einige Rechner, an denen ein Beamer fest angeschlossen ist. Der Beamer wiederum hängt an einem HDMI-Switch, damit man bequem zwischen verschiedenen Eingängen umschalten kann, z.B. eigener Laptop oder Dokumentenkamera. Ubuntu erweitert standardmäßig den Desktop, wenn man einen Bildschirm anschließt. In unserer Situation wollen wir aber etwas anderes. Der Desktop des Rechners sollte ebenfalls am Beamer gezeigt werden. Es gibt verschiedene Wege, wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird. Ich möchte beschreiben, wie man udev verwenden kann, um dieses Problem zu lösen.

Bildschirme automatisch spiegeln

Potenzielle Möglichkeiten

Es gibt verschiedene Stellen, an denen man ansetzen kann, um Bildschirme zu spiegeln. Einige möchte ich kurz auflisten:

  • keine Automatisierung. Der Benutzer (in unserem Fall die Lehrkaft) muss sich nach jeder Anmeldung selbst den Bildschirm so einstellen, wie er/sie es haben will.
  • Symbol auf dem Desktop. Eine weitere Möglichkeit wäre, dass man ein Skript erstellt, welches den Bildschirm spiegelt und eine Verknüpfung auf den Desktop legt. Mit einem Klick könnte man dann die Bildschirme spiegeln.
  • Autostart eines Skripts nach dem Anmelden. Das war bisher unsere Lösung. Ein kleines Skript spiegelt die Bildschirme nach der Anmeldung des Benutzers.
  • LightDM / GDM so konfigurieren, dass es schon beim Anmeldeschirm die Bildschirme spiegelt
  • In Gnome3 / Unity kann man auch die monitor.xml verwenden, um Bildschirmkonfigurationen zu speichern.
  • Ein Skript, was überprüft, ob ein Bildschirm angeschlossen ist oder nicht und entsprechend die Bildschirme spiegelt, auch im laufenden Betrieb.

Die meisten Möglichkeiten hier lösen das Problem, dass die Bildschirme nach dem Anmelden / beim Anmelden gespiegelt sind. Bei uns trat aber zusätzlich das Problem auf, dass die Bildschirmeinstellungen zurückgesetzt wurden, sobald man ein eigenes Gerät eingesteckt oder eine andere Quelle am HDMI-Switch ausgewählt hatte. Wenn man dann zurückgeschaltet hat, war der Desktop wieder erweitert, statt gespiegelt.

Daraus folgt die Frage: Gibt es eine Möglichkeit, eine Aktion auszulösen, sobald ein HDMI-Kabel eingesteckt oder abgezogen (physisch oder über den HDMI-Switch) wird?

udev

Ja! udev ist ein Hintergrunddienst, der sich genau darum kümmert. Er kümmert sich um alle Einträge unterhalb von /dev/, d.h. Festplatten, externe Medien, USB-Geräte und auch Grafikkarten. Wenn ein Kabel angesteckt oder abgezogen wird, löst udev ein Ereignis („Event“) aus, auf das man mit Hilfe einer udev-Regel reagieren kann. Bevor wir jedoch so eine Regel erstellen, wollen wir uns anschauen, was passiert, wenn ein Kabel eingesteckt oder abgezogen wird. Dazu können wir das udev-Management-Tool (udevadm) verwenden.

$ udevadm monitor --environment --udev

Wenn wir jetzt das HDMI-Kabel einstecken oder abziehen, bekommen wir folgende Ausgabe:

UDEV  [2247.166677] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2120
SUBSYSTEM=drm
TAGS=:seat:master-of-seat:uaccess:
USEC_INITIALIZED=15405142

udev sagt uns hier, um welches Gerät es sich handelt („card0“), welche Aktion ausgelöst wurde („CHANGE“) und welches Subsystem betroffen ist („DRM“). Diese Angaben brauchen wir gleich für unsere udev-Regel. Diese erstellen wir unter /etc/udev/rules.d/95-hotplug-hdmi.rules:

$ nano /etc/udev/rules.d/95-hotplug-hdmi.rules

Dort fügen wir folgende Zeile ein:

ACTION=="change", SUBSYSTEM=="drm", RUN+="/bin/bash /usr/sbin/setHDMIStatus"

Wir reagieren also auf ein „change“ Ereignis im Subsystem „drm“ und wollen, falls dieses Event eintritt das Skript „/usr/sbin/setHDMIStatus“ ausführen. Das Skript schreibt den aktuellen Status in eine Datei. Es kann auch irgendetwas anderes in die Datei geschrieben werden, Hauptsache, die Datei verändert sich, wenn der Status sich ändert. Warum werden wir gleich noch sehen. Das Skript setHDMIStatus hat folgenden Inhalt (Benutzernamen anpassen, im Falle von linuxmuster.net kann man den Account des Vorlagenbenutzers bzw. lokalen Admins nehmen):

#!/bin/bash

STATUS="$(/bin/cat /sys/class/drm/card0-DVI-D-1/status)"
/bin/echo $STATUS > /home/user/.hdmi_status

/sys/class/drm/card0-DVI-D-1/status ist der Pfad zum Status unseres HDMI-Anschlusses. In diesem Fall ist es ein DVI-Anschluss.

Hinweis: Das Skript ist ein Workaround, da zum Zeitpunkt des udev-Ereignisses xrandr den Status disconnected liefert, obwohl das Kabel angeschlossen war.

inotify

Bis jetzt haben wir lediglich erreicht, dass der Status (connected, disconnected) in eine Datei geschrieben wird. Wir wollen jetzt diese Datei auf Änderungen überwachen und je nach Status die Bildschirme spiegeln. Dazu erstellen wir folgendes Skript (z.B. mit dem Namen /usr/sbin/mirrorDisplays):

#!/bin/bash

HDMI_STATUS=/home/user/.hdmi_status
PROJECTOR=/sys/class/drm/card0-DVI-D-1/status
touch $HDMI_STATUS
dmode="$(cat $PROJECTOR)"

function mirror {
    xrandr --output DVI1 --mode "1280x1024" --same-as VGA1 --output VGA1 --mode "1280x1024"
}

#Initial Login (Spiegeln beim Anmelden)
if [ "${dmode}" = connected ];then
    mirror
fi

# watch HDMI connected status and setup screens
while inotifywait -q -e modify,create,delete,open,close,close_write,access $HDMI_STATUS &> /dev/null;
dmode="$(cat $PROJECTOR)"
do
    if [ "${dmode}" = connected ];then
     sleep .5s
     mirror
    fi
done

Damit das Skript auch funktioniert, müssen die inotify-tools installiert sein und das Skript ausführbar gemacht werden.

$ sudo apt install inotify-tools
$ sudo chmod +x /usr/sbin/mirrorDisplays

Das Skript überwacht unserer angelegte Datei (/home/user/.hdmi_status) und löst, wenn ein HDMI-Kabel angeschlossen ist, den xrandr-Befehl zum Spiegeln der Bildschirme aus.

Autostart

Nun muss das Skript nur noch als Startprogramm festgelegt werden, damit es bei der Anmeldung mit gestartet wird.

Autostart einrichten

 

Fazit

Wir nutzen dieses Setup nun für alle unsere Rechner, an denen ein Beamer hängt. Da wir dank linuxmuster.net nur ein einziges Ubuntu-Image für alle unsere Rechner verwenden, verteilen wir die oben aufgeführten Skripte per postsync an die entsprechenden Rechner.

Bisher funktioniert alles recht zuverlässig, auch wenn wir weiterhin auf der Suche nach einer Lösung sind, die noch etwas universeller ist und keinen Umweg mit einer extra Datei braucht. Wer einen Vorschlag hat, nur her damit 🙂

 

 

4 Kommentare

Der Beitrag Wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/feed/ 4
OpenBoard – App des Monats https://zefanjas.de/openboard-app-des-monats/ https://zefanjas.de/openboard-app-des-monats/#comments Tue, 23 Oct 2018 07:16:00 +0000 https://zefanjas.de/?p=2769 In unserer Schule haben wir einige wenige interaktive Whiteboards, die wir natürlich auch gern unter Ubuntu verwenden wollen. Als Software verwenden wir OpenBoard. Vor einiger Zeit hatte ich bereits einen Artikel zur Einrichtung und Integration von OpenBoard in unsere Schulserverlösung linuxmuster.net geschrieben. Die Software hat seitdem einige Updates erfahren. Für mich ist OpenBoard eine weitere unerlässliche Software für den Einsatz in der Schule. OpenBoard kann auch gut verwendet werden, wenn man keine interaktiven Whiteboards hat. Installation von OpenBoard OpenBoard kann...

Weiterlesen Weiterlesen

Der Beitrag OpenBoard – App des Monats erschien zuerst auf .:zefanjas:..

]]>
In unserer Schule haben wir einige wenige interaktive Whiteboards, die wir natürlich auch gern unter Ubuntu verwenden wollen. Als Software verwenden wir OpenBoard. Vor einiger Zeit hatte ich bereits einen Artikel zur Einrichtung und Integration von OpenBoard in unsere Schulserverlösung linuxmuster.net geschrieben. Die Software hat seitdem einige Updates erfahren. Für mich ist OpenBoard eine weitere unerlässliche Software für den Einsatz in der Schule. OpenBoard kann auch gut verwendet werden, wenn man keine interaktiven Whiteboards hat.

Installation von OpenBoard

OpenBoard kann man direkt von der Website herunterladen und installieren. Leider gibt es derzeit nur eine Version für Ubuntu 16.04 und noch nicht für 18.04. Nach dem Download kann man OpenBoard wie folgt installieren:

$ wget https://github.com/OpenBoard-org/OpenBoard/releases/download/v1.4.1/openboard_ubuntu_16.04_1.4.1_amd64.deb
$ sudo dpkg -i openboard_ubuntu_16.04_1.4.1_amd64.deb

Features

Einfach zu benutzen

OpenBoard bietet eine übersichtliche Oberfläche, in der man sich schnell zurechtfindet. Am unteren Bildschirmrand findet man die verschiedenen Werkzeuge, wie z.B. Stift, Textmarker, Laserpointer etc. Am oberen Rand kann man die Farbe, die Linienstärke einstellen oder auch fortgeschrittene Einstellungen zu den Seiten und dem Seitenhintergrund vornehmen. Auf der rechten Seite kann man sich bei Bedarf die Bibliothek (Bilder, Sounds, Videos, …) einblenden lassen.

OpenBoard Oberfläche

Mini-Anwendungen

OpenBoard stellt einige Mini-Anwendungen bereit, die teilweise sehr praktisch sind. Es gibt Widgets für Uhren, Countdowns, OpenStreetMap, Google Maps, Taschenrechner, Lineale usw. Zusätzlich stehen auch noch kleine interaktive Anwendungen wie Würfel, Magic Box etc. bereit. Diese lassen sich jeweils einzeln konfigurieren und so gut in den eigenen Unterricht integrieren.

OpenBoard Widgets

Podcast / Screencast Modus

Seit Version 1.4 gibt es den Podcast bzw. Screencast Modus auch in der Linux-Version. Damit kann man seinen Unterricht bzw. Präsentation aufnehmen (mit und ohne Ton). Wenn man möchte, kann OpenBoard dieses Video dann direkt auf Youtube oder im eigenen Netz veröffentlichen. Dieses Feature ist sicher für einige interessant, denn es bietet ganz neue Möglichkeiten eine Unterrichtsstunde oder Ausschnitte anderen Personen zur Verfügung zu stellen.

Weitere Features

  • Unterschiedliche Hintergründe für Seiten einstellbar (z.B. Kästchen oder Linien)
  • Videos, Audio-Dateien können eingebunden werden
  • Integrierte Webbildersuche
  • Dokumenten-Management, um die einzelnen Seiten und Dokumente zu organisieren

Fazit

Wer einen Bildschirm, einen Beamer oder sogar ein interaktives Whiteboard in seinem Klassenzimmer hat, bekommt mit OpenBoard eine tolle Software an die Hand, die einfach zu verwenden ist. Sie bietet viele Erweiterungen und Gestaltungsmöglichkeiten an, sodass der Kreativität nur wenig Grenzen gesetzt sind.

Titelbild © openboard.ch

3 Kommentare

Der Beitrag OpenBoard – App des Monats erschien zuerst auf .:zefanjas:..

]]>
https://zefanjas.de/openboard-app-des-monats/feed/ 3