Upline: Infos & Dokus
Administration
Linux
NIS und NFS Server und Clients einrichten unter Debian Sarge 3.1Hinweis: Das hier ist eine noch nicht abschließend ausformulierte Lösung zu einer Aufgabe des Faches Rechnernetze/Netzmanagement im Studiengang Informationstechnik Vernetzte Systeme an der FHTW Berlin im WS2005. Es fehlen ein paar Kleinigkeiten zum Apache und es gab Probleme mit dem NFS-Server. Das muss noch mal etwas überarbeitet werden - daher habe ich die Systeme auch noch @home herumzuliegen, kommt also demnächst noch ... Diese Anleitung läßt sich mit Sicherheit auch für andere Linux-/Unix-Derivate wie z.B. SuSE Linux, Redhat Linux oder Mandrake Linux verwenden, da könnten sich allerdings einige Dateien anders nennen oder die Einstellungen und Verzeichnisse (z.B. vom Apache) sind irgendwie anders untergebracht. ServerinstallationVorbereitungAls erstes installiert man die notwendigen Pakete und ein wenig Zubehör.apt-get install vim lynx nfs-kernel-server nis apache2 php4 libapache2-mod-php4 php4-cli vsftpdDer Speaker nervte auf dem einen Board extrem, daher die Zeile, die man auch unter Anpassungsarbeiten nach Linux-Neuinstallation findet, um die Frequenz und Tonlänge runterzustellen. echo 'echo -e "\\33[10;50]\\33[11;10]"'>>/etc/profile Einrichtung für NIS und NFS/etc/hostsDa kein Nameserver vorhanden ist, müssen der Servername und die Domain in der hosts-Datei hinterlegt werden. Man kann zusätzlich auch die IPs weiterer Server oder Clients aufnehmen. Dies macht natürlich nur Sinn, wenn feste IPs verwendet werden. Die Angabe der lokalen festen IP ist nicht notwendig, die bereits vorhandene 127er Zeile sollte man sicherheitshalber aus Kompatibilitätsgründen für diverse Software drin lassen. Die 2. Zeile trägt somit nur weitere Aliase zum Debian-Standardnamen localhost.localdomain ein.127.0.0.1 localhost.localdomain localhost 127.0.0.1 tbird1800.proteino.local TBird1800 /etc/network/interfacesBei einem Server ist es sehr sinnvoll, diesem eine feste IP zu geben und die dhcp-Voreinstellung auszukommentiern.auto eth0 #iface eth0 inet dhcp iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 /etc/default/nisNISSERVER=true NISCLIENT=false /etc/exports/home 192.168.1.0/24(rw,async) /usr/local/share 192.168.1.0/24(r,async) /etc/ypserv.conf (Standardeinstellung bei Debian 3.1 Sarge)* : * : shadow.byname : port * : * : passwd.adjunct.byname : port * : * : * : noneWenn in der /etc/hosts bereits die Domain eingetragen wurde, so übernimmt Debian 3.1 Sarge diese als Defaultdomain für NIS. /etc/defaultdomainproteino.local /etc/passwdlxuser GID auf 100 (users) setzen -> Ziel ist es in diesem Fall, alle User in der gleichen Gruppe mit der Group ID 100 zu haben.Linux User hinzufügenuseradd lxuser1 -m -p password -g 100 -s /bin/bash useradd lxuser2 -m -p password -g 100 -s /bin/bash NIS (Yellow Pages) initialisieren/usr/lib/yp/ypinit -mSoweit ich das mitbekommen habe, muß man diesen Befehl auf jeden Fall Wiederholen, wenn sich an den Server-IPs etwas geändert hat, man neue Server hinzufügt usw. Nicht sicher bin ich mir, ob dies evtl. auch nötig ist, wenn ein neuer User hinzugefügt wird - das könnte ein temporäres Prob bei mir gewesen sein, muß ich noch mal überprüfen ... Apache2Haß-Installation und Konfiguration, da war mal wieder alles anders, als in sämtlichen Dokus im Netz beschrieben - irgendwann lief's trotzdem inkl. php .../etc/apache2/sites-available/defaultfolgende Zeile auskommentieren:# RedirectMatch ^/$ /apache2-default/diverse weitere Dateien angegrabbelt und drin rumgefummelt ... FTP-Server einrichten (vsftpd)/etc/vsftpd.conffolgende Zeilen anpassen:anonymous_enable=NO local_enable=YES ftpd_banner=Welcome to unknown FTP service ;) chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list write_enable=YES local_umask=022Da hier das chroot_list_file aktiviert wurde, benötigt man natürlich auch die entsprechende Datei dazu: touch /etc/vsftpd.chroot_listBei Bedarf kann man dann hier alles eintragen, was sich NICHT anmelden darf. Eigene Web-Verzeichnisse für User einrichtenDamit jeder User seine eigene Miniseite betreiben kann, ohne dafür Zugriff auf das Apache-Verzeichnis /var/www zu bekommen, werden entsprechende Verzeichnisse im /home des Users eingerichtet und per Softlink im Apache-Verzeichnis verfügbar gemacht. Folgende Befehle sind für die 3 User notwendig:su - lxuser mkdir www vi www/index.html <- Inhalte reinhämmern exit su - lxuser1 mkdir www cp ../lxuser/www/index.html www/ vi www/index.html <- Inhalte anpassen exit su - lxuser2 mkdir www cp ../lxuser/www/index.html www/ vi www/index.html <- Inhalte anpassen exit ln -s /var/www/lxuser /home/lxuser/www ln -s /var/www/lxuser1 /home/lxuser1/www ln -s /var/www/lxuser2 /home/lxuser2/wwwAnschließend legt man eine /var/www/index.html mit Verknüpfungen zur Mainpage (z.B. index.php) sowie zu lxuser, lxuser1 und lxuser2 an. Wenn man im Apache die Einstellung zur Suche nach der Startseite in der richtigen Reihenfolge hat, so wird auch bei vorhandener index.php zuerst die index.html aufgerufen, so wie es in diesem Fall sinnvoll ist. Zum Schluß kopiert man die Inhalte des Webservers z.B. per WinSCP auf den Server rüber und beachtet dabei, daß bereits eine index.html besteht. Letzte SchritteRestarten der Serverdienste portmap, nfs, nis, vsftpd, apache2 und hoffen, daß alles funktioniert ;)ClientinstallationDiese Installation läuft in einigen Punkten analog zur Serverinstallation, daher fehlen hier die entsprechenden Kommentare.apt-get install vim lynx nis /etc/hosts127.0.0.1 localhost.localdomain localhost 127.0.0.1 katmai616.proteino.local katmai616 Katmai616 192.168.1.100 tbird1800.proteino.local /etc/defaultdomainproteino.local /etc/nsswitch.confDiese Datei erhält ihren Namen aus der Abkürzung von Name Service Switch Configuration File, dort liegen die Informationen darüber, ob und wo Alternativen zu den lokalen Textdaten gefunden werden können. Die Voreinstellungen bei Debian sind bereits korrekt, die für nis wichtigen Zeilen sind fett markiert.passwd: compat group: compat shadow: compat hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis /etc/yp.confServer-Name oder -IP eintragen, Name wird z.B. über /etc/hosts aufgelöstypserver tbird1800.proteino.local /etc/passwdIn dieser und den folgenden folgende Dateien muss als letzte Zeile ein + gefolgt von Doppelpunkten eintragen werden. Die Anzahl der Doppelpunkte ergibt sich aus den jeweils in der Datei üblichen Anzahl von Datenfeldern pro Zeile.+:::::: /etc/group+::: /etc/shadow+:::::::: /etc/gshadow+::: /etc/fstabEinbinden des home-Verzeichnisses:tbird1800.proteino.local:/home /home nfs rsize=8192,wsize=8192,hard,intr 0 0 tbird1800.proteino.local:/usr/local/share /usr/local/share nfs rsize=8192,wsize=8192,hard,intr 0 0Falls home-Verz. nicht sauber gemappt werden, entweder Portmapper weiter nach hinten in der Startreihenfolge verschieben oder in alle wichtigen Runleveln (also 2, 3 und 5) Startscripte für den nfs-Mounter wie folgt einbinden: /etc/rc.3ln -s ../init.d/mountnfs.sh S90mountnfs.shHinweis: Debian 3.1 Sarge hat in der /etc/inittab als Standardrunlevel die 2 drin! im Runlevel 1 muß das Killscript relativ früh rein, also z.B. als K15. /etc/rc.1ln -s ../init.d/mountnfs.sh K15mountnfs.sh Testsverwendete Rechner: Server 192.168.1.100, Client 192.168.1.13, Win-Möhre 192.168.1.10 Einloggen der User auf Server, Client (überprüfen, ob /home verfügbar ist) und von Win-Möhre per ftp mit lynx vom Server, Client und mit anderem Browser von Win-Möhre aus die Webseiten des Servers überprüfenErgebnisDer Portmapper auf meinem NFS-Server spinnt ein bissel herum. Manchmal gibt er beide Verzeichnisse nicht raus, manchmal nur eins, oft klappen aber beide. Der Fehler hat mich einige Stunden gekostet: Ergebnis war, dass ich ihn trotzdem nicht los wurde. Sämtliche Konfigurationen waren korrekt, auch die Startzeiten waren nicht der Grund für die gelegentlichen Fehler. Vermutlich könnten neuere Verionen (Kernel ist z.B. noch auf 2.6.8) weiterhelfen. Entsprechende Tests mache ich noch ... |