Fast genauso dumm wie der Rest…

Zum Rumdümpeln verurteilt

March 8th, 2009 @ 22:16 by lookshe

Ab sofort wird dieser Blog wohl wie viele andere im Web nur noch dumm vor sich hinwegetieren. Ich bin jetzt endlich auf einen anderen Server umgezogen und habe dort mal eine neue Blogsoftware ausprobiert und meinen Gefallen dran gefunden. Nähere Details und den neuen Blog findet ihr unter http://thehappy.de/~lookshe.

Jetzt heissts für diesen Blog dann wohl Goodbye Cruel World…

ATI Remote Wonder und Debian Etch

November 29th, 2008 @ 0:05 by lookshe

Ein Krampf, mehr fällt mir zu dem ganzen nicht ein…
Verzweifelt habe ich mehrere Stunden versucht meine Remote Wonder unter Debian Etch zum Laufen zu bekommen mit LIRC. Viel wollte ich ja nicht, eigentlich nur ein paar Systemaufrufe absetzen um meinen MPD damit steuern zu können, zumindest vorerst in den Grundfunktionalitäten. Leider liessen sich die LIRC-Module mit 2.6.18 nicht kompilieren. Erkannt hat sie das System allerdings korrekt und auch ein Input-Device angelegt. Irgendwann bin ich zufällig auf das Tool evtest aus dem Paket dvb-utils gestossen. Damit konnte ich direkt auf das Event unter /dev connecten und die Keycodes auslesen. Somit wusste ich, dass die Fernbedienung unter dem System ordentlich funktioniert. Weitere Stunden des Rumprobierens mit LIRC vergingen, leider erfolglos.
Aber dann kam, nachdem ich eine Nacht drüber geschlafen habe, die zündende Idee. Evtest kann doch alles korrekt auslesen. Warum guck ich mir also nicht mal den Source davon an und bastel ggf. etwas eigenes um die eingelesenen Keycodes auszuwerten. Gesagt getan. Erst nur mit einem simplen switch-case-Block. Funktionierte wunderbar. Aber jedesmal den Code ändern, wenn sich das Event unter den Devices ändert oder ich neue Funktionen hinzufügen will, das wollte ich auch nicht. Also musste eine Konfigurationsdatei her. Dann stellte sich noch die Frage, wie ich die Keycodes und entsprechende Systembefehle sinnvoll speichere um auch einfach darauf zuzugreifen. Spontan viel mir da eine Hashmap ein, was unter C aber etwas problematisch ist. Also ein wenig gegooglet und eine mehr oder weniger passende Implementierung gefunden. Eine Zeit hatte ich noch mit Speicherleaks und verkorksten Pointern zu kämpfen, was sich aber einfach abschaffen liess, indem ich die Hashmap auf char* geändert habe und zum speichern der Datensätze strcpy verwendet habe.

Für diejenigen, die es interessiert, hier die Programmdateien:
evtest.c
hashmap.c
hashmap.h
config

US-Präsidentschaftswahlen

October 13th, 2008 @ 13:24 by lookshe

Damit hier auch mal was neues kommt, fang ich auch mal an Dinge, die mir einfach so über den Weg laufen, zu präsentieren.

Hab vor einigen Tagen in einem Forum folgendes nettes Bild entdeckt, Gedanken kann sich jeder selbst dazu machen.

US-Wahlen

PS: Mal sehen wer gewinnt, dann werd ich dazu nochmal was nachgeben.

PPS: Dummes Lightbox-Plugin, wenn man ne weile nix macht, dann weiß man wieder gar nichts mehr…

PPPS: Für diejenigen, die es interessiert, ich habe meine Diplomarbeit mittlerweile abgegeben und bei der gleichen Firma einen Job als Software-Entwickler (C++/Java) bekommen.

verschlüsselte Platte mounten

April 15th, 2008 @ 18:52 by lookshe

So, nach langer Zeit komm ich mal wieder dazu was zu schreiben. Irgendwer hat mich auf die sinnlose Idee gebracht, doch mal einige meiner Shell-Skripte hochzuladen. Kann man ja gleich sinnvoll ‘nen Blogeintrag machen und die erklären, dacht ich mir. Da wolle wa mal anfange:

Meine externe Platte hat 3 Partitionen. Und da ich die mal hier mal dort anstöpsel, nervt es ein wenig, jedesmal das Mapping für die verschlüsselte Partition anzulegen. Linux-User sind ja von Natur aus faul, also hab ich mir da ein Skript für geschrieben, dass das alles übernimmt. Hier mal bröckchenweise mit Erklärungen:

1
2
3
4
5
6
7
8
9
#!/bin/bash            
 
#first get su
sudo ls > /dev/null
if [ $? -ne 0 ]
then
   echo "You need root-privileges to go on! So type your password correct!"
   exit 2
fi

Hier holen wir uns nur die benötigten Root-Rechte, da diese im weiteren Verlauf des Skriptes benötigt werden.

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#check if device is connected
cat /proc/partitions | grep 488386584 > /dev/null
if [ $? -ne 0 ]
then
   echo "Device not connected!"
   exit 1
fi   
 
printf "checking device: "
dev=$(cat /proc/partitions | grep 488386584 | awk '{print $4}')
for i in $dev
do
   if [ $(udevinfo --query=all --name=/dev/$i | grep "ID_SERIAL=" | awk -F= '{print $2}') = "WD_5000AAK_External_574341505734313138393536-0:0" ]
   then
      dev=$(echo /dev/$i)
   fi
done
partition=$(echo $(echo $dev)7)

Anhand der Blockanzahl wird geprüft ob die Festplatte angeschlossen ist. Dies ist natürlich nicht ideal, da es auch andere 500GB Modelle darauf zutreffen. Da ich dieses Skript aber nur bei angeschlossener Festplatte ausführe, reicht mir das. Anhand der Seriennummer wird dann geprüft, an welchem Device die Platte erkannt wurde. Speichern wir uns natürlich alles schön weg :)

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
luksMapper=""
mapName="externe"
mount1="/media/usb-1"
mount2="/media/usb-2"
mount3="/media/usb-3"   
 
printf "found at $dev\n"   
 
printf "checking mappings: "
#check for cryptmount
for mapper in $(ls /dev/mapper/)
do
   devFound="false"
   sudo cryptsetup status $mapper > /dev/null 2>&1
   if [ $? -eq 0 -a $devFound=false ]
   then
      actDev=$(sudo cryptsetup status $mapper | grep device | awk '{print $2}')
      if [ "$actDev" = "$partition" ]
      then
         devFound="true"
         luksMapper=$mapper
      fi
   fi
done

Oben sind eigentlich nur ein paar Variablen, die später gebraucht werden, z.B. wohin die 3 Partitionen gemountet werden und wie das Mapping benannt wird. Nach diesen Definitionen wird geprüft, ob die Platte schon auf ein Mapping gehangen wurde. Da die Mappings in /dev/mapper sind, wird einfach alles dort drin mit “cryptsetup status $mapper” geprüft, ob das Mapping auf meine Partition passt. Das wird dann, wenn gefunden, gespeichert.

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#get all mounts to unmount
mountDev=""  
 
if [ "$luksMapper" = "" ]
then
   printf "no mapping found\n"
else
   mountDev=$(echo $mountDev $(mount | grep /dev/mapper/$luksMapper | awk '{print $3}'))
   printf "found at /dev/mapper/$luksMapper\n"
fi  
 
printf "checking mounts: "
for mounts in $(mount | grep $dev | awk '{print $3}')
do
   mountDev=$(echo $mountDev $mounts)
done  
 
if [ "$mountDev" = "" ]
then
   printf "nothing found\n"
else
   printf "found at $mountDev\n"
   printf "unmounting: "
   for mounts in $mountDev
   do
      sudo umount $mounts
   done
   printf "done\n"
fi  
 
if [ "$luksMapper" = "" ]
then
   echo > /dev/null
else
   printf "closing mapping: "
   sudo cryptsetup luksClose $luksMapper
   printf "done\n"
fi

Langes Stückchen, kurzer Text. Es werden alle Mountpunkte der Platte gesucht und unmountet. Zusätzlich auch eventuell geöffnete Mappings.
Bis zu diesem Punkt kann man das Skript auch wunderbar nehmen um die Platte korrekt zu unmounten usw. um sie gefahrlos abzustöpseln.

94
95
96
97
98
99
100
101
102
103
printf "opening mapping at /dev/mapper/$mapName: \n"
sudo cryptsetup luksOpen $partition $mapName > /dev/null 2>&1
if [ $? -ne 0 ]
then
   printf "\n\n"
   echo "error while opening the mapping!"
   exit 2
else
   echo "mapping opened successfully"
fi

Das vorher definierte Mapping wird geöffnet. Das ist auch der Punkt, wo dann vom User das Passwort abgefragt wird.

105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
echo "checking for mount directories: "  
 
printf "checking $mount1: "
if [ ! -d "$mount1" ]
then
   printf "creating\n"
   sudo mkdir "$mount1"
else
   printf "ok\n"
fi
printf "checking $mount2: "
if [ ! -d "$mount2" ]
then
   printf "creating\n"
   sudo mkdir "$mount2"
else
   printf "ok\n"
fi
printf "checking $mount3: "
if [ ! -d "$mount3" ]
then
   printf "creating\n"
   sudo mkdir "$mount3"
else
   printf "ok\n"
fi

Damit das Skript auch problemlos auf anderen Rechnern genutzt werden kann, sind die Mountpunkte definiert und werden bei Bedarf angelegt.

132
133
134
135
136
137
138
echo "mounting devices: "
sudo mount -t ntfs-3g -o rw,uid=1000,gid=1000 $(echo $dev)5 $mount1
sudo mount -t vfat -o rw,uid=1000,gid=1000 $(echo $dev)6 $mount2
sudo mount -t xfs /dev/mapper/$mapName $mount3  
 
echo "device mountet successfully and can now be used"
exit 0

Abschließend sollte natürlich auch noch alles gemountet werden :)

Angehängt findet man das komplette Skript. Natürlich sollte es individuell angepasst werden. Dies betrifft die jeweiligen Mountpunkte und die Partitionen. Bei Fragen, kann man sich gern an mich wenden.

Mountskript

Die Fun-Multigaming-Community sucht…

February 19th, 2008 @ 10:23 by lookshe

Wie sicherlich schon einige wissen, bin ich Admin bei der Fun-Multigaming-Community. Wir haben ein eigenes CMS geplant, für das wir Perl-Entwickler suchen.

Es soll nicht einfach nur ein weiteres Clan-Management-Script sein, wie es schon wo viele in den Untiefen des World-Wide-Web gibt, sondern es soll genau auf die Bedürfnisse der FuMuGa.Com abgestimmt sein. Geschrieben wird alles mit Perl5 und MySQL. Sobald es fertig ist, werden wir es unter der LGPL veröffentlichen, und jeder, der mitgeholfen hat, wird natürlich namentlich erwähnt werden.

Bei Interesse einfach eine Mail an fumuga-cms@fumuga.com schreiben.

Armer Thomas, was war nur los mit ihm

January 26th, 2008 @ 0:19 by lookshe

In der Nacht vom 9. zum 10. Januar bin ich so gegen kurz nach 2 Uhr wachgeworden, weil jemand auf der Straße elendig laut rumschrie und Glas schepperte ohne Ende. Irgendwann ist derjenige dann mit quietschenden Reifen davon gefahren. Am nächsten Tag habe ich von den Nachbarn über mir erfahren, dass es sich um Thomas, einen Nachbarn aus dem 4. Stock handelte, der wohl durchgedreht hat. Bei uns im Haus hat er 3 Fensterscheiben und die Eingangstür demoliert. Was er sonst noch so trieb, konnte man kurze Zeit später in den Nachrichten lesen.

Er war daraufhin erstmal über eine Woche in der Psychatrie und hat zeitweise Ausgang bekommen. Einmal letzten Samstag und dann sollte er dieses Mal das ganze Wochenende zu Hause verbringen können. Er kam wohl schon so gegen Freitag Mittag raus und wurde dann auch von einigen Leuten und Nachbarn beim Einkaufen gesehen. Diese meinten auch, dass er sich ganz normal verhalten hätte, wie immer also. Und dann so gegen 16 Uhr hörte die Nachbarin über mir beim Blumen gießen nur einen dumpfen Schlag. Thomas hat sich, kurze Zeit nachdem er beim Einkaufen gesehen wurde, von seinem Balkon in den Tod gestürzt. Soll kein schöner Anblick gewesen sein. Das Kriminalamt hat erstmal alles abgesperrt und untersucht, ob es sich nicht um Mord handelt. Dies war aber definitiv nicht der Fall. Ich war zu der Zeit noch arbeiten, so brauchte ich mir den Anblick nicht antun und außerdem wäre ich nicht mal zu mir in die Wohnung gekommen, wegen der Absperrung.

Bis zu dem Vorfall mit der “Amokfahrt” ist nie irgendetwas komisch an ihm gewesen, außer kleinen Ticks, die wir ja aber alle haben… Niemand kann sich erklären, wieso das ganze passiert ist. Seine Mutter wird der Vorfall wohl auch sehr stark mitnehmen, da ihr Mann sich damals auf die gleiche Weise das Leben nahm.

Wie dem auch sei, ruhe in Frieden Thomas.
Wollen wir mal hoffen, dass dieses Jahr besser weiter geht. Langsam hab ich vom Tod genug, erst meine Tante Ende ‘06, dann ein guter Freund der Familie vor nem halben Jahr und nun sowas… irgendwas ist da im Busch!

Immer haben die anderen Recht…

January 22nd, 2008 @ 20:23 by lookshe

Hatte der Patrick in seinem Kommentar doch tatsächlich Recht. Wenn ich nur nach dem Etch-Tutorial vorgehe, klappt es wunderbar. Einziges Problem war noch der ClamAV, der wohl einem bekannten Bug zum Opfer gefallen ist und keinen Socket anlegt. Leider find ich grad den Bug-Eintrag nimmer. Jetzt läuft zum Scannen der Mails jedenfalls AntiVir. Ich weiß, nicht die beste Wahl, aber was anderes kostenloses, dass unter Linux läuft und sich in Amavis integrieren lässt, habe ich leider nicht gefunden.
Etwas Nerviges war noch, dass Spam zwar markiert wird, aber trotzdem noch im normalen Posteingang landet. Das hat auch noch mal paar Stunden gebraucht, da Google da leider nicht allzu hilfreich war. Jetzt gehts allerdings. Hatte von Anfang an eine fast richtige Lösung gehabt. Dovecot legt die Mails per “deliver” ab. Ein Script hatte ich ja schon, nur da dies nicht ging, habe ich mehrere andere Sachen mit procmail und maildrop probiert. Leider funktioniert das alles nicht, wenn man Dovecot nutzt, da dann vom Postfix das “mailbox_command” in der Config ignoriert wird. Dann stellte sich später raus, als ich endlich mal in das Log vom Dovecot gesehen habe, dass alles die ganze Zeit richtig war, nur der Ordner falsch angegeben wurde. Auf der Platte sind die Mailverzeichnisse mit .$Ordnername angegeben, wenn man es mit Deliver verschieben will, muss man die Ordner ohne den Punkt vorne dran angeben… darauf muss man erstmal kommen.

So sieht das Script jetzt jedenfalls aus:

require "fileinto";
if header :contains "subject" ["SPAM"] {
   fileinto "Junk";
} else {
   keep;
}

Wenn man sich die Dokumentation zu Sieve, so heißt die Sprache in der man sowas schreibt, mal genauer ansieht, kann man damit echt tolle Mailfilter und noch einiges mehr basteln. Werd ich mich mal irgendwann ransetzen, dann brauch ich das nicht mehr erst im Thunderbird über Filter sortieren lassen.

Durch das wälzen der Dokus, kann ich das ganze jetzt aber auch problemlos mit maildrop und procmail machen. Hatte also auch was Gutes. :)

Die spinnen die Amis

January 20th, 2008 @ 3:35 by lookshe

Da hat’s mich doch fast vom Stuhl gehauen heute, als ich diese Heise-News im Ticker gelesen habe…
60.000 Dollar Strafe für DNS-Abruf

Zitat:

Er benutzte den UNIX-Befehl “host -l” und stieß damit einen Zonentransfer beim DNS-Server der Firma Sierra Corporate Design an. Der Server rückte auf diesen Befehl hin die Informationen bereitwillig heraus, und damit die komplette interne Adress- und Namensstruktur von Sierra. Nach eigenen Angaben ist die Firma spezialisiert auf Webhosting und Internet-Services.

Der Server war also öffentlich zugänglich und gab auf eine simple DNS-Anfrage alles preis. Wenn man das verhindern will, sollte man es sperren. Für eine Firma, die im Bereich Webhosting und Internet-Services tätig ist, sollte dies kein Problem darstellen, in dem Fall aber scheinbar schon…

Hier mal der Auszug aus der Manpage von host:

List mode is selected by the -l option. This makes host perform a zone transfer for zone name. Transfer the zone printing out the NS, PTR and
address records (A/AAAA). If combined with -a all records will be printed.

Ganz böser Befehl also, wird wohl in “Good old Germany” dann auch bald verboten werden, Hackerparagraph und so.

Weiter heißt es im Text:

Das Gericht stellte fest, dass Ritz dabei seine “Identität hinter Proxies verbarg, ein UNIX-Betriebssystem verwendete und neben anderen Methoden Shell Accounts einsetzte. Außerdem gab er sich als Mail-Server aus.” Die auf diese Weise gewonnenen Informationen machte Ritz publik. Diese Information, stellte das Gericht fest, sei nicht öffentlich verfügbar gewesen. Damit habe Ritz die Datensicherheit von Sierra gefährdet, Ritz sei also als Hacker einzustufen, schließlich sei der Befehl “host -l” dem normalen Anwender nicht bekannt.

Nicht öffentlich zugänglich? Dabei hat er doch mit der Aktion das genaue Gegenteil bewiesen.
Und ein UNIX-Betriebssystem, uh sehr böse!!! Da ich das Windows ja auch nur noch zum Spielen nutze, und sonst immer Linux, bin ich natürlich auch ein ganz böser H4xx0r *g*. Apropos Hacker, da könnte man doch glatt mal auf’s Habo verweisen. Sind ja auch alles H4xx0r dort. Zumindest die meisten im Planschbecken (leider nur für angemeldete Mitglieder sichtbar)

Aber die Strafe errechnet sich ja mal auch geil:

Der nachgewiesene Schaden für Sierra beläuft sich dem Urteil zufolge auf knapp 3000 Dollar für die durch Ritz’ Aktionen notwendig gewordenen Änderungen der internen Kommunikationsstruktur, also Änderungen von Hostnamen und -adressen. Daraus errechnete das Gericht eine Zahlung von 50.000 Dollar – ein in den USA übliches Verfahren, wo anders als im deutschen Recht Strafe und Schadenersatz bei vorsätzlichen Taten miteinander verquickt werden. Obendrauf kommen noch einmal 10.000 Dollar für Missachtung des Gerichts; Ritz hatte während des laufenden Verfahrens die von Sierra betriebene Seite Newsfeeds.com aufgerufen, obwohl ihm das Gericht untersagt hatte, “irgendeine Website von Sierra zu besuchen”.

Bei kleinen Vergehen hauen wir also erstmal ordentlich was drauf. Ja ne, schon klar…

Aber irgendwie hat der Typ schon was, sich das Gericht einfach so am Arsch vorbeigehen zu lassen. Mal sehen wie das weitergeht, da kommt bestimmt noch ein Echo.

Und täglich grüßt der Mailserver…

January 18th, 2008 @ 0:30 by lookshe

Langsam hab ich genug von Mailservern. Erst hab ich auf dem Root-Server unter Ubuntu Feisty Fawn 14 Stunden gebraucht um den Mailserver mit SMTP, IMAP, POP3, Webmailer und Datenbankanbindung zum laufen zu bekommen, und nun fängt das Spiel von neuem auf diesem VServer an. Beim Ubuntu brauchte ich einen Mix aus 2 Tutorials bis es endlich mal lief. Natürlich kann ich das jetzt nicht auf Debian Etch anwenden…
Am Wochenende werd ich mich dann nochmal intensiv ransetzen und gucken wo es hackt. So wie es scheint, bekommt der Dovecot nur nicht das Passwort. Denn scheinbar geht nur die Authentifizierung noch nicht korrekt, zumindest ist das bisher der einzige Fehler der im Logfile auftaucht.. Und ein wenig meckert Amavis auch noch, weil Clam-AV nicht korrekt läuft, aber zur Not kann man das erstmal deaktivieren. Die Logs für’s Senden und Empfangen sehen aber bis auf die Warnung wegen Virenscanner, der nicht läuft, wunderbar aus. Das ist wenigstens eine gute Sache dabei. So wird sich der Aufwand hoffentlich gering halten.
Das Etch-Tutorial hat mir zu viel sinnlosen Müll in der Datenbank, den ich nicht brauche, will das deshalb eigentlich nicht nutzen. Aber vielleicht versuch ich es doch mal nur so zu machen, mehr als schiefgehen wie jetzt kann es ja auch nicht.
Ich freue mich jetzt schon, wenn wir Mitte Februar den Root-Server umstellen und ich dann da wohl auch wieder Probleme haben werde.
Und schon wieder schreib ich zu so später Stund. Sogar genau gleich.
Und das ohne es in der Datenbank umzustellen. :lol:

Goodbye Cruel World

January 16th, 2008 @ 0:30 by lookshe

Immer diese ersten Programme und Nachrichten mit dem “Hello World”-Gedöhns, wenn man etwas neues beginnt. Ist mir ehrlich gesagt zu blöd, deshalb nenn ich es sinnloser Weis’ mal “Goodbye Cruel World”.

Und NEIN, es hat nichts damit zu tun, was hier geschrieben wird. Dieser Blog dient ausschließlich dazu, die manchmal auftretende Langeweile zu bekämpfen oder sonstigen Unfug anzustellen. Also im Prinzip nichts neues.

Und JA, das ist ein Song von Pink Floyd, die wunderbare Musik komponiert und gespielt haben.

Und da ich gerade anfange, wird es wohl noch etwas dauern, bis ich den passenden Style gefunden habe und die Links korrekt angepasst sind.

So, ist schon spät, morgen ist wieder Arbeit angesagt, also werd ich dann mal richtung Bett/Sofa wandern.