Kategorien
Kurztipp Linux Open Source Tutorial

Linux: Musik verstummt plötzlich

Man hört Musik, bekommt eine Email – und die Musikanwendung ist plötzlich stumm. Dahinter steht ein Problem in einem Modul von PulseAudio, das aber recht einfach zu beheben ist.

Kategorien
IT Kurztipp Linux Netzwerk Open Source Programmieren Server

Gogs: Fehler 503 nach Update auf 0.10

Ende Februar wurde die Gitlab-Alternative Gogs in Version 0.10.1 freigegeben. Benutzt man Gogs aus dem bereitgestellten Debian-Repository in Verbindung mit Apache, so kann es nach dem Update zu Problemen kommen.

Kategorien
Kurztipp Linux Open Source

Apache auswerten mit goaccess

Es gibt etliche Programme, um Logfiles von Apache statistisch auszuwerten. Eines dieser Tools ist GoAccess. GoAccess ist ein einfaches, in der Shell arbeitendes Tool, das Logfiles nach verschiedenen Formaten durchkämmt und Zielseiten, Browser, Betriebssysteme uvm. darstellt.

Kategorien
Kurztipp Linux

Farbschemen für i3, i3status und dmenu im Browser erstellen

Das Programmpaket aus dem Tiling-Window-Manager i3, i3status und dmenu lässt sich unkompliziert in den Konfigurationsdateien anpassen. Wenn es jedoch an die Farbwahl geht, ist es mitunter etwas umständlich, die Farben miteinander abzustimmen.

Thomas Hunter II hat mit dem „Online Coloscheme Configurator for i3,i3status and dmenu“ eine Webseite gebaut, mit der sich Farbschemen für i3, i3status und dmenu einfach zusammenklicken lassen.

Wie Hunter schon im Readme erläutert, ist die Webseite ein klassisches „Quick & Dirty“ Wochenend-Projekt. Dennoch tut es tadellos seinen Dienst, obwohl es sicher keinen Designpreis gewinnt.

Die Vorschau der Konfigurationsdatei wird immer mit aktualisiert, sodass man die Einstellungsblöcke für die Farben direkt kopieren und in die eigene Konfiguration übernehmen kann.

Das Programm ist Open Source, den Sourcecode gibt’s auf GitHub.

 

Kategorien
Kurztipp Linux Open Source

screenfetch

Um unterschiedliche Informationen über ein System heraus zu finden muss man oft tief im System kramen und muss einige Befehle in der Konsole ausführen. Für Anfänger in der Linux-Welt ist das sicherlich ein schwieriges bis unmögliches Unterfangen. Hilfe bietet hier das Programm screenfetch. screenfetch ist ein Konsolenprogramm, dass Infos über das System ermittelt und samt einer einer ASCII-Variante des Logos übersichtlich darstellt.

screenfetch

Screenfetch ist in den meisten Distributionen in der Standardpaketverwaltung im Paket screenfetch vorhanden und kann darüber installiert werden, z. B. unter Ubuntu via # apt-get install screenfetch.

Die Liste an unterstützen Distributionen und Desktops ist lange. Die meisten Kombinationen dürften dadurch abgedeckt sein. Wen die ganze Liste interessiert: screenfetch -h zeigt alle unterstützen Desktops, Windowmanager und Distributionen an.

Übrigens: Mit screenfetch -s kann man direkt noch einen Screenshot des Desktops machen.

Kategorien
Kurztipp Linux

LXC Upgrade auf 2.0.3-1: IP weg

In der Arch-Paketverwaltung liegt das Paket lxc, welches in der Version 2.0.3-1 vorliegt. Beim Upgrade von 2.0.1-1 auf die neue Version führt es dazu, dass die Container keine IP-Adressen mehr bekommen, wie der Befehl lxc-ls -f zeigt.

[root@linuxroula chrism]# lxc-ls -f
NAME  STATE   AUTOSTART GROUPS    IPV4 IPV6 
boinc RUNNING 1         autostart -    -    
web   RUNNING 1         autostart -    -    

Die Container haben außer dem Loopback-Interface kein weiteres Interface mehr installiert. Das Problem liegt daran, dass die Container schlichtweg kein Interface finden, über das die Brücke läuft.

