thinkretro.de

Feb 26, 2016

Statusbericht 2016

Es ist schon wieder einige Zeit her, genauer gesagt schon mehr als ein halbes Jahr ?, und das Jahr 2016 hat auch schon begonnen. Da ist ein kurzes Lebenszeichen von mir wohl mehr als fällig. Kurz gesagt, ja ich lebe noch. Auch habe ich die Lust an meinem Hobby und an alter Hardware nicht verloren. Ich habe mich in der letzten Zeit intensiver mit der Linux Kommandozeile auseinander gesetzt und bin dabei auch ein wenig in die Shell-Programmierung mit der Bash eingestiegen. Kurzfristig hat das dazu geführt, dass es hier ein wenig ruhiger geworden ist, allerdings erhoffe ich mir langfristig ein grundlegenderes Verständnis von Linux und der Kommandozeile, die ich dann hier in ausgewählte Artikel einfließen lassen kann. Tatsächlich hatte ich insbesondere beim näheren Betrachten der Shell schon einige AHA-Erlebnisse, die einen eigenen Artikel wert sind. Aber nun zunächst die Nachrichten aus Hard- und Software :-)

Hardware

So langsam spricht es sich in meinem Bekanntenkreis herum, was für ein obskures Hobby ich so pflege :-) Netter Nebeneffekt ist, dass mir die Leute nun ihre ausgediente Hardware vermachen, statt sie einfach zu entsorgen. Das hat dazu geführt, dass ich nun über eine hübsche Sammlung an alten Notebooks verfüge. Welche ich davon letztendlich behalten werde, weiß ich jedoch noch nicht. Dabei hat sich vor allem das T43 als mein rundum-sorglos-Laptop etabliert und einen festen Platz auf meinem Schreibtisch bekommen. Aber auch die anderen Rechner gibt es natürlich noch und funktionieren tadellos.

Des Weiteren habe ich meine Synology-NAS dieses Jahr durch ein selbst zusammengestelltes System getauscht. Momentan läuft darauf openmediavault und ich bin bisher sehr zufrieden.

Als kleiner, stomsparender Server läuft bei mir nach wie vor der BananaPi. Seitdem ich dort jedoch mit Syncthing allerhand Daten synchronisiere, geht dem Kleinen etwas die Puste aus. Wie gut, dass vor kurzem der Oodroid-C2 von Hardkernel angkündigt wurde.

Software

Neben der Bash habe ich mich in letzter Zeit intensiver mit dem VIM beschäftigt. Ich würde mich allerdings immer noch eher als fortgeschrittenen Anfänger bezeichnen. Aber es ist schon erstaunlich, was man alles mit diesem Editor machen kann; man muss sich nur die Mühe machen, sich mit dem Vim intensiv zu beschäftigen. Ansonsten ist softwaretechnisch alles beim alten geblieben. Ich versuche derzeit lediglich zu den meisten Gui-Programmen ein Pendant für die Konsole zu finden um noch etwas flexibler zu werden.

An Betriebssystemen dominieren derzeit bei mir vor allem Debian und Archlinux. Als Desktopumgebung setze ich gerade Cinnamon ein, mit der ich recht zufrieden bin, wenngleich sie auch nichts für schwache Rechner ist. Spielt Ressourcenverbrauch eine Rolle, so ist nach wie vor openbox meine erste Wahl. So setze ich auf dem T43 gerade Debian mit LXDE ein, das auf dem mittlerweile 10 Jahre alten Thinkpad eine recht gute Figur macht.

Ausblick für 2016

Konkrete Pläne für 2016 habe ich zwar nicht, ich möchte mich aber auf jeden Fall noch mehr mit den Grundlagen von Linuxsystemen beschäftigen. Aber natürlich möchte ich auch wieder mehr schreiben, schließlich ist das hier ein Blog :-)

Apr 17, 2015

Eigene SSH-Konfiguration verwenden

Es gibt so manche Dinge im Leben bei denen man sich fragt - wenn man sie denn einmal herausgefunden hat - warum nicht gleich so? Eines dieser Dinge ist bspw. eine eigene Konfigurationsdatei für ssh-Verbindungen. Normalerweise sieht ein Login auf einem meiner Server nämlich so aus:

$ ssh -p 12345 -i ~/.ssh/server_key user@domain

Das ist vor allem immer eine elende Tipperei. Dabei geht es auch einfacher, indem man das Ganze einfach in eine config-Datei schreibt und in seinem Homeverzeichnis unter ~/.ssh/config ablegt:

Host Servername
    HostName server.domain.de 
    Port 12345 
    User username 
    IdentityFile ~/.ssh/server_key

Danach kann man ganz einfach mit

$ ssh Servername

sich zu seinem ssh-Server verbinden. Gerade wenn man mehrere ssh-Verbindungen managen will (mit unterschiedlichen RSA-Keys) lohnt es sich eine eigene Konfigurationsdatei anzulegen.

