Skip to content

Installation einer aktuellen Go Version auf Ubuntu

Go ist eine Open-Source Programmiersprache, welche von Google 2009 entwickelt wurde. Die Sprache ist bei vielen Anwendungen beliebt, darunter Docker oder Kubernetes. 

Nun ist eine neue Version 1.13 erschienen, welche neben Sicherheitsfeatures in den Standardeinstellungen auf TLS 1.3 setzt.
Module welche von den Go Servern geladen werden, sind nun durch eine Checksummenprüfung abgesichert.

Weitere Neuerungen verrät das Changelog

Doch wie kommt Go überhaupt auf das eigene System?

golang

Installation von Golang auf Ubuntu

Als erstes möchte ich die manuelle Installation betrachten.

Auf der Downloadseite muss zunächst nach der offiziellen Version gesucht werden.

wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz

Nach dem Download sollte der Hashwert überprüft werden.

sha256sum go1.13.linux-amd64.tar.gz

    68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856  go1.13.linux-amd64.tar.gz

Danach folgt das Entpacken, wobei ihr beim Pfad natürlich auch einen anderen verwenden könnt.

sudo tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

Nun den PATH anpassen und folgende Zeile unten anfügen.

sudo nano $HOME/.profile

    export PATH=$PATH:/usr/local/go/bin

Die neue PATH Variablen laden.

source ~/.profile

go-installation

Nun kann der finale Test erfolgen, wenn alles klappt solltet ihr folgendes Ergebnis sehen.

go

Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        bug         start a bug report
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

Use "go help [command]" for more information about a command.

 

Installation von Go via apt auf Ubuntu

Golang kann unter Ubuntu ebenfalls über den Paketmanager installiert werden. Dazu muss zunächst ein extra Repository hinzugefügt werden.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

Jetzt könnt ihr euch mit Go austoben.

Im Netz findet ihr jede Menge Beispiele was damit möglich ist.
Zum Beispiel hier oder hier.

 

Ein eigenes Programm ist schnell geschrieben, dazu einfach folgende Schritte ausführen.

Ein neues Verzeichnis anlegen und eine erste Datei anlegen.

mkdir -p /home/user/hello
nano /home/user/hello/helloworld.go


        package main

        import "fmt"

             func main() {
                  fmt.Printf("Hello Go World \n")
             }

Datei builden und ausführen.

cd /home/user/hello

go build
./hello

    Hello Go World

Praktischerweise gibt es eine Online Spielwiese, die zum Probieren einlädt.

Es muss somit zunächst nicht zwingend auf der Kommandozeile gearbeitet werden.

The_Go_Playground

PS. Natürlich kann Golang auch über die vorhandenen Ubuntu Pakete mit sudo apt install golang installiert werden, allerdings erhaltet ihr hier nicht die aktuellste Version.

 

Logfile Navigator (lnav) - Ein Lichtblick bei der grauen Logsuche

Zu den häufigen Aufgaben eines Sysadmins gehört sicherlich die Suche nach der Nadel im Heuhaufen besser bekannt als Logfiles.
Seien es System Logs, Mail Logs oder Firewall Logs, meist gilt es eine Fehlermeldung zu finden oder andere Unstimmigkeiten zu entdecken.
Standardwerkzeuge sind da meist tail -f oder tailf, grep, cat, less und wie sie alle heißen. 

Logfile Navigator (lnav)

Einen weitaus einfacheren Umgang bietet lnav. Dank des Tools kann schnell mit Hilfe von Syntax Highlighting durch Massen an Log Files navigiert werden.
Tastaturbefehle ermöglichen zusätzlichen Komfort, aber zunächst muss das Tool installiert werden, da es nicht zu den vorinstallierten Paketen eines Servers gehört.

#Debian
sudo apt install lnav


#CentOS
sudo yum install lnav


#SuSE
sudo zypper install lnav

The_Log_File_Navigator

Nach der Installation lässt sich das Logfile Navigator einfach öffnen.

lnav

oder

journalctl -f | lnav

Der lnav Befehl öffnen standardmäßig Syslog (/var/log/syslog) .

Wer archivierte Logs einbinden möchte, der setzt hinter den gewünschten Pfad noch einen Stern.

lnav /var/log/mail.log*

Der Navigator unterstützt nahezu jedes Logformat und erlaubt nebenbei die Einbindung eigener Formate. Wie dies funktioniert ist hier beschrieben.

Natürlich lassen sich Logfiles auch kombinieren.

lnav /var/log/mail.log /var/log/syslog

Die Log Navigation

Neben der Einbindung der Log Archive hat lnav den großen Vorteil, dass es Hotkeys unterstützt.

Hiervon gibt es ebenfalls eine schöne Übersicht, allerdings möchte ich die "besten" hier sofort aufzeigen:

24 Stunden vor oder zurück

d oder Shift + d

Suche und Navigation

/gesuchter Begriff

Nächster Suchtreffer

n oder Shift + n 

Warnungen suchen

w oder Shift + w

Fehlermeldungen suchen

e oder Shift + e

(rot hervorgehoben)

lnav-history

Logzusammenfassung (Histogramm anzeigen)

Diese bietet einen guten Überblick über mögliche Fehlermeldungen und deren Häufigkeit.

i oder verlassen mit Shift + i

Innerhalb der Zusammenfassung kann ebenfalls zwischen den Zeiteinheiten navigiert werden

z oder Shift + z

Pretty Print View

Sollte der Überblick fehlen und eine etwas andere Aufteilung notwendig sein, bietet sich dieser Modus an.

p  oder Shift + p

Beenden

q

lnav-pretty


Fazit

Um die Suche nach Warnings und Errors zu verbessern setzt lnav an den richtigen Stellen die richtigen Funktionen und verkürzt damit den Weg zum Ziel ungemein.
Lediglich das Syntax Highlighting (blau auf schwarz) ist manchmal etwas unglücklich.

Download

Mozilla SSL Configuration Generator - Neue Version unterstützt Postfix, PostgreSQL, MySQL, Oracle und Caddy

Es ist lange her, als ich das erste Mal über den Mozilla SSL Configuration Generator geschrieben hatte (ganze 4 Jahre um genau zu sein).

Bereits damals hatte ich mir gewünscht, dass auch Server wie Postfix unterstützt werden. Dieser Wunsch wurde nun erfüllt, denn es gab ein umfangreiches Update  ( thx @ aprilmpls )

mozilla-logo

Mozilla SSL Configuration Generator

Wie der Überschrift bereits entnommen werden konnte, sind neben den üblichen Verdächtigen nun auch weitere Systeme dabei. Folgende SSL/TLS Sicherheitseinstellungen können nun via Generator erstellt werden:

  • Apache
  • Nginx
  • Lighthttpd
  • HAProxy
  • AWS Elastic Load Balancer
  • Caddy
  • MySQL
  • Oracle HTTP Server
  • Postfix
  • PostgreSQL 

Die einzelnen Kategorien modern, intermediate und old haben Beschreibungen erhalten und erschließen sich dem Laien somit etwas besser. So wird bei der modernen Variante explizit TLS 1.3 erwähnt und die nicht vorhandene Abwärtskompatibilität beschrieben.

Die Versionsauswahl bei Server oder SSL kann weiterhin händisch eingegeben werden. 

Mozilla_SSL_Configuration_Generator

Zusätzliche Optionen wie HSTS oder OCSP Stapling sind in den Standardeinstellungen aktiv. Hier muss nichts angepasst werden, da der Generator alte Server Versionen erkennt und die Optionen automatisch nicht in der generierten Datei auflistet (SSLUseStapling On).

Bei Konfigurationen für Mail- oder Datenbankserver sind diese Auswahlmöglichkeiten ohnehin ausgegraut.

Generator generiert

Die neu generierten Konfigurationen haben dazugelernt. So wird bei der Apache oder Nginx Konfiguration automatisch der HTTP zu HTTPS Rewrite mit aufgeführt. Auch werden das Erstelldatum, so wie die benötigten Module als Kommentar aufgeführt, was für viele sicherlich eine zusätzliche Hilfe darstellt.

Bei der Postfix wird keine TLS Verschlüsselung erzwungen, hier wird immer ein "Verschlüsselung wenn möglich" vorgeschlagen.

Unterstützung

Bereits beim älteren Generator wurden die unterstützten Browser aufgelistet. Diese wurden um Android und Edge ergänzt.

Fazit

Die neue Version des Mozilla SSL Configuration Generator hat im Vergleich zum Vorgänger viele kleine Verbesserungen erhalten, siehe der Kopierbutton am Ende der Konfigurationsdateien. Die Unterstützung für Postfix, PostgreSQL und Co erweitert die Breite ungemein. Mit der Unterstützung für TLS 1.3 wird das Tool auch in Zukunft praktisch sein. Sei es als Orientierung oder Beispiel für eigene Serverkonfigurationen.

https://ssl-config.mozilla.org

Raspberry Pi - Raspbian Update auf Buster und Kioskmodus mit Chrome anpassen

Nicht nur ein neuer Raspberry Pi 4 hat vor kurzem das Licht der Welt erblickt, auch die bekannte Distribution Raspbian, welche auf den Minirechnern gerne läuft, wurde auf Debian Buster umgestellt.

Das neue Betriebssystem hat ein neues Theme erhalten und die üblichen Softwareaktualisierungen.
Nicht mehr dabei ist der Legacy Grafiktreiber Stack, dafür wurde auf Mesa V3 Treiber umgeschwenkt.
Ein Update auf die neue Version ist schnell gemacht, aber auch mir Vorsicht zu genießen, es wird eine Neuinstallation empfohlen.

raspberrypi


Update auf Raspbian (Buster)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Ich empfehle dringend ein Backup der wichtigen Daten zu ziehen.
Nach einem Testupdate konnte ich das System zwar noch booten, hatte außer einem Mauszeiger kein Bild. SSH funktionierte. Ich habe es allerdings nicht weiterverfolgt, da ich die Anzeigeneinstellungen händisch gesetzt hatte.

Da Debian Buster Tools mitbringt, welche nicht unterstützt werden, könnt ihr diese wieder deinstallieren.

sudo apt purge timidity lxmusic gnome-disk-utility deluge-gtk evince wicd wicd-gtk clipit usermode gucharmap gnome-system-tools pavucontrol


Kioskmodus unter Raspbian 

Was nach dem Update schnell klar war. Der Kiosk Modus mit Chromium ist defekt und muss repariert werden. Das geht allerdings schnell, denn es haben sich nur Pfade geändert.

Anders als noch bei den alten Raspbian Systemen ist das Verzeichnis /home/pi/.config/lxsession/LXDE-pi/autostart des Pi Nutzers nicht mehr vorhanden.
Alternativ kann einfach die globale Konfiguration unter /etc/xdg/lxsession/LXDE-pi/autostart angepasst werden, um den Vollbildmodus von Chromium 74 automatisch zu starten.

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

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
# Bildschirmschoner deaktivieren
#@xscreensaver -no-splash
@point-rpi

@xset s off
@xset -dpms
@xset s noblank
#Autostart Chromium Vollbild-Kiosk
@chromium-browser --noerrordialogs --incognito --kiosk https://kiosk.itrig.de


 

HowTo - Einen eigenen SuperTuxKart Server im LAN aufsetzen und gegen Freunde zocken

Vor kurzem wurde eine neue SuperTuxKart Version veröffentlicht.

Wie schon aus der Beta bekannt war, bringt diese neue Version neben diversen Verbesserungen eine Netzwerkunterstützung mit.

Daneben sorgen ca. 20 Rennstrecken und verschiedene Spielmodi für Abwechslung. Der Funracer ist natürlich OpenSource und so hat jeder die Möglichkeit seinen eigenen Server zu betreiben.

Alle Infos findet ihr in den Release Notes.

SuperTuxKart1
Genau diese Netzwerkunterstützung will ich im Folgenden näher anschauen, denn für einen eigenen Server reicht bereits ein RaspberryPi aus.


Eigenen SuperTuxKart Server fürs LAN bauen

Als Basis dient ein Ubuntu 16.04 LTS oder ein Raspbian System, der Vorgang ist jeweils gleich.

Zunächst müssen ein paar Pakete installiert werden, damit der Build auch gelingt.

sudo apt-get install build-essential cmake libbluetooth-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev git subversion

Als nächstes werden die Installationsdateien auf das lokale System geladen.

cd /opt
sudo mkdir stk-code
sudo mkdir stk-asset
git clone https://github.com/supertuxkart/stk-code stk-code
svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets

Der letzte Schritt kann etwas Zeit benötigen, da mehrere 100MB geladen werden müssen.

cd stk-code
sudo mkdir cmake_build
cd cmake_build/
sudo cmake .. -DSERVER_ONLY=ON
sudo make -j$(nproc)

Nun heißt es etwas warten, denn je nach CPU Leistung, kann dies etwas dauern...

stk-server

Schwups ist der fertige Server erstellt, ihr könnt ihn nun bereits ausprobieren oder systemweit mit sudo make install installieren.

Danach findet ihr den installierten Server unter /usr/local/bin/supertuxkart.


In unserem Fall starten wir den Server testweise direkt.

cd bin/

./supertuxkart --lan-server=test --network-console

stk-server-start

[info   ] GrandPrixManager: Loading Grand Prix files from ../../data/grandprix/
[info   ] GrandPrixManager: Loading Grand Prix files from /home/xyz/.local/share/supertuxkart/grandprix/
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Host initialized.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Server port is 2759
Fri Apr 26 20:25:41 2019 [info   ] main: Creating a LAN server 'test'.
Fri Apr 26 20:25:41 2019 [info   ] ServerLobby: Reset server to initial state.
Fri Apr 26 20:25:41 2019 [info   ] ProtocolManager: A 11ServerLobby protocol has been started.
Fri Apr 26 20:25:41 2019 [info   ] STKHost: Listening has been started.

Nun solltet ihr darauf achten, dass der Port 2759 im lokalen Netz erreichbar ist und Firewalls diesen nicht blockieren.

Ebenfalls ist es wichtig lokal einen Servernamen beim Start anzugeben, da der Server sonst nicht startet.

Zusätzlich wird unter /opt/stk-code/.config/supertuxkart/config-0.10/server_config.xml beim ersten Start eine Konfigurationsdatei angelegt, dort können weitere Einstellungen gesetzt werden.

Für unseren Server muss hier Nichts weiter angepasst werden.

Alternativ könnt ihr eure eigene Konfigurationsdatei beim Start auch gleich mitgeben

supertuxkart --server-config=your_config.xml --network-console

Ob der Server läuft lässt sich mit einem einfachen netstat -lnp oder via ss -ln herausfinden (Artikel).

SuperTuxKart auf eigenen Server spielen

Um auf dem eigenen Server gegeneinander zu spielen, müsst ihr euch zunächst das Spiel installieren, dieses findet ihr hier.


Nach dem Start müssen folgende Schritte durchgeführt werden, um auf den eigenen Server zu gelangen,

stk-server-gui

stk-server-lan

stk-server-findstk-server-test-srv

Alternativ kann auch ein Server direkt aus dem Programm heraus erstellt werden und somit quasi mit jedem PC. Ein kleiner RapsberryPi ist allerdings um einiges praktischer.

Sollte ein STK Server übers Internet erreichbar sein, muss zusätzlich ein STK Account angelegt werden. Dieser Account muss beim Serverstart angegeben werden. Weitere Tipps finden sich hier.

supertuxkart --init-user --login=your_registered_name --password=your_password

Viel Spaß