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.

Logitech Performance Mouse MX Daumen und Zoom Button in KDE Plasma 5

Ich hab schon länger eine Logitech Performance Mouse MX und hab weder den Daumen-Button noch die Zoom Funktion genutzt. Um ehrlich zu sein, hab ich sogar vergessen, dass es einen Button für den Daumen gibt… Ich mag diese Logitech Reihe vor allem wegen Ihrer Größe und das freilaufende Scrollrad ist einfach die beste Innovation, die Mäuse in den letzten Jahren erfahren haben.

Wie dem auch sei, irgendwo haben ich kürzlich von dem Daumen-Button gelesen und dachte mir „Oh so ein Button auf der Daumenablage ist doch eigentlich recht Praktisch…“

Ich hab schnell festgestellt, dass dank xf86-input-libinput, sowohl Daumen als auch Zoom button schon funktionieren, aber leider keine Funktion zugeordnet haben. Leider bietet Plasma 5 immer noch keine Möglichkeit, Short Cuts mit Maus-Buttons anzulegen. Einzig in den Desktop Settings können wir „Mouse Actions“ anlegen. Da ich aber so gut wie nie auf den Desktop klicke, halte ich das für mich nicht besonders Sinnvoll.

Zoom- und Daumentaste mit xbindkeys & xautomation

Da wir für die Gesichte KDE Plasma 5 Effekte benutzen wollen, müssen wir diese auch unter Settings -> Desktop Behaivor -> Desktop Effects aktivieren.

In Windows zeigt der Daumen-Button alle offenen Fenster – dieser Effekt heißt in Plasma5 Present Windows

Der Zoom Effekt heißt (wer hätte das gedacht) – Zoom (in den Settings muss hier der Zoom Faktor größer als 1.00 sein)

 

Nun installieren wir uns die beiden Programme

pacman -Syu xbindkeys xautomation

jetzt könnten wir uns eine .xbindkeysrc anlegen, mehr dazu HIER

Leider ist .xbindkeysrc aber nicht intelligent genug, um 2 Maus-Buttons gleichzeitig zu verarbeiten und ich möchte ja den Zoom-Button halten und mit dem Scrollrad Rein- und Rauszoomen

Dafür legen wir uns eine .xbindkeysrc.scm mit folgendem Inhalt an. (Das folgende Script ist eine angepasste version aus diesem Beitrag)

;;   This configuration is guile based.
;;   http://www.gnu.org/software/guile/guile.html
;;   This config script is supposed to live in the homedirectory and be named .xbindkeysrc.scm
;;   Based on the script by Zero Angel posted at
;;   http://www.linuxquestions.org/questions/linux-desktop-74/%5Bxbindkeys%5D-advanced-mouse-binds-4175428297/
;;   And adapted by Camilo Rada
;;
;;   It is intended to work with the Logitech Performance MX Mouse
;;   It allows to zoom with the wheel while the zoom button is pressed
;;   It also allows to assing an action to a single press-and-release of the zoom button
;;   The action assigned to that action is Super+z but is can be modified


(define actionperformed 0)