Durch Einfügen folgender Konfigurationsangaben (z. B. in die /usr/share/lxc/config/debian.common.conf, wenn alle Hosts auf Debian basieren) wird das Interface br0 (bzw. den Namen der Brücke) mit der Konfiguration lxc.network.link definiert (Quelle):

lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up

lxc.network.link
specify the interface to be used for real network traffic.

Nach Restart von LXC (beziehungsweise des Hosts) zeigt lxc-ls -f, dass die Container wieder IP-Adressen beziehen.

[root@linuxroula chrism]# lxc-ls -f
NAME  STATE   AUTOSTART GROUPS    IPV4            IPV6                              
boinc RUNNING 1         autostart 192.168.178.83  {IPv6}    
web   RUNNING 1         autostart 192.168.178.196 {IPv6}    

Bild: https://de.wikipedia.org/wiki/Tux_(Maskottchen)#/media/File:NewTux.svg
Kategorien
Kurztipp News Open Source ReactOS

Interessant: Spiele auf ReactOS 0.4.1

ReactOS ist ein Betriebssystem, das sich als Ziel gesetzt hat, mit Windows kompatibel zu werden. Ich schreibe hier immer mal wieder über ReactOS, weil das Projekt in meinen Augen viel zu wenig Beachtung geschenkt wird.

Nun hat der YouTube-Nutzer „??? Illen“ Youtube-Videos hochgeladen, in dem er Skyrim und Need for Speed Underground 2 spielt. Die Spiele laufen noch nicht wirklich flüssig und der Ton fehlt, aber die Tatsache, sie überhaupt ausgeführt werden können, ist beeindruckend.

Skyrim

Need for Speed Unterground 2

Ich finde, das sagt schon viel über den Stand von ReactOS aus. Wer mehr über ReactOS erfahren will, findet auf https://www.reactos.org/ die Projekthomepage.

Kategorien
Kurztipp _

Sicherheitslücken: CVSS

Wenn im Internet über Sicherheitslücken gesprochen wird, kommt oft auch der Begriff CVSS zur Sprache. CVSS steht für Common Vulnerability Scoring System.

Dabei handelt es sich um einen Industriestandard, mit dem Sicherheitslücken in Computersystemen einheitlich beschrieben werden können.

Es gibt bei CVSS mehrere Vektoren, die die Lücke aus verschiedenen Sichtweisen beschreiben sowie einen Schweregrad, der sich aus den Einzelvektoren ergibt.

Der Schweregrad reicht von 0,0 bis 10.

Beispiel Magento Lücke APPSEC-1420

Die Lücke APPSEC-1420, bekannt aus der „API der Hölle“ wird wie folgt bezeichnet

Unauthenticated remote code execution via API [CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H]

Was bedeutet das?

Neben dem eigentlichen Vektor wird auch die Lücke selbst beschrieben. Häufig ist das relativ allgemein gehalten.

  • CVSS:3.0 – der CVSS-Standard zur Beschreibung der Lücke
  • AV:N – Der Angriffsvector (Attack Vector), wie die Sicherheitslücke ausgenutzt wird. Möglich sind hier Network, Adjacent (Teil des Netzwerkstacks), Local oder Physical.
  • ÀC:L – Wie komplex ist es, die Lücke auszunutzen? Hier sind die Werte Low oder High möglich.
  • PR:NPrivileges Required – Welche Rechte muss der Angreifer besitzen, um die Lücke auszunutzen. Möglich hier sind None, Low oder High.
  • UI:NUser Interaction – Muss ein User (nicht der Angreifer) Aktionen ausführen? Möglich sind None oder Required.
  • S:CScope – Werden nicht verwundbare Komponenten durch die Lücke betroffen? Möglich sind Uchanged oder Changed.
  • C:HConfidentiality – Wie Vertraulich sind die Daten, die von der Komponente verwaltet werden? Möglich hier sind None, Low oder High.
  • I:HIntegrity – Ist das System nach der erfolgreichen Attacke noch vertrauenswürdig oder wurde das System nachhaltig beschädigt? Möglich hier sind None, Low oder High.
  • À:HAvailability – Wie häufig anzutreffen sind die betroffenen Systeme? Möglich hier sind None, Low oder High.

