WireGuard VPN Road Warrior Setup

Introduction WireGuard is a relatively new open-source software for creating VPN tunnels on the IP layer using state of the art cryptography. I attended a self-organized session by the creator and developer Jason Donenfeld at the 34c3 who explained how WireGuard works and how it can be used. I was quite impressed by it’s simplicity and gave it a try. It worked more or less out of the box. Now I created a more advanced setup for accessing my home network. ...

29.09.2018 · 17 min · Emanuel Duss

Tool/Script to encode and decode base16 (Hex) data

Introduction The RFC 4648 (The Base16, Base32, and Base64 Data Encodings) defines different methods to encode binary data. Every Unix like system has the tool base64 installed to encode and decode data using the base64 alphabet. This alphabet includes the characters A-Z, a-z, 0-9, +, / for the data and = for padding. The base16 encoding scheme, better known as hex encoding, uses the alphabet 0-9 and A-F. This encoding is case-insensitive. The GNU coreutils do not include a base16 tool. I searched for a hex encoding and decoding tool with the same functionality as base64 without success. That’s why I wrote a script so I can use it to hex encode and decode binary data. Basically, it’s a wrapper around some Perl code. ...

11.03.2017 · 4 min · Emanuel Duss

QR-Code Scanner für die Konsole

Für Mobiltelefone gibt es Barcode/QR-Code Scanner wie Sand am Meer. Für Linux auf dem Desktop jedoch nicht. Deshalb bastelte ich mir ein kleines Script, damit ich aus der Bash QR-Codes scannen kann. Das Script baut auf den Tools scrot und zbar auf. QR-Code Abfotografieren Mit maim kann man Screenshots machen. Entweder klickt man in ein Fenster oder man zieht (mit derm Schalter -s) ein Range auf, welcher man scannen will: ...

15.12.2014 · 1 min · Emanuel Duss

EXIF Zeitstempel nachträglich hinzufügen mit jhead

Einführung Für mich ist es wichtig, dass Fotos mit einem korrekten Zeitstempel versehen sind. Falls ein Bild noch kein EXIF Zeitstempel besitzt, kann man den mit jhead einfach hinzufügen. Foto mit Zeitstempel versehen Zuerst muss eventuell noch der EXIF Header dem Foto hinzugefügt werden: $ jhead -mkexif foto.jpg Danach kann man mit der Option -ds von jhead das Aufnahmedatum in der Form yyyy:mm:dd setzen: $ jhead -ds2013-05-23 foto.jpg Will man zusätzlich noch die Zeit angeben, macht man das mit der Option -ts im Format yyyy:mm:dd-hh:mm:ss: ...

01.08.2013 · 1 min · Emanuel Duss

Aufnahmedatum von Fotos korrigieren mit jhead

Einführung Wenn man Fotos von mehreren Kameras zusammenführen will, ist es von Vorteil, wenn das Aufnahmedatum auf die Sekunde genau stimmt. Es kann auch sein, dass die Kamera während den Ferien in der falschen Zeitzone war oder noch auf Winterzeit eingestellt war. Mit jhead kann man das Aufnahmedatum von Fotos korrigieren. Referenzzeit fotografieren Als erstes braucht man eine Referenzzeit. Dazu eignet sich zum Beispiel eine per Internet synchronisierte Uhr wie die des Computers oder des Mobiltelefons. ...

22.07.2013 · 2 min · Emanuel Duss

Zahlensysteme umrechnen mit bc und Script dazu

Einführung Ich muss oft Zahlen von einem Zahlensystem in ein anderes umwandeln. Für kleine Zahlen und bekannte Basen geht das noch im Kopf, aber wenn man viele oder grosse Zahlen umwandeln will, nimmt man gerne die Hilfe eines Computers entgegen. Damit ich nicht auf eine Internetverbindung und ein Onlinetool angewiesen bin, entwickelte ich ein kleines Script, welches Zahlensysteme für mich umwandelt. Zahlensysteme umrechnen mit bc Mit bc kann man ganz einfach Zahlensysteme umrechnen. Das kleine Tool bc ist bei allen gängigen Linux Distributionen installiert. Mit ibase gibt man das Input-Zahlensystem und mit obase das Output-Zahlensystem an. Auf der Konsole sieht das so aus: ...

04.06.2013 · 3 min · Emanuel Duss

Den Computer als Wecker benutzen

Einführung Damit ich am Morgen von passender Musik geweckt werde, habe ich mir ein Skript geschrieben, welches mein Notebook in einen Wecker verwandelt. So stelle ich normalerweise den Notebook vor dem Schlafen gehen in den Sleep-Modus, welcher 30 Minuten Musik abspielt und danach in den Stanbdy fährt. Am Morgen schaltet mein Notebook automatisch zur eingestellten Weckzeit ein und spielt die Musik weiter. So starte ich meist gut in den Tag. Hier beschreibe ich, wie ich das gemacht habe. ...

30.03.2013 · 5 min · Emanuel Duss

Mehrere Terminalfenster verwalten mit tmux (vs. screen)

Einführung Mit tmux kann man wie mit screen mehrere Terminalfenster innerhalb einer Konsole verwalten. tmux hat jedoch ein paar Vorteile gegenüber dem Klassiker screen. Vorteile von tmux gegenüber screen Fenster können auch vertikal gesplittet werden Visuelle Benachrichtigung bei Aktivitäten aus anderem Fenster Mehr Konfigurationsoptionen Einfachere Konfiguration als (vgl. hardstatusstring von screen) Innerhalt tmux kann man zwischen mehreren Sessions wechseln (Client-Server Prinzip) Gut Skriptbar (von der Shell aus) Mehrere Buffer für Kopieren/Einfügen Fensternamen passen sich dynamisch den aufgerufenen Programmen an Fenster können verschoben und vertauscht awerden Konfiguration während dem laufenden Betrieb ändern und neu laden Programme wie less, welche normalerweise die Konsole wieder leeren, werden auch geleert Noch aktiv unter Entwicklung Konfiguration tmux wird mit der Konfigurationsdatei ~/.tmux.conf konfiguriert. ...

09.03.2013 · 4 min · Emanuel Duss

Meine Konfigurationsdatei für screen (~/.screenrc)

Einführung Mit screen kann man mehrere Fenster innerhalb eines Terminals verwalten. In der Standardkonfiguration ist screen jedoch nicht optimal für das tägliche Arbeiten konfiguriert. Ich habe screen so eingerichtet, dass z. B. die Willkommensnachricht nicht erscheint und dass am unteren Bildschirmrand eine Leiste mit allen offenen Fenster angezeigt wird. Konfiguration Mit der Datei .screenrc, welche im Homeverzeichnis liegt, kann screen konfiguriert werden. Die meisten Optionen sind selbsterklärend, deshalb werde ich nicht auf alle eingehen. Die Optionen sind in der Manpage von screen zu sehen, welche man mit man screen aufrufen kann. ...

20.02.2013 · 2 min · Emanuel Duss

Mehrere Terminalfenster verwalten mit screen

Einführung Mit screen kann man mehrere Fenster innerhalb eines Terminals verwalten. So kann man innerhalb eines Terminalfensters zwischen mehreren Fenster umschalten und so z. B. auf einem entfernt gelegenen Server mehrere Shells in nur einer SSH-Verbindung nutzen. Grundlegende Aufgaben mit Fenster Das sind die grundlegenden Funktionen, um mit screen zu arbeiten. C-a bedeutet Control + A Taste. C-a c Neues Fenster erzeugen C-a A Dem aktuellen Fenster einen Titel geben C-a k Fenster killen C-a " Liste mit Fenster anzeigen C-a space oder C-a n Ein Fenster weiter C-a Backspace oder C-a p Ein Fenster zurück C-a n Zu Fenster n gehen ( n = 1 bis 9) C-a C-a Zurück zum vorher ausgewählten Fenster Erweiterte Funktionen Folgende Funktionen benötige ich nur zwischendurch: ...

14.02.2013 · 2 min · Emanuel Duss

Fotos zu einem Zeitraffer zusammenfügen mit ffmpeg

Einführung Manche Digitalkameras können Fotos in einem bestimmten Zeitintervall auslösen. Nach ein paar Stunden sammeln sich viele Fotos in einem Ordner an, welche man mit ffmpeg in ein Video umwandeln kann. Ich habe einige Zeit gebraucht, bis alles endlich funktioniert hat. Hier seht ihr, wie man das mit ffmpeg machen kann. Schritt für Schritt Ausgangslage Als Ausgangslage habe ich viele Fotos in einem Verzeichnis: $ ls 2011-07-08_13-59-58.jpg 2011-07-08_15-01-27.jpg 2011-07-08_16-02-57.jpg 2011-07-08_14-00-07.jpg 2011-07-08_15-01-38.jpg 2011-07-08_16-03-08.jpg 2011-07-08_14-00-17.jpg 2011-07-08_15-01-47.jpg 2011-07-08_16-03-17.jpg [...] In meinem Fall sind das 1104 Fotos: ...

22.11.2012 · 3 min · Emanuel Duss

Wikipedia-Einträge über DNS abfragen

Einführung Die Online-Enzyklopädie Wikipedia kann über DNS abgefragt werden. Toll daran ist, dass man somit jederzeit die Definition von einem Begriff aus der Shell heraus per DNS abfragen kann. Technik Der DNS-Server wp.dg.cx stellt über TXT-Ressource-Records den ersten Absatz von den englischen Wikipedia-Artikeln zur Verfügung. Der DNS-Server kann mit nslookup oder dig abgefragt werden. Abfrage Ich möchte die Definition von Foo wissen. Der DNS-Query sieht folgendermassen aus: emanuel@discordia:~ $ dig foo.wp.dg.cx TXT ;; Truncated, retrying in TCP mode. ; <<>> DiG 9.7.2-P3 <<>> txt foo.wp.dg.cx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7560 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1 ;; QUESTION SECTION: ;foo.wp.dg.cx. IN TXT ;; ANSWER SECTION: foo.wp.dg.cx. 86400 IN TXT "The term foobar, along with foo, bar, and baz, is a common placeholder name (also referred to as a metasyntactic variable) used in computer programming or computer-related documentation. These four terms are used heavily in computer science to take the pl" "ace of unknown values, typically while describing a scenario where the purpose of the unknown values are understood, but... http://a.vu/w:Foobar" ;; AUTHORITY SECTION: . 78741 IN NS g.root-servers.net. . 78741 IN NS f.root-servers.net. . 78741 IN NS h.root-servers.net. . 78741 IN NS e.root-servers.net. . 78741 IN NS k.root-servers.net. . 78741 IN NS l.root-servers.net. . 78741 IN NS j.root-servers.net. . 78741 IN NS c.root-servers.net. . 78741 IN NS a.root-servers.net. . 78741 IN NS m.root-servers.net. . 78741 IN NS i.root-servers.net. . 78741 IN NS b.root-servers.net. . 78741 IN NS d.root-servers.net. ;; ADDITIONAL SECTION: a.root-servers.net. 79004 IN A 198.41.0.4 ;; Query time: 5 msec ;; SERVER: 10.0.0.10#53(10.0.0.10) ;; WHEN: Mon Feb 14 21:11:04 2011 ;; MSG SIZE rcvd: 670 In der Answer-Section steht die Erklärung von Foo. ...

14.02.2011 · 3 min · Emanuel Duss

Fotos nach Datum umbenennen mit jhead

Einführung Digitalkameras speichern Bilder oft unter Dateinamen wie DSC00523.jpg. Mit diesen nicht sprechenden Namen kann ich nicht viel anfangen. Das Datum und die Uhrzeit des Fotos ist für den Dateinamen viel besser geeignet. EXIF-Daten auslesen Die Digitalkamera speichert das Datum und die Uhrzeit in den so genannten EXIF-Tags. Mit jhead kann man diese Tags auslesen und bearbeiten. Mit jhead dateiname.jpg kann man sich die EXIF-Tags anzeigen lassen: emanuel@discordia:~ $ jhead DSC00523.JPG File name : DSC00523.JPG File size : 2277972 bytes File date : 2011:02:06 13:45:34 Camera make : Canon Camera model : Canon DIGITAL IXUS 80 IS Date/Time : 2010:12:27 12:02:37 Resolution : 2592 x 1944 Flash used : No Focal length : 14.3mm (35mm equivalent: 90mm) CCD width : 5.72mm Exposure time: 0.020 s (1/50) Aperture : f/4.5 Focus dist. : 6.57m ISO equiv. : 800 Whitebalance : Auto Metering Mode: pattern In der Zeile Date/Time sieht man, dass das Foto am 27.12.2010 um 12:02:37h erstellt wurde. ...

06.02.2011 · 2 min · Emanuel Duss

Manpages farbig darstellen

Einführung Ich mag es, wenn meine Konsole farbig dargestellt wird. So finde ich es auch praktisch, wenn bestimmte Schlüsselwörter in Manpages farbig hervorgehoben werden. Anleitung Mit folgenden Befehlen kann man den Pager less dazu bringen, die Ausgaben anders zu formatieren: export LESS_TERMCAP_us=$'\E[01;32m' # Beginn unterstrichen export LESS_TERMCAP_ue=$'\E[0m' # Ende unterstrichen export LESS_TERMCAP_so=$'\E[01;44;33m' # Beginn Standout-Mode export LESS_TERMCAP_se=$'\E[0m' # Ende Standout-Mode export LESS_TERMCAP_md=$'\E[01;31m' # Start fett export LESS_TERMCAP_mb=$'\E[01;31m' # Start blinken export LESS_TERMCAP_me=$'\E[0m' # Ende alles Diese Befehle schreibt man sich in die Datei ~/.bashrc, die automatisch bei jeder neuen Shell ausgeführt wird. ...

30.01.2011 · 1 min · Emanuel Duss

Fotos automatisch drehen mit jhead

Einführung Viele Digitalkameras verfügen über einen Gravitationssensor, der erkennt, wie die Kamera beim erstellen des Bildes gehalten wurde. Diese Information kann man dazu nutzen, um das Bild automatisch richtig zu drehen. Die Information wird im EXIF-Tag “Orientation” des Bildes gespeichert. Mit dem Tool jhead kann man diese Information auslesen und das Foto automatisch drehen lassen. EXIF-Daten Wird jhead keine Option angegeben, werden einige EXIF-Informationen angezeigt: $ jhead foto.jpg File name : foto.jpg File size : 2040209 bytes File date : 2011:01:16 18:22:37 Camera make : Canon Camera model : Canon DIGITAL IXUS 80 IS Date/Time : 2011:01:14 23:05:42 Resolution : 2592 x 1944 Orientation : rotate 90 Flash used : Yes (auto) Focal length : 6.2mm (35mm equivalent: 39mm) CCD width : 5.72mm Exposure time: 0.017 s (1/60) Aperture : f/2.8 Focus dist. : 0.48m ISO equiv. : 250 Whitebalance : Auto Metering Mode: pattern Das Tag “Orientation” sagt, dass das Bild um 90° gedreht wurde. Aber jetzt weiss man immer noch nicht, ob das Bild im Uhrzeigersinn, oder im Gegenuhrzeigersinn gedreht werden muss. ...

16.01.2011 · 3 min · Emanuel Duss