[ENC]BladeXP's Blog

Was die Welt nicht alles braucht!

Einträge in der Kategorie „Debian”

Aus .cue und .bin ein .iso machen…

geschrieben von encbladexp am 29.01.2012 18:12:00.

Da ich aktuell einige alte Spiele für ScummVM aufbereite, bin ich natürlich über diverse Spiele gestolpert die nicht als normales ISO9660 vorliegen, sondern in einem Format das aus 2 Dateien besteht:

  • .cue, eine Textdatei welche wohl die Tracks einer CD beschreibt.
  • .bin, einer Binärdatei welche nichts enthält was nach ISO9660 aussieht.

Der große Bruder Google hat mich dann darauf gebracht das dies wohl ein Format ist welches das ein oder andere Brennprogramm als Image hinterlässt, ich selbst musste mich damit bisher noch nie beschäftigen.

Natürlich hat Google auch verraten wie man aus diesen beiden Dateien ein ISO Image erstellen kann:

bchunk -v dateiname.bin dateiname.cue dateiname.iso
Das Programm bchunk ist übrigens in wohl jeder Linux Distribution enthalten, in meinem Fall (Arch Linux) war es aber nicht installiert.

Das fertige ISO kann man genauso verwenden wie alle anderen ISO Images die man auf dem Rechner hat, aber im Jahr 2012 dürften die wenigsten Anwender noch eine CD verschwenden ;-)

Cluster SSH

geschrieben von encbladexp am 28.11.2011 18:08:00.

Ein sehr gutes Tool, für die Verwaltung mehrerer Server gleichzeitig ist übrigens Cluster SSH. Ich verwende dieses Tool schon seit ca. 2-3 Jahren zur Verwaltung einiger Server.

Heute ist mir erst aufgefallen wie oft ich dieses Tool eigentlich verwende, zwar nur ca. 1-2 mal pro Woche, dennoch spart es mir massig Zeit wenn mal wieder 15-20 Server mit Updates versorgt werden wollen!

Die Konfiguration ist kein großes Hexenwerk, man legt einfach eine Datei ~/.csshrc an und packt folgendes hinein:

clusters = clustername1 clustername2
clustername1 = rz1srv1 rz1srv2 rz1srv3
clustername2 = rz2srv1 rz2srv2 rz2srv3
ssh_args =
Das war es auch schon, mittels cssh clustername1 kann man sich nun zu allen Servern in diesem Cluster verbinden, man sieht dann pro Server ein eigenes Fenster, und eine Eingabezeile in der man Befehle / Tasten eingeben kann welche an alle Server gleichzeitig gesendet werden sollen.

Da ich meine Benutzernamen und viele weitere SSH Optionen über ~/.ssh/config vorgebe habe ich die Variable ssh_args bewusst auf nichts gesetzt.

Mehr Infos gibt es dazu natürlich in der Manpage!

Bandbreite im Netzwerk bestimmen

geschrieben von encbladexp am 04.11.2011 22:05:00.

Neulich habe ich ja einen Artikel über meine Einführung des WLAN Standards 802.11n verfasst. Kurz danach gab es Fragen mit welchem Tool ich den meine Bandbreiten eigentlich ermittelt habe, den Namen des Tools - iperf - habe ich zwar kurz erwähnt, wie es funktioniert habe ich aber nicht erklärt.

Das möchte ich natürlich mit diesem Artikel nachholen, zuvor muss iperf natürlich installiert werden, was über die Paketverwaltung der Distribution erfolgen sollte. Anschließend muss man sich entscheiden welcher der Rechner im Netzwerk den der Server sein sollte, ich nehme hierbei immer den Router, den die meisten IP Pakete müssen irgendwann an den Router ;-)

Gestartet wird der Server in einem Terminal mit folgendem Befehl:

iperf -s
Mehr ist auf dem Server auch nicht zu machen, jetzt geht es an den Client, was jeder PC im Netz sein kann, in der Regel wird man aber die Bandbreite von einem bestimmten PC messen wollen. Auf dem Client wird iperf wie folgt aufgerufen:
iperf -c server
Der Parameter server muss hierbei natürlich durch den Server ersetzt werden, entweder die IP Adresse oder aber der (auflösbare!!!) Hostname des Servers.

Ein normaler Test, also mit den Standard Parametern dauert pro Aufruf ca. 10 Sekunden und wird sowohl am Client als auch am Server geloggt. Das kann z.B. so aussehen:

------------------------------------------------------------
Client connecting to server, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.8 port 59185 connected with 192.168.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   810 MBytes   680 Mbits/sec
Hier sieht man das mein installiertes Gigabit LAN ~680 MBit/s bei diesem Test überträgt. Die volle Bruttobandbreite wird man nur selten erreichen, zumindest SOHO-Komponenten wurden nur selten so gebaut das man auch alles bekommt was die Spezifikation verspricht ;-)

Mehr über iperf kann man in der entsprechenden Manpage nachlesen.

GDM das Powermanagement abgewöhnen

geschrieben von encbladexp am 07.10.2011 14:08:00.

Seit ein paar Tagen gibt es ja GNOME 3.2, mir ist dabei aufgefallen das der Rechner wenn er im GDM läuft einfach nach 30 Minuten in den Standby geht. Das ist eigentlich eine gute Idee, aber recht doof wenn man den Rechner z.B. für Updates nur via SSH verwendet.

Man kann das Verhalten aber ganz leicht ändern:

  1. xhost +
  2. sudo -u gdm gnome-control-center, und dann dort einfach wie gewohnt unter Leistung Einstellen
  3. xhost -

Natürlich benötigt man hierfür xhost (unter Arch nicht Standardmäßig installiert, unter Ubuntu schon) und einen Benutzer der auch via sudo die Rechte hat den aktiven User zu wechseln um Programme unter einem anderen Benutzer zu starten. Auf den gleichen Weg kann man übrigens auch viele andere Einstellungen des GDM Users ändern ;-)

GNOME 3.0 - Was aktuell stört...

geschrieben von encbladexp am 03.05.2011 22:41:00.

Seit einigen Tagen habe ich auch GNOME 3.0 auf meinem Produktiv System. Das ganze System läuft auch sehr gut damit, mir sind nur 4 Punkte aufgefallen die aktuell wirklich nervig sind:

  • Rhythmbox geht beim klicken auf die Fenster schließen Schaltfläche komplett zu, ich habe mir damit bestimmt schon 50 mal die Musik ausgemacht! Leider konnte ich hierzu noch keine Einstellung finden, ein richtiges Tray gibts ja für GNOME 3.0 nicht mehr :-/
  • Im Gegensatz zu GNOME Do ist die Shell nicht so clever und startet einen eingegeben Befehl direkt wie man ihn eingibt, stattdessen geht Wikipedia auf. ALT-F2 ist ein Shortcut den ich schon 2 Jahre nicht mehr verwenden musste :-/
  • Gajim Integration, hier gibt es noch einiges an Arbeit zu tun. Zwar gibt es eine Integration über Extensions für die Shell, schöner wäre aber nativer Support von gajim für GNOME 3.0.
  • Empathy kann nach wie vor weder GPG, OTR noch E2E. Das ist einer der Hauptgründe warum ich es nicht verwenden kann.

Ich denke aber auch das dies Dinge sind, die vielleicht schon mit 3.2 gefixt oder geändert werden. Bei Gajim müssen natürlich die Entwickler selbst aktiv werden!

GNOME 3.0

geschrieben von encbladexp am 08.04.2011 22:41:00.

Man liest es ja überall: GNOME 3.0 wurde veröffentlicht.

