Skip to content

netplan unter Ubuntu Server 18.04 LTS konfigurieren oder entfernen

Seit einiger Zeit stellt Canonical für seine Distributionen die Netzwerkkonfiguration via netplan bereit.

Mit der Einführung der Serverversion 18.04 LTS ist diese fester Bestandteil der Long Term Support Edition.

Doch wo ist der Unterschied zur alten Konfiguration und welche Befehle werden benötigt?

netplan.iologo

netplan.io

Anders als die alten Netzwerkkonfigurationsdateien, beruht netplan auf der YAML Syntax. Außerdem werden als Renderer Networkmanager (Desktop), sowie system-networkd (Server) unterstützt.

Die Funktion ist relativ schnell erklärt: Beim Bootvorgang wird aus allen yaml Dateien  /etc/netplan/*.yaml eine Konfiguration generiert und unter /run abgelegt.

Die Konfiguration lässt sich aber auch im laufenden Betrieb anpassen.

Eine klassische Konfigurationsdatei /etc/netplan/01-netcfg.yaml mit fester IP-Adresse würde wie folgt aussehen:

system
network:
        version: 2
        renderer: networkd
        ethernets:
                eth0:
                        dhcp4: no
                        dhcp6: no
                        addresses: [192.169.1.100/24]
                        gateway4: 192.169.1.1
                        nameservers:
                                search: [itrig.lokal]
                                addresses: [1.1.1.1,8.8.8.8]

Als Renderer ist in diesem Fall networkd hinterlegt, es kann aber genauso renderer: NetworkManager angegeben werden, beispielsweise bei einem Desktop Betriebssystem.

Die Notation des Subnetzes erfolgt hier im CIDR Format. Als kleine Hilfestellung hier eine Tabelle wink

Prefix   | Subnet mask IPv4 | Subnet mask IPv6
/24      | 255.255.255.0    | 11111111.11111111.11111111.00000000
/25      | 255.255.255.128  | 11111111.11111111.11111111.10000000
/26      | 255.255.255.192  | 11111111.11111111.11111111.11000000
/27      | 255.255.255.224  | 11111111.11111111.11111111.11100000
/28      | 255.255.255.240  | 11111111.11111111.11111111.11110000
/29      | 255.255.255.248  | 11111111.11111111.11111111.11111000
/30      | 255.255.255.252  | 11111111.11111111.11111111.11111100
/31      | 255.255.255.254  | 11111111.11111111.11111111.11111110
/32      | 255.255.255.255  | 11111111.11111111.11111111.11111111

Um die neue Konfiguration zu generieren und anzuwenden werden folgende Befehle verwendet.

sudo netplan generate
sudo netplan apply

Eine Kontrolle kann mit neuen

sudo netplan try

sudo netplan --debug apply

sudo netplan config show

oder alternativ auch mit alten Befehlen erfolgen.

ip a

Hier gilt zu beachten, dass netplan apply keine virtuellen Geräte wie Netzwerkbrücken oder Netzwerkbündel entfernt, auch wenn sie nicht mehr in der Netplan Konfiguration stehen.

Hier muss momentan noch mit ip link delete dev bond0 operiert werden.

netplan.io

 

/etc/network/interfaces

Zum Vergleich eine alte Konfiguration, welche unter  /etc/network/interface zu finden ist.

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    network 192.168.1.0
    gateway 192.168.1.1
    #dns-nameservers 1.1.1.1 8.8.8.8
    dns-search itrig.lokal


netplan.io entfernen oder deaktivieren

Es besteht die Möglichkeit die oben beschriebene frühere Variante weiter zu verwenden. So bleibt eine alte Konfiguration beispielsweise bei einem Update von 16.04 auf 18.04 erhalten.

Bei einer Neuinstallation von 18.04 LTS kann ein Administrator ebenso auf die alte Variante schwenken, dazu muss das benötigte Paket installiert werden.

sudo apt-get install ifupdown

sudo apt -y purge netplan.io

Nun kann die Netzwerkkonfiguration unter /etc/network/interface abgelegt werden, sowie ein Neustart des Dienstes erfolgen.

sudo systemctl restart networking

Zu Bedenken sind noch die DNS Settings, welche unter /etc/systemd/resolved.conf abgelegt werden sollten.

#
# See resolved.conf(5) for details

[Resolve]
DNS=1.1.1.1 8.8.8.8
#FallbackDNS=8.8.8.8 8.8.4.4
#Domains=
#LLMNR=yes

Nun sollten die Netzwerkeinstellungen wieder der von Ubuntu 16.04 LTS oder 14.04 LTS entsprechen.

Übersicht wichtiger und praktischer Postfix Befehle und Sicherheitseinstellungen

Zum Wochenende eine kleine Übersicht praktischer Postfix Befehle, damit es mit dem eigenen Mailserver oder Mailrelay besser klappt.

postfix

Übersicht Postfix Befehle

Installierte Version anzeigen

sudo postconf mail_version

Eigene Konfiguration anzeigen

sudo postconf -n

Standard Konfiguration anzeigen

sudo postconf -d

Mailwarteschlage anzeigen

sudo mailq

Anzahl der Mails in der Warteschlange anzeigen

sudo mailq | tail -1

Mailqueue abarbeiten

sudo postqueue -f

Einzelne Mails löschen

sudo postsuper -d QueueID

Alle Mails aus der Queue löschen (Vorsicht walten lassen)

sudo postsuper -d ALL

Mails in tabellenform anzeigen

sudo qshape

Einzelne Mail ansehen

sudo postcat -q QueueID

Bestimmte Mails einer Adresse löschen

postqueue -p|grep 'email@beispiel.de'|awk {'print $1'} | grep -v "(host"|tr -d '*!'|postsuper -d -

Postfix Logs ansehen (Ubuntu)

sudo tailf /var/log/mail.log

Mail Queue in Textdatei umleiten

sudo mailq > /tmp/mailtext.txt

Postfix Konfiguration neu laden

sudo systemctl reload postfix

Mails auswerten und Statistiken erstellen

Hier Verweise ich auf den Pflogsumm Artikel, welcher immer noch Gültigkeit hat.

sudo apt install pflogsumm 

qshape

Sicherheit und Härtung der Postfix Einstellungen

Damit die Konfiguration passt, hier eine Übersicht sinnvoller Einträge für die main.cf.

#SMTP daemon absichern - Mailempfang
 smtpd_tls_security_level = may
 smtpd_tls_mandatory_ciphers = high
 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
 smtpd_tls_protocols = !SSLv2 !SSLv3
 smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CBC3-SHA, KRB5-DES, CBC3-SHA
#SMTP absichern - Mailsender
 smtp_tls_protocols = !SSLv2, !SSLv3
 smtp_tls_security_level = may
 smtp_tls_mandatory_ciphers = high
 smtp_tls_mandatory_protocols = !SSLv2 !SSLv3
#Einstellungen für relaying
  smtp_sasl_auth_enable = yes
  smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
  smtp_sasl_security_options = noanonymous
#Verify wird nicht benötigt
  disable_vrfy_command=yes
#Interface auf lokal schalten
  inet_interfaces=127.0.0.1
#Ipv6 abschalten wenn nicht benötigt
  inet_protocols = ipv4
#Serverbegrüßung einschalten
  smtpd_helo_required=yes


 Logjam in Postfix verhindern

Um die Logjam Lücke zu schließen, muss der Diffie Hellmann Key Exchange neu konfiguriert werden. Dazu wird folgendes generiert.

sudo openssl dhparam -out /etc/postfix/dhparams.pem 2048

Danach muss der Parameter nur noch in die main.cf eingetragen werden.

smtpd_tls_dh1024_param_file = /etc/postfix/dhparams.pem

Sind alle Einstellungen gesetzt und die Konfiguration neu geladen kann getestet werden.

posttls-finger

Verschlüsselte Verbindung eines Postfix Servers testen

Um eine Verbindung zu überprüfen bietet sich das Tool posttls-finger an, damit erspart sich ein Admin eventuell das Anpassen von Logeinstellungen oder die Verwendung von Telnet.

sudo posttls-finger smtp.testserver.de

 

ssh-audit - OpenSSH Sicherheit testen, konfigurieren und härten

Secure Shell (SSH) dürfte fast jeder schon einmal gehört haben, nicht nur wegen der vielen Updates in letzter Zeit.

Das Netzwerkprotokoll, welches häufig zur Wartung oder zum Datenaustausch mit entfernten Geräten verwendet wird, ist aus dem Alltag kaum wegzudenken.

SSH ermöglicht eine sichere Verbindung in unsicherer Umgebung, dank Verschlüsselung und Authentifizierung.

Neben Passwortauthentifizierung kann das Protokoll mit Public Key Verfahren genutzt werden, was durchaus zu empfehlen ist.

Die Einstellungen in der Konfiguration "/etc/ssh/sshd_config" dazu sind schnell gesetzt:

PubkeyAuthentication yes

PasswordAuthentication no

 

Neben der Authentifizierungsmethode gibt es allerdings noch weitere Einstellungsmöglichkeiten.

Um Verbindungen zwischen Client und Server möglichst sicher zu gestalten, können in der Konfiguration verschiedene Einstellungen gesetzt werden.

Unter anderen folgende Werte.

 

  • KexAlgorithms (Key Exchange): Die Schlüsselaustausch-Algorithmen für die symmetrische Verschlüsselung.
  • Ciphers Die Ciphers zur symmetrischen Verschlüsselung der Verbindung.
  • MACs (Message authentication codes): Nachrichten Authentifizierungsverfahren, um die Integrität zu sichern.
  • HostKeyAlgorithms Algorithmus welchen der Client verwendet

 

Durch alte bzw. gebrochene oder mangelhafte Verschlüsselung kann es zu Sicherheitslücken kommen, welche sich durch richtige Einstellungen vermeiden lassen.

Mit Hilfe des Kommandozeilen Tools ssh-audit lassen sich fehlerhafte SSH Einstellungen schnell ausfindig machen.

ssh-audit - OpenSSH Sicherheit testen und richtig konfigurieren

Das Programm liest die Version und Einstellungen von OpenSSH aus und zeigt im Ampelformat an, welche Algorithmen und Ciphers abgeschaltet werden sollten.

ssh-auditDazu werden zusätzliche Infos eingeblendet. Warum genau diese Cipher oder jener Algorithmus nicht mehr verwendet werden sollten.

In der aktuellen Programmversion 1.7.x werden folgende Hauptfeatures unterstützt.

  •     SSH1 and SSH2 protocol server support
  •     grab banner, recognize device or software and operating system, detect compression
  •     gather key-exchange, host-key, encryption and message authentication code algorithms
  •     output algorithm information
    • available since 
    • removed/disabled 
    • unsafe/weak/legacy, etc
  •     output algorithm recommendations
    • append or remove based on recognized software version;
  •     output security information
    • related issues
    • assigned CVE list, etc
  •     analyze SSH version compatibility based on algorithm information
  •     historical information from OpenSSH, Dropbear SSH and libssh
  •     no dependencies, compatible with Python 2.6+, Python 3.x and PyPy

Installation unter Ubuntu 16.04 und Python3

Die Installation ist relativ einfach, allerdings kann es sein, dass mit Ubuntu 14.04 und Python 2.7 und Ubuntu 16.04 mit Python 3 noch ein paar Handgriffe notwendig sind.

wget https://github.com/arthepsy/ssh-audit/archive/v1.7.0.zip

unzip v1.7.0.zip

cd ssh-audit-1.7.0/

Zum Starten des Audits muss Python Script und eine Serveradresse aufgerufen werden. Als ersten Test bietet sich localhost an.

Unter Ubuntu 16.04 muss allerdings darauf geachtet werden, dass Python 3 richtig eingerichtet ist. Darum sollte hier noch ein Symlink gesetzt werden, damit das Script richtig ausgeführt werden kann

$ python -V
-bash: /usr/bin/python: No such file or directory

$ sudo ln -s /usr/bin/python3 /usr/bin/python

$ ls -l /usr/bin/ |grep python
lrwxrwxrwx 1 root   root          16 Oct 29 19:29 python -> /usr/bin/python3

Danach kann das Audit Script den Ubuntu 16.04 Server auf schwache Einstellungen kontrollieren. Hier ein Auszug.

sudo ./ssh-audit.py localhost

# general
(gen) banner: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
(gen) software: OpenSSH 7.2p2
(gen) compatibility: OpenSSH 7.2+, Dropbear SSH 2013.62+
(gen) compression: enabled (zlib@openssh.com)

# key exchange algorithms
(kex) curve25519-sha256@libssh.org          -- [info] available since OpenSSH 6.5, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp256                    -- [fail] using weak elliptic curves
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384                    -- [fail] using weak elliptic curves

# host-key algorithms
(key) ssh-rsa                               -- [info] available since OpenSSH 2.5.0, Dropbear SSH 0.28
(key) rsa-sha2-512                          -- [info] available since OpenSSH 7.2

# encryption algorithms (ciphers)
(enc) chacha20-poly1305@openssh.com         -- [info] available since OpenSSH 6.5
                                            `- [info] default cipher since OpenSSH 6.9.
(enc) aes128-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr                            -- [info] available since OpenSSH 3.7
(enc) aes256-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52

# message authentication code algorithms
(mac) umac-64-etm@openssh.com               -- [warn] using small 64-bit tag size
                                            `- [info] available since OpenSSH 6.2
(mac) umac-128-etm@openssh.com              -- [info] available since OpenSSH 6.2


 

OpenSSH Härtung (ab Version OpenSSH 6.7)

Bei der neuesten OpenSSH Version können verschiedene Sicherheitseinstellungen gesetzt werden.

Im Screenshot seht ihr eine laut Audit optimale Einstellung für einen Server zum jetzigen Zeitpunkt.

ssh-gehaertet


Die Einstellungen kommen wie folgt zu Stande: 

Zunächst zum Key Exchange. Elliptische Kurven vom National Institute of Standards and Technology (Nist) haben nicht den besten Ruf und sind durch Timingangriffe verletzbar. SHA1 zählt auch nicht mehr zu den besten Methoden unserer Zeit und kann ebenfalls deaktiviert werden.

Das heißt von den verfügbaren Möglichkeiten (siehe unten) bleiben nur noch curve25519-sha256 und diffie-hellman-group-exchange-sha256 als Auswahl übrig. 

  • curve25519-sha256: ECDH over Curve25519 with SHA2
  • diffie-hellman-group1-sha1: 1024 bit DH with SHA1
  • diffie-hellman-group14-sha1: 2048 bit DH with SHA1
  • diffie-hellman-group-exchange-sha1: Custom DH with SHA1
  • diffie-hellman-group-exchange-sha256: Custom DH with SHA2
  • ecdh-sha2-nistp256: ECDH over NIST P-256 with SHA2
  • ecdh-sha2-nistp384: ECDH over NIST P-384 with SHA2
  • ecdh-sha2-nistp521: ECDH over NIST P-521 with SHA2
Quelle

Für Mac, HostKeys und Ciphers gelten ähnliche Regeln. Auch hier sollten Einstellungen mit MD5/SHA1 oder CBC entfernt werden. Open SSH Audit hebt diese in roter Schrift hervor. Am Ende bleibt eine sichere Einstellung und folgende Angaben unter /etc/ssh/sshd_config.

Diese beispielhaften Einstellungen wurde so gewählt, dass eine Verbindung via Windows und PuTTY möglich ist.

debianbanner no

KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

MACs hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256

HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa

Fazit

open-ssh audit bietet eine einfache und schnelle Möglichkeit SSH Verbindungen zu testen und bei Bedarf auch zu härten. Das Tool erklärt dem Nutzer seine Wahl und ist somit recht verständlich.

Allerdings sollte immer auf die jeweilige Umgebung in Verbindung mit den Einstellungen geachtet werden. Auch sollte nach einer Änderung zwingend eine Testverbindung aufgebaut werden (SSH Dienst neu starten nicht vergessen).

Details zu weiteren Einstellungen und deren Funktion, welche der Audit zurzeit nicht bieten kann, sollten an anderer Stelle nachgelesen werden. Hier empfiehlt sich das Raven Wiki für einen ersten Überblick

ssh audit

Kiosk Systeme für alle - kein Problem mit FullPageOS

Nicht nur im professionellen Bereich sind Kiosk Systeme gerne gesehen, auch im privaten Bereich erfüllen sie durchaus ihren Zweck.
In Firmen dienen sie der steten Überwachung im Netzwerkbereich oder einer ersten Firmenpräsentation in der Lobby. Im privaten Sektor können damit aktuelle Wetter- und Temperaturdaten auf den Bildschirm oder neuerdings den Spiegel gebracht werden.

Meistens steckt hinter solchen Systemen nicht mehr als ein RaspberryPi oder andere Mini Computer. Diese werden mit einem schlichten System bestückt und booten in die gewünschte Umgebung. Doch bis zum fertigen Kiosksystem sind oft mehrere Handgriffe notwendig, hier setzt FullPageOS an.

FullPageOS

FullPageOS - Kiosk System fürs Volk

FullPageOS ist ein Fork von OctoPi, welches im 3D Druckbereich verbreitet ist. Beide Systeme basieren auf Raspbian und bringen lediglich einige Scripte mit, welche das System zu einem reinen Kiosk System umwandeln.
Das FullPageOS bootet in diesem Fall einen Chromium Browser im Vollbildmodus, nicht mehr und nicht weniger, fast ganz ohne manuellen Eingriff ist aber auch das nicht möglich.
Die gewünschte Webseite zur Präsentation kann individuell festgelegt werden.

Installation FullPageOS

Konfiguration von FullPageOS

Auch wenn das System als fertiges Kiosk System angepriesen wird, sind ein paar wenige Handgriffe für die Erstkonfiguration notwendig.

Zunächst sollten die Lan- oder Wlan Einstellungen unter "/boot/fullpageos-network.txt" angepasst werden.

Ist dieser Schritt erledigt, wird das System nochmal gebootet.

Nun erfolgt eine Einwahl über SSH auf das Gerät (am besten mit Putty). Ein Login ist mit "pi" und "raspberry" möglich. Nach der ersten Verbindung sollte das Passwort des Standardnutzers mit "passwd pi" geändert werden. Weitere Konfigurationen können mit "sudo raspi-config" erfolgen.

Die Startseite eures Kiosk Systems kann unter "boot/fullpageos.txt" angepasst werden.

raspi-config

Auf dem System ist ein VNC Server zur Wartung vorinstalliert, solltet ihr diesen nicht benötigen, schaltet ihn besser ab.

sudo apt-get remove x11vnc

Je nach Sicherheitslevel können weitere Härtungsmaßnahmen ergriffen und unnötige Pakete oder Dienste deaktiviert werden.

Nach diesen letzten Schritten sollte ein fertiges Kiosk System vorhanden und funktionstüchtig sein.

Weitere Infos sind auf der Entwickler Webseite zu finden.



Für ein Kiosk System ist sicherlich nicht zwingend ein extra Betriebsystem notwendig, denn auch vorhandene Raspbians lassen sich einfach in ein Präsentations System umwandeln.

Kiosk System auf einem vorhandenen Raspbian installieren

Hier gilt, wie so oft, viele Wege führen ans Ziel, den einfachsten für ein vorhandenes Raspbian System möchte ich hier kurz aufzeigen.

Iceweasel installieren

Ein Kiosk System ist mit jedem Browser möglich, in diesem Beispiel wird Iceweasel verwendet, welches dem bekannten Firefox entspricht.

apt-get install iceweasel iceweasel-l10n-de

Beim zweiten Paket handelt es sich um das deutsche Sprachpaket

Verknüpfung von Iceweasel im Autostart erstellen und die Startseite anpassen

sudo cp /usr/share/applications/iceweasel.desktop /home/pi/.config/autostart/iceweasel.desktop

sudo nano /home/pi/.config/autostart/iceweasel.desktop
        Exec=iceweasel https://kioskmodus.online

Bildschirmschoner deaktivieren

Hier ist der einfachste Weg, einen vollwertigen Bildschirmschoner zu installieren und zu deaktivieren, damit erspart man sich die Suche nach den genauen Einstellungen.

sudo apt-get install xscreensaver

Unter den Einstellungen des Xscreensavers kann nach der Installation einfach auf  "deaktivieren" geklickt werden.  Als Alternative hier noch die Einstellungen via Kommandozeile.

sudo nano /etc/xdg/lxsession/LXDE/autostart

#@xscreensaver -no-splash

@xset s off #(Screensaver ausschalten) Geht alternativ auch über die Oberfläche.
@xset -dpms #(Energiesparmodus deaktivieren) Geht alternativ auch über die Systemeinstellungen
@xset s noblank #(Screensaver ausschalten)

Der Energiesparmodus sollte in jedem Fall ausgeschaltet werden, unabhängig davon wie der Bildschirmschoner deaktiviert wird.

Vollbildmodus via Plugin oder F11

Für Iceweasel/Firefox gibt es zwei Plugins, welche einen Kioskmodus verwalten, bzw. unterstützen. Unter dem Namen mKiosk oder rKiosk sind diese zu finden. Beide erfüllen ihren Zweck und bieten alles, was es zur Verwaltung eines Kiosksystems braucht.
 

firefox-kiosk


Sollten ihr damit nicht zurechtkommen, reicht es aus den Browser so zu konfigurieren, dass er nach einen Neustart mit den alten Einstellungen wieder hoch kommt. Danach startet ihr Iceewasel  mit F11 im Vollbild, diese Einstellungen wird er sich merken und nach dem nächsten Neustart habt ihr immer noch ein Vollbild (Hier besteht allerdings die Möglichkeit, dass andere Nutzer in das System eingreifen, da kein Password hinterlegt werden kann).

Manche Nutzer stören sich sicherlich am Mauszeiger, dieser kann mit Unclutter ausgeblendet werden.

sudo apt-get install unclutter

sudo nano /etc/xdg/lxsession/LXDE/autostart

@unclutter -idle 5

Fazit

FullPageOS ist eine praktische Variante für einen Kiosk Modus, wenn noch kein System vorhanden ist. Bei installiertem Raspbian ist der Betrieb als Kiosksystem mit wenigen Handgriffen auf gleichem Niveau möglich.

Bei Varianten erfüllen ihren Zweck, wobei sich FullPageOS auf Chromium eingeschossen hat. Der händische Kiosk Modus erlaubt den Einsatz verschiedener Browser und Einstellungen, egal ob Midori, Iceweasel oder Chrome. Hier wäre eine Auswahlmöglichkeit bei der Installation von FullPageOS sicherlich eine feine Sache.

Ubuntu - IPv6 auf einem Apache, MySQL Server ausschalten

Kurztipp zum Wochenende, zum Thema Ipv6 und Apache/MySQL. 

ipv6_apache2

IPv6 auf einem Apache Server ausschalten

Um IPv6 auf einem Apache2 Server abzuschalten genügt ein einfacher Eintrag in der ports.conf. 

Hier muss das vorhandene Listen 80 angepasst werden.

nano /etc/apache2/ports.conf

Listen 0.0.0.0:80

sudo service apache2 restart

Ipv6 bei einem MySQL Server deaktivieren

Beim MySQL Server verhält es sich ähnlich, wie beim Apache. Es genügt in der Hauptkonfiguration die Listenadresse zu setzen.

nano /etc/mysql/my.con

bind-address            = 0.0.0.0

sudo service mysql restart

apache

Das könnte dich auch interessieren

Ubuntu - IPv6 auf einem Tomcat Server ausschalten