(define (first-binding)
"First binding"
;; Logitech Zoom Button
(xbindkey-function '("b:13") b13-second-binding)
;; Logitech Thumb Button
(xbindkey '("b:10") "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut 'Expose'")
)


(define (reset-first-binding)
"reset first binding"
(ungrab-all-keys)
(remove-all-keys)
;; Set Action Performed state back to 0
(set! actionperformed 0)
;; Forcefully release all modifier keys!
(run-command "/usr/bin/xte 'keyup Control_L' 'keyup Alt_L' 'keyup Shift_L' 'keyup Super_L' &")

(first-binding)
(grab-all-keys))


(define (b13-second-binding)
"Zoom Button Extra Functions"
(ungrab-all-keys)
(remove-all-keys)

;; Scroll Up
(xbindkey-function '("b:4")
                (lambda ()
;; Emulate Ctrl+plus (Zoom in)
                (run-command "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_in &")
        (set! actionperformed 1)
))

;; Scroll Down
(xbindkey-function '("b:5")
                (lambda ()
;; Emulate Ctrl+Alt+minus (Workspace Down)
                (run-command "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_out &")
        (set! actionperformed 1)
))

(xbindkey-function '(release "b:13") (lambda ()
;; Perform Action if Button 8 is pressed and released by itself
(if (= actionperformed 0) (run-command "/usr/bin/xte 'keydown Super_L' 'key z' 'keyup Super_L' &"))
(reset-first-binding)))
(grab-all-keys))

;; (debug)
(first-binding)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; End of xbindkeys configuration ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Jetzt speichern wir uns einfach das Script und können es direkt mit folgenden Befehl testen

xbindkeys -n -v

xbindkeys automatisch mit Systemd starten

Um xbindkeys als Systemd service zu starten müssen wir uns zuerst eine service-file erstellen

dazu erstellt die Datei .config/systemd/user/xbindkeys.service (sollte es die Ordner noch nicht geben, dann erstellt einfach)

[Unit]
Description=xbindkeys
After=xorg.service

[Service]
ExecStart=/usr/bin/xbindkeys -n
StandardOutput=null

[Install]
WantedBy=wm.target

Dannach können wir die Service auch direkt aktivieren und starten

systemctl --user enable xbindkeys 
systemctl --user start xbindkeys

Damit sorgen wir dafür, dass alle Mausfunktionen funktionieren, sobald der user sich einloggt.

Andere Mäuse und andere Funktionen

Auch wenn die configuration speziell für die Logitech Performance Mouse MX ist, sollte sie sich doch recht einfach für andere Mäuse adaptieren lassen.

Wie man SICHERE™ Passwörter wählt

Sicher ist natürlich immer relativ 😉

Viele von euch denken jetzt wahrscheinlich an einen mi aus Sonderzeichen, Zahlen und große und kleine Buchstaben. Man kennt es ja auch von diversen Webseiten im Internet, welche solche Passwörter verlangen.
Ein Problem daran ist, das es sehr schwer ist sich solche Passwörter zu merken. Aber sind sie dafür wirklich sicher?

Am besten beantwortet die Frage wohl ein xkcd

Passwörter

Wie man hier sehr schön sehen kann, bringen mehr Zeichen wesentlich mehr Sicherheit als Sonderzeichen oder Zahlen in einem kürzeren Passwort und man kann sich das Ganze noch viel einfacher merken.

Also denkt im Zukunft lieber an den Comic bevor Ihr euch ein kryptisches Passwort Überlegt, welches ihr beim nächsten Login eh vergessen habt.
Falls eine Webseite Sonderzeichen usw vorschreibt, solltet Ihr dem Betreiber wenigstens eine Hassmail schicken in der ihr auf wirklich SICHERE™ Passwörter hinweist. 😉

Chocolatey – Der Paketmanager für Windows

Wenn man ein mal mit der Linuxwelt in Kontakt gekommen ist, dann hat man meist auch sehr schnell gefallen daran gefunden, dass System mit einen Befehl komplett zu updaten.
Die Windows Updatefunktion bringt leider nur Systemupdates und einige wenige ausgesuchte Treiber und so bleibt uns meistens nicht anderes über, als jedes Programm einzeln runter zu laden und zu installieren, sobald eine neue Version erschienen ist… Das ist leider recht nervig und führt oft dazu das man nicht mit der aktuellsten Software arbeitet, außer Sie updatet sich selbst oder weißt einen mehr oder weniger penetrant auf ein Update hin.

Interessant ist, das Windows schon einen Paketmanager hat, dieser heißt NuGet und wird als Visual Studio-Erweiterung ausgeliefert. Genutzt wird NuGet laut wikipedia nur von SharpDevelop und LINQPad..
Hier kommt Chocolatey ins spiel. Chocolatey automatisiert quasi die Installation von Software via NuGet.

Um Chocolatey zu isntallieren, öffnet man die Shell und führt foglgenden Befehl aus.

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

Jetzt ist Chocolatey installiert und einsatzbereit.

Ein Programm installiert man mit

cocolatey install Programmname

oder kurz mit

cinst Programmname

Um ein Programm zu isntallieren, muss man natürlich erst einmal wissen, welche Programme uns Chocolatey anbietet. Das finden wir raus indem wir auf http://chocolatey.org/packages nachschauen oder uns mit foglenden Befehl die liste aller Programme ausgeben lassen

chocolatey list (Programmname)

oder kurz

clist (Programmname)

Mit dem optionalen Parameter Programmname, kann man auch gezielt nach einem Programm suchen.

Deinstallieren kann man die die Pakete einfach wieder mit

cocolatey uninstall Programmname

oder kurz mit

cuninst Programmname

Um alle installierten Pakete zu updaten benutzt man

cocolatey update all

oder kurz mit

cup all

Statt all kann man auch nur ein einzelnes Programm angeben, welches man updaten möchte.

Ich nutze Chocolatey jetzt circa ein halbes Jahr und muss sagen, gerade mit den letzten Version ist es echt brauchbar geworden. Ich habe 38 Pakete via Chocolatey installiert, welche ich sonst höchst selten oder nie upgedatet habe.

Homepage:

http://chocolatey.org/

Github:

https://github.com/chocolatey

Commands Reference:

https://github.com/chocolatey/chocolatey/wiki/CommandsReference

Youtube Videos mit Playlist einbinden

Ein Youtube Video mit einer Playlist einzubinden ist eigentlich recht einfach. Ich versuche euch das ganze ein mal an dem neuen Die Ärzte Album „auch“ zu verdeutlichen.
Zuerst brauchen wir den Link zur Playlist, diesen finden wir über die Youtube Suche oder direkt im Account von Die Ärzte

http://www.youtube.com/watch?v=UjIasSAurB0&list=PL0D50EFF7A6EC1FF5

Wirklich wichtig ist für uns gerade nur der grün markierte Teil des Links

Jetzt brauchen wir den Code zum Video einbetten von Youtube, die sieht in unserem Fall in etwa so aus:

<iframe width=“640″ height=“360″ src=“http://www.youtube-nocookie.com/embed/UjIasSAurB0?rel=0″ frameborder=“0″ allowfullscreen>

Jetzt brauchen wir nur den grünmarkeirten Teil des links in unseren Youtube-Code kopieren, dass Ganze sieht dann so aus

<iframe width=“640″ height=“360″ src=“http://www.youtube-nocookie.com/embed/UjIasSAurB0?rel=0&list=PL0D50EFF7A6EC1FF5“ frameborder=“0″ allowfullscreen>

Und das war es schon, wir haben nun die komplette Playlist in unserem eingebetteten Video

Unser beispiel als eingebundenes Album:

Wenn Ihr unten Links auf „Playlist“ klickt, dann könnt Ihr auch durch die Liste navigieren.