Was sagt das für das Beispiel aus?

Die Lücke APPSEC-1420 lässt sich also über das Netzwerk ausnutzen, die Ausnutzung ist recht einfach, es werden keinerlei Berechtigungen benötigt, Benutzer müssen nicht mit dem Angreifer zur Ausführung interagieren, die Integrität des Systems wird beeinträchtigt, wichtige Daten können abgegriffen werden, es gibt viele betroffene Systeme. Somit ergibt sich ein desaströser Wert von 10,0. Aufgrund der Schwere liegt auch schon ein Update für Magento vor, das zeitnah eingespielt werden muss.


Bild: https://stocksnap.io/photo/C3B0D9188B

Kategorien
Kurztipp Linux MySQL Programmieren

mycli

Die Auswahl eines Clients zum Entwickeln in einer Datenbank ist schwierig. Gerade für MySQL gibt zwar einige Clients mit Oberfläche bzw. als webbasierte Lösung, aber alle haben ihre Macken. Da ich inzwischen auch viel in der Shell mache, bin ich auf mycli gestoßen. mycli ist ein Shell-basierter MySQL-Client mit einigen sinnvollen Erweiterungen gegenüber der in MySQL mitelieferten Shell.

Installation

mycli ist in Python geschrieben und kann über den PIP-Paketmanager installiert werden.

sudo pip install mycli

Man kann mycli auch direkt aus GitHub klonen und darüber selbst bauen, wenn man das möchte.

Benutzung

Nach der Installation steht mycli als gleichnamiges Binary zur Verfügung. Die Kommandozeilenparameter ähneln sich stark der MySQL-Standard-Shell. Alle Parameter kann man an hier oder per mycli --help nachlesen.

Mit mycli kann man sich sehr bequem in der Datenbank bewegen. Das Syntax-Highlighting bw. die Auto-Vervollständigung erleichtern das Arbeiten in den MySQL-Datenbanken ungemein.

https://img.0fury.de/177a21865897c930e862776a65386b0a.png

mycli hat einen eingebauten Sicherheitsmechanismus, mit dem man vor „gefährlichen“ Kommandos, wie drop table oder drop database gewarnt wird, indem man diese noch einmal bestätigen muss.

https://img.0fury.de/276c732f6ed2345124af5f9815cca197.png

Kategorien
Kurztipp Programmieren

Google Fonts ohne Google

Screenshot

Häufig benutzt man Google Fonts für das Beziehen diverser Schriftarten. Das funktioniert einfach und problemlos, hat aber auch Nachteile.

Zum einen gibt es den Punkt Datenschutz. Es wird eben eine Verbindung zu Google-Servern aufgebaut, was einen digitialen Fußabdruck hinterlässt, den Google auch tracken könnte. Dadurch gibt genügend Benutzer, die über Plugins im Browser externe Verbindungen blocken.

Der andere Punkt: Falls es sich bei der Webanwendung z. B. um eine Kioskanwendung ohne Internetverbindung handelt, funktioniert ein solcher CDN einfach nicht mehr.

Eine Abhilfe bietet das Repository majodev/google-webfonts-helper, bei dem man sich die in Google Fonts verfügbaren Schriften aussuchen und – anders als bei Google Fonts- auch herunterladen kann. Das Repository bietet auch die Möglichkeit, sich selbst ein „eigenes Google-Fonts“ zu hosten. Das Programm selbst ist eine Node.js-Anwendung.

Man hat beim Download/ der Benutzung der Schriftarten die Wahl zwischen Best Support und Modern Browsers – je nach Zielgruppe sollte man dies mit Bedacht auswählen!

majodev/google-webfonts-helper ist unter MIT lizensiert, die Schriftarten selbst haben aber ihre eigenen Lizenzen.

Auf jeden Fall ist majodev/google-webfonts-helper eine einfache Möglichkeit, sich zusätzliche Schriftarten in die Webanwendung zu holen, ohne sich direkt mit dem Einbinden der Schriften herumkämpfen zu müssen. Auch für diejenigen, die gegenüber Google kritisch eingestellt sind bietet das Projekt eine praktische Alternative.