Ich selbst habe es natürlich auch mal getestet, aber natürlich beachtet das es ein .0 Release ist was halt einfach noch nicht so 100%ig stabil sein kann. Installiert habe ich es aus dem testing Repository unter Arch Linux, was man nur tun sollte wenn man mit dem System rumspielen will. Auf einem Produktivsystem würde ich erst mal bei 2.* bleiben bis es die ersten Bugfix Releases von 3.0 gibt. Für andere Distributionen gibt es Fremdquellen (z.B. PPAs bei Ubuntu) oder die Möglichkeit jhbuild zu verwenden.

Was mir beim ersten Start vom neuen GNOME aufgefallen ist: Es ist sehr aufgeräumt und nur mit dem nötigsten versehen. Das finde ich generell eigentlich schön da ich mit viel Schnickschnack kaum was anfangen kann, aber im Control Center hat man das doch deutlich übertrieben. Es gibt eigentlich nichts mehr das man wirklich Einstellen kann, auch das extra Tool gnome-tweak-tool erlaubt einem nur eine Hand voll mehr Einstellungen.

Der neue Workflow von GNOME gefällt mir aber sehr gut, man hat sich schnell dran gewöhnt und kann zu einem Teil auf Tools wie z.B. gnome-do verzichten, hier und da gibt es noch ein paar Sachen die nicht so funktionieren wie es die Entwickler erwarten, aber im großen und ganzen macht es einen brauchbaren Eindruck. Vor einem halben Jahr noch hatte ich zu diesem Thema ja die Befürchtung das 3.0 ein Schuss in den Ofen wird, da hatte ich aber unrecht.

Meine Freundin hat 3.0 auch probiert, und ist damit auch zufrieden. Hauptkritikpunkt einer Frau ist aber das man nicht mal das Thema umstellen kann ohne das man irgendwelche Extensions braucht. Was Anpassbarkeit angeht muss GNOME also doch wieder etwas nacharbeiten, und auch der Verzicht auf den beliebten "Ausschalten"-Button ist mir unerklärlich.

Sehr praktisch finde ich das dynamische Anlegen von neuen Desktops, das ist was wo ich bei 2.* vermisse, meistens reichen mir 2-3 virtuelle Desktops, aber manchmal darf es auch gerne etwas mehr sein. Ebenfalls schön gemacht ist die automatische Gruppierung von Anwendungen und eine Leiste wo man seine Lieblingsprogramme anpinnen kann.

Das waren meine Eindrücke vom neuen GNOME, mal sehen was die nächsten Releases bringen, Potential hat die neue Version nämlich!

Update:Mir ist klar das man an die Funktion Ausschalten noch kommt wenn man im Usermenu die ALT-Taste drück, das wissen aber nur die wo danach gesucht haben und nicht Leute die eher wenig mit der IT zu tun haben oder glauben das Google das Internet ist ;-)

Kurztipp: Datendurchsatz auf der Shell für dd & Co

geschrieben von encbladexp am 15.02.2011 18:41:00.

Häufig hat man das Problem das man nicht weis wie lange den ein dd noch brauchen wird um die Platte zu spiegeln, oder wie schnell der Datentransfer via netcat überhaupt läuft. Genau hierfür wurde das kleine Tool pv geschrieben welches den Datendurchsatz von pipes messen kann.

Ich selbst muss leider gestehen das ich dieses prima Tool bis letzten Sonntag noch nicht mal kannte und eher zufällig von guten bekannten davon erfahren habe.

pv ist bei Ubuntu im universe, bei Debian im main und bei Arch im community Repository zu finden. Es benötigt nur wenige KByte auf der Festplatte und ist daher auf jedem System verwendbar.

Ich werde hier nicht die Manpage 1:1 runterleiern und nur die 2 häufigsten Verwendungsarten anschneiden, welche man im täglichen Alltag verwenden dürfte.

Das eine ist ein Ersatz für das gute alte cat welches wohl jeder Leser dieses Blog kennen dürfte:

pv dateiname | nc -w 1 serveradresse portnummer
Hier erkennt pv selbständig wie groß dateiname eigentlich ist und baut einen schönen Ladebalken damit der anzeigt wie lange der Transfer bzw. die Verarbeitung noch dauert. Bei Special Files wie z.b. named Pipes oder einfach nur Device Files wird dies natürlich nicht gehen und man sieht nur einen Balken der hin und her wandert, wie man es von zahlreichen grafischen Oberflächen gewöhnt ist.

Die andere Variante hängt Inline in der Pipe und zeigt natürlich die gleichen Daten an:

cat dateiname | pv | nc -w 1 serveradresse portnummer
Nachteilig ist natürlich das man hier nicht sieht wie lange der Transfer noch dauert, was logisch ist da über die Pipes ja keine Größeninformationen ausgetauscht werden. Wenn man natürlich weis welche Datenmenge übertragen wird kann man das pv mit auf den Weg geben:
cat dateiname | pv -s 200m | nc -w 1 serveradresse portnummer
Und schon hat man wieder den schönen Ladebalken, wenn man Sachen natürlich zuvor durch ein Kompressionstool wie gzip,bzip2 oder xz jagt ist der Ladebalken natürlich bestenfalls ein Schätzeisen im Glastkugelmodus.

Es gibt noch einige zusätzliche Schalter in der Manpage von pv, doch die wird man eher selten benötigen ;-)

IMAP sicher über Android

geschrieben von encbladexp am 01.01.2011 12:32:00.

Bei Android ist ja Standardmäßig kein CACert im Zertifikatsmanager als Root-CA hinterlegt.

Bei vielen Webdiensten ist ein Verzicht auf ordentliche HTTPS-Sicherheit vielleicht noch akzeptabel, spätestens bei Mails auf dem eigenen Server aber vollkommen inakzeptabel!

Man hat nun verschiedene Möglichkeiten das Problem zu lösen:

  • CACert Root Certificate in den Zertifikatsmanager importieren: Umständlich
  • VPN verwenden: Möglich
  • IMAP über SSH mit ConnectBot tunneln: Einfach
Das Tunneln über ConnectBot geht natürlich nur wenn man Shellzugriff auf den Server hat, was bei einem eigenen Rootserver ja der Fall ist.

Man richtet sich ConnectBot ganz normal, wie jeden anderen SSH Clienten ein. Ich selbst bevorzuge ein Passwortloses Login über das integriert Public Key Verfahren welche mit einer Passphrase geschützt sind.

Im nächsten Schritt baut man den Tunnel auf, hierzu einfach auf die Verbindung im ConnectBot gehen (langer Druck mit dem Finger) und dann die Portforwardings bearbeiten, folgende benötigen wir für IMAP und SSH:

  • SMTP von 1125 auf 127.0.0.1:25
  • IMAP von 1143 auf 127.0.0.1:143

Sobald man jetzt eine Verbindung zu diesem Host aufbaut wird automatisch auch die Portweiterleitung aktiviert. Im Mailclient wird jetzt immer 127.0.0.1 (alternativ auch gerne localhost) als Server verwendet, der Port für IMAP ist dann die 1143 und für SMTP nimmt man 1125. Die Verbindung zum Server ist aber nicht Verschlüsselt, das übernimmt ja der gute alte ConnectBot für uns. Ob man für den Postausgangssserver (SMTP) ein Passwort benötigt kommt auf die Konfiguration des Mailservers an, oft benötigt man kein Login wenn man über SSH zugreift, da es sich dann um eine lokale Verbindung hat die meistens in der my_networks vom Postfix schon erlaubt ist.

Abgesehen davon kann man den Mailclient wie gewohnt verwenden und konfigurieren, einen Nachteil möchte ich aber nicht verschweigen: Automatische Mailchecks oder Aktionen die ausgeführt werden wenn kein ConnectBot im Hintergrund läuft funktionieren mit dieser Lösung natürlich nicht. Wird dies benötigt muss man also auf den umständlichen Weg das CACert Certificate importieren.