Richtig cool ist allerdings, dass man über ssh bestimmte Ports auf dem Zielserver auf einen (nicht-privilegierten) Port auf dem lokalen Rechner mappen kann. Ich kann also bspw. meinen internen Webserver der daheim auf dem BananaPi zu administrativen Zwecken läuft auf einen beliebigen Port meines Laptops mappen und so von außerhalb bequem darauf zugreifen. Dazu muss man seine ~/.ssh/config nur wie folgt erweitern:

Host tunnel_zum_webserver 
    HostName server.domain.de 
    Port 12345 
    User username 
    IdentityFile ~/.ssh/server_key 
    LocalForward 4000 127.0.0.1:8080

Jetzt kann man mit

$ ssh -f -N tunnel_zum_webserver

eine einfache Verbindung zu seinem Webserver aufbauen und der ganze Verkehr wird über ssh getunnelt :-)

Das ganze funktioniert nicht nur mit einem Webserver, sondern auch mit allen anderen Diensten, die über das Netzwerk erreichbar sind, wie etwa Samba-Freigaben oder ein MySQL-Server... :-)

Sep 19, 2014

Congstar Guthaben via Conky anzeigen

Ich habe schon seit langer Zeit einen Umts-Stick (und zwar den Huawei Surf Stick E 3131, der problemlos unter Linux funktioniert), der mich auf Reisen mit Internet versorgt. Dazu bin ich Kunde bei Congstar, ein Tochterunternehmen der Telekom AG. Das hat den Vorteil, dass man das sehr gut ausgebaute D1-Netz nutzen kann und so auch in den entlegensten Teilen Deutschlands noch eine recht gute Netzanbindung bekommt.

Hat man den Stick am Rechner angeschlossen, kann man das aktuelle Verbrauchsguthaben relativ tagesaktuell über die Seite "http://datapass.de" abrufen.

Jetzt wollte ich das Ganze gern automatisiert von einem Script erledigen lassen, dass mir entweder "not connected" anzeigt, wenn der Stick nicht angeschlossen ist oder aber eben das aktuell verbrauchte Datenvolumen. Dazu habe ich mit meinen rudimentären Python-Kenntnissen dieses kleine Script geschrieben (einfach kopieren und als xy.py abspeichern; über Anregungen und Kommentare würde ich mich freuen :-) ).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Author:   Marcel Werner
# Mail:     kontakt(at)kaffeejunkie.eu
# Web:      http://www.kaffeejunkie.eu
# Date:     14.08.2014


# This little script gets the amount of used traffic-volume
# from the Telekom-Service-Website 'www.datapass.de'. It seems to be 
# functional in combination with a Congstar/Telekom SIM-Card only.

# Begin

import os
import sys
import lxml.etree as et
import urllib2

# run 'lsusb' in terminal to determine vendor_id
vendor_id = "12d1"
usb_device_path = "/sys/bus/usb/devices/"

def check_usb_connection():
    for subdirectory in os.listdir(usb_device_path):
        cwd = os.path.join(usb_device_path, subdirectory) 
        try:
            with open(cwd+"/idVendor", "r") as f:
                for line in f:
                    if line.replace("\n","") == vendor_id:
                        return True
        except IOError:
            break


while check_usb_connection() == True:
    try:
        opener = urllib2.build_opener()
        opener.addheaders =[('User-agent', 'Mozilla/5.0')]
        url = opener.open('http://datapass.de')
        root = et.fromstring(url.read())

        used_traffic = root.find('.//span[@class="colored"]')  
      .text.encode('utf-8')

        print used_traffic+" von 1 GB verbraucht"
        break
    except AttributeError:
        break
    except IOError:
        break
else:
    print "not connected"

Einbinden in Conky

Der Aufruf des Scripts aus Conky heraus geschieht über folgenden Parameter, den man in die Datei .conkyrc im Home-Verzeichnis einträgt:

${execi 600 python ~/pfad_zum_script.py}

Die 600 ist der Wert in Sekunden, wann dieses Script immer wieder ausgeführt wird; also alle 10 Minuten. Man sollte hier nicht einen zu niedrigen Wert wählen, da ja jeder Seitenaufruf Traffic (wenn auch nur ein paar KB) verursacht.

Jul 21, 2014

Wordpress verrät Login

Seit letzter Zeit sehe ich in den WP-Logs vermehrt fehlgeschlagene Loginversuche, zumeist mit einer IP aus Russland oder der Ukraine. Das an sich ist noch nicht das beängstigende. Was mich vielmehr stutzig gemacht hat, war die Tatsache, dass die Angreifer zum Teil meinen richtigen Login-Namen kannten (nein, es ist nicht 'admin' :-)).

Meine erste Frage war natürlich woher? Und siehe da, wenn man auf den Autor-Link in den Beiträgen klickt, steht in der Adressleiste der wahre Login-Name obwohl als Autor-Alias eigentlich ein anderer Name vergeben wurde. Das ist unschön...

Nach ein wenig googeln fand ich diese Lösung. Ich habe es entsprechend geändert und nun wird lediglich mein Alias wieder angezeigt. So müssen Angreifer nun wieder zwei Faktoren (Loginname und Passwort) erraten :-)

Am Beliebtesten scheinen übrigens Logins wie 'root', 'test' oder 'admin' zu sein :-)