Archiv für die Kategorie ‘Software’

Fail2Ban hat ausgedient

von Khark am 16. August 2007 um 16:17 Uhr

Fail2Ban hat bei mir jetzt ausgedient. Ich setze es nicht mehr ein.
Mittlerweile haben 3/4 aller Hosts die meinen SSH-Dienst penetrieren kein Problem mehr mit den Sperrungen der IP-Adresse.
Sie scheinen die Timeouts einfach zu ignorieren und stumpf weiterzusenden.

Ein Tool ist mir auch aufgefallen, welches sich zu merken scheint, wann die Pakete abgewiesen werden und dann ~10min wartet bevor wieder an exakt der gleichen Stelle fortgesetzt wird.
Könnte man ja eigentlich noch verbessern indem man die Zeit variabel durchtestet und versucht die Sperrdauer (bantime-Parameter) herauszufinden :P

Also setze ich dann doch bald auf nur Key-Authentication.

CenterICQ, Jabber und –bind [UPDATE]

von Khark am 16. August 2007 um 16:11 Uhr

Da mein Rootserver mehrere IP-Adresse hat binde ich meine Messaging-Programme (IRC, SILC, ICQ), u.a. auch aus Konfigurationsgründen (Firewall) auf eine bestimmte IP-Adresse.
Bei CenterICQ passiert dies, in dem ich CenterICQ wie folgt starte:
centericq --bind ip.ip.ip.ip

Jetzt fällt mir aber auf, das ich nicht mehr ins Jabber-Netzwerk komme. Ich bekomme immer gleich die Meldung ich sei wieder disconnected.

[icq] connecting to the server
[jab] connecting to the server
[icq] logged in
[jab] disconnected

Starte ich CenterICQ ohne die Option –bind geht es wunderbar.

[icq] connecting to the server
[jab] connecting to the server
[icq] logged in
[jab] logged in

Was mich wundert ist, das beim starten von CenterICQ mit –bind zwar der DNS A-Record für jabber.com (207.182.166.31) abgefragt wird, aber nicht ein einziges Paket auf die Reise zu diesem Host geschickt wird. Kein TCP-SYN, nichts.
Ohne –bind kommt ein normaler TCP-Handshake zustande.
– Die Firewall war bei anfertigen der Mitschnitte deaktiviert.

Eine Suche bei Google und in der Dokumentation förderte nichts zu tage und die Anfrage auf CenterICQ-Users habe ich ebenfalls erst vor 2min abgeschickt.

Weiß jemand ob CenterICQ evtl. Probleme mit –bind und Jabber hat?
Beziehungsweise könnte das mal bei sich testen ob die gleichen Probleme auftreten?

Ach ja: Bei der Suche habe ich auch festgestellt, das es einen CenterICQ-Fork gibt.
CenterIM

UPDATE:
Der Fehler wurde in CenterIM in der aktuellen Version gefixt.
Zitat:
There was problem when on reconnect (in this case it's "checking state of non-blocking connection"), it tried to re-bind the socket every time and of course failed.

Die Roadmap lässt zudem auch hoffen.

Unreal & Ebay

von Khark am 27. Juli 2007 um 21:01 Uhr

Ich wurde vor ein paar Tagen offiziel von Ebay verwarnt :D

Grund war, das ich bei Ebay eine Suchanzeige nach der “Game of the Year Edition” von “Unreal Tournament” (UT99) aufgegeben hatte. Dieses ist laut Ebay inidiziert. (Ok, es ist ab 18. Was praktisch das gleiche ist – für Unternehmen.) Somit wurde die Anzeige gelöscht und mir nahegelegt nochmals die AGBs zu lesen :-)
Aber sowas ähnliches hatten wir ja schon mal.

Naja, jedenfalls habe ich jetzt über Umwege jemanden gefunden der z.Z. in Amerika verweilt und mir dort das Spiel + Versand für umgerechnet 10 Euro besorgt.
Ein Hoch auf die Globalität.
In Deutschland habe ich nur obskure Ü18-Shops gefunden die nebenbei auch ein paar FSK/USK18 Computerspiele verkaufen. Zu heftigen Preisen..

Somit habe ich jetzt die gesamte Unreal-Palette (Unreal + Addon, Unreal 2, Unreal Tournament + 2003/2004) die auf meinem Spiele-PC hier noch läuft.
P.S: Die Unreal Tournament 2003/2004 Synchronisation ist eklig und die Karten irgendwie nicht so toll wie beim ersten Unreal Tournament. Aber die Grafik ist whoa..
Nur das einem die Mitspieler immer totmachen wenn man am Wegesrand die Blümchen anguckt :(

Kein libapache2-mod-auth-mysql in Etch

von Khark am 18. Juli 2007 um 23:30 Uhr

Ich möchte mal erwähnen, das ich es beschissen finde, das in Debian Etch kein libapache2-mod-auth-mysql gibt.
In Sarge ist es enthalten und in Sid (Testing) auch. Nur in Etch nicht.
Wieso? Nun der Autor hat keinen Bock mehr auf das Apache-Modul-Gefrickel und seinen den Betreuerposten für das Paket aufgegeben.
Mittlerweile hat sich ein neuer gefunden, weswegen es auch wieder in Sid ist, aber für Stable hat es dann nicht gereicht.

Debian empfiehlt stattdessen libpam-mysql mit libapache2-mod-auth-pam zu nutzen.
Leider benötigt der Webserver dafür immer Leserechte auf die /etc/shadow. (Wenn dem nicht der Fall ist, bitte korrigiert mich.) Etwas das für mich einfach nicht vertretbar ist.
Den wenn ich von MySQL rede ist fast immer PHP mit im Spiel. Und PHP-Software kann teilw. schon recht eklig sein.
Dieser dann aber noch die Möglichkeit einräumen über den Webserver die /etc/shadow zu lesen.
- Nein danke.
Gut über so Sachen wie suPHP/suexec könnte man das ganze wieder eindämmen. Das ist dann wieder zuviel gefrickel. Da ist es einfacher die Benutzerauthentifizierung gegen MySQL in die Anwendung direkt einzubauen.
Zudem ist die Doku zu dem Umgang mit libpam-mysql dürftig. Zwar findet man die Direktiven irgendwo unterhalb von /usr/share/doc/libpam-mysql/README aber naja..

Nun gut. Jetzt ist es ja nicht so, das Apache keine anderen Module hat die man für die Authentifikation gegen eine MySQL-Datenbank nutzen könnte.
Zum Beispiel sieht mod_dbd zusammen mit mod-authn-dbd doch recht vielversprechend aus.

Unterstützt wird laut http://httpd.apache.org/docs/2.2/mod/mod_dbd.html#dbdparams Oracle, PostgreSQL, MySQL und SQLlite 2/3.
Schön. Allerdings kommt der Treiber für MySQL nicht mit, weil MySQL da andere Lizenzbedingungen hat als Debian.
Siehe: http://apache.webthing.com/database/
Selbst nachkompilieren geht nicht, weil ich den Apache-Source nicht habe, geschweige den apxs um das Modul zu basteln. Ich könnte ihn zwar installieren (Pakete apache2-src und apache2-threaded-dev) will ich aber nicht.
- Zuviel gefrickel.
Zudem sind die mod_dbd Direktiven nur im Server oder Virtual Server Kontext zulässig. Soll heißen das ich für jedes Verzeichnis, für jede Applikation bei der ich per mod_dbd und mod-authn-dbd die User authentifizieren will, einen eigenen virtuellen Host anlegen müsste.
In meinem Versuch klappt es nicht 2 unterschiedliche DBDParams-Direktiven in einem virtuellen Host anzulegen. (Getestet mit PostgreSQL.)
Man könnte das ganze ja wiederum über Include-Anweisungen lösen, dann müsste man zumindest nicht die DBD-Direktiven immer neu schreiben.
Aber ich mache doch nicht für jedes Verzeichniss einen eigenen virtuellen Host auf. Die Lösung über .htaccess oder die Directory-Direktiven fand ich da schon besser.

Also zur guckt man nach einer anderen Alternative. Zum Beispiel nachträglich erstellten MySQLAuth-Paketen für Debian Etch. (http://www.heuer.org/mod_auth_mysql/)
- Diese wollen aber auch nicht. “Floating point exception.” beim starten von Apache.

So langsam kann ich echt verstehen wieso der Autor das Paket aufgegeben hat.
Ich integriere die Benutzerauthentifizierung jetzt jedenfalls direkt in meine PHP-Anwendungen. Spart jede Menge Ärger, ist zukunftssicherer und macht die Applikation unabhängiger vom Webserver.

It’s beta baby!

von Khark am 13. Juli 2007 um 19:19 Uhr

Ich habe ja einen Freund, der an der Games Academy studiert.

Dier macht z.Z. ein 3D-Projekt. Dabei handelt es sich um ein 3D Echtzeitstrategie-Spiel mit dem Titel “Dawn of Bugs”.
Die Homepage ist: http://www.dawnofbugs.de/

Kurzer Abriss: Menschheit hat *puff* gemacht, also sind jetzt die Käfer dran. Und die haben natürlich auch nichts besseres im Sinn als es uns gleich zu tun.
– Blöde Krabbelviecher eben :-)

Und da er sich über Feedback freuen würde, mache ich hier mal etwas Werbung dafür :-)
Die 3 .rar-Pakete findet ihr unter http://www.dawnofbugs.de/ links im Menü.
Ihr benötigt alle 3 Pakete. Anweisungen stehen in der readme.txt

Ein paar Sachen vorweg:
– Eine 7500er Geforce gibt ca. 25 Frames (also nicht wundern wenn es ruckelt :-)
– Die Startbilder werden noch nicht skaliert
– Bei den Startbildern muss man eine Taste drücken, damit es weiter geht
– Im bin-Ordner kann man die gnu.config editieren um z.B. Kamerahöhe/-winkel zu verstellen
– Von der Brücke etwas runterscrollen und dann etwas nach links (am Tanklaster) da stehen eure Einheiten
– Ihr seid der blaue Spieler. Also nicht versuchen die roten Käfer zu bewegen :-)

Für Feedback entweder hier kommentieren oder an die Mailaddi im Impressum.

SILC-Client unter Debian Etch auf amd64 kompilieren

von Khark am 12. Juli 2007 um 22:45 Uhr

Wenn der SILC-Client auf Debian Etch (Architektur: amd64) partou nicht bauen will, weil er über die fehlende GLib meckert, dann kann folgendes helfen:

apt-get install libglib1.2 libglib1.2-dev libncurses5-dev libextutils-pkgconfig-perl

libglib1.2 & libglib1.2-dev installiert die benötigte Library und libextutils-pkgconfig-perl sorgt dafür, dass das configure-Skript vom SILC-Client diese dann auch findet.

(Gut, die libncurses wird für das Problem nicht benötigt, aber ich habe Sie mal mit aufgelistet, weil danach überprüft wird, ob sie vorhanden ist.)

Welchen Mailserver will man wirklich?

von Khark am 11. Juli 2007 um 23:07 Uhr

Ich habe zwar jetzt einen Mailserver mit Courier (ESMTP/POP3/IMAP – jeweils auch die verschl. Varianten) und SqWebmail für den HTTPS-Part am laufen, aber so richtig glücklich bin ich damit nicht.

Die Dokumentation bei Courier besteht nur aus Manpages die dann doch teilw. relativ große Lücken haben. Und auch nach 2 Wochen des Versuchens habe ich es nicht hinbekommen, das die Mails via Maildrop an SpamAssassin zur Filterung weitergeleitet werden und erst dann zugestellt werden.
So wie es in allen Howtos beschrieben wird, klappt es bei mir nicht.

Mit SqWebmail bin ich dann auch nicht wirklich glücklich. Die Bedienung z.B. bei Eintragung eines neuen Termin im Kalendar ist aufwändig. Auch das immer nur die Tagesansicht angezeigt wird und man diese nicht defaultmäßig auf Wochen oder Monatsansicht umschalten kann, sondern immer wieder manuell umschalten muss, nervt.
Die GPG-Unterstützung ist zwar gut.. Aber alle Keys im Keyring in einer riesigen Tabelle am Anfang der Seite anzuzeigen, was dazu führt, das man erstmal 12 Seiten scrollen muss, ist dann doch nervig.
Zudem sieht das Backend dann doch etwas altbacken aus. Ich bin zwar nun nicht unbedingt glühender Fan von Design-Foo. Aber hübscher als das Web um 1996 sollte man so ein Backend doch mittlerweile hinbekommen, oder?

Daher tendiere ich z.Z. zu folgender Zusammensetzung:
Postfix + Dovecot und Squirrelmail

Von der Sicherheitsstandpunkt gefällt mir das recht gut, da Postfix wie Dovecot sehr gut bei wegkommen. Wie es mit Squirrelmail aussieht weiß ich nicht wirklich.
Da ich PHP/CGI-Applikation zumeist aber sowieso nur über HTTPS + .htaccess anbiete ist mir das irgendwo egal.

Anforderungen habe ich dann nicht so viele:
– ESMTP, POP3, IMAP sollten, auch verschlüsselt, unterstützt werden
– Filterung mit SpamAssassin muss möglich sein (geht wenn Maildrop geht..)
– Webmail sollte GPG/Kalendar und Notizen anbieten (macht Squirrelmail über Plugins)

So Spielsachen wie redundante Mailserver(-Cluster?) mit redundanten MX-Einträgen kommen später. Daher wäre es evtl. nett wenn die Unterstützung schon da ist. Ein Wechsel auf andere Software wäre dann aber auch kein Problem. (Ich habe jetzt nicht nachgeguckt, sollte aber mit Postfix problemlos möglich sein.)

Wenn jemand andere Vorschläge hat, dann her damit :-)

Alternative für netstat/lsof

von Khark am 3. Juli 2007 um 16:17 Uhr

netstat und lsof kennt ja bestimmt jeder halbwegs erfahrene Linux-Benutzer.
Nun suche ich aber für netstat oder lsof eine Alternative auf der Konsole, die es mir erlaubt die Portliste (netstat -pan / lsof -i) durchzuscrollen.
– Etwa so wie in htop mit der Prozessliste.

Bei netstat und lsof sind die Ausgaben statisch. Kombiniert man dies aber mit dem watch Befehl (watch lsof -i) erhält man eine alle 2 Sekunden aktualisierte Auflistung aller Verbindungen.

Was ich jetzt suche ist ein vollwertiger Ersatz dafür, weil meine Liste offener Verbindungen größer ist, als auf ein 21″ TFT passt :-)

Kennt da jemand ein Programm?

Active Directory und Exchange: Weiterleitungen ohne lokale Mailzustellung finden

von Khark am 5. Juni 2007 um 11:35 Uhr

Wenn man im Active Directory eine Weiterleitung für Exchange einrichtet, gibt es ja diese kleine Option “Deliver messages to both forwarding address and mailbox” welche Bewirkt das weitergeleitete E-Mails eben auch im Postfach des Benutzers auf dem Exchange Server verbleiben.
Andernfalls verbleibt die Mail nur im Postfach der weitergeleiteten Adresse. Was geringfügig blöd ist, wenn die Mitarbeiter monate- bzw. jahrelang extern beim Kunden sitzen und sich dann irgendwann mal ihre Festplatte verabschiedet und sie keine Sicherung ihrer outlook.pst haben.

Mit folgender Abfrage (Typ: “Custom search”, Reiter “Advanced” unter “Enter LDAP Query”) bekommt man alle Useraccounts aufgelistet die eine Weiterleitung (altRecipient) eingerichtet haben, aber keine lokale Kopie der Mail bekommen (deliverAndRedirect).

(&(objectCategory=user)(altRecipient=*)(deliverAndRedirect=FALSE))

Ach ja: Der Grund wieso ich das hier nochmal poste ist, das ich bei meiner Suche danach nur überall gefunden habe: “Das geht so nicht. Da musst du mit cvsde ein Skript basteln.” oder “Das kannst du nur mit Wscript oder .Net machen.” etc.

Irgendwie erschloss sich mir die obige Logik aber nicht so ganz. Wenn es Objekte in der AD-Datenbank sind, dann kann man die auch über LDAP abfragen.

Jabber.com downtime?

von Khark am 29. Mai 2007 um 11:11 Uhr

Weiß jemand, was mit Jabber.com los ist?

Seit 2 Tagen ist weder der Jabber-Server noch der Webauftritt erreichbar.

Aircrack-NG 0.9 für Ubuntu 7.04

von Khark am 28. Mai 2007 um 23:49 Uhr

Hallo,

ich habe mal mit checkinstall ein .deb Paket für Aircrack-NG v0.9 auf i386 Ubuntu Feisty Fawn (7.04) gebastelt.
Es liegt unter:
EDIT: Paket entfernt. Baut euch Aircrack aus dem SVN.

Wäre nett, wenn mich jemand mit Feedback versorgen könnte, da es mein erstes .deb Paket ist :-)
Die Aircrack-Version im Ubuntu Repository ist mir zu alt. Dort ist die PTW-Attacke noch nicht implementiert. Und mit genau der möchte ich mit meiner neuen Atheros Karte (Proxim WD-8470) spielen.

Was mir schon aufgefallen ist, das man noch das aircrack-ng Binary nach /usr/bin/ linken muss, da es unter /usr/local/bin/ liegt, dort aber nicht gefunden wird. Steht wohl irgendwo ein statischer Pfad drin, oder ich hab beim kompilieren geschlampt.
Wie auch immer. Folgendes sollte helfen:
ln -s /usr/local/bin/aircrack-ng /usr/bin/

Damit bin ich jetzt offiziel ein Computerkrimineller! YEEHA!

EDIT:
Ich möchte eure Aufmerksamkeit auch auf dieses Kommentar hier lenken: Dead_Orcs Aircrack-NG Paket

Narf, Grml, Argh und so

von Khark am 22. Mai 2007 um 20:54 Uhr

Virtuelle Server sind Mist.

Jetzt verstehe ich diesen Satz mehr als mir lieb ist. Spätestens im Juni gibt es einen dedicated Rootserver.

[Heise] Deutsche DVDs mit neuer Kopiersperre

von Khark am 4. Mai 2007 um 23:28 Uhr

Die Kopiersperre DVD-Movie-Protect von X-Protect ist in Deutschland auf Titeln von vier Herstellern zu finden. Die Studios beteuern jedoch, die Kopiersperre behindere nur eine verschwindend geringe Anzahl an Kunden.

[...]

Weiterhin gesperrt bleibt aber die Wiedergabe über den beliebten Media-Client VLC Media Player. Auch andere Programme aus dem Open-Source-Sektor wie Mplayer und MythTV können die von X-Protect behandelten Scheiben nicht wiedergeben. Der Hersteller zeigt auch kein Interesse daran, dies zu ermöglichen – zu groß erscheint das Risiko, damit auch DVD-Kopierwerkzeugen den Weg zum geschützten Inhalt aufzuschließen.

Quelle: http://www.heise.de

Die sind mittlerweile so dreist geworden und geben sogar öffentlich zu, das ihre Techniken Kundenunfreundlich sind?

Nee halt.. Was ist daran eigentlich so verwunderlich?

Screen Tipps & Cheatsheet

von Khark am 2. Mai 2007 um 21:17 Uhr

Vorwort:
Schreibe ich mal, wenn ich Lust habe :-)

Allgemeines:
In der vi-Manpage sind die Tastenkürzel abgekürzt. “C-a a” steht so z.B. für “Ctrl+a a” bzw. “Strg+a a” (Strg und a gleichzeitig, danach wieder ein a). Die Schreibweise “C-a” für Ctrl+a ist historisch und kommt u.a. vom Editor emacs.

Zeichen in [] dienen nur zur Erklärung! (Als Gedankenstütze für die Schalter..)

Startparameter: (Beim starten von Screen angeben.)
<sessionname> ist ein Platzhalter für den Namen der Screensession. (Kann mit -S beim erstellen des Screens vergeben werden.)
screen -r[esume] <sessionname>: Verbindet sich zur angegebenen Screensession
screen -S[essionname] <sessionname>: Gibt der Screensession einen Namen, den man dann mit -r verwenden kann
screen -D -RR <sessionname>: Detache die aktuelle Screensession und versuche alles was möglich ist um sie wieder zu attachten. (Wichtig, wenn die Verbindung zusammengebrochen ist).
screen -d/-D[etach] <sessionname>: Die Screensession detachen/verlassen.
screen -r[esume] <sessionname>: Verbinde dich zur aktuellen Screensession
screen -t <title>: Setzt den Titel für das aktuelle Programm/Window (siehe: Strg+a :title “titel”)
screen -ls/-list: Zeigt alle aktuellen Screensessions mit Namen/Pfad und Status (Attached, Detached)
screen -X <command>: Sende <command> an den angegebenen Screen. Achtung! Hierüber kann man in die Screens anderer Benutzer gucken! Daher seine Screensession unbedingt mit einem Passwort schützen! (Siehe weiter unten.)
screen -x <sessionname>
screen -c </pfad/zur/datei>: Eine alternative Konfigurationsdatei für screen angeben.
* Default ist .screenrc im /home des Benutzers.

Tastenkombinationen: (Im laufenden Screen..)
Strg+a c[reate]: Erschafft ein neues Window innerhalb eines Screens und wechselt in dieses Window
Strg+a n[ext]: Springe zum nächsten Window
Strg+a p[revious]: Spring zum vorherigen Window
Strg+a 0-9: Spring zu Screen 0-9 (Nr. des Screen anzeigen durch Strg+a “)
Strg+a N (Shift+n): Nummer und Title des aktuellen Windows zeigen.
Strg+a d[etach]: Verlasse den screen (detachen)
Strg+a h[ardcopy]: Legt einen ASCII Screenshot unter dem Namen hardcopy.n im Home-Verzeichniss des Benutzers ab
Strg+a : (Shift+.): Gehe in den Kommandomodus
Strg+a ” (Shift+2): Zeige eine Liste aller Windows im aktiven Screen mit Nummer, Namen und gesetzten Flags
Strg+a A (Shift+a): Einen Namen (title) für das aktuelle Window festlegen
Strg+a * (Shift+’+’): Zeigt eine Liste aller attachten Sceens an
Strg+a ? (Shift+ß): Hilfe anzeigen

Sicherheit & Komfort:
Strg+a x: Sperre den aktuellen Screen. Wenn man den Screen wieder reattached ohne ihn verlassen zu haben muss man erst das User-Passwort und dann das Screen-Passwort angeben. Wenn man die Screensession detached hat, muss man bei reattchen nur das Screen-Passwort angeben.
Strg+a ] (AltGr+9): Inhalte der Zwischenablage in STDIN des aktuellen Window einfügen
Strg+a Esc[ape]: In Kopier-/Scrollmodus wechseln. Kopiermodus verlassen durch drücken von Esc[ape] oder Strg+C.

Im Kopiermodus kann man mit Page-Up/-Down im aktuellen Window hoch- und runterscrollen, bekommt aber nur den Inhalt des aktuellen Windows. Im Scrollmodus würde man die zuletzt angezeigten Inhalte der anderen Windows sehen! Oder man bekommt ein Tilde “~” eingefügt (Man scrollt also nicht).
Die Erklärung hierfür ist, dass das Terminal wohl den alternativen screen buffer anzeigt. Um dies zu ändern, kann man folgende Zeile in seine .screenrc einfügen:

termcapinfo xterm|xterms|xs|rxvt ti@:te@

Arbeiten mit mehreren Regionen in einem Window:
Strg+a S (Shift+s): Splittet das aktuelle Window in 2 Regionen

Kleine Warnung: Strg+s sendet das Stop-Signal an die Shell (zumindest in der Bash), alle Anwendungen werden angehalten. Ein Strg+q sendet das Start-Signal. Alle Anwendungen werden wieder ausgeführt.
Diese Befehle sind Shellintern und haben nichts mit Screen zu tun!

Strg+a X (Shift+x): Zerstöre die aktuelle Region. (Auch: Strg+a :remove). Kein Effekt wenn nur eine Region vorhanden.
Strg+a Q (Shift+q): Zerstört alle Regionen bis auf die aktuell ausgewählte
Strg+a Tabulator: Zur nächsten (Eingabe-)Region wechseln

Screen-Befehle:
Strg+a :number (Shift+.): Aktuelles Window an Position n verschieben
Strg+a :source <Pfad zur konfigdatei>: Konfigurationsdatei neu einlesen, Session bleibt erhalten!
Strg+a :hstatus “titel”: Ändert den Namen des aktuellen Window in der Titelleiste
Strg+a :password <password>: Legt ein Password für den aktuellen Screen fest. Wenn die “password”-Direktive in der .screenrc leer ist, fragt screen nach dem neuen Passwort und speichert dieses im Buffer ab. (Zum einfügen siehe: Strg+a ])
Strg+a :remove : Zerstöre die aktuelle Region im Screen
Strg+a :only : Zerstöre alle Regionen bis auf die aktuelle Region

Screen und seine Session-Prozesse:
Wenn auch ein screen -D -RR <sessionname> nicht hilft um in die Screensession zu kommen, dann ist wohl etwas anderes im argen.
Wenn man nicht die Lust/Zeit und/oder Kenntnisse hat diesem nachzugehen, dann hilft meist folgendes:

Man sucht nach allen aktiven screen-Verbindungen und merkt sich die Prozess-ID (PID):
ps -ef|grep screen

Ein grep nach screen (Klein geschrieben!) listet einem dabei nur die Verbindungen auf. Nicht die Screensessions!
# In diesem Beispiel wäre die PID der Screenverbindung: 26727
# Auch erkennbar daran, das bei screen der Parameter -r verwendet wird und auf dem Terminal ttyp9 läuft,
# während bei SCREEN die Schalter -S und -c verwendet werden und diese kein Terminal hat.
#
user@hostname:~$ ps -ef |grep screen
user 8331 1 0 00:14 ? 00:00:08 SCREEN -S scr -c .screenrc
user 26727 26720 0 13:07 ttyp9 00:00:00 screen -r scr
user 27073 10855 0 13:10 ttyp7 00:00:00 grep screen

Nun sucht man nach der PID der gewünschten Verbindung und macht:
kill -9 PID

Die Screenverbindung wird beendet. Die Screensession bleibt aber aktiv und wird nicht beendet. Alle Programme im Screen laufen weiterhin!
Nun verbindet sich wieder auf die Session mit:
screen -D -RR <sessionname>

Wenn man die Screensession beenden will, tut man folgendes (SCREEN –> Groß geschrieben!):
ps -ef|grep SCREEN

Und schießt dann den entsprechenden Screen mit “kill -9 PID” ab. Auf das obige Beispiel bezogen, müsste man hier die PID 8331 einsetzen.

Teil 2: Meine .screenrc

Meine .screenrc

von Khark am 2. Mai 2007 um 21:14 Uhr

Gibt auch als Textdatei: https://83.246.72.33/screenrc.txt
Die neuere Version der .screenrc von ssc gibt es hier: http://unixgu.ru/doku.php?id=configfiles
– Jetzt mit integriertem Download-Manager und MP3-Player :-)

# .screenrc – Written (w) 2003-2005 by Stephan Schmieder
# Modified by me :-)
# “activity in window #%n title: %t~”
activity “%C -> %n%f %t activity!”
# pass on the “beep” (CTRL-G) by adding a ‘~’:
bell “%C -> %n%f %t bell!~”
# set colors for “messages” and “text marking”
sorendition kG
# console-screensave, (!)doesn’t lock(!)
# idle 180 eval “screen cmatrix” “idle 0″
# [hostname ][windowlist][month and day][time]
caption always “%{WB}%H %{kG}%?%-Lw%?%{bw}%n*%f %t%?(%u)%?%{kG}%?%+Lw%? %88=%{YR}%M%d %94=%{RY}%c%=”
password xxxxxxx
# todo: dynamisch machen :-)
defhstatus “[user@hostname] screen”

# key bindings
bind t screen -t top 0 top
bind c screen -t bash 1 bash -l
bind n screen -t netstat 2 sudo watch netstat -pan
bind l screen -t lsof 3 sudo watch lsof -i
bind i screen -t icq 4 centericq
bind r screen -t irc 5 irssi
bind s screen -t silc 6 silc

# Automated Screensessionconfiguration:
# What programs are started where, if a new screensession is started.
screen -t bash 0 bash
screen -t bash 1 bash
screen -t top 2 top

# use F7 and F8 to cycle trough the windows
bindkey -k k7 prev
bindkey -k k8 next

# unbind some keys
bind .
bind ^\
bind \\
bind K

# mouse support in screen
# see: http://arcknowledge.com/gnu.screen.user/2004-09/msg00022.html
# If it doesn’t work, try -T rxvt as argument (for example: screen -S scr -c .screenrc2 -T rxvt)
term rxvt

# termcap stuff
termcapinfo xterm ti@:te@
# make the cursor show up in red:
termcapinfo linux “ve=\E[?25h\E[?17;0;64c”
# this makes screen work within rxvt on cygwin:
#termcapinfo rxvt-cygwin-native ti@:te@
# scrollback buffer in lines
defscrollback 1000
# my shell
shell /bin/bash
# no copyright message
startup_message off
# show messages for 2 seconds
msgwait 2
# visual bell
vbell on
vbell_msg ” *beep* ”
# don’t remember what these do
deflogin off
silencewait 15

Ubuntu 7.04 (Feisty Fawn)

von Khark am 29. April 2007 um 18:15 Uhr

Also dieses Ubuntu ist ja schon toll. Ein direkt benutzbares System nach der Installation und so Dinge wie die Windows-Codecs, libdvdcss2 und Beryl (Howto gibts im Ubuntu Guide) lassen sich ohne Probleme nachinstallieren.
– Bei Debian ist sowas irgendwie immer in eine Repository-Sucherei ausgeartet.

Die ext. USB-Festplatte wurde gleich erkannt und eingerichtet. Zugriff auf die Windows-NTFS-Partition ist ebenfalls möglich und der Grafikkartentreiber (ATi Mobility Radeon 7500) wurde auch korrekt installiert. ACPI ging auch ohne das ich etwas tun musste.
– Bei Debian musste man da häufig etwas frickeln, bzw. Konfigdateien editieren.

Nur der Monitor mode bei meiner Orinoco und der VMware-Server will noch nicht so ganz. Aber ansonsten bin ich zufrieden.

EDIT: Der ext. USB CD-/DVD-RW/DVD-RAM-Brenner wurde auch sofort erkannt und brennt ohne Probleme :-)
EDIT 2: VMware geht nun auch nachdem ich das hier gelsen habe http://ubuntuguide.org/wiki/Ubuntu:Feisty#How_to_install_Windows_Applications_.28VMWare_Server_or_Workstation.29

DVDs verschlüsseln

von MichiK am 22. April 2007 um 02:27 Uhr

Ich habe einige dutzend Gigabytes an Daten, die nicht jeder sehen soll — aus guten Gründen, die ihr euch vermutlich denken könnt. ;) Zur Zeit ist mein Paranoia Level wieder monoton steigend und ich habe mir mal überlegt, wie man die Backups vernünftig verschlüsselt sichert, aber gleichzeitig auch ordentlich Zugriff darauf bekommt.

Die erste Idee war es, die Dateien einfach mit GnuPG zu verschlüsseln. Guter Plan eigentlich, aber mit einigen Haken:

  • Wenn ich meinen privaten Schlüssel verliere, sind die Daten weg. Unwiederbringlich.
  • Wenn man eine einzige Datei aus dem großen Image braucht, muss man alles entschlüsseln. Das dauert lange. Außerdem muss man dann 4,7 GB für die temporär entschlüsselten Daten vorhalten.
  • Die entschlüsselten Daten landen auf der Festplatte oder einem anderen schreibfähigen Medium. Nicht wünschenswert.

Dann die Idee: Warum macht man es mit DVDs nicht einfach genauso wie mit Festplatten? LUKS ist bequem und funktioniert. Wenn man eine gute Passphrase hat und die für sich behält, sind die Daten sicher. Man kann da ein Filesystem drauftun und das beliebig mounten und draus lesen. Perfekt.

Wie aber vorgehen? Erstmal brauche ich eine temporäre Datei, in die die Daten kommen sollen:

dd if=/dev/zero of=foo.img bs=1M count=4450

Wer extrem paranoid ist, kann auch aus “/dev/random” lesen, aber das ist meiner Meinung nach etwas zu viel des guten. Mit 4450 MiB ist man recht gut bedient. 4700000000 Bytes sind ca. 4482 MiB – ich weiß leider nicht, wieviel Overhead da noch ist, also lieber großzügig kalkulieren.

Nun muss in diese Datei ein LUKS-Volume. Ein simples `cryptsetup luksFormat foo.img` scheitert, da der Device Mapper natürlich richtige Devices sehen will und nicht mit Dateien kann. Also nehme ich den Umweg über ein Loop-Device:

losetup /dev/loop0 foo.img
cryptsetup -c aes -s 256 luksFormat /dev/loop0

Dann mit “YES” antworten und eine schöne Passphrase ausdenken. 20 Zeichen sollten das Minimum sein. Anschließend muss das ganze ein richtiges Blockdevice werden:

cryptsetup luksOpen /dev/loop0 foo

Nun ist unter “/dev/mapper/foo” ein Gerät zu finden, das man mit beliebigen Dateien füllen kann. Im Idealfall natürlich ein Dateisystem. Ich entscheide mich da für ext2. Letztendlich ist es egal, jeder soll nehmen, was er mag, aber dabei im Hinterkopf behalten, dass das ganze mal read-only wird. Also ist Journaling beispielsweise Schwachsinn.

mke2fs /dev/mapper/foo
tune2fs -c 0 -i -1 -m 0 /dev/mapper/foo

Mit `tune2fs` setze ich nun noch die maximale Anzahl von Mounts, bevor das System einen Check will auf unendlich, sowie die Maximale Zeit, bevor das passiert auf ca. 138 Jahre. Außerdem bekommt der Superuser keine reservierten Blocks. So wird einerseits sichergestellt, dass man keinen Stress bekommt, falls man das Image irgendwann einmal zurück auf die Platte kopiert, den Inhalt ändert und dann das selbe Dateisystem wieder brennt. Anderseits braucht der Superuser hier keinen garantierten Platz (bei / oder /var ist das ja sinnvoll, ansonsten: nö).

Anschließend kann das ganze gemountet werden und außerdem noch direkt einem User, der das ganze dann befüllen darf, die entsprechenden Rechte gegeben:

mount /dev/mapper/foo /mnt/foo
chown user /mnt/foo && chgrp user /mnt/foo

Anschließend kann der User das Dateisystem beliebig mit vertraulichen Daten zuschaufeln. Um den Tresor abzusperren, genügen drei Zeilen:

umount /mnt/foo
cryptsetup luksClose foo
losetup -d /dev/loop0

Meine erste Idee war nun, “foo.img” direkt auf eine DVD zu schreiben. Ohne Dateisystem drunter. Obscurity und so. ;) Allerdings gab es da etwas Stress. Ich konnte das zwar bequem brennen und den Safe aufschließen, aber `mount` hat dann immer rumgemeckert: “blocksize too small for device”. Weiß da jemand mehr?

Als Workaround habe ich nun einfach ein ISO-Image mit “foo.img” drin erstellt und das dann auf die DVD getoastet:

mkisofs -J -R -o foo.iso foo.img
growisofs -dvd-compat -speed=4 -Z=/dev/hda=foo.iso

So hat man halt eine zusätzliche Abstrahierungsschicht noch dazwischen, aber dafür funktioniert es wenigstens. Wie kommt man da jetzt wieder dran, mag man sich fragen? Ganz einfach:

mount /dvdrom
losetup /dev/loop0 /dvdrom/foo.img
cryptsetup --readonly luksOpen /dev/loop0 foo
mount -o ro /dev/mapper/foo /mnt/foo

Ebenso leicht kann man den Tresor wieder abschließen:

umount /mnt/foo
cryptsetup luksClose foo
losetup -d /dev/loop0
umount /dvdrom

Natürlich versteht sich von selbst, dass man noch einige zusätzliche Sicherheitsvorkehrungen treffen sollte, damit auch ansonsten die Sicherheit gewährleistet wird:

  • Die DVDs nur auf eigenen, wirklich vertrauenswürdigen Maschinen mounten. Wenn die Passphrase auf einem möglicherweise kompromittierten Rechner eingegeben wird, ist die Sicherheit dahin.
  • Die DVDs nicht mit dem wahren Inhalt beschriften, sondern entweder mit Codebezeichnungen oder einfach durchnummerieren. Man kann gerne eine Zuordnungstabelle der einzelnen DVDs zu ihrem Inhalt anlegen, sollte diese dann aber ebenfalls nur sicher verschlüsselt aufbewahren. Ich brenne einfach die aktuelle Fassung auf die neuste DVD und lösche sie dann von meiner Festplatte. So muss ich nur die aktuellste DVD mounten und habe einen Überblick über die Inhalte.
  • Auch die restlichen Teile des Systems entsprechend sichern. Eine verschlüsselte Swap sowie ein verschlüsseltes /tmp sind schon fast Pflicht. Die DVDs nicht mounten, wenn andere Personen Zugriff (auch remote) auf den selben Rechner haben. Die DVDs nicht gemountet lassen, wenn man den Rechner verlässt.

Anregungen? Weitere Ideen? Verbesserungsvorschläge? Kritik? Ich bin für alles offen. Falls das Konzept für tauglich befunden wird, wird die nächste Spindel so befüllt. :)

Hamachi

von MichiK am 15. April 2007 um 20:36 Uhr

Ein Kommilitone versucht grade, mich zu überreden, dass ich Hamachi benutze. Ich habe zwar eigentlich keine Lust auf solche Software, aber man kann ja mal damit spielen. Also runtergeladen, ausgepackt und ich bekomme ein Binary, ein Makefile und ein bisschen Sourcecode und auch eine README. Da mal reingeschaut, ok, alles wie üblich.

Zuerst “make install”. Das Teil wirft sich mal eben in /sbin und /usr/bin. Nicht grade die feine englische Art. /usr/local existiert und ist für genau sowas gedacht. Na gut… verzeihen wir das mal. Man soll dann als root ein Programm namens tuncfg starten. Warum, steht da nicht. Aber der Sourcecode davon wird mitgeliefert. Also mal kurz reingeschaut. Aha, ein Programm als root ausführen, damit normale User tun- und tap-Devices anlegen dürfen. Ekelige Lösung, aber der Code sieht nicht allzu pervers aus, also starte ich das Ding. Immerhin ist an dieser Maschine ja außer mir niemand, der Mist bauen könnte.

Dann soll man als normaler User ein “hamachi-init” machen:

hamachi-init: error while loading shared libraries: libcrypto.so.0.9.7: cannot open shared object file: No such file or directory

Ganz großes Kino! Da kompilieren die sowas hart rein. Also echt… libcrypto habe ich natürlich, aber nicht 0.9.7 sondern mittlerweile 0.9.8. Na gut, “ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7″ stellt das Programm zufrieden.

Dann “hamachi start” und “hamachi login”. Das sagt schlicht und ergreifend:

Logging in … failed

Toll. Wirklich. Nicht ordentlich dokumentiert der Kram, geschweige denn, dass man mal genau schauen könnte, was es da tut. Ich sehe lediglich ein Paket “20:34:45.520896 IP ich.43844 > my.hamachi.cc.12975: S 1621518007:1621518007(0) win 5808 ” und das wars dann wohl.

Mal sehen, ob der Debug-Mode, den es angeblich hat, was sinnvolles sagt. Ich schätze nicht. Und bevor ich den Schrott ernsthaft benutze, überrede ich meinen Kommilitonen lieber, selbst OpenVPN zu nehmen. Das funktioniert wenigstens …

Gameport-Massaker

von Khark am 3. April 2007 um 22:08 Uhr

Für so ziemlich jedes Spiel muss man ja Portforwarding (PAT) einrichten. Bei den Ports, die aber Sacrifice benötigt, stockte mir dann doch erst etwas der Atem:

2300-2400, 3400-3600, 6073, 6500, 13139, 23626, 27900-28900, 29920, 46052, 47624 jeweils TCP und UDP.

Nach kurzer Suche stellt sich heraus das nur 2302-2400 und 6073 für UDP nötig sind.
Siehe: http://www.u.arizona.edu/~trw/games/ports.htm

Jetzt neu bei Amazon

von MichiK am 6. März 2007 um 02:03 Uhr

Debian für Windows!