Schöner fände ich es wenn man Root-CAs einfacher importieren könnte, und nicht dieses umständlichen Weg gehen müsste, der noch dazu Root Rechte erfordert! Leider kann Android auch kein OpenVPN ohne Root, so macht das mit einem VPN natürlich auch keinen Spaß :-(

Sicherheitserweiterungen

geschrieben von encbladexp am 06.11.2010 22:01:00.

Momentan gibt es im Linux Kernel 4 Sicherheitserweiterungen die alle mehr oder weniger eine MAC (Mandatory Access Control) nachrüsten. Diese sind:

  • SELinux
  • SMACK
  • TOMOYO
  • AppArmor

SELinux wird schon immer von Fedora/RedHat/CentOS verwendet, das sind auch die Leute welche hinter diesem System stehen. Die Anpassung ist natürlich bei diesen Distributionen am besten. SELinux benötigt einige Anpassungen im Userspace, was mich persönlich etwas stört.

SMACK habe ich mir bisher noch garnicht angesehen, ggf. hat jemand schon damit Erfahrungen gemacht. Soweit ich weis ist es aber auch bei keiner Distribution Standard, und auch SMACK benötigt einige Anpassungen im Userspace.

TOMOYO ist seit 2.6.30 im Kernel dabei, das ganze ist eine relativ junge Sicherheitserweiterung bei der noch einige Features fehlen. Der IMHO größte Vorteil von TOMOYO ist dass man einen schönen Live Editor (tomoyo-editpolicy) hat, mit diesem kann man den Learning Mode von TOMOYO prima überprüfen und auch neue Regeln eintragen sowie alte Löschen. Die Userspace Tools von TOMOYO sind relativ klein, so dass man fast nichts nachinstallieren muss.

AppArmor ist ein etwas älterer bekannter, welcher mit Kernel 2.6.36 auch endlich Einzug in den Standardkernel erhält. Unschön an AppArmor finde ich dass die Userspace Tools etwas fett sind, dies fällt einem aber erst auf wenn man sie zum Beispiel unter Arch installiert und massig Abhängigkeiten nachinstalliert werden.

Problematisch finde ich eigentlich nur das viele Distributionen unterschiedliche Sicherheitserweiterungen installieren. Ohne einen Standard werden viele Leute sowas einfach nicht einrichten wollen, da man es für jede Distribution neu lernen darf. Ubuntu hat z.B. AppArmor, Fedora SELinux und Arch kann TOMOYO und AppArmor, openSuSE wiederum verwendet auch AppArmor, usw...

Wenn jetzt noch GRSecurity in den Kernel kommt haben wir alle Sicherheitserweiterungen die mir bekannt sind im Kernel, doch keine einzige die irgendwie ein Standard wäre. Schade eigentlich, da geht viel Potential verloren... :-/

Gerade für Serverdienste wäre das erstmal wichtiger als Unity, Themes oder Wallpapers!

Arch Linux hat TOMOYO für 2.6.36 aktiviert

geschrieben von encbladexp am 31.10.2010 12:25:00.

Arch Linux hat ab dem Kernel 2.6.36 die Sicherheitserweiterung TOMOYO aktiviert (Feature Request), auch Debian Squeeze hat diese Sicherheitserweiterung schon aktiviert.

Ich selbst teste aktuell die ein oder andere Sicherheitserweiterung, bisher ist mir aufgefallen das TOMOYO diejenige ist welche die schlankesten Tools im Userspace benötigt. AppArmor zieht hier viele viele Abhängigkeiten nach sich was ich nicht besonders toll finde. Bei SELinux muss man sehr viel am System anpassen, dafür kann SELinux natürlich auch am meisten.

Ich plane daher für die Zukunft auf meinen Servern wenn möglich immer TOMOYO zu verwenden, natürlich werde ich auch den ein oder anderen Artikel hierüber in mein Blog schreiben.