Warnung vor der WCM-Linux-Box (Version 2) - Teil 2
Soda, die PDFs sind online, Fehler wurden nicht ausgebessert, Errata gibt es auch keines und auch das Netzwerkkabel wurde noch immer nicht eingesteckt. Das sind die Voraussetzungen für meinen zweiten Blick auf die WCM-Linux-Box. Teil 1 hab ich ja schon im Februar gepostet.
WCM 244 – Wie heißt du?
Hurra, wir konfigureren wieder einmal das Netzwerk, diesmal das DNS. Auf einen bestimmten Editor lässt sich der Autor diesmal nicht ein, er „editiert” einfach nur. Warum wir für einen kleinen Heimserver den bind9 brauchen, wird uns auch nicht erklärt – für einen kleinen Server gäbe es genug Alternativen.Korrekterweise führt der Autor an, dass man auch die DNS-Server des Provifers eintragen muss, allerdings weist er nicht darauf hin, dass die beiden angeführten Server nur als Beispiel dienen.
Übrigens der Eintrag notify no; verhindert, dass unser DNSServer Informationen unseres lokalen Netzes an externe DNS-Server weiter gibt.
Wenn man über eine ordentlich konfigurierte Firewall verfügen würde, wäre das auch ohne diesem Eintrag kein Problem, aber eine vernünftige Firewall haben wir ja bis jetzt nicht eingerichtet. Andererseist – das war ja bis jetzt auch noch nicht notwendig, das Netzwerkkabel ist ja noch ausgesteckt.
Wie sie sicher schon bemerkt haben, sind Strichpunkte an jedem Zeilenende nicht von Nachteil. Teilweise sind diese sogar unbedingt erforderlich!
Na so ein Scherzkekserl!
Übrigens – kann mir jemand erklären, warum die lokale DNS-Domain „testserver1.at” heißt? Vor allem, dass irgends erklärt wird, warum dem so ist und was der Unterschied zwischen dem Domoain udn dem Hostnamen ist. Für ein internes Netzwerk würde sich ja die TLD „.local” anbieten – das wissen sogar MCSEs.
Sie können ihn jetzt mit host testserver1.at befragen. Unser DNS sollte mit testserver1.at has address 192.168.123.1 richtig antworten.
Das glaub ich nicht, Tim. Nachdem der Server debian.testerver1.at heitß, wird die Abfrage nur einen Fehler zurückliefern.
Alles in allem bekommt man bei diesem Artikel den Eindruck, dass der Autor nicht wirklich weiß, was er da tut – vor allem, was Umsetzung der Theorie in die Praxis betrifft.
WCM 244 - Warum der Indianer der verbreitetste seiner Art ist
1) „Marktanteil” schreibt man groß – auch im Einleitungstext
2) „Vor der Installation bringen wir die Paketlisten des Paketmanagers apt dur apt-get update auf den letzten Stand.”. Kann mir wer diesen Satz ausdeutschen?
Hurra, beim Apache dürfen wir wieder den pico-Editor verwenden! :)
Aber warum muss man für ein kleines heim-Netzwerk den MAXClients Wert erhöhen ????
Wir manipulieren nicht die Datei httpd.conf im selben Verzeichnis, sondern erstellen eine eigene Konfigurationsdatei im bereits vorhanden Unterverzeichnis sites-enabled.
Tja, es wäre schon nett gewesen, wenn der Autor die Datei „/usr/share/doc/apache2/README.etc” gelesen hätte. dort steht nämlich:
sites-available/ Like mods-available/, except it contains configuration directives for different virtual hosts that might be used with apache2. Note that the hostname doesn't have to correspond exactly with the filename. 'default' is the default host. sites-enabled/ Similar in functionality to mods-enabled/, sites-enabled contains symlinks to sites in sites-available/ that the admnistrator wishes to enable.
Also: Die Datei ins sites-available hinein und dann im sites-enabled nur einen symlink auf die Datei!
ServerAdmin admin@testserver1.at gehört zum guten Ton bei der Installation. Treten bei der Darstellung Ihrer Seiten Probleme auf, wird auf den Fehlerseiten diese Email-Adresse angeben.
Nach RFC 2142 sollte die Adresse „webmaster@example.com” angegeben werden.
Außerdem erreichen wir durch HostnamesLookup off dass der Server auf keinen Fall den Hostnamen des anfragenden Clients ermitteln will. Sie sollten diese Option unbedingt setzen, um unnötige DNS-Abfragen zu verhindern.
Der Zusatz „…, weil dies die Performance des Webserver neagtiv beeinflusst” wäre hier nicht schlecht gewesen.
WCM 245 - Die Linux-Box lernt Samba
Mit einigen wenigen heißen Tanzschritten kann die WCM-Linux-Box anderen Rechnern im Netz als zentraler Massenspeicher dienen. Samba, das Fileserver-Paket der freien Entwicklergemeinde, verhilft unserer Box zu neuen Einsatzmöglichkeiten.Dass Samba primär dazu dient, Windows-Rechner anzubinden, braucht hier ja nicht erwähnt werden. Für Unix wäre NFS das „korrekte” Protokoll. Und mit Tanzschritten kommt man nicht sehr weit, ausser man hat sehr kleine Füße und kann auf der Tastatur tanzen.
OK, im ersten Absatz kommen dann sogar NFS und AppleTalk zur Erwähnung. Und es wird dann auch gleich ein NFS-Server aufgesetzt. Warum aber der nfs-kernel-server und nicht der nfs-user-server eingesetzt wird, erklärt der Autor leider nicht. Dass man eventuell auch den portmap-Dienst nachinstallieren muss und was der eigentlich macht – weil erwähnt wird er – verrät uns der Autor leider auch nicht. hosts.allow und hosts.deny werden auch erwähnt, für eine Beispiel-Konfig und Details soll der User aber selber Manpages, etc. lesen.
Damit auch MacIntosh-Clients an der Datenvielfalt teilhaben können, benötigen wir das Paket netatalk.
Das ist nicht korrekt, wie man auf der Apple-Homepage nachlesen kann: „Mac OS X can talk to the most popular file server protocols on every major server platform in the market today including AFP, SMB/CIFS, WebDAV and NFS file services running on Mac OS X Server, AppleShare, UNIX, Linux, Novell NetWare and Windows NT, 2000 and XP servers.”. Es besteht also kein Grund, für einen Apple-PC extra AppleTalk auf dem Server zu unstallieren.
Bei NFS und AppleTalk sind mir allerdings zwei Sätze aufgefallen:
Es ist also nötig, den User des zugreifenden Clients auch am Server angelegt zu haben.
…
Wir schreiben ans Ende der Datei /etc/netatalk/ AppleVolumes.default die Zeile /Apple Delicious allow:@wcm wodurch wir das Verzeichnis /Apple unter dem Namen Delicious für alle Benutzer die in der Linux-Benutzergruppe wcm zugänglich machen.
1) Wo kommt die Gruppe „wcm” her und wie befüllt man die?
2) In WCM 243 wurde die nicht vorhandene Erklärung, wie man Benutzer und Gruppen pflegt mit den Worten „ Wir werden in Zukunft aus Sicherheitsgründen auf eine datenbankbasierende Alternative setzten, die das unter Windows übliche ActiveDirectory vorerst ersetzen soll.” beendet. Auf diese Lösung warten wir immer noch. Na schaun wir mal, wann das kommt.
Das NetBIOS, ein von IBM entwickeltes Protokoll,
BEEP! Leider falsch, danke fürs Mitspielen. NetBIOS wurde 1983 bei der Firma Sytec, Inc. im Auftrag von IBM entwickelt.
Hmmm, da wird der dhcpd3 installiert, aber wir setzten ja gar ein DHCP ein – verwirrt bin. ;)
Interessant ist auch, dass ein ganzer Absatz der ohnehin korrekten Einstellung von /etc/services gewidtmet wird, der (ich denke schon) installierten Firewall aber nicht mal eine Zeile – und der Netzwerkstecker ist auch noch nicht eingesteckt.
Wir legen auf der Konsole testweise das Verzeichnis WCM-FREI an (mkdir /WCMFREI) und geben dieses bei SWAT bei path an.
MAN LEGT UNTER UNIX/LINUX KEINE VERZEICHNISSE IM ROOT AN !!! Dafür gibt es /var, /tmp oder /opt, je nach Einsatzzweck des Verzeichnisses. ARGL!
Und welches verzeichnis legen wir nun an? „WCM-FREI” oder „WCMFREI”?
WCM 246 - Die WCM Linux-Box lernt DHCP
Wir sind auf einer Konsole als root angemeldet und setzen apt-get install dhcp3-server ab.
Hmm. Haben wir den nicht schon in der letzten Ausgabe zusammen mit dem Samba-Server installiert? ;)
Und überhaupt diese WINS-Geschichte, auch schon in der letzten Ausgabe. Das wird doch nur noch in alten Netzen benutzt. Das ist eigentlich keiner Erwähnung mehr wert. Selbst Microsoft hat das schon vor Jahren als „deprecated” bezeichnet.
„Option” schreibt man normalerweise groß.
Meldet sich das Gerät innerhalb der 48 Stunden erneut im Netz an, gibt ihm der Server wieder die selbe IP. Weitaus eleganter und sicherer lässt sich dies über die Funktion host clientname erreichen.
Warum? Beides ist gleich unsicher und einfach zu fälschen.
WCM 246 - Wie PHP und MySQL sich gegenseitig schätzen lernen
Zur Installation von PHP begeben wir uns an ein Terminal, melden uns als root an und führen apt-get install libapache2-modphp5 aus. Daraufhin installiert apt die PHP-Version 5 für Apache2 auf der Debian-Box. Ab sofort ist Apache2 in der Lage PHP-Skripte zu interpretieren.
Hmm, da dürfte der Autor dieser Zeilen wohl seinen Artikel im Heft #244 nicht gelesen haben, weil dort heißt es:
nschließend installieren wir auf unserer Maschine durch
apt-get install apache2-common apache2-utils libapache2-mod-php5 libapache2-mod-auth-mysql libapache2- webauth libapache2-mod-authpam
den Webserver Apache 2, dazugehörige Werkezuge, die PHP5-Erweiterung, eine Erweiterung die es erlaubt sich über eine MySQL-Datenbank an passwortgeschützten Seiten anzumelden und schlussendlich zwei Erweiterungen für andere Authentifizierungsarten. apt wird melden,
Ein Satz mit X: „Das war wohl nix!”
Wir verlinken diesen Ordner in das Verzeichnis das wir in der virtuellen Host-Datei (/etc/apache2/ sites-enabled/) von Apache2 freigegeben haben (Beispiel aus der vorletzten WCM: /var/www/ server1/). Den Softlink stellen wir durch ln s /usr/share/phpmyadmin /var/www/server1/phpmyadmin her.
Wie schon beim Apache-Artikel angeführt: Das entspricht nicht den Debian-Regeln. Wenn, dann muss ins Verzeichns sites-available gelinkt werden.
Wir legen unser HTML-File mit unserem Standardeditor pico direkt auf der WCM-Box an. pico /var/www/server1/index. html legt die Datei index.html ins Stammverzeichnis des Apache2.
Schade nur, dass die HTML-Datei, die man hier erstellen soll, nirgendwo abgedruckt ist. Aber der technikinteressierte, aber ev. noch unwissende Leser, der ja zur Zielgruppe dieses Artikels gehört, wird das notwendige HTML schon aus dem abgedruckten PHP-Script ableiten können.
Womit wir auch schon bei der nächsten Katastrophe wären, dem PHP-Script. Schaut Euch mal folgende Zeilen an:
//Befehlssatz für Daten in die Tabelle Benutzer schreiben $sql = INSERT INTO Benutzer VALUES ( {$_SESSION[vorname]}, {$_SESSION[nachname]}, {$_SESSION[username]}, {$_SESSION[email]} ); //Werte schreiben mysql_query ($sql) or die (Leider ist ein Fehler aufgetreten: . mysql_error());
Fällt Euch was auf? Ich meine abgesehen von den fehlerhaften Formatierung die verhindert, dass das SQL-Kommando jemals abgesendet wird?
RICHTIG! Die aus dem HTML-Formular übergebenen Variablen werden OHNE Überprüfung direkt an die SQL-Engine übergeben. Kann jemand „SQL-Injection” buchstabieren?
Traurig. traurig. Ich mein, für Demo-Zwecke kann man das schon machen, aber man sollte zumindest darauf hinweisen.
Die abschließenden Zeilen des Artikels wirken das fast wie ein Hohn:
Diese Datenbank werden wir so weit ausbauen, dass wir die meisten Dienste ohne Systemuser betreiben können. Je weniger Benutzer sich direkte an der Box anmelden können, desto wenige laufen wir Gefahr, dass jemand schädlichen Code ins System einschleusen kann. Ein Sicherheitsgewinn, den wir uns mit wenig Aufwand erstellen können.
Soda, das wars für diese Ausgabe. In der nächsten Folge widmen wir uns dem E-Mail Server. Meinem ersten Eindruck nach ein besonderes Schmankerl.
Tagged as: mITtendrin, rant | Author: Martin Leyrer
[Sonntag, 20060409, 18:39 | permanent link | 0 Kommentar(e)
Comments are closed for this story.