Freitag, 25. Februar 2011

NNTP-Server WendzelNNTPd-2.0.0-beta ist fertig!

Nach etwa 1,5 Jahren Entwicklungszeit habe ich nun endlich die 2.0-Beta-Version von meinem Usenet-Server auf die Reihe bekommen. Leider steht mir für die Open Source-Entwicklung nicht mehr so viel Zeit zur Verfügung, wie noch vor einigen Jahren.

WendzelNNTPd ist ein Usenet-Server, den ich bereits seit 2004 entwickle und der mittlerweile vollständig in C geschrieben ist. Die begehrte C++-Oberfläche (Qt) habe ich für die neue Version in den Müll verfrachtet. Dafür wurde das Konsolentool 'wendzelnntpadm', mit dem die Administration erledigt wird, deutlich erweitert.

Was gibt es Neues? Nun, wahrscheinlich einige Features, die kein anderer Usenet-Server dieser Welt haben dürfte:

  • Einen Datenbank-Abstraktionslayer (man kann in der Konfiguration auswählen, ob man, nach wie vor, mit SQlite3, oder mit dem von nun an unterstützten MySQL arbeiten möchte). Das Hinzufügen weiterer Datenbanken ist (einmal vom Tippaufwand abgesehen) relativ einfach und  vom eigentlichen Server-Code getrennt.
  • Es gibt nun Access Control Listen (ACLs) für erhöhte Sicherheit inklusive Role Based Access Control (RBAC), um beim Administrieren Zeit zu sparen. Ein Administrator kann also nicht nur einem Benutzer x Zugriff auf eine Newsgroup y geben, und einem Benutzer z nicht, sondern er kann auch einfach die Benutzer (a,b,c) in eine Rolle packen und der Rolle verschiedene Newsgroups zuweisen. Damit lassen sich etwa einfach 'mal zehn Entwickler mit einer Entwicklungsnewsgroup für ein neues Produkt verbinden.
  • Es gibt "invisible"-Newsgroups: Hat ein Benutzer keinen Zugriff auf eine Newsgroup, taucht sie nicht beim LIST'ing auf. Sollte der User dennoch in Erfahrung bringen, dass eine Newsgroup existiert, dann kann er sie natürlich trotzdem weder mitlesen, noch darin Posten.
  • Die Dokumentation ist neu geschrieben und liegt jetzt in LaTeX vor (verfügbar als HTML- und PDF-Version).
  • Unglaublich viele Bugfixes und unglaublich viel Code-Clean-Up.
  • Außerdem: Diverses Detailfehlverhalten ist nun standardkonformer (leider fehlen noch immer eine Menge NNTP-Befehle und Standard-Details).
  • Weitere NNTP-Commands werden unterstützt:
    • LISTGROUP
    • LIST OVERVIEW.FMT
    • XGTITLE
    • LIST NEWSGROUPS
Aber nicht vergessen: Der Code ist BETA -- und zwar erst seit einigen Stunden ;) Feedback ist selbstverständlich gern gesehen, Patches für neue Features aber noch mehr.

Anmerkung: Die regulären Ausdrücke, die u.a. bei XGTITLE [r] verarbeitet werden, basieren bei WendzelNNTPd auf der regex-Library, wie Sie bei Linux typisch ist. Die NNTP-Syntax für reguläre Ausdrücke passt also nicht exakt. Beispielsweise ist * bei WendzelNNTPd .* , die üblichen Ausdrücke, wie ^a, b$ usw. funktionieren selbstverständlich dennoch.

Donnerstag, 24. Februar 2011

Blogumstellung

Ich habe meinen Blog gestern zu Blogspot umgezogen und dabei die 52 brauchbarsten von ca. 200 Postings in mühsamer Arbeit übernommen.

Außerdem habe ich meine Webseite umgestellt (sie besteht nun aus statischem HTML-Code, den ich mit dem Apache Forrest-Publishingframework erzeuge).

Mittwoch, 23. Februar 2011

Promotion mit FH-Diplom

Promotion nach dem FH-Diplom -- geht das? Ich stelle diese Frage nicht zum ersten Mal und kann nach meiner Recherche sagen: es geht, ist aber schwierig. Promotionen können übrigens nur an einer Universität, also nicht an einer FH, durchgeführt werden, weshalb man folglich irgendwie an eine solche gelangen muss ...
Fri, 04 May 2007 11:23 (hin und wieder leicht aktualisiert)

Hier ein Zitat aus (Quelle: Uni Bielefeld): 1992 beschloss die Kultusministerkonferenz, besonders qualifizierten FH-AbsolventInnen den direkten Weg zur Promotion zu ermöglichen, ohne zuvor den Universitätsabschluss nachholen zu müssen. Die Bundesländer haben diesen Beschluss bisher nur teilweise und auch unterschiedlich umgesetzt.

Hier die interessanten Links:
Info#1 (Link geht nicht mehr) Info#2 (Link geht nicht mehr) Info#3 (Link geht ebenfalls nicht mehr) Diskussion#1

Außerdem möchte ich auf mein eigenes Posting verweisen, in dem ich unregelmäßig meinen eigenen Promotionsfortschritt protokolliere: siehe hier.

Besonders interessant: Einen Dr. in Deutschland nach der FH zu erwerben ist schwer. In Australien gibt es den PhD wohl nach 2-3 Jahren, wobei das FH Dipl. als "Bachelor (honours)" (also der "bessere" Bachelor, den man nach vier Jahren bekommt) gewertet wird, und der, wenn gut genug, direkt zur Promotionszulassung führen kann. In Österreich sei die Promotion nach der FH auch verhältnismäßig einfach (speziell für den Dr. tech.; den Dr. rer. nat. gibt es etwa in Linz nur nach einem Aufbaustudium). An einer deutschen Uni muss man oft erst ein paar Semester (im schlimmsten Fall das ganze Hauptstudium) nachholen, damit man offiziell ein Uni-Diplom oder von der jeweiligen Uni anerkannten Masterabschluss hat (und mit dem man dann anschließend promovieren kann). Möchte man in Deutschland direkt mit dem FH-Dipl. promovieren, dann sollte man schon einen Schnitt von 2,0 oder besser vorweisen. Einige Unis verlangen auch einen Mindestschnitt von 1,5 sowie Zusatzleistungen. Mir sind auch Fälle bekannt, bei denen trotz 1er-FH-Masterabschluss noch umfangreiche Auflagen (in Form von zusätzlich zu erbringenden Prüfungsleistungen) verlangt wurden.

Aus Wikipedia: An den Fachhochschulen wird das Diplom ebenfalls als akademischer Grad verliehen, es wird jedoch seit 1987 zwingend mit dem Zusatz (FH) gekennzeichnet und berechtigt nicht grundsätzlich, aber unter besonderen Voraussetzungen, zur Promotion. Neben der im Gegensatz zum universitären Diplom eher anwendungsbezogenen Orientierung unterscheidet sich das Diplom der Fachhochschulen auch durch die in der Regel kürzere Studiendauer von 8 Semestern (bis Ende der 80er 6 Semester).

Letztlich hängt es wohl einfach davon ab, ob man Glück hat und an die richtigen Personen gerät ...
Alternativ kann man aber auch ein Masterstudium anschließen, was in Deutschland 3-4 (an einer Uni meist 4) Semester dauert, in Schweden habe ich (jedenfalls für Informatiker) aber auch schon einen 2-Semester-Master (60 ETCS) gefunden, der dann allerdings explizit als "Master of Science (1 Year)" tituliert wird (ähnliche Möglichkeiten gibt es an einigen spanischen Universitäten).
Bis vor kurzem bot die Hochschule Augsburg noch einen 60 CP-Master für Studenten mit 8-Sem. FH-Dipl. bzw. 8-Sem.-Bachelor an, der leider mittlerweile eingestellt und durch einen dreisemestrigen Master setzt wurde. Zum Glück konnte ich diesen Master selber gerade noch studieren, bevor er eingestellt wurde. Die Zulassung zur Promotion war für mehrere Absolventen mit sehr gutem Abschluss in diesem 60 CP-Master an verschiedensten Universitäten in Deutschland erfolgreich.

Hier noch ein interessanter Beitrag aus der Süddeutschen zum Thema: Dr. zweiter Klasse. Zitat: Damit würde sich auch ein anderes Problem lösen, das Geiger in Bezug auf die steigenden Promovierendenzahlen unter den FH-Absolventen sieht: "Solange die Studenten für die Promotion an eine Universität wechseln müssen, sind die guten Leute für die FHs oft verloren." Das ist zum einen natürlich wahr, doch zum anderen sollte gesagt werden (und ich kann dies aus eigener Erfahrung bestätigen), dass das notwendige Umfeld zum wissenschaftlichen Arbeiten an einer FH eher nicht gegben ist. Diese Einschätzung wurde mir von diversen anderen Promovenden bestätigt, die ebenfalls an FHs beschäftigt sind und extern promovieren.


FAQ von Fragen, die ich öfters gestellt bekomme (neue Fragen bitte als Kommentar posten):

Q: Kann ich nach einem Master-Abschluss eigentlich den "(FH)"-Zusatz hinter meinem Diplom weglassen?

A: Nein. Der Grad muss so geführt werden, wie er verliehen wurde. Es steht allerdings jedem frei, sich *nur* Master-of-Wasauchimmer zu nennen (also nur "VNAME NNAME, M.Sc." anstelle von etwa "Dipl.-Inf. (FH) VNAME NNAME, M.Sc.").

"Hacking" gnometris highscores

Where the hell does gnometris (a tetris game for GNOME) save his scores? I found it out :-)

(Date/Datum: 080824-00:22, Hits: 2540)

I like these tiny hacking challanges even if they -- like this one -- can easily be solved by a 10 year old comming-soon-nerd. Here is what I found out.

Here you can see how this game looks like:

gnometris

First, I tried to figure out what files were opened by gnometris. Because of this I tried to make a syscall and library call trace of the binary, but gnometris change its behavior and prevented this very first attack by disabling the "Scores" menu entry:

gnometris scores

Because of this (you can see it on the right picture) I tried to configure a keyboard shortcut for the scores menue by editing ~/.gnome2/accels/gnometris:

swendzel@steffenmobile:~$ cat .gnome2/accels/gnometris
...
...
; (gtk_accel_path "/MenuActions/NewGame" "n")
(gtk_accel_path "/MenuActions/Scores" "s")
; (gtk_accel_path "/MenuActions/About" "")
; (gtk_accel_path "/MenuActions/SettingsMenu" "")
; (gtk_accel_path "/MenuActions/Pause" "Pause")

The shortcut worked... but it worked only if I didn't any tracing ;-)

The easiest way would be to search google for a hint or to read the source code but ... there must be a nicer way to find out were the scores were saved (and in which format!).

Because of this, I tried gnomes minesweeper implementation. When you trace gnomines it shows a different behavior, it simply loads an empty scores table! Now I tried to figure out if all gnome games make use of an equal or even the same highscore storage system.

Another idea was that all gnome games seem to use a global highscore table for all users of the computer which means that they must be able to write to a system file that is not located in a users $HOME. Let's check that:

swendzel@steffenmobile:/tmp$ ls -l /usr/games/{gnomine,gnometris}
-rwxr-sr-x 1 root games 113056 2008-07-17 21:32 /usr/games/gnometris*
-rwxr-sr-x 1 root games 95168 2008-07-17 21:32 /usr/games/gnomine*

Yup! (Notice the 's'-flag). Hmm.. let's try the most easy possibility to find score files ...

sudo find / -name '*gnometris*'
...
/var/games/gnometris.scores
...

It was SO EASY. Only a file search was needed. But the rest was more fun ;-)

$ cat /var/games/gnometris.scores
30841 1215191332 swendzel
6440 1219527400 swendzel
4780 1219527140 swendzel
4720 1218969234 swendzel
4240 1219258843 swendzel
2620 1214769614 swendzel

And yup, the editing worked find. But I still don't know the meaning of the number in the middle of each line. Hmm.. WAIT!

swendzel@steffenmobile:/tmp$ cat <<>time.c
> #include
> int main(){printf("%i\n",time(NULL));return 0;}
> EOF
swendzel@steffenmobile:/tmp$ gcc -o time time.c
swendzel@steffenmobile:/tmp$ ./time
1219529987

Hehe ;-) It is just the UNIX time value (the number of seconds counted since 00:00:00 UTC, January 1, 1970).

Tote und pseudo-tote Projekte

Sind Software-Projekte wirklich tot, wenn sie keine Entwicklungs-Aktivität zeigen?

(Date/Datum: 2010-03-28-18:29, Hits: 506) Als Administrator ist man generell gewillt, Software einzusetzen, die aktiv weiterentwickelt wird. Das heißt, dass das letzte Release nicht sonderlich alt ist und das etwas Aktivität auf den Entwickler-Repositories vorhanden sein sollte. Als Entwickler ist die Überlegung ähnlich: Mit Vorliebe werden aktive -- das heißt: nicht tote -- Projekte (etwa Bibliotheken) zur weiteren Entwicklung verwendet.

Kurz gesagt lautet die Faustregel also: Liegt das letzte Release oder die letzte Subversion-Aktivität nicht sonderlich weit in der Vergangenheit, so ist ein Projekt grob als aktiv einzustufen. Nun ist es aber so, dass etwa mein AstroCam-Projekt seit Mai letzten Jahres keine neue Version mehr gesehen hat (und auch diese enthält keinerlei halbwegs bedeutsame Quellcode-Änderung) und das Projekt dennoch nicht tot ist. Die letzte wirklich wichtige Version liegt gar noch deutlich weiter (knapp 2 Jahre) zurück: Version 2.7.4 vom 2. Mai 2008 enthält nämlich einen brauchbaren Bugfix.
Dennoch gilt: Würde ich einen neuen Bug finden oder würde mir ein Problem gemeldet werden, so würde ich es schnellstmöglich beheben.

Warum aber gibt es keinerlei neue Versionen? Gegenfrage: Weshalb sollte man ständig neue Versionen herausgeben mit Features die eh nur 2% der User verwenden und die übrigen 98% entweder nicht benötigen, oder nicht kennen? Projekte sind manchmal einfach ausreichend fertig entwickelt und deshalb nicht tot. Sie als tot zu betrachten während sie nur pseudo-tot sind, das sehe ich als vorschnell/uninformiert an. Manche Projekte haben (auch in der Open Source-Community) einfach nicht das Ziel, immer bunter, aufgeblähter und langsamer zu werden. Für meine Projekte gilt das ebenfalls: Lieber klein, sicher und stabil soll der Code sein. Dafür verzichte ich auf unnötige Features und deshalb ist AstroCam auch noch immer (wir schreiben Ende März 2010) auf meiner Webseite auch in der Liste der aktiven Projekte aufgeführt.

Covert Channel Mailinglist/Discussion Group

I just set up a covert channel discussion mailing list. The list is for everybody interested in the topic.

(Date/Datum: 2008-12-30-16:28, Hits: 2504)

Micro-FAQ:

This list can be found at google groups: http://groups.google.com/group/covert-channel-research.

Web Archive of the OLD VERSION of this mailing list: Can be found here. All messages are available here.

Edit (2008-Dec-31, 15:00 CET): Already 23 Subscribers.

Edit (2009-Jan-12, 22:00 CET): Already 38 Subscribers.

Edit (2009-Apr-24, 11:26 CET): The list is now moderated since there where some spam messages in the list. This is needed to make sure that the list will stay spam free in future.

Edit (2010-Sep-28, 21:44 CET): I terminated the mailinglist due to inactivity.

Edit (2010-Sep-29, 00:17 CET): Just set up a new replacement for the list on google groups since there *is* activity on the list ... but the webspace is already quit.

H04x: Rebbi im Studivz und Gebühren in StudiVZ/MeinVZ/SchülerVZ

H0Axe (bzw. Hoaxe) sind Falschmeldungen im Internet, die sich via Schneeballeffekt verbreiten. Sie lauten etwa so: "Achtung, der ICQ-Nutzer 10585823 ist ein Virus! Schicke diese Nachricht an alle deine Kontakte weiter, um sie zu informieren."

(Date/Datum: 2008-11-17-18:05, Hits: 14279) Auch im StudiVZ/MeinVZ/SchülerVZ ist so eine Meldung just wieder aufgetaucht und hat mich in vielfältiger Ausführung erreicht -- Grund genug, um etwas Aufklärungsarbeit zu leisten. Es handelt sich explizit um diese Meldung:
"Sag bitte allen leuten in deiner liste,
dass sie den kontakt mit Rebbi nicht annehmen sollen!
das ist ein Virus (über svz) der zerstört die ganze
festplatte und zieht sich die daten runter, wenn
ihn einer deiner kontakte erwischt, bist du auch
betroffen, weil er sich durch die liste frisst also
kopier das und schick es an alle"

Ein StudiVZ-Benutzer kann aus rein technischen Problemen kein Virus sein. Mehr zu Rebbi und seinen Kollegen.

Eine weitere Kettenmail dieser Art verbreitet das Gerücht, StudiVZ, MeinVZ und Co. würden kostenpflichtig werden:

"Nervt zwar,aber weiterschicken.
Ich will auch kostenfrei dabei bleiben.
-
also deswegen diese Mail an dich (ist auch nur weitergeleitet)

Studivz. wird ab dem nächsten Semester kostenpflichtig.
Mit einer Jahrespauschale von 10 € bleibst du dabei.
Wenn du diese Mail binnen 24 Std.nach dem lesen an 24 Freunde
schickst bleibst dein Account kostenfrei

Sag mal bitte allen leuten in deiner liste, dass sie den kontakt
mit Rebbi nicht annehmen sollen! das ist ein Virus (uber svz)
der zerstort die ganze festplatte und zieht sich die daten runter,
wenn ihn einer deiner kontakte erwischt, bist du auch betroffen,
weil er sich durch die liste frisst! also kopier das und schick
es an alle Bitte mach das"

Auch das ist natürlich Quatsch und einmal davon abgesehen wäre die Kommerzialisierung der VZ-Dienste das finanzielle Ende derselben.

Typische Falschmeldungen gibt es auch immer wieder per Mail (in den letzten Jahren zum Glück weniger häufig). In den Mails steht dann in etwa: "Die arme kleine Jenni ist 4 Jahre alt und wird ohne eine geeignete Knochenmarkspende sterben, da ihre Eltern arm sind (siehe erbärmliches Foto im Anhang)." Die meisten Menschen reagieren nicht direkt darauf, sie melden sich nicht als Spender, sondern geben die Verantwortung ab und holen sich ein reines Gewissen, indem sie der beigefügten Aufforderung folgen, diese Mail an alle Menschen in ihrem Adressbuch weiterzuleiten. Das ist nicht nur feige und verlogen, sondern auch genau das, was die Menschen, die diese Nachrichten entsenden, bezwecken.

Im schlimmsten Fall führen Hoaxe zu so genannten Denial of Service-Angriffen. Dabei wird ein Dienst (etwa StudiVZ oder ICQ) durch eine extreme Datenlast überfordert und somit nicht mehr erreichbar.

So funktionieren Hoaxe! Wieder ein Grund für meine Forderung, Aufklärung im Bereich der IT-Sicherheit bereits in der Schule zu vermitteln. Apropos: den Datenschutztest auf www.datenschutz-ist-buergerrecht.de kann ich empfehlen.

Covert Channels out of date?

Within the last days some "security experts" told me that covert channels are something that was important within the past. I do not agree this. Covert channels are nowerdays more important than they have been ever before.

(Date/Datum: 2008-11-15-23:17, Hits: 1085) While writing and working on my diploma thesis (I cannot talk about the topic until it is finished but after I received my mark (in a few months) I upload a pdf of it) that is focused on some special parts of covert communication, I was just wondering why there are so few people which are interested in covert channels. I also submitted a research paper to a conference (I will not name it here) what was just rejected due to not fully comprehensible arguments (including the "out of date" thing).

On a talk about my thesis I gave on Thursday at kempten university of applied science a person of the audience (not a computer scientist and not one of these "security experts", what means that his question does not disqualify himself) asked me why I do reasach on this topic and if the only reason of this is to "hack some PC". I replied that if there is a person (for example in China) that wants to read critical news about the local government via internet, this person will maybe get into jail if someone will notice this. But if he uses covert communication, he will stay much safer!

I am sure that the importance of covert communication will increase within the next decades! At least it will increase in combination with cryptologic techniques.

-----------------------------------------

Kommentare:

Von: Dave Howe
of course - but while many people no doubt design and use covert channels, and would love objective (and informed) evaluations of its performance and detectability, such discussion instantly reduces the covertness of the channel...

as an example, I have a utility I wrote here that acts as a port forwarder - running on an arbitrary port, it listens for inbound connections, and then in turn opens a second connection to another instance of itself (again, on an arbitrary port) whose location is defined in the config of the forwarder. If the source IP is one for which it holds a message, then encoded in the sequence number increments during the tcp conversation will be the message; once all traffic held for that IP is passed, it reverts to random offsets in keeping with good practice.

externally, nothing much is visible - a packet capture will show a normal tcp transaction or transactions of some generic type (I usually forward to a webserver) and the message itself (once extracted from the header info) is not encrypted (although it is arbitrary binary data so could be externally encrypted). There are (at least) two downsides.

First, the channel itself is relatively slow - one byte per packet, with the first few packets constituting overhead. MTU is used to shrink the packet size down to increase traffic, for this reason (and to reduce messages being lost if non-proxied connections occur). The second is.. I just posted about it to a public webserver, so anyone interested in why a webserver is only accepting an MTU of 512 bytes is going to be looking at header fields to decode them...... (obviously, this was a toy to illustrate a method, and is not in use, or I wouldn t be disclosing it)

Security Though Obscurity is seldom the answer in any security field, but for covert channels, where even a reasonable suspicion can be considered grounds for at least further investigation (or in repressive countries possibly even rubber hose cryptography , discussing openly what approaches you take is probably not good practice if you are active in that field.

Distributionen zwischen Stabilität und Zukunft

Linux-Distributionen haben ein Problem. Einerseits verspielen sie ihr Stabilitätsimage und andererseits gewinnen Sie dadurch viele neue Benutzer.

(Date/Datum: 080626-20:19, Hits: 1518) Linux-Distributionen werden bunter, komfortabler, benutzerfreundlicher und primär komplexer. Komplexität ist nicht nur schlecht, bedeutet es doch auch, dass mehr Pakete, mehr Funktionalitäten in den Paketen und mehr Hardwareunterstützung verfügbar sind. Auch Benutzerfreundlichkeit ist prima: Die Konfiguration des Systems geht wie von allein. Kurz: Jeder kann heute Linux verwenden und damit alles machen, was er sonst auch unter Windows tun würde (natürlich mit Ausnahme eventueller Spezialfälle weniger Benutzer).

Aber überstürzen sollte man den Entwicklungsprozess besonders im Endbenutzerbereich (etwa Desktop-Umgebungen, Browser, Office-Umgebungen etc.) dabei nicht. Die frisch gewonnenen Benutzer sind schnell wieder verloren, wenn Enttäuschungen auftreten sollten. Enttäuschungen treten auf, wenn Programme zwar bunt sind aber abstürzen. Natürlich: Funktionalität steht im Konflikt mit Stabilität und ich unterstelle den Entwicklern und Leitern der großen Open Source-Projekte, dass ihnen bewußt ist, zwischen beidem vernünftig abzuwägen.

Noch ist Linux ein äußerst stabiles System. Das Grundsystem ist sowieso mehr als stabil und Linux ist im Bereich Server, Security-Systeme und ähnlichen Bereichen großartig! Der Kernel wird qualitativ hochwertig entwickelt und die Basistools wie die bash, der vi, ifconfig oder getty sind seit Jahrzehnten im Test und in der Weiterentwicklung. Sie sind nach wie vor vollkommen zeitgemäß und ihre Stabilität lässt nirgends zu Wünschen übrig.

Nein, die ersten Anzeichen von Instabilität werden im Bereich der GUI-Anwendungen auftreten. Seit einigen Tagen stürzt etwa OpenOffice.org bei mir ständig ab. Was die Distributoren dagegen unternehmen? Einiges! Vorallem aber ist man vorsichtig. Als vor einiger Zeit die neue KDE-Version 4.0 erschien (mittlerweile sind wir bei Version 4.1beta2) haben die Distributionen ihre primäre KDE-Variante auf der letzten (und eben stabileren) 3'er Version (3.5.9) belassen. Slackware, Ubuntu und Co. bieten einfach weiterhin Version 3 an. Zwar gibt es bei einigen Distributionen auch die 4'er Version KDE, aber diese ist eben nicht die Defaultversion -- eben gedacht für die, die wissen, was sie tun oder die es einfach ausprobieren möchten.

Open Source Software und ihr Feedback

OpenSource-Software zu verwenden ist toll, aber wie wäre es mit aktiver Teilnahme?

(Date/Datum: 080629-20:42, Hits: 1072) Aus meiner langjährigen Erfahrung als OpenSource-Entwickler weiß ich, wie wichtig Feedback für freie Projekte ist. Als Entwickler freut man sich darüber meist sehr; egal, ob es konstruktive Kritik, ein Bugreport, ein kleines Dankeschön dafür, dass man die Software programmiert hat oder eine Frage ist.

Große Projekte, bei denen der Quellcode ständig komplexer wird, erhalten oftmals recht viel Feedback, aber auch diesen Projekten würde ich mehr Feedback wünschen. Denn: Desto mehr Feedback man als Anwender einer Software den Entwicklern gibt, desto ehr können diese ihre Software verbessern.

Besonders bei OpenSource-Projekten ist es besonders einfach, Feedback an die Entwickler zu verschicken. Meist bekommt man nämlich sehr leicht (oft über die Hilfe-Funktion eines Programms oder über dessen Projektwebseite) die Mailadressen der Entwickler in die Finger und kann dann seine Erfahrungen, etwa den Programmabsturz bei einer bestimmten Funktion, den Entwicklern mitteilen und damit wertvolles Feedback liefern.

Ein Hindernis dabei mag die Faulheit sein, schließlich hat man besseres zu tun, als Kontakt mit den Entwicklern aufzunehmen. Wer aber just in einem Moment etwas gutes tun möchte, der kann sich doch auch einmal die fünf Minuten nehmen und den Entwicklern der Software ein kurzes Feedback schicken. Das Resultat eines behobenen Fehlers kann man dann nämlich nicht nur selbst in der nächsten Version genießen, sondern auch alle anderen User.

Ich weiß, es gibt Projekte, bei denen alles, was kein Source Code-Patch ist, kein willkommenes Feedback darstellt. Und wer weder Lust noch Zeit oder einfach nicht die Kenntnisse dazu hat, einen Patch zu programmieren, der kann solches Feedback eben nicht geben. Das ist nicht schlimm und Entwickler, die ihre Feedbackgeber aus solchen Gründen beleidigen sind es nicht wert, das man sich als Benutzer über sie ärgert. Trotzdem! Die meisten Entwickler sind für Feedback recht dankbar und das zu Recht!

"Slackware will never die"? (Teil 1 und 2)

"Slackware will never die"? - Teil 1

Ich habe mir Gedanken über die Zukunft meiner Lieblingsdistribution gemacht und sehe für ihre Zukunft relativ schwarz. Die Frage ist: Warum Slackware sich ändern muß, um auch in Zukunft noch eine Chance zu haben.

(Date/Datum: 080416-14:09, Hits: 1378) Wir schreiben das Jahr 1993, Patrick Volkerding hat Slackware ins Leben gerufen und auch das Debian Projekt wird in Kürze existieren. Zur damaligen Zeit war man sehr froh über ein einfaches, tolles Paketsystem, wie es Slackware bot. Zwar wurde das Paketsystem im Detail auch weiterentwickelt und es existieren auch Zusatztools, die aus dem sehr einfachen Slackware-Paketsystem ein umfangreicheres zu machen versuchen und etwa eine Funktionalität für Auto-Updates der Pakete über das Internet bereistellen (etwa slapt-get oder auch slackpkg), doch diese müssen erst von Hand nachinstalliert werden.

Hinweis: Zu diesem Posting habe ich noch ein Kontra-Posting veröffentlicht, dass sich weiter unten finden lässt.

Diese Einfachheit des Slackware-Paketsystems ist wirklich eine sehr schöne Sache, doch gemessen an den heutigen Anforderungen (im Besonderen: Abhängigkeiten von Paketen), ist es nicht mehr State of the Art. Natürlich gibt es Anhänger der Slackware Distribution, die noch immer glauben, dass Slackware niemals untergehen wird (was in gewisser Weise auch der Fall ist, da Slackware andere -- auf ihr basierende -- Distributionen hervorgebracht hat), doch dies ist nicht mehr wahr.

Ich möchte noch hinzufügen, dass ich dies nicht als Slackware-Gegener von mir gebe, sondern als Slackware-Anhänger. Slackware-Linux war mein erstes Linux-System, dass ich je installiert hatte und die Security-Distribution "Hardened Linux", die ich ins Leben rief, basierte auf Slackware (sie bekam allerdings ein eigenes, abwärtskompatibles Paketsystem mit mehr Funktionalitäten). Während der Entwicklung von Hardened-Linux kamen übrigens immer wieder Fehler in den Slackware Paketen zum Vorschein, die durch bessere Package-Build Scripte (ein erster Ansatz war unser MetaBuild Script, dass automatisch beim Auftreten von Fehlern den Build-Vorgang abbrach), so wie wir sie einsetzten, hätten vermieden werden können.

Leider ist Slackware allerdings nicht bereit, ein neues Paketsystem zu integrieren, es könnte so einfach und klein wie das von Hardened Linux sein, würde aber doch mehr Features zur Verfügung stellen, ohne, dass es gleich ein riesiges apt sein muss.

Ein solches Paketsystem könnten sicher auch die meisten Ur-Anhänger der Distribution akzeptieren, doch, was auch wichtig ist, es würden sich neue Anhänger mit Slackware anfreunden können. Natürlich, ein Verlußt des Freak-Faktors wäre ein relativ sicherer Tod für die Distribution, doch nichts zu tun, und weiterzumachen, wie bisher, dass ist ein ebenso sicherer Tod.

Ein weiterer Kritikpunkt ist die Begrenzte Paketauswahl. Zwar gibt es im Netz 3rd Party Packages, doch Pakete müssen einfach Bestandteil einer Distribution sein. Ein Befehl sollte genügen, damit ein Paket, samt Abhängigkeiten installiert ist. Eine Lösung für die Unterscheidung zwischen "eigenen" und 3rd-Party Paketen kennen etwa Ubuntu-User durch "universe" Packages. Dem Ubuntu-User kann es von der Nutzung und Installation her egal sein, ob ein Paket direkt von den Core-Developern gepflegt wird, oder eben ein Universe-Package ist.

Slackware muss also 1. ein aufgebohrtes Paketsystem liefern, dass die Anhänger der Distribution nicht abwirft, und 2. mehr Pakete (etwa GNOME, Evolution, Sylpheed, ...) zur Verfügung stellen. Falls dies Patrick Volkerding nicht alleine schafft (das Package-Management eines Distributors ist -- aus eigener Erfahrung kann ich das sagen -- eine sehr umfangreiche Aufgabe), soll er sich eben mehr Entwickler ins Bot holen!

Slackware will never die -- Teil 2

Slackware ist ein Ur-Gestein, eine Linux-Distribution, die viele Anhänger hat, aber bei der man sich doch fragt, wie lang dies noch so bleiben wird.

(Date/Datum: 080502-10:47, Hits: 1180) In meinem letzten Posting zum Thema Slackware ging es darum, dass Slackware für die Zukunft relativ schlechte Karten hat. Heute werde ich mich darüber auslassen, wie großartig Slackware ist, und warum es eben doch eine Chance für die Zukunft gibt (obgleich diese Chancen größer sein könnten, aber das habe ich ja bereits im ersten Posting erläutert).

Gründe für Slackware

Slackware verwendet im Gegensatz zu vielen anderen Distributionen einen (relativ) naturbelassenen Kernel, ist stabil, sauber und vorallendingen simpel: _Alles_ ist _glasklar_ und leicht nachzuvollziehen.

Das Paketsystem ist sehr einfach aufgebaut und durch Shellskripte umgesetzt. Wer ein Paketsystem verstehen lernen möchte, der sollte mit diesem anfangen. Das Paketsystem kennt auch keine Abhängigkeiten, weshalb man in etwa wissen sollte, welche Pakete voneinander abhängen. Diese Einfachheit macht das Paketsystem allerdings äußerst stabil (man wird nie Fehlermeldungen bzgl. nicht erfüllbarer Abhängigkeiten etc. bekommen).

Ausserdem ist das BSD-like rc.d-System als Vorzug zu nennen. Für mich persönlich ist Slackware nicht zuletzt durch sein rc.d-System eine Distribution zwischen Linux und BSD (nur eben ohne *BSD-Kernel und Ports).

Warum Slackware eben doch nicht so schnell untergehen wird

Slackware hat viele erfahrene User, die an das System gewöhnt sind und es mögen. Ausserdem sind andere Distributionen oft recht komplex aufgebaut und langsam. Möchte man bei solchen Distributionen etwas "von Hand" machen (und das ist schließlich das tolle an Linux!), muss man sich eventuell erst mit langweiligen Dingen (etwa Regeln des jeweiligen Paketsystems) auseinandersetzen.

What is the difference between a good security concept and a great one?

In my point of view this is a question very easy to answer!

(Date/Datum: 080303-01:01, Hits: 1465)

I think good security concepts simply work. They work in the reality. They work for their developers and their users. A good example for a good security concept is the systrace project: One can use it without being a genius in CS security but one has to learn HOW to use it first. Other "good" security concepts are network security monitoring and IDS log things. Also my fuzzy user profile IDS patch for OpenBSD (FUPIDS) was only a good idea but not a great one. But why?

A great security concept instead is like a good security concept but it provides MORE than it. This doesn't mean that it provides something a "good" concept doesn't provide. It must provide one special feature: The user should use it while he doesn't have to know that it even exists!

A pretty great example for this is the GCC stack smashing protection (SSP) or the kernel space address space randomization implemented by projects like PaX. You don't even have to configure it. All work is done by the developers of SSP/PaX and the developers of the Linux distribution. The user simply IS protected by it and doesn't need to do ANYTHING for it.

I think we should focus on these things. Okay, it is pretty hard to have such an idea but it is much more interesting than everything else!

PS. Of course, these are my glasses :)

Ever thought about indirect web attacks?

(Date/Datum: 080218-00:55, Hits: 1349) I work since more than one year on the development of a huge commercial website (LAMP) with lot of functionality. Today I developed a communication system which can be used to contact other users, view messages already sent, delete messages and the like (these tasks aren't finished @the moment).

Did you ever thought about the scripts such a big site runs in the background? For example a script that deletes all users messages older than 4 weeks or so to keep the message database small and clean? Such scripts exist and it is maybe very hard to attack them -- and of course: you can only do it indirect -- but this should be possibly.

About writing professional IT books and blogs

Within the last months I noticed some important facts about the community of book and blog writers in the area of professional IT related topics. I want to discuss some of them in this posting. I also want to discuss possible ways to increase the quality of online content.
(Date/Datum: 2011-01-07-04:19, Hits: 145) The first point I want to mention is that professional IT books are becoming boring. The reason for my opinion is as follows: Since about 1999 I write articles and texts about IT security as well as about Linux/Unix operating systems and since 2003 I write books about it. Within the last years I saw so many books that just cover the same topic again and again. This is boring since most books only provide small changes to prior books. Of course, I could, for example, write a book about the Slackware Linux distribution or something like that and maybe I would find a publisher for such a book but there are already so many books available about that topic and it would be very boring to write a third Linux book! What are the reasons for people to still write about these topics? There are some reasons:

The first reason is, that it is easy to write about these topics because they are easy to learn (there are already many books available a potential author can learn from). The second reason is to become popular. Combined with the first reason, this means that this is an easy way to become popular. The third reason is maybe that an author can earn lots of money by writing such a book but this is insane since there are too many competitors on the market and there are new books about the same professional IT topics every week.

The second point I want to mention is that blogs cover the more interesting up to date topics. Blog postings cover current topics and can change daily, and books usually cover long time topics. While it can take only a few minutes to write a good blog posting, it takes months or even years to write or even just to update a book. I don't remember a case where, after finishing a manuscript, a book was published in less than tree months after that. This probably sound evil but it actually is a good thing since this long time is spend to improve the quality of a books content. I think the quality of a average book is at least as good as the quality of very good blog postings.

Like mentioned before, blogs can cover up to date topics that books can only cover in some cases. This sounds good but it is a fact that not every blog does that. Most of the blogs cover basics problems that were already published and discussed in countless other blogs as well as in all books that cover the topic. These blog postings do not even add any additional information to what we already know since decades. For instance, I don't know how many blog postings I noticed about basic commands like 'ls' or 'du' within the last years. People write these postings to become a little bit popular (what is eligible, because this is how people can get motivated in society and, of course, everybody wants that!) but it would be much better to link other blogs or link textbooks or to edit Wikipedia. Every blog entry can contain errors and many blog postings can contain numerous errors. If more people would focus on fewer texts and would cooperate in writing them and fixing them, we would have fewer but better blog postings, Wikipedia entries and fewer redundancy.

This concept sounds good and it is what we need but it will not work since there are problems that occur with it: The first problem is that, if a one person edits Wikipedia, nearly nobody will notice that because his Nickname (usually not even his real name) will occur in the changelog entry only. Ergo, Wikipedia does not increase popularity of a single person. We can be more than happy, that Wikipedia works nevertheless. But I expect not many blog authors to write for Wikiedia.

The second problem is the design of the commercial Internet: If a person adds content to his own website, it can display commercial ads (e.g. using Google AdSense) on the website and can start earning money. This does not work, if a person contributes to Wikipedia (= no money for the person) or, if the person links other websites about the topic (=the OTHER website owner will probably earn more money (if he displays Ads) but the person that linked the website will earn nothing).

How can we solve these problems?

One way would be to create a shared, distributed Wikipedia-like website where every author is allowed to put commercial Ads on the site. This only works if there is a quality-control instance, that controls the Ad itself and the quality of every contribution (e.g. a editor that fixed a typo should not be able to display as many Ads as the person that wrote 90% of the article ; and a person that took care about the article for the last years while the original author didn't, should earn more money than at the beginning while the original authors “importance” will decrease and with it the Ad display slice).

Sounds good? Yes, but it will result in new problems and will probably not work:

Of course, we currently live with a commercial free Wikipedia and we can be happy about that.

And of course, we could maybe decrease the redundancy in the Internet with the non-commercial free Wikipedia.

But the fact is, that, if Ads are displayed in the Internet, the company that pays for the Ads is not willing to be displayed next to every Wikipedia entry. Every commercial Ad will harm a free encyclopedia because a free encyclopedia has to cover all opinions while a company wants the people to focus on a opinion they want them to believe in. For instance, let's say that British Petrolium (BP) would be willing to put commercial Ads on Wikipedia. In this case, they will probably don't like any information about problems related to oil transport. Now they can try to force the encyclopedia to remove all related entries or they will cancel their Ads.

This is why there is currently no way out of a redundancy overloaded and low-quality content overloaded Internet.¹ Ergo, we can be happy about the fact, that many websites link each other due to cooperations and maybe even more than that, we can be happy about the fact that Wikipedia *works*. The only way to keep this running is to contribute to Wikipedia without getting anything for the knowledge we provide but what we get is the knowledge of others.

¹ Of course, books focus similar problems like weblogs since they have only few authors that usually cover similar opinions, not to mention the publishers.

Werbung im Internet schalten und ansehen

Wer sein Geld -- zumindest teilweise -- online verdient, der hat sicherlich schon einmal über Online-Werbung nachgedacht. Unzählige Webseiten/Blogs schalten Werbung, in der Regel über Google.

(Date/Datum: 2010-06-26-21:27, Hits: 314) Ich schalte auf diversen Blogs (größtenteils experimenteller Art, wie etwa der Blog Neu im Studium -- für Studienanfänger) und Webseiten (dann meist über die Firma, etwa inmolibre.com oder zeitarbeiter-wohnungen.de) auch Werbung und muss feststellen, dass die Einnahmen der Blogs extrem variieren. In den letzten Wochen hatte ich beispielsweise testweise Werbung auf diesem Blog (wendzel.de) laufen, die bei jedem betrachteten Posting eingeblendet wurden. Exakt Null mal hat jemand darauf geklickt, weshalb ich die Werbung jetzt wieder entfernt habe.

Besucher von Blogs klicken generell kaum auf Werbung und nehmen diese gar nicht mehr richtig war. Auch haben viele User einen Blocker in ihrem Browser installiert, damit sie Werbung gar nicht mehr angezeigt bekommen. Die Denkweise dahinter ist: "Ich will alles gratis!".

Ich teile diese Einstellung explizit nicht, denn ich habe schon öfters interessante Werbung gesehen. Besonders textuelle Werbung (nicht die nervig blinkende Flashplayer-Werbung) kann hin und wieder interessant sein. Ein weiterer Grund: Ich möchte die Macher von Blogs und Webseiten gerne durch einen Klick auf deren Werbeeinblendungen unterstützen. Schließlich ist eine gewisse Belohnung nie verkehrt und für die Betreiber, die oft viel Zeit in ihre Blogs stecken ein kleiner Anreiz. Apropos Einnahmen: reich wird durch Werbeeinnahmen von Blogs ganz sicher fast Niemand.

Ich finde: Die Internetnutzer sollten Ihre Meinung zur Online-Werbung einmal überdenken.

Blogge um Dein Leben?

Hier ein neues Unterblog meiner Webseite (neben dem zur IT-Sicherheit ist es heute bereits das zweite neue Unterblog). Sinn und Zweck der neuen Blogs ist es, mehr Strukturierung in meine Blogs zu bringen. Die Themen waren mir bisher zu schlecht kategorisiert. Doch jetzt zum Postingthema: Warum bloggen jetzt eigentlich so viele Leute?

(Date/Datum: 2008-08-27-23:36, Hits: 864) In den letzten Jahren konnte man beobachten, dass immer mehr Leute dazu übergingen, sich einen Blog anzulegen. Ich selbst blogge seit circa 2002 oder 2003 und habe seit 1999 permanent eine oder mehrere Webseiten gehabt. Ich finde, es ist eine unglaubliche kulturelle Bereicherung für die Gesellschaft, insbesondere für die daran interessierten bzw. beteiligten. Letztere nennen sich übrigens die digitale Bohème.

Erst vor einiger Zeit habe ich verstanden, dass viele Leute sich allein durch ihre Weblogs einen Lebensunterhalt sichern können (dazu müssen Traffic-Raten von Nöten sein, von denen ich bisher nur träumen kann ;-)). Ich verdiene zwar nicht selbst Geld durch meinen Blog, und daher ist mein Weblog (mal mit Ausnahme der Bücherwerbung) frei von Werbeelementen (wie etwa Google-Ads), aber dafür (und das gehört auch zur digitalen Bohème) betreibe ich mit Kollegen ein Online-Startup (und zwar ein Immobilienportal (inmolibre.com), das im Übrigen wegen der recht ansehnlichen Konkurenz recht große Anlaufschwierigkeiten hat und jetzt etwa ein virtel Jahr online ist). Es gibt also nicht nur die Euphorie, sondern auch die Konkurenz; eine enorme Konkurenz! Selbst in noch nicht sooo internetsüchtigen Staaten gibt es eigentlich schon fast alles (oder noch kein Internet). Würde man etwa in Deutschland eine Immobilien-Webseite gründen, könnte man ohne enorme Marketingausgaben gleich einpacken, da die Konkurenz zu groß ist. Selbst für uns in Südamerika ist es enorm schwierig. Man hätte vor Jahren auftauchen müssen, aber vielleicht können wir ja noch irgendwann mal soetwas wie echte Einnahmen verbuchen -- Spaß macht es jedenfalls trotzdem und wenn dieses Projekt nichts wird, dann kommen andere. Aber ... wie wird es mit dem Website-Boom weitergehen? Werden jetzt die ganzen Nischenseiten weiter explodieren, bis alle nur erdenklichen und auch nur halbwegs versprechenden Nischen gefüllt sind (kann ja nicht mehr sooo lang dauern) und dann dem gemeinsamen Bankrott entgegensegeln, oder wird der Erfolg noch viele Jahre bleiben und bleibt der Kuchen groß genug für alle?

In meiner Begeisterung für diese Subkultur, der ich mich angehörig fühle, die eine neue Freiheit in Form einer gewissen Unabhängigkeit und Selbstverantwortung lebt, habe ich mir das Buch "Wir nennen es Arbeit" bestellt (okay, das ist ein Partner-Link, ich gebe es zu). Gestern wurde es geliefert und bisher mag ich es. Die Autoren haben den Begriff "digitale Bohème" geprägt und -- soweit ich es bisher beurteilen kann -- ein wirklich tolles Buch geschrieben. Gut finde ich ganz besonders, dass der positive Einfluss dieser sehr kreativen Subkultur auf die Wirtschaft gezeigt wird. Ich werde, sobald ich es durchgelesen habe, noch eine Rezension nachreichen. Zum Buch gibt es im Übrigen auch ein Weblog!

Wenn man meine obige Frage aufgreift und von Kommerzseiten auf Blogs überträgt, dann gelange ich zu der Frage, was passiert, wenn in einigen Jahren 10x so viele Menschen versuchen, online durch Blogs ihr Geld zu verdienen. Werden dann Rivalitäten ausbrechen (neben den Einnahmen gibt es ja schließlich auch Anerkennung zu kassieren)? Werden die Einnahmen pro Klick bei Werbeeinblendungen an Wert verlieren? Werden insgesamt die Trafficzahlen sinken? Oder wird durch die Zunahme an interessierten Bloglesern ein Konstantes oder gar steigendes Trafficniveau bevorstehen (Laut "Wir nennen es Arbeit" sind angehörige der Subkultur gegenseitig ihre besten Kunden ...)? Ich weiß nicht, ob das Buch auch darauf eingeht, aber die Zukunft wird meine Frage beantworten. Derzeit kann man diese Frage wohl noch nicht beantworten, aber zumindest ist bisher eine kollektive Co-Existenz der Blogs zu beobachten (man verlinkt sich ja schließlich gegenseitig um sich etwas gutes zu tun!).

OpenSource-Geschichte

Heute habe ich für die nächste Auflage (erscheint nicht vor 2009/2010!) von unserem Buch 'Linux. Das distributionsunabhängige Handbuch' das Kapitel zur Geschichte von Linux und OpenSource erweitert.

(Date/Datum: 080728-18:27, Hits: 1157)

Speziell wichtige Details sind hinzugekommen (etwa die Gründe, die Richard Stallman (Blog) dazu bewogen haben, das GNU-Projekt zu gründen oder die Tatsache, dass es Bootdisks und Rootdisks gab, die quasi als Zwischenschritt zwischen reinem Kernelquellcode und dem Softlanding Linux System (SLS), also quasi der ersten Distribution, zu sehen sind).
Nachtrag:
Um wenigstens noch zu erklären, was ich heute auf Papier gebracht habe ...
Zu Richard Stallmans Gründen, das GNU-Projekt zu gründen: Stallman war ja zunächst am Labor für künstliche Intelligenz am MIT beschäftigt. Das ganze hat sich dann nach und nach aufgelößt (soweit ich weiß wurden die einzelnen Mitarbeiter in Firmen tätig, aber genaue Gründe sind mir nicht bekannt, weshalb ich hier auch im Buch nicht ins Detail ging, denn etwas falsches möchte ich nicht schreiben). Stallman vermißte die dortige Hacking-Atmosphäre und erhielt sie erst durch das GNU-Projekt wieder. Ein anderer Grund zur Gründung des GNU-Projekts war, dass damals mehr und mehr Code binär vertrieben wurde (das bestätigen zumindest zwei Bücher und Wikipedia) und Stallman quelloffene Software weiter existent haben wollte (und Ziel des GNU-Projekts ist es ja nunmal, dass ein freies Betriebssystem entsteht). Daher auch der von Stallman vorgeschlagene Bezeichnung 'GNU/Linux' (aber das ist bereits in der aktuellen Auflage erklärt: siehe hier).
Zu Boot/Rootdisks: Linus Torvalds (also der, der Linux zunächst alleine entwickelt hatte), fing an, Images von Boot- und Rootkdisks auf den FTP-Server zu laden, auf dem auch die Kernelimages lagen. Der Grund dafür ist, dass nicht jeder Anwender wusste, wie man seinen eigenen Kernel kompiliert, dann bootet und Software für dieses System baut (klar!, kann heute auch kaum jemand!). Die Boot/Rootdisks haben diese Situation etwas erleichtert. Zunächst wurde die Bootdisks in den Rechner eingelegt und der Rechner neu gestartet.
Die Bootdisk beinhaltete den Linux-Kernel, der dann geladen wurde. Nachdem der Kernel-Bootvorgang abgeschlossen war, musste man dann die Rootdisk einlegen, sie enthielt verschiedene Grundprogramme, mit denen man dann bereits arbeiten konnte. So wurde Linux schließlich einer viel höheren Zahl an Anwendern zugänglich. Der nächste Schritt, den man in Richtung Benutzerfreundlichkeit unternahm, war dann das SLS (s. oben), dass die erste Linux-Distribution darstellte. Linux-Distributionen beinhalten bereits den Linux-Kern sowie diverse Benutzersoftware und eine Installationsroutine. Später hat Patrick Volkerding dann die älteste, noch bestehende Linux-Distribution "Slackware-Linux" erstellt. Slackware-User mussten (das habe ich selbst noch in Erinnerung) noch viele Jahre die Images der Boot- und Rootdisks auf Disketten schreiben. Allerdings gab es eine ganze Reiher verschiedener vordefinierter Bootdisks zur Auswahl (etwa eine mit IDE-Treibern, eine mit einer gewissen Anzahl von SCSI-Treibern usw.).
So, nun habe ich dazu mehr Informationen in meinen Blog geschrieben, als in das Kapitel des distributionsabhängigen Handbuches :-)

Tutorial: canto: Ein Feedreader für die Konsole

Heute habe ich Canto ausprobiert -- einen RSS-Reader für die Konsole. Hier eine Kurzanleitung und Kritik.

(Date/Datum: 2010-12-29-05:41, Hits: 174) Canto kann über HTTP und HTTPs auf RSS- und ATOM-Feeds zugreifen und unterstützt Unicode. Programmiert wurde Canto in Python und benutzt eine NCurses-Oberfläche.

Canto

Die Einrichtung von Canto ist einfach: Nach erstmaligem Starten wird ~/.canto angelegt, in dem vom nun an alle wichtigen Dateien abgelegt werden. Außerdem wird eine Beispielkonfigurationsdatei (~/.canto/conf.py.example) erstellt. Beenden kann man Canto mit der Taste q.

Nach dem ersten Start erstellt man sich eine eigene Konfigurationsdatei indem man ~/.canto/conf.py anlegt. In diese Datei trägt man alle Newsfeeds ein, die canto abrufen soll. Für jeden Feed muss die Feed-URL der add-Funktion übergeben werden:

add("http://www.wendzel.de/rss.php")
add("http://linuxbuch.blogspot.com/feeds/posts/default")


Mit dem Tool canto-fetch werden alle Feeds abgerufen (canto-fetch sollte man einfach periodisch als Cronjob starten). Die News können dann mit canto betrachtet werden.

Ausgewählte Artikel können über die Leertaste angezeigt werden. Mit den Pfeiltasten (Links/Rechts) kann ein Artikel als gelesen/ungelesen selektiert werden (weitere Tastenbelegungen stehen in der Manpage und können über die Konfigurationsdatei angepasst werden).

Um festzulegen, welche Programme zum öffnen von Weblinks und Bildern gestartet werden sollen, werden folgende Konfigurationszeilen benötigt:

link_handler("firefox \"%u\"")
image_handler("fbv \"%u\"", text=True, fetch=True)


Möchte man auf der (leider recht unübersichtlichen Oberfläche) nicht völlig die Übersicht verlieren, so können über filters=[show_unread] die bereits gelesenen Artikel ausgeblendet werden.

Fazit: Da ich ca. 50 Newsfeeds im Abo verfolge, ist mir Canto ganz einfach zu unübersichtlich. Von Mozilla Thunderbird her bin ich gewohnt, Unterordner für die Kategorisierung meiner Feeds anzulegen und darauf möchte ich nicht verzichten. Das Scrollen dauert ebenfalls ewig.
____________

gedit-autocomplete: Auto-Vervollständigung für Quellcode in gedit

Heute habe ich nach einem gedit-Plugin umgesehen, mit dem ich in Quellcodes eine Autovervollständigung erreichen kann. Ich wurde tatsächlich fündig.

(Date/Datum: 2010-11-09-20:40, Hits: 290) Den autocompletition plugin für gedit gibt es hier. Geschrieben ist er in Python. Nach dem Download muss das install-Skript ausführbar gemacht werden, danach ausführen, in gedit das Plugin aktivieren, fertig! Leider scheint das Plugin einfach alles zu scannen, was es in den Source-Files finden kann (also auch Kommentare), was zu Nebeneffekten führen kann, wie ich sie hier im Screenshot festgehalten habe:

nagaozen-gedit-plugin-autocomplete picture

Diese nachteilige Funktionsweise hat allerdings den positiven Nebeneffekt, dass auch *alle* Programmiersprachen unterstützt werden.

Das Plugin kann so konfiguriert werden, dass es entweder nur für eine Datei (local) funktioniert, oder aber, dass es alle geöffneten Dateien nach Inhalten durchsucht (global).

Mail/NNTP/RSS/Adressen-Synchronisierung mit Thunderbird und Unison unter Linux (Ubuntu)

Heute habe ich mich den halben Tag lang damit befasst, wie ich es nur hinbekommen kann, auf eine elegante Weise, meine Mailpostfächer zwischen zwei Linux-Systemen zu synchronisieren. Dazu ein Bericht.

(Date/Datum: 2010-03-20-00:58, Hits: 828) Ausgangssituation:
Die letzten circa zehn Jahre habe ich fast ausschließlich das Mailprogramm Sylpheed benutzt, das ich sehr schätze. Sylpheed läuft auf meinem Notebook und auf meiner Workstation getrennt, und damit mit getrennten und zugleich unvereinbaren Mailbeständen der letzten Jahre. Beide Systeme laufen mit der gleichen Ubuntu-Version. Sylpheed verfügt zudem über keinerlei Plugins zum Synchronisieren. Beide Systeme verfügen außerdem über getrennte ToDo-Listen, die ich mit gtodo seit einigen Jahren führe. Außerdem gibt es auf beiden Systemen einen RSS-Reader (liferea). gtodo und liferea synchronisiere ich hin und wieder via Unison.

Verschiedene Ansätze:
Zunächst hatte ich Evolution auf beiden Systemen ausprobiert (damit hoffte ich, auch meine Termine und ToDo-Listen synchronisieren zu können). Das Synchronisieren mit opensync via MultiSync und Unison hat nie korrekt geklappt und ist zudem umständlich.

Der nächste Ansatz bestand darin, claws-mail (ein auf Sylpheed basierendes Mailprogramm) zu verwenden. Es verfügt zwar nur über einen WindowsCE-Sync-Plugin, jedoch wollte ich es mit Unison synchronisieren. Claws-Mail ist in der Lage, alle Einstellungen und Mails von Sylpheed zu importieren. Selbst meine umfangreichen Filter-Regeln wurden übernommen. Auf diese Weise konnte ich neue Mailbestände für claws-mail anlegen und würde die alten behalten können. Leider stellte sich heraus, dass beim Synchronisieren mit Unison zwar Accounts, Folder und Einstellungen übernommen wurden, die Folder waren jedoch leer und somit waren alle lokal gespeicherten Mails nicht zu sehen.

KDE-PIM ist zwar äußerst ausgereift, dennoch wollte ich es nicht ausprobieren, da ich wegen der Performance meines alten Rechners nicht mit KDE-4.x arbeite. Einen Kurztest mit opensync gab es dennoch, und der war leider ebenfalls enttäuschend.

Lösung: Als fast perfekte Lösung (und bei mir auch erst seit einigen Stunden im Einsatz) hat sich Mozilla-Thunderbird (Version 2.0.x) in Kombination mit Unison und dem Thunderbird-Plugin ReminderFox herausgestellt.

Dazu habe ich auf beiden Rechnern Thunderbird eingerichtet (mit einigen Zusatzpaketen, die mir gefielen):
$ sudo aptitude install thunderbird thunderbird-gnome-support thunderbird-locale-de thunderbird-traybiff

Anschließend habe ich auf einem der Rechner Thunderbird konfiguriert. Dazu habe ich zunächst alle Mailaccounts und NNTP-Accounts eingerichtet. Es folgte ein RSS-Account für all meine RSS-Abonents. Mit der Möglichkeit, Folder innerhalb von anderen Foldern zu erstellen, ließ sich auf diese Weise auch gleich eine vernünftige Hierachie in meinen Feed-Abo-Baum integrieren, wie das folgende Bild zeigt:

Thunderbird RSS Hierachie

Anschließend habe ich das Plugin ReminderFox (s. auch hier) installiert, mit dem ich Termine und zu erledigende Aufgaben verwalten kann. Zu finden ist das Plugin nach der Aktivierung rechts unten in Thunderbird.

Um das Adressbuch zu importieren (ich hatte zum Glück noch die Daten von Evolution), exportierte ich die Evolution-Daten zunächst in CSV-Form, was Thunderbird allerdings nicht korrekt einlesen konnte! Ein Umweg führte über den VCARD-Export von Evolution:
$ evolution-addressbook-export --format=vcard > adbuch.vcard

Diese Daten habe ich anschließend mit KAdressbook, das ich dazu extra installieren musste, importiert und anschließend in das LDIF-Format übertragen. Das LDIF-Format wiederum ließ sich von Thunderbird fehlerfrei importieren.

Die eigentliche Synchronisation lasse ich Unison erledigen (dazu muss das Verzeichnis $HOME/.mozilla-thunderbird verwendet werden). Am einfachsten geht das über die grafische Oberfläche ``unison-gtk''. Mehrere Tests übernahmen alle Konfigurationsänderungen sowie Änderungen an den Mailbeständen völlig problemlos!

Fast perfekt? Ja, hier die Probleme:
1. Ich benutze den NNTP-Server der FernUni Hagen, für den eine Authentifizierung notwendig ist. Thunderbird fragt mich leider immer wieder nach dem Benutzernamen und dem Passwort für den Account, obwohl ich diese Daten speichern lasse. Nachtrag: Auch für meine POP3-Accounts musste ich nun schon diverse Passwörter mehrfach eingeben. Bisher habe ich keine Ahnung, woran es liegt. Nachtrag: Problem gelößt durch Löschen der Passworteinträge in den Einstellungen und erneute Eingabe (erst danach wurden die neuen Passwort-Werte wirklich akzeptiert, muss wohl ein Bug sein ...).

Sicherheitshalber habe ich noch die Darstellung von HTML-Mails deaktiviert und ein Masterpasswort für meine Passwörter verben, das ich bei jedem Thunderbird-Start eingeben muss. Thunderbird kann mit Spamfiltern und AV-Programmen zusammenarbeiten -- diese Features nutze ich jedoch nicht. Außerdem versucht Thunderbird anscheinend automatisch Phishing-Angriffe zu erkennen.

2. Filterregeln lassen sich in Thunderbird *anscheinend* (zumindest in meiner 2.0.x-Version) leider nur für einzelne Accounts anlegen, sodass ich eine Regel nicht accountübergreifend verwenden kann.

Ich hoffe, dieses Posting ist hilfreich. Fragen/Anregungen/Kritik können wie immer über die Kommentarfunktion gepostet werden.

Fazit
Thunderbird hat sich zumindest *bisher* (es ist erst seit einigen Stunden bei mir im Einsatz) als insgesamt gute Lösung für meine Anforderungen erwiesen. Großartig ist, dass ich mit einem Unison-Aufruf nun Adressbuch, Mails, RSS-Feeds, Termine und Aufgabenliste synchronisieren kann. Ich hoffe, die oben genannten Probleme lassen sich auch noch (vielleicht ja mit Version 3.x?) beheben.

Nachtrag:
Ich arbeite nun seit einer Weile mit Thunderbird und bin nach wie vor sehr zufrieden. Auch durch vielfaches Synchronisieren ergaben sich bisher keine Probleme.

Grundlegendes zur Linux-Sicherheit für Otto Normalverbraucher

Diese FAQ enthält typische Fragen zum Thema Linux-Sicherheit, die mir oft gestellt werden. Ich hoffe, es hilft auch online einigen Lesern ... Ich habe dabei versucht, Fragen zwar fachlich korrekt, aber so kurz, wie es mir möglich erschien, zu beantworten. Sollten weitere Fragen auftauchen, können diese über die Kommentarfunktion gestellt werden.

(Date/Datum: 2010-03-09-22:32, Hits: 829)

Frage: Ich benötige keinen Virenscanner/keine Firewall unter Linux, stimmt das?
Kürzest mögliche Fach-Antwort: Ein Virenscanner schadet theoretisch niemals. Jedes Betriebssystem kann von Viren befallen werden, auch wenn für Linux wesentlich(!) weniger Viren existieren (nämlich nur etwa eine Hand voll), als für bspw. Windows (das hängt u.A. mit dem Verbreitungsgrad von Windows zusammen), kann Ihr Linux-Rechner von Viren theoretisch befallen werden. Virenscanner für Linux gibt es so direkt nicht für den Desktop, sondern eher für Mailserver, wobei sie dann hauptsächlich Windows-Viren filtern, die Ihrem Linux-System nicht schaden.
Linux bringt eine Firewall mit, die aber nicht mit einer typischen Windows-Desktopfirewall gleichzusetzen ist. Um die Beantwortung kurz zu halten: Eine Firewall müssen Sie in den meisten Fällen genauso wenig installieren (denn dazu müssten Sie sich zunächst intensiv mit TCP/IP-Protokollen und deren Sicherheit befassen), wie einen Virenscanner. Stellen Sie unbenötigte Netzwerkdienste lieber gleich ab und benutzen Sie Ihr Linux-System auf Sicherheit bedacht (lesen Sie dazu bitte auch die folgenden Fragen).

Frage: Kann ich mit Linux sicher im Internet surfen?
Kürzest mögliche Fach-Antwort: Web-Browser sind mittlerweile enorm komplex. Solch komplexe Software ist niemals frei von Bugs (und damit auch nicht frei von Sicherheitslöchern). Ob Sie den Firefox-Browser nun unter Windows oder unter Linux nutzen – wenn Sie sich auf nicht sonderlich vertrauenswürdigen Seiten die Zeit vertreiben, sind sie schnell in Gefahr (Linux, wie auch jedes andere Betriebssystem, hat nicht den Zweck, Sie vor Phishing-Angriffen und Co. zu schützen). Auch ändert ein normales Betriebssystem nichts daran, ob Sie nur verschlüsselte Webverbindungen nutzen und ob ein Angreifer „irgendwo im Internet“ Ihre Daten (etwa Passwörter) mitlesen kann. Das alles liegt in Ihrer eigenen Verantwortung.

Frage: Es darf nur kein Mensch „root“-Zugriff auf mein Linux-System bekommen, oder?
Kurze Antwort: Es genügt eine Zugriffsmöglichkeit auf genau Ihren Benutzeraccount, um an alle Ihre privaten Daten (E-Mails, Text-Dokumente, Fotos, gespeicherte Passwörter, ...) zu kommen. Dazu ist kein Administrator-Zugriff (also root-Zugriff) notwendig. Das ist keine Schwachstelle von Linux, sondern in jedem handelsüblichen Betriebssystem eine Notwendigkeit.

Frage: Wenn ich eine Linux-Distribution benutze, dann bin ich doch sicherer, als mit Windows?
Eine fachlich korrekte Antwort minimaler Länge: Linux wird frei und offen entwickelt, daher ist es sehr unrealistisch, dass geheime Hintertüren (etwa von einem Geheimdienst oder einer anderen Organisation) in einem Linux-System enthalten sind (das gilt zumindest für die am meisten überwachten Projekte wie den Linux-Kernel an sich oder die Standard-Linux-Programme und -Bibliotheken). Auch die Standardabsicherung von Linux-Systemen ist sehr hoch. Eine hohe Standardabsicherung haben auch andere Betriebssysteme wie OpenBSD, FreeBSD und mittlerweile sogar Windows. Letztlich hängt die Sicherheit eines Systems aber zum Großteil an dessen Benutzer. Wenn Sie unter Linux irgendwelche Programme aus dem Internet herunterladen und installieren oder jede noch so wenig vertrauenswürdige Webseite besuchen, sind Sie kaum sicherer unterwegs, als mit jedem anderen Betriebssystem. Es liegt in Ihrer Verantwortung, sich mit dem Thema Sicherheit zu befassen und sich um die Sicherheit Ihres Computers zu kümmern. Ihre Autoreifen fahren Sie ja schließlich auch nicht ohne Profil und Ihre Haustür schließen Sie wahrscheinlich ebenfalls ab.

Frage: Muss ich unter Linux Backups anlegen?
Kurze Antwort: Ja, auch Linux kann Sie nicht davor bewahren, Ihr System zu zerschießen oder das eine Festplatte ausfällt. Mehr dazu hier.

Frage: Warum ist Linux dann so toll?
Kurze Antwort: Ich sage nicht, das Windows sicherer ist, als Linux. Ich persönlich halte Linux für insgesamt deutlich sicherer. Doch (und das wollte ich mit diesem Blogposting vermitteln), hängt die Sicherheit zum Großteil vom Benutzer ab. Wenn Sie ein nur 4 Zeichen langes Passwort wählen, Ihre Festplatte nicht verschlüsseln, obwohl es mit Linux schon während der Installation per Mausklick geht, usw., dann kommen diese ausgereiften Sicherheitsfeatures nicht zum tragen (ich sage es lieber dazu, um Missverständnisse zu vermeiden: Das ist bei Windows natürlich nicht anders, auch dort müssen Sie solche Features explizit nutzen, jedoch sind sie unter Linux vertrauenswürdiger). Nutzen Sie also solche Eigenschaften von Linux!
Linux wird zudem offen und frei entwickelt, beinhaltet nicht diverse grundlegende Einschränkungen, die Windows mit sich bringt (siehe hier hier und hier). Warum ist freie Software aber so gut? Dazu habe ich ein weiteres Blogposting geschrieben.

Fachliches Nachwort:
Linux bietet äußerst ausgereifte Sicherheitskonzepte, etwa verschiedene Benutzerarten, Access Control Lists, kernelseitigen Speicherschutz (ASLR), compilerseitigen Schutz (gcc SSP), eine hervorragende Firewall, Distributionen mit sicheren Standardkonfigurationen und ständigen Sicherheitsupdates, Festplatten- und Auslagerungsspeicher-Verschlüsselung, diverse weitere kryptografische Programme (etwa zur Mailverschlüsselung und -Signatur oder zur Bildung virtueller privater Netzwerke), ausgefeilte Backup- und Monitoring-Software uvm. Windows bietet viele dieser Features aber auch (und das wird oftmals bei der Argumentation (auch manchmal in der Wikipedia) nicht bedacht!). Sie können Linux aus Überzeugung nutzen und es ist meiner persönlichen Meinung nach deutlich vertrauenswürdiger (und weniger einschränkend), als eine propritäre Software, aber für Ihre Sicherheit sind Sie weitestgehend selbst verantwortlich. Denken Sie daran: Ein System kann zwar das Denken für Sie hier und da übernehmen, MUSS sie aber dann jeweils in Ihrer Entscheidungsfreiheit eingrenzen, sie also entmündigen. Ich schließe mit Immanuel Kant: Habe Mut, dich deines eigenen Verstandes zu bedienen!

Einstieg in LinuxLinux. Das umfassende Handbuch

Weiterführende Literatur
Unser Linux-Handbuch (das Sie hier online gratis lesen können) beinhaltet ein Kapitel zur Linux-Sicherheit.
Mehr Grundlegendes zu Linux gibt es in diesem Kapitel und in unserem Einsteigerbuch Einstieg in Linux.

Weitere Fragen
Weitere Fragen können Sie gern über die Kommentarfunktion posten.

Wie Sylpheed seine Versionsnummer auf Aktualität prüft

... wollte ich mit einem Sniffer herausfinden, was natürlich kein Problem war. Es passiert folgendes:

$ telnet 202.32.10.40 80
Trying 202.32.10.40...
Connected to 202.32.10.40.
Escape character is '^]'.
GET /version.txt? HTTP/1.1
Host: sylpheed.sraoss.jp
Accept: */*

HTTP/1.1 200 OK
Date: Fri, 29 Jan 2010 07:44:55 GMT
Server: Apache
Last-Modified: Fri, 15 Jan 2010 02:28:17 GMT
ETag: "e7801c-20-47d2ac1997240"
Accept-Ranges: bytes
Content-Length: 32
Content-Type: text/plain

RELEASE=2.7.1
DEVEL=3.0.0.beta6

In welchem Geschäft kann ich Hardware kaufen, die unter Linux läuft?

Unter Linux Users Welcome findet sich von nun an eine neue Webseite. Sie enthält eine Liste mit Geschäften, die es Linux-Usern leichter machen, passende Hardware für ihr Betriebssystem zu finden.

Die Projektidee von Christian Beuschel wurde im UbunuUsers-Forum vorgestellt. Dort finden sich generell weitere Informationen zur Idee.

Schwedische/Spanische Sonderzeichen unter Linux

In unseren Büchern kam das Thema bisher nicht vor, aber dafür jetzt hier in meinem Blog: Eine Kurzzusammenfassung, wie man spanische und schwedische Sonderzeichen unter Linux hinbekommt.

(Date/Datum: 2009-04-06-16:29, Hits: 1593) ... und zwar mit einer deutschen Tastaturbelegung ...

1. Spanisches Zeichen mit Akzent (é,ó,í etc.)
Erst '`' und anschließend das jeweilige Zeichen drücken.

2. Spanisches ñ
Erst '~' (Tilde, AltGr und '+'), dann n drücken.

3. Spanisches ¡ und ¿
AltGr + Shift + ! bzw. + ? drücken.

4. Schwedisches å (Kringel-a)
Für ein å sind eigentlich zwei getrennte Aktionen nötig. Zunächst muss AltGr+Shift+ü gedrückt werden. Und anschließend a für ein kleines å bzw. Shift+a für ein großes Å.

Ich hoffe, diese Informationen sind nützlich.

Shellskript Programmierung - Teil 7 (Variablen mit der Tastatur einlesen)

Es ist mal wieder Zeit für einen neuen Teil meines Tutorials zur Shellskript-Programmierung. Dieses Mal gibt es sogar ein kleines Detail, dass erst in der 3. Auflage von 'Linux. Das distributionsunabhängige Handbuch' enthalten sein wird. Also ein Vorgriff.

(Date/Datum: 2009-02-08-01:05, Hits: 2445)

Was Variablen sind, und wie man ihnen Werte direkt zuweisen kann, dass habe ich ja bereits in den vorherigen Teilen des Tutorials erklärt. Wie aber kann man Werte von der Tastatur einlesen (bspw. damit ein Benutzer seinen Namen oder ein Passwort eingeben kann)? Die Lösung ist einfach:

Zum Einlesen von Werten wird das Kommando read verwendet. read übergibt man als Parameter den Namen einer Variablen (aber ohne $-Zeichen). Anschließend kann man auf den Wert zugreifen. Hier ein kleines Beispiel zum Einlesen eines Namens:

$ read name
Steffen Wendzel # das ist die Eingabe des Benutzers
$ echo $name
Steffen Wendzel

Wie man sieht, wird die Eingabe des Benutzers angezeigt, was etwa bei Passwörtern nicht sicher ist. Je nach verwendeter Shell sollte read den Parameter '-s' unterstützten, der die Ausgabe der eingegebenen Zeichen auf dem Terminal unterdrückt. Mit diesem können dann auch "unsichtbare" Eingaben getätigt werden:

$ read -s name
(unsichtbare Eingabe)
$ echo $name
Steffen Wendzel

Soll nun noch ein schöner Eingabetext ausgegeben werden, was mit echo ja kein Problem ist, kann man auch noch verhindern, dass die Eingabe von Passwörtern und Benutzernamen in einer neuen Zeile angezeigt wird. Einige echo-Implementierungen kennen zu diesem Zweck den Parameter '-n', der nach der Ausgabe des Textes kein Zeilenende (also kein Newline-Zeichen (\n)) ausgibt.

$ echo -n "Benutzername: "; read name
Benutzername: sw
$ echo $name
sw

Was aber, wenn man nur ein Zeichen einlesen möchte und der Benutzer nicht die Return-Taste drücken müssen soll? Dazu kann der read-Parameter '-n [Anzahl Zeichen]' verwendet werden.

read -s -n 1 befehlszeichen
echo "Es wurde das Zeichen $befehlszeichen eingegeben"

-----------

Änderungen:

  • 18. Feb. 2009: '-s'-Parameter fehlte bei read-Aufruf für die unsichtbare Eingabe eines Wertes.

Wer braucht schon Datenschutz im Web?

Letzte Woche feierte das Allgäu-Forum in Kempten (ein großer Konsumtempel mit vielen Geschäften darin) fünfjähriges Bestehen. Natürlich gab es etwas zu gewinnen (ein Auto). Um eine Chance auf einen solchen Gewinn zu haben, muss man lediglich seine Adressdaten (man spricht juristisch gesehen von "personenbezogenen Daten") in eine Lostrommel werfen und ein paar Kreuzchen machen.

(Date/Datum: 2008-10-14-23:16, Hits: 1376) Aus meiner Sicht war es schockierend, zu sehen, wie dermaßen voll die transparente Lostrommel war. Bei solchen Gewinnspielen gibt man praktisch immer die Zustimmung zur Weiterverwendung der persönlichen Daten und in der Lostrommel lagen hunderte oder gar tausende Zettel. Dazu ist anzumerken: Adressdaten sind pures Geld wert und Adresshandel ist durchaus luktrativ. Es ist folglich anzunehmen, dass die Adressdaten (wie es so üblich ist) weiterverkauft werden, um den Wert des verlosten Objekts (=Auto) gegenzufinanzieren. Ist man schlau, druckt man in das Kleingedruckte noch hinein, dass der Gewinn auch in anderen Kaufhäusern etc. gewonnen werden kann (dadurch sinkt natürlich die Gewinnchance einer Einzelperson). So erhält man entsprechend viele Adressdaten und hat am Ende einen höheren Datenwert, als das eigentliche Auto kostet (=Optimalfall für den Verloser). Ob das Allgäu-Forum auch so handelt, weiß ich nicht, und es ist an dieser Stelle auch nicht von Belang.

Wichtig ist vielmehr, dass bei solchen Aktionen die Daten von Leuten gesammelt werden, die nicht auf Datenschutz achten. Diesen Menschen kann man also evtl. durch Telefonanrufe noch weitere Daten entlocken und ganz andere Produkte verkaufen. Wer seine Daten abgibt, der muss ganz klar damit rechnen, in Zukunft mehr Webepost in Papierform und in elektonischer Form zu erhalten.

Damit soetwas nicht passiert, sollte meiner Meinung nach bereits in Schulen Datenschutzaufklärung durchgeführt werden! Und auch im Rest der Bevölkerung sollte sich damit auseinandersetzen. Alles, was wir jetzt versäumen, zahlen wir schließlich später! Das Desinteresse an diesem Thema ist zwar groß (es ist für die meisten Menschen sicher nicht so spannend, wie für mich), aber das heißt nicht, dass es nicht wichtig ist.

Um noch ein zweites, die Wichtigkeit des Datenschutzes verdeutlichendes, Beispiel zu geben: Es gibt unzählige soziale Netzwerke im Internet. Dort gibt man allerlei Informationen an, die man gar nicht angeben hätte müssen. Doch um das eigene, langweilige Profil zu gestallten, läd man Fotos ins Netz, die einen im betrunkenen Zustand zeigen, subscribed sich in Benutzergruppen mit dämlichen Namen usw. usf. Arbeitgeber besuchen schon LÄNGST Webseiten wie Studivz und schauen sich ihre zukünftigen Arbeitgeber dort an. Man kann sein Profil für die Öffentlichkeit zwar oftmals sperren, aber diese Funktion wird nicht oft genug (soll heißen: nicht immer) benutzt.

Ein anderes soziales Netzwerk stellt bereits Familienbeziehungen her. Dort kann man beispielsweise sehen: X ist Opa von Y. Denkt man etwas weiter, dann führt X vielleicht ein Weblog über seine Diabetis-Hilfsmittel/-Erfahrungen. Ein Versicherer/Arbeitgeber/Angreifer kann dann sagen: Wenn X an Diabetis leidet, dann leidet vielleicht auch in einigen Jahrzehnten Y daran. Das ist kein Spaß, das ist ernst! Apropos: Bruce Schneier schrieb in seinem Buch 'Secrets and Lies' bereits vor einigen Jahren, wie günstig (nur wenige Hundert Pfund) eine Krankenakte in GB ist. Ich hoffe, das verdeutlicht, dass meine Formulierungen keineswegs übertrieben sind. Es fehlt meist nur das Bewußtsein dafür, das Thema ernst zu nehmen -- schließlich merkt man (noch) nicht, was mit den eigenen Daten passiert. Wenn man aber auf einmal keine preiswerte Krankenversicherung mehr bekommt oder eine Stelle nicht bekommt (oder gar verliert), dann wird man es schmerzlich erfahren und sich sicher ärgern, dass man sich nicht zuvor mit dem Thema Datenschutz beschäftigt hatte.

Natürlich sind auch ganz anderes Aspekte des Themas wichtig (etwa Absicherung vor Angriffen in Netzwerken, wie Johannes und ich in unserem Praxisbuch Netzwerksicherheit beschrieben hatten), aber genug der Eigenwerbung -- das Buch von Schneier ist für Leihen allemal sehr interessant. Der Autor führt auch einen interessanten Blog zum Thema IT-Sicherheit.

PS. Auch das Risks Magazine (ebenfalls englischsprachig) ist auch zu empfehlen und erschien vorhin in einer neuen Ausgabe.

Warum in PHP programmieren?

Immer wieder höre ich Gründe, die gegen PHP sprechen (schlechte Performance, viele Sicherheitslücken), heute möchte ich mal kurz darlegen, warum ich hier auf wendzel.de und im Unternehmen PHP einsetze.

(Date/Datum: 080827-01:23, Hits: 1334)

PHP ist eine enorm einfach zu erlernende Programmiersprache, die genau aufs Web ausgelegt ist. Mit Perl/Mason kann man zwar ähnliche Features bekommen, aber PHP läuft überall, ist extrem einfach zu lernen und einzurichten.

Das bedeutet, dass man als Unternehmer auch sehr einfach an PHP-Entwickler kommt, wenn man welche benötigt (bisher war das bei uns noch nicht nötig, aber ich bin mal optimistisch ...). Natürlich muss man die Webseiten, die man mit PHP programmiert auch aufwändig absichern, aber das ist bei jeder Sprache fürs Web der Fall User-Input ist nunmal immer gefährlich. Hier muss man allerdings zwischen der Skript-Sicherheit und der Sicherheit des PHP-Interpreters und/oder mod_php unterscheiden. In den letzteren wurden ganz klar bereits einige Lücken entdeckt und auch ich betreibe PHP nur mit Suhosin-Patch. Ich hoffe, dass in PHP nur so viele Patches gefunden werden, weil diese Sprache einfach mehr Leute für die Web-Entwicklung einsetzen, aber vielleicht ist es in dieser Hinsicht wirklich verbugter.

Bezüglich der Performance bin ich auf meinen Mini- und Medium-Size-Seiten bisher zufrieden. Die performancekritischste Stelle war bei mir/uns bisher immer die Datenbank und weniger die Programmiersprache. Vielleicht ist PHP auf Systemen mit sehr hoher Auslastung oder besonders aufwändigen Skripten eine wirkliche Katastrophe -- kann sein, aber bisher bin ich nicht in solche Bereiche vorgedrungen und 95% der Webentwickler kommen wohl auch nicht in diese Situation.

Klar sagt das Hacker-Ego jetzt soetwas wie "PHP kann jeder, ich mach nur Perl!", aber das ist bescheuert. Wenn man eine wirklich performancekritische Komponente im PHP-Skript hätte, dann könnte man ja immernoch -- etwa via SVR4-IPC -- auf einen C-Prozess weiterleiten oder enorm performancekritische Komponenten in C mit FastCGI hacken. Admin-Oberflächen und wohl die meisten anderen Komponenten, die eben nicht so enorm frequentiert werden, gehen aber sicher auch mit PHP nicht unter.

Ein anderer wichtiger Punkt ist die gesparte Entwicklungszeit. PHP ist eben nicht nur enorm einfach, nein, es senkt auch die Entwicklungszeit. PHP Code zu fabrizieren, der die 0-8-15-Internet-Aufgabe-X erledigt, geht meist rucki-zucki. Und miesen Code kann man ja definitiv in jeder Sprache hacken.

Vorteile freier Software am Beispiel von Linux

Dieses Posting ist für Jedermann. Wenn man es gewohnt ist, mit freier Software zu arbeiten, dann merkt man manchmal gar nicht, wie groß die Vorteile derselben sind, bis man wieder mit kommerzieller Software in Kontakt kommt. Heute ein Posting zur Erinnerung an Vorteile freier Software aus einer Sicht, wie sie ein normaler PC-Anwender hätte.

(Date/Datum: 080812-14:27, Hits: 3710) Ich werde mich kurzfassen um langweilige Ausführungen zu vermeiden (es wird eh genug Text geben), dieses Posting richtet sich vorallendingen an den normalen Windowsbenutzer und stellt freie Software über dessen Vorteile vor. Natürlich gibt es auch Nachteile (manchmal fehlender Support, wobei es ja für wichtige Software auch kommerziellen Support gibt), aber diese sind meines Erachtens nach nicht sonderlich groß (besonders nicht für Privatanwender).
1. Vorteil: Kosten werden gespart. Auf dieses Postingthema bin ich gekommen, da ich heute den Ubuntu-Linux-Rechner meiner Eltern auf die aktuelle Version update. Man kann sich dies Vorstellen wie ein Update von Windows XP auf Windows Vista. Nur mit einem entscheidenen Unterschied: Es kostet nichts! Man hat sich also analog das Geld für Windows Vista gespart? Ja, aber man hat sich auch das Geld für Windows XP gespart! Würden öffentliche Einrichtungen und Firmen noch mehr, als bisher, auf freie Software setzen, würden unglaubliche Geldmengen eingespart werden. Zum Glück verwenden bereits viele Einrichtungen freie Software.
2. Vorteil: Featurereichtum und Vielfalt freier Software. Freie Software bietet mittlerweile derartig viele Features, dass sie den kommerziellen Produkten oft nicht mehr nachstehen bzw. sie sogar übertrumpfen. Man denke an freie Software wie den Firefox-Browser (Kommerzielles-Gegenstück: Internet-Explorer) oder das Mailprogramm Mozilla Thunderbird (Kommerzielles-Gegenstück: Outlook Express) bzw. das Mailprogramm Evolution für Linux (Kommerzielles Gegenstück: Microsoft Outlook und andere). Auch ganze Office-Umgebungen wie OpenOffice.org oder KOffice, die von der Textverarbeitung über Tabellenkalkulation und Datenbanksoftware bis hin zur Präsentationssoftware in jeglicher Hinsicht mit Programmen wie Microsoft Office Word/Excel/Powerpoint/... vergleichbar sind. Auch Desktop-Publishing Software wie Scribus oder das Grafikprogramm GIMP (Kommerzielles Gegenstück: Adobe Photoshop) sind sehr ausgereift. Man denke auch hier wieder an Vorteil #1: Kosten-Ersparnis! Auch im Unternehmensbereich, etwa bei Serveranwendungen wie Webservern, Datenbanksystemen etc. stellt freie Software hochqualitative Gegenstücke bereit. Unser Unternehmen etwa benutzt ausschließlich freie Software (LAMP+Exim+...) und spart damit hohe Lizenzkosten! Übrigens stehen die grafischen Oberflächen, die etwa Linuxsysteme mit sich bringen, in Punkto Benutzerfreundlichkeit und Grafikeffekte Oberflächen wie der von Mac OS X oder Windows Vista in nichts nach! Videos davon kann man sich hier (3D Effekte, Transparenz usw.), hier (ebenso) und hier (zeigt den KDE-Desktop in der aktuellen Version 4.1) ansehen.
3. Vorteil: Freiheit. Wer heute Windows Vista kauft, der kauft nur eine Lizenz des Produkts, er darf sein Vista nur auf einem Rechner installieren, hat Beschränkungen bzgl. der Anzahl der Prozesssoren, Hauptspeichermenge, der gleichzeitig auf dem System arbeitenden Benutzer usw. Wenn man stattdessen Linux oder *BSD verwendet, hat man dieses Problem (zumindest mit Ausnahme bestimmter kommerzieller Supportverträge, die für Heimanwender und auch einen Teil der Firmen nicht von Belang sind) nicht. Egal, ob man das Linux-System 1x oder 1000x installiert hat und ob man es auf einem Heimrechner mit einem CPU und 1 GB Hauptspeicher installiert, auf Server mit 4 CPUs und 64 GB Hauptspeicher und 20.000 Benutzern, oder ob man es auf einem Supercomputer installiert: Man darf es tun und man kann damit machen was man will! Apropos Supercomputer: Es gibt eine aktuelle Liste der 500 schnellsten Supercomputer, die derzeit existieren. Davon werden 427 (!), das sind 85.4%, mit Linux betrieben! Fünf hingegen werden mit Windows betrieben.
4. Vorteil: Update für alles! Linux-Distributionen verwenden Paketmanager. Vergleicht man dies mit Windows, sieht man, dass Windows auch über einen Updatemanager verfügt. Dieser updated allerdings nur die Programme von Microsoft, die zum Windows-System gehören. Alle anderen Anbieter verwenden entweder einen eigenen Updatemanager oder gar keinen! Der Vorteil der Paketmanager unter Linux (und ähnlichen freien Betriebssystemen) ist, dass generell alles updated wird. Das heißt, dass bei einem Update mit wenigen Klicks neue Versionen für alles vom Betriebssystemkern hin bis zum Browser auf neue Versionen hin überprüft und ggf. aktualisiert wird!
Weitere Vorteile. Es gibt noch zahlreiche weitere Vorteile, etwa den offenen Quellcode oder die unzähligen freien Entwicklertools, aber diese Vorteile sind für Heimanwender in der Regel nicht so sehr von Belang, weshalb ich sie hier nicht aufführen werde.
Nachteile für Heimanwender: Zunächst einmal muss man sich an das neue System gewöhnen. Ich finde aber, dass die Vorteile klar überzeugen und die Gewöhnung auch viel Spaß machen kann. Ein weiterer Nachteil (und das ist wohl der größte) ist, dass Windows-Programme nicht einfach auf Linux lauffähig sind. Zwar gibt es viele Programme, die auf beiden Betriebssystemen laufen (etwa Firefox oder OpenOffice.org), aber man kann eben keine .exe-Dateien ausführen und die meisten Computerspiele gibt es nach wie vor nur für Windows. Dies wird aber nicht ewig so bleiben und ändert sich langsam.
Links. Wem ich freie Software nun schmackhaft machen konnte, dem kann ich empfehlen, eine der aktuellen Linux-Distributionen herunterzuladen. Und sich die folgenden Links anzusehen.

Kommentare:
Von: Sebastian
Ieks. :-/ Nettes Posting, aber... du verwechselst Freie Software mit OpenSource hier mehrfach.

Bei 1. Kosten gehst du davon aus, dass es kostenfrei für dich ist. Dies ist bei FreeSoftware nicht immer der Fall: you should think of free as in free speech, not as in free beer , http://www.gnu.org/philosophy/free-sw.html

Bei 2. Featurereichtum zählst du auch einige Software auf - jede davon ist sicher OpenSource, bei FreeSoftware würde ich das nicht behaupten. Ausserdem ist bei der Behauptung, dass GIMP brauchbar und ein echter Photoshop-Ersatz ist, sehr viel Spielraum. Ich habe schon Menschen Stunden lang darüber sich streiten hören. Es kommt immer auf die Anforderungen der Leute an.

Bei 4. Updatefreiheit - Naja. Wenn du dir ThirdParty-Software unter GNU/Linux installierst, hast du dafür auch kein Updatesupport und so ist s halt auch bei Windows. Aber ja, die Paketmanager machen einem das Leben schon leichter, mal mehr und mal weniger .oO(Slackwares Packetmanager würde ich auch nicht als grossen Vorteil gegenüber einem Windows empfehlen). Und für MacOS X gibt s bspw. auch brauchbare Programme, was nebenen deiner Softwareaktualisierung für den Apple-Teil auch ThirdParties abklappert und nach Updates automagisch sucht. Also auch dort ist nicht kommerziell gleich kommerziel gleich schlechter als (vermeindlich) frei.

Bei Nachteile sollte man wirklich eine längere Migrationsphase anführen. Man sollte sich an OpenSource-Software langsam gewöhnen. Auf Windows schonmal OpenOffice und Firefox probieren und so stückweise den Absprung schaffen.



Sieh s bitte nicht als Kritik von mir, ist mir blos so aufgefallen beim Durchlesen. :-)

____
Von: Steffen
Zur Verwechslung: Wikipedia sagt: "In der eigentlichen Bedeutung unterscheidet sich die Open-Source-Definition nicht von freier Software. Der Begriff Open Source Software scheint aber mit der Betonung der Überlegenheit des Entwicklungsprozesses (siehe The Cathedral and the Bazaar von Eric Steven Raymond) eher die Entwicklersicht wiederzugeben, während der Begriff Freie Software den Nutzen für den Anwender und die Gesellschaft heraushebt."; Zu den Kosten: Die meiste (besonders die allgemeinwichtige) freie/open source-Software ist gratis. Das man auch Geld verlangen kann, würde (das Posting richtet sich an normale PC-Nutzer und Anfänger) hier ehr für Verwirrung sorgen, fürchte ich. Zum Thema Slackware hast Du auch meine volle Zustimmung. Da habe ich mich bereits hier zu ausgelassen: http://steffen-wendzel.blogspot.com/2011/02/slackware-will-never-die-teil-1-und-2.html
____
Von: Sebastian
Ah. Den Slackware-Artikel kannte ich noch nicht. Aber erstaunlich wie gut du es dennoch da stehen lässt. ;-)
Naja. Distributionen sind eh reine Geschmackssache finde ich.

____
Von: Rainer
Dein Posting spricht mich sehr an. Seit nunmehr 15 Jahren ausschließlich mit Windows-Systemen beruflich befasst, entdecke ich nun Linux für mich.

Ich habe vor wenigen Wochen auf einem IBM Thinkpad A31 OpenSuse 11 installiert, und bin nach den ersten Versuchen und Tests begeistert über dieses System. OpenSuse läuft auch auf einem älteren System sehr gut.

Ich bin mir klar, dass für den Anfang eine harte Einarbeitungszeit vor mir steht, um auch die Tiefen des Systems kennenzulernen. Doch bei Windows war dies noch nie anders, wenn ein Nachfolger in Sicht kam.

Linux macht viel mehr Spaß.

Mehrere Versuche, mich an Vista zu gewöhnen, sind gescheitert.

Nun also Linux. Auf der Systems habe ich zudem die aktuellen Notebookmodelle von Mac in der gebotenen Kürze der Zeit inspiziert und war von der Genialität des Betriebssystems und der Standardprogramme begeistert.

Für die Zukunft denke ich an einen Wechsel in meinem privaten Arbeitszimmer zu Apples MacBook.

PHP Registrierungen

Wie erstellt man eigentlich eine vernünftige Registrierung in PHP?

(Date/Datum: 080706-23:11, Hits: 4621) Ziel soll es für dieses Posting sein, ein vorhandenes Registrierformular so zu verändern, dass eine Überprüfung der Mailadresse durchgeführt werden kann. Aus der Sicht des Benutzers läuft es dabei üblicher Weise folgendermaßen ab:

1. Der Benutzer registriert sich und gibt dabei seine Mailadresse an.
2. Der Benutzer erhält eine Mail mit einem Bestätigungslink zum anklicken.
3. Der Benutzer klickt den Link an und dadurch wird sein Account aktiviert.
4. Die Mailadresse ist damit automatisch verifiziert und der Benutzer darf sich einloggen.

Hier also eine Kochanleitung:

Gegeben seine Datenbank im Hintergrund. Dann gibt es sicherlich eine Tabelle mit Benutzern. Dieser Tabelle fügt man zunächst ein Flag reg_sf (das steht für registration_successful) hinzu. Nachdem ein Benutzer sich registriert, wird in diesem Flag zunächst eine '0' oder ein 'n' eingetragen, was bedeutet, dass der Account noch nicht aktiviert wurde.

Zeitgleich wird in einer neuen Tabelle, ich nenne sie authkeys, ein Aktivierungscode für den Benutzer hinterlegt. In der Tabelle muss eigentlich nur die User-ID und der Authentifizerungs-Key (den der Benutzer per Mail bekommt) eingetragen werden.

Den Authentifizerungskey muss man zunächst erzeugen, dann in die Datenbank eintragen und anschließend dem Benutzer (in Linkform) per Mail schicken. Erzeugen lässt sich ein solcher Key etwa mit einer Hashfunktion (160 Bit oder mehr sollten es mindestens sein!). Dazu kann man nun verschiedene Attribute des Users (die dann aber einzigartig sein müssen!), die Zeit, Zufallszeichen etc. in einem String kombinieren. Einfach angewandt würde dies etwa so aussehen:

Erzeugung des Hashwertes:

$sha1key = sha1($username."ewfwoengerugberig43t34wg".
$password.$vorname.'abcd43ghe3gh349gherughergerg'.time());

Eintragen des Keys in die Datenbank:

/* Hier sollte man noch sicherheitshalber einige Sonderzeichen rausfiltern,
* aber das gilt ja für praktisch alle Inputs, die man in PHP bekommt.
* Dazu werde ich vielleicht in einem Posting etwas schreiben, aber google
* weiß auch Rat!
*/
$sqlcmd = "INSERT INTO authkeys (uid,authkey) values ";
$sqlcmd .= "(".mysql_real_escape_string($uid).", ".$sha1key.");";
if (!($res = mysql_query($sqlcmd))) {
die('Invalid MySQL query');
}

Nachdem der Key mit einem INSERT in die Datenbank übertragen wurde, wird der User nun noch (am besten via HTML-Mail zum "draufklicken") informiert. Wie das geht, erfährt man hier. Der Link hat dann die Form eines typischen PHP-Links, etwa http://meineseite.xyz/?sub=aktivierung&user=maxmuster&authkey=94jg34ng3904ugn34gn34g.

Jetzt fehlt noch die Aktivierungsseite (also die Seite, auf die der Benutzer in seiner Mail klickt). Diese Seite prüft, ob der Aktivierungsschlüssel für den Benutzer existiert. Ist dem so, dann werden noch folgende Schritte durchgeführt:

1. Das reg_sf-Flag für den Benutzer wird auf 'y' bzw. '1' gesetzt.
2. Das Tupel (User-ID, Authentifizerungs-Key) wird aus der authkeys-Tabelle gelöscht.

Account aktivieren und Benutzer löschen:

UPDATE `users` SET `reg_sf`='y' WHERE `uid`='...' AND ...;
DELETE FROM `authkeys` WHERE `uid`='...' AND `authkey`='...';

Nun ist man fast fertig. Aber eine Sache fehlt noch: Der Code hinter einem Login-Formular muss dahingehend modifiziert werden, dass er beim Login von nun an das Flag reg_sf überprüft.

Modifizierung des Login-SQL-Befehls:

SELECT COUNT(*) FROM `users` WHERE `username`='...' AND `password`='...' and `reg_sf`='y'

Man sollte an dieser Stelle aber bei einer Produktivseite auf GAR KEINEN Fall vergessen, dass alle bisherigen Benutzer keine aktivierten Accounts haben. In diesem Fall ist es sinnvoll, das reg_sf-Flag für alle alten Benutzer auf 'y' zu setzen. (Das ist dann die Bestrafung dafür, dass man nicht gleich eine entsprechende Funktion implementiert hat ;-))

Feedback und Fragen sind von mir wie immer ausdrücklich erwünscht!