Monthly Archives: July 2012

Rechner mit zwei IPs und damit auch zwei Standardrouten einrichten

Ich hatte ein Problem: Ein Server von mir sollte zwei IP-Adressen bekommen, beide in verschiedenen Netzen.

Allerdings auch beide mit einem “Default-GW”, und der Rechner sollte über beide voll ansprechbar sein.

Das Problem: Das Interface mit der kleinsten Metrik geiwnnt das Rennen, sprich: Obwohl jemand eine Verbindung an IP B initiieren möchte, werden Antworten darauf über NIC A versandt.

Nach der Lektüre von http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/ und http://www.thomas-krenn.com/de/wiki/Zwei_Default_Gateways_in_einem_System ging mir aber ein Licht auf und nun läuft es.

Folgende Schritte führen zum Erfolg:

Zuerst eine Policy Routing table anlegen (bzw. benamsen):
# echo "1 admin" >> /etc/iproute2/rt_tables

Nun die /etc/network/interfaces anpassen:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
	address 10.34.41.26
	netmask 255.255.255.192
        post-up ip route add 10.34.41.0/26 dev eth0 src 10.34.41.26 table admin
        post-up ip route add default via 10.34.41.1 dev eth1 table admin
        post-up ip rule add from 10.34.41.26/32 table admin
        post-up ip rule add to 10.34.41.26/32 table admin

auto eth1
iface eth1 inet static
	address 192.168.3.236
	netmask 255.255.255.224
	gateway 192.168.3.224
	dns-nameserver 192.168.3.224

Die Logik dahinter ist ganz einfach: “Nimm per Default das GW 192.168.3.224, wenn aber ein Paket von oder an die 10-er IP geht, nimmst du bitte das andere GW”.

Advertisements

Leave a comment

Filed under Administration, Server

TOTP nun auch auf Arduino

Vor einiger Zeit habe ich mal einen Artikel im Linux-Magazin über TOTP und HOTP-Authentifizierung geschrieben.

Nun habe ich gerade ein Projekt von Leuten gefunden, die TOTP auf Arduino portiert haben.

Das Device ist zu groß für den mobilen Transport, aber darauf kommt es schließlich nicht an. Man könnte das sicher mit wenig Aufwand so umschreiben, dass das entstehende OTP auch für Webserviceaufrufe genutzt werden kann. So wäre ein (halbwegs) sicherer Aufruf auch über HTTP machbar, solange die Daten selber unwichtig sind…

 

Leave a comment

Filed under Uncategorized

Eigenes Apt-Repository für Debian und Ubuntu einrichten

Ich wollte ein eigenes Repository einrichten, um die Verwaltung unserer Server insgesamt zu vereinfachen. Unter anderem soll z.B. die authorized_keys des Users root automatisch auf allen neuen Rechnern eingerichtet werden.

Eigentlich habe ich mich ausschließlich an Tutorials gehalten, die beschreiben, wie neue deb-Pakete zu erstellen sind und wie man sich sein eigenes Repository einrichtet.

Damit das System nicht über fehlende Keys meckert, habe ich ein eigenes Paket erzeugt, dass lediglich das folgende postinst-Skript enthält:

#!/bin/bash

echo "
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

(base64-kodierter PGPKEY, zu bekommen mit "gpg -a --export keyid")
-----END PGP PUBLIC KEY BLOCK-----
"  | apt-key add -

Das Paket zur Erzeugung der ssh-authorized enthält auch nur ein
postinst-Skript:

#!/bin/bash

mkdir -p -m 0700 /root/.ssh/

touch /etc/default/ssh-authkey

cat /etc/default/ssh-authkey > /root/.ssh/authorized_keys

echo "
#####
# Hier bitte auf keinen Fall eigene Änderungen einbringen
# Bitte eigene Keys in die /etc/default/ssh-authkey eintragen!
# Danach dann: apt-get install --reinstall imi-authkey
#####

# (Hier folgt in der echten Datei der Teil mit den GPG-Keys)

" > /root/.ssh/authorized_keys
	

cat /etc/default/ssh-authkey >> /root/.ssh/authorized_keys


chmod 0600 /root/.ssh/authorized_keys

Das ist eigentlich ein bisschen unschön, vor allem, da der User jetzt
nicht mehr an der authorized_keys direkt rumfummeln kann. (Auch nicht
mehr, um z.B. den Command des Backuppc-Aufrufs zu ändern.) Wer weiß, wie
man das besser machen kann: Ich bin über alle Tipps dankbar.

1 Comment

Filed under Administration, Server

Nachtrag: jack speichert Einstellungen

Am Rande noch ein Nachtrag zu Jack:
Mit der Kommandooption “–save” speichert jack alle auch angegebenen Optionen in der “~/.jack3rc”, womit sie zukünftig standardmäßig wirken.

Dort kann man dann gleich auch zu ersetzende Zeichen angeben:

unusable_chars:['ä','ö','ü','Ä','Ö','Ü','%','/','"']
replacement_chars:['ae','oe','ue','Ae','Oe','Ue',' ',' ',' '] 

Damit vermeidet Jack dann Umlaute in Dateinamen und schreibt sie phonetisch korrekt um.

Leave a comment

Filed under Audio

Jack – CDs rippen mit der Konsole

Lange habe ich nach einem brauchbaren CD-Ripper gesucht, dabei zuletzt rubyripper ausprobiert, was mir sehr gut gefallen hat. Wichtig war vor allem eine FreeDB-Anbindung zur Benamsung der Tracks. Das Problem ist nur, dass rubyripper alle Tracks zweimal auslesen will, und das kostet zeit.

Ich bin oft über “Jack” gestolpert, habe es mir aber nie näher angesehen, da es ein CLI-Interface hat – ein Fehler, wie sich nun rausgestellt hat:

Jack ist zwar ein Konsolenprogramm, bietet aber eine sehr übersichtliche Curses-Oberfläche. Die ist zwar nicht wirklich interaktiv; die Aktionen werden weiterhin über Konsolenoptionen gesteuert. Diese sind aber recht trivial und vor allem gut in der man-Page erläutert.

jack --device /dev/sr0 -Q --write-m3u --write-id3v2=true --write-id3v1=true --various=true  --rename-fmt-va "%n - %a - %t" --rename-fmt "%n - %a - %t" --remove-files

Damit rippt jack eine CD, konvertiert die WAVs zu OGG, schlägt die Namen der Tracks in der Freedb nach und speichert alles korrekt ab.

Leave a comment

Filed under Audio

Neues Blog

So, ich werde in diesem Blog einfach immer mal wieder das posten, was mir privat und auf der Arbeit weiter geholfen hat und ich für publizierenswert halte.

Das kann von einem Bash-Einzeiler bis zur Nutzung komplizierter Frameworks alles sein.

1 Comment

Filed under Uncategorized