Technikfreak

Postfix 3.4, Let’s Encrypt und Server Name Indication (SNI)

Ich werde hier nicht weiter auf das grundsätzliche Setup von Postfix, Let’s Encrypt oder einen Webserver eingehen. Ich setze einfach voraus, dass ihr eine funktionierende Konfiguration habt.

Seit der Postfix-Version 3.4 ist es endlich möglich, mit nur einer IP-Adresse, für jede Domain ein eigenes Zertifikat auszuliefern.

Zuerst legen wir in /etc/postfix/main.cf die Zertifikate und Key-file für die Default-Domain (bei mir mail.cyber-anlage.de) fest. Dafür wird bei Postfix 3.4 das neue smtpd_tls_chain_files benutzt. Mehr dazu hier: http://www.postfix.org/TLS_README.html#server_cert_key

# Postfix ≥ 3.4.  Preferred configuration interface.  Each file
# starts with the private key, followed by the corresponding
# certificate, and any intermediate issuer certificates. The root CA
# cert may also be needed when published as a DANE trust anchor.

smtpd_tls_chain_files =
     /etc/ssl/LE/mail.cyber-anlage.de.key
     /etc/ssl/LE/mail.cyber-anlage.de_fullchain.pem

Mit tls_server_sni_maps haben wir jetzt die Möglichkeit eine Tabelle mit Server-Namen, welche via SNI erreichbar sind, und den entsprechenden Schlüssel und Zertifikatsketten zu erstellen. Dafür müssen wir wieder /etc/postfix/main.cf bearbeiten. Mehr dazu hier: http://www.postfix.org/postconf.5.html#tls_server_sni_maps

Die Syntax ist: tls_server_sni_maps = map_type:/Datei/pfad/sni

# Indexed table macro:
# postconf -m shows all available map types
# The indexed SNI table must be created with "postmap -F"

tls_server_sni_maps = hash:/etc/postfix/sni

Nun können wir die Domain, Zertifikate und keyfiles für SNI konfigurieren. Wichtig ist, dass wird hier auch noch mal unsere Default-Domain angeben. Da das Zertifikat in der /etc/postfix/main.cf nur benutzt wird, wenn der kein SNI schickt.

Dafür bearbeiten wir /etc/postfix/sni

Die Syntax lautet: domain private-key Zertifikat rootCA

 mail.cyber-anlage.de /etc/ssl/LE/mail.cyber-anlage.de.key /etc/ssl/LE/mail.cyber-anlage.de_fullchain.pem
 mail.technikfreak.net /etc/ssl/LE/mail.technikfreak.net.key /etc/ssl/LE/mail.technikfreak.net_fullchain.pem

Jetzt müssen wir mit postmap nur noch die SNI-Tabelle generieren

Die Syntax ist: postmap -F map_type:/Datei/pfad/sni

postmap -F hash:/etc/postfix/sni

Alles was wir jetzt machen müssen, ist postfix neu starten und voilà wir bekommen für jede Domain das entsprechende Zertifikat.

Hyper Light Drifter – libcurl.so.4: version ‚CURL_OPENSSL_3‘ not found

web_banner

Wer sich das kürzlich erschiene Hyper Light Drifter von gog.com gekauft hat, rennt evtl in Folgenden Fehler:

krizz@technikfreak /Hyper Light Drifter % ./start.sh 
Running Hyper Light Drifter
./HyperLightDrifter.x86: /usr/lib32/libcurl.so.4: version 'CURL_OPENSSL_3' not found (required by ./HyperLightDrifter.x86)

Das Spiel erwartet eine ältere Version von libcurl, welche noch ‚CURL_OPENSSL_3‘ unterstützt.

Bei der Steam-Version des spiels, soltle das keine Rolle spielen, da der Steam client für Linux seine eigenen libs mitbringt und diese lädt. Und genau das müssen wir auch tun, um die gog.com-Version zu starten, ohne unsere libcurl version zu downgraden.

Wenn Ihr z.B. Steam installiert habt, könnt ihr natürlich auch libcurl von Steam benutzen, für alle anderen habe ich hier eine Version zum downlaoden libcurl.so.tar

Entpackt die Version nach „/Hyper Light Drifter/game/“ und ändert die start.sh wie folgt

#!/bin/bash
# GOG.com (www.gog.com)
# HyperLightDrifter

# Initialization
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${CURRENT_DIR}"
source support/gog_com.shlib

# Game info
GAME_NAME="$(get_gameinfo 1)"
VERSION="$(get_gameinfo 2)"
VERSION_DEV="$(get_gameinfo 3)"

# Actions
run_game() {
 echo "Running ${GAME_NAME}"
 cd game
 LD_PRELOAD=./libcurl.so ./"HyperLightDrifter.x86"
}

default() {
  run_game
}

# Options
define_option "-s" "--start" "start ${GAME_NAME}" "run_game" "$@"

# Defaults
standard_options "$@"

Mit LD_PRELOAD=./libcurl.so ./“HyperLightDrifter.x86″ sorgen wir dafür, dass unsere libcurl Version benutzt wird, wenn ./“HyperLightDrifter.x86″ ausgeführt wird. Und das Spiel sollte Problemlos starten.

0 A.D. Alpha 19 Syllepsis

Von 0 A.D. haben sicher schon viele etwas gehört und der Einer oder andere hat es auch schon ausprobiert und ist vielleicht in der Vergangenheit zu dem Schluss gekommen, dass das Spiel einfach noch nicht spielbar ist und der Vergleich zu Age of Empire II sehr weit hergeholt ist.

Die Entwickler von Wildfire Games arbeiten nun schon seit 2015 an diesen wahnsinnigen Projekt und haben ende November die mittlerweile 19. alpha veröffentlicht. Was für mich genug Grund war, dass spiel mal wieder anzutesten…

… wow… was sich die letzten Jahre getan hat ist wirklich beeindruckend. Ich hätte nicht wirklich erwartet, dass so ein Projekt so weit kommen könnte. Auch wenn es immer noch eine Alpha ist, ist das Spiel inzwischen absolut Spielbar und der Vergleich mit Age of Empires II ist durchaus berechtigt. Das Spiel fühlt sich inzwischen auch schon fertiger an als so einige AAA-Titel die ich über die letzten Jahre gespielt habe. Es gibt zwar noch keine Kampagnen oder Tutorials, aber man kann kann Matches gegen die CPU oder gegen Menschen spielen und die machen schon jede menge Spaß.

Alle die auf der Suche nach einem guten RTS bzw einen geistigen Nachfolger von Age of Empires sind, sollten dem spiel eine Chance geben.

HomePage

Download

Github