Daten- und Rechnernetze Labor-Versuch - TI 2000
Transcrição
Daten- und Rechnernetze Labor-Versuch - TI 2000
Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler FHTW Berlin Fachbereich 1 Technische Informatik, D5TI Daten- und Rechnernetze Labor-Versuch SAMBA Fileserver unter Linux Versuchsprotokoll Versuchstermin: 09.10.2002 zusätzlich: 10./14.10.2002 Abgabetermin: 23.10.2002 Gruppe A10 Jens-R. Korth, 377910 Uwe Dettweiler, 366437 1 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler Inhaltsverzeichnis 1 2 Einleitung ............................................................................................................................................................. 3 SAMBA Fileserver............................................................................................................................................... 4 2.1 Die Technik hinter Samba............................................................................................................................ 4 2.2 Vorbereitungen............................................................................................................................................. 4 2.2.1 Beispiel für eine fiktive Firma............................................................................................................ 5 2.3 Versuchsdurchführung................................................................................................................................. 6 2.3.1 Voreinstellungen.................................................................................................................................. 6 2.3.1.1 Erstellen einer Gruppe..................................................................................................................... 6 2.3.1.2 Erstellen eines Users ....................................................................................................................... 6 2.3.1.3 Erstellen eines Verzeichnisses ........................................................................................................ 6 2.3.1.4 Zuordnung und Zugriffsrechte........................................................................................................ 7 2.3.2 Einrichten des SAMBA ....................................................................................................................... 7 2.3.3 Testen des SAMBA.............................................................................................................................. 8 3 Auswertung.........................................................................................................................................................10 4 Anhang ................................................................................................................................................................11 4.1 Printout der Datei <smb.conf>..................................................................................................................11 4.2 Ausschnitt aus der Datei <passwd> ..........................................................................................................12 4.3 Printout des Verzeichnislistings von /home/............................................................................................13 4.4 Printout der Datei <smbpasswd> ..............................................................................................................14 4.5 Ausschnitt aus der Datei <samba.log>......................................................................................................15 2 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 1 Einleitung "Recht häufig ist es notwendig verschiedene Rechner- und Betriebssystemarchitekturen (Plattformen) so miteinander zu verbinden, daß die jeweils zur Verfügung stehenden Ressourcen untereinander genutzt werden können. Jedoch ist es oft so, daß unterschiedliche Betriebssystemarchitekturen unterschiedliche Kommunikationsprotokolle mit sich ziehen, und so eine direkte Verbindung der Systeme ohne Hilfsmittel nicht möglich ist. In den Bereichen der Rechnerkommunikation über ein Netzwerk haben sich verschiedene Systeme zur Ressourcenfreigabe etabliert. Im UNIX-Bereich hat sich zum Beispiel das Network File System (NFS) zur Freigabe von Speicherressourcen durchgesetzt, unter Windows 3.x/95/98/NT hingegen das sogenannte SMB-Protokoll (Server Message Block). Das SMB-Protokoll dient dem Freigabendienst von Windows dazu: Festplatten, Verzeichnisse und Drucker für andere Rechner und Benutzer “freizugeben”, so daß diese die Ressourcen nutzen können. Damit nun auch Benutzer verschiedener Plattformen den Vorteil des “Ressource Sharing” nutzen können müssen Zusatzprogramme die Brücke zwischen den verschiedenen Architekturen schlagen. Eines dieser Programme ist Samba. Samba ist eine Entwicklung, die auf Andrew Tridgell zurückgeht und seit 1991 immer weiter entwickelt wird. Dabei handelt es sich ursprünglich um eine Implementierung des SMBProtokolls für Linux, wurde jedoch bereits auf diverse UNIX-Varianten und andere Plattformen portiert. Nun stellt sich die Frage, warum man Windows-spezifische Techniken auf Linux und nicht UNIX-spezifische auf Windows einsetzen sollte? Dies ist abhängig von der Anwendung. Hinzu kommt noch, daß leistungsfähige NFS-Implementationen für Windows recht teuer sind. Samba hingegen wird unter der GNU General Public Licence (GPL) vertrieben und ist somit, sowohl für den kommerziellen als auch für den privaten Gebrauch, kostenfrei zu erhalten. Auch ist die Leistungsfähigkeit von Samba in den letzten Jahren erheblich gestiegen und mit der Version 2.0 kam die Fähigkeit, daß Samba die Funktion eines Domänen Controllers in einem Windows-Netzwerk übernehmen kann und ist somit einem Windows NT Server annähernd ebenbürtig." (Auszug aus der Versuchanleitung) Dieser Versuch soll zeigen, wie die Konfiguration eines SAMBA Fileservers auf KonsolenEbene erfolgen kann. Dazu wird als Beispiel eine fiktive Firma verwendet. 3 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 2 SAMBA Fileserver 2.1 Die Technik hinter Samba "Normalerweise wird das SMB-Protokoll in einer reinen Windowsumgebung im Zusammenhang mit dem NetBEUI-Protokoll im Layer 3 eingesetzt. Es ist jedoch auch möglich das SMB-Protokoll auf anderen Layer 3-Protokollen zu fahren, zum Beispiel IPX/SPX. Da die meisten UNIX-Varianten NetBEUI nicht beherrschen kommt auf dieser Plattform TCP/IP zum Einsatz. Die Brücke zwischen dem SMB-Protokoll und TCP/IP schlägt das NetBIOS. Das NetBIOS ist auch für die Namensauflösung und die Liste der freigegebenen Ressourcen zuständig. Die Namensauflösung ist nicht mit der von UNIX oder der im Internet zu verwechseln sondern ist völlig unabhängig davon. Die wichtigsten Programme im Samba-Paket sind: - smbd: Hierbei handelt es sich um den eigentlichen Serverdienst, der auf das NetBIOS aufsetzt - nmbd: Stellt das NetBIOS zur Verfügung und kümmert sich um die Namensauflösung - smbclient: Ist ein SMB-Client für UNIX. Mit diesem Programm läßt sich auch die lokale Konfiguration auf einem UNIX-Rechner testen - testparm: Hiermit läßt sich die Konfiguration des SAMBA-Servers testen Des weiteren gibt es eine zentrale Konfigurationsdatei smb.conf in der die freizugebenden Ressourcen und der NetBIOS-Name des Servers verzeichnet sind." (Auszug aus der Versuchsanleitung) 2.2 Vorbereitungen Dieser Fileserver soll auf der SuSE Linux-Distribution aufgesetzt werden. Da Fileserver zumeist in Multiuser-Systemen eingesetzt, sind Zugriffsbeschränkungen auf den gesamten Datenbestand notwendig. Es wird dabei nach drei Kategorien für Daten und Verzeichnisse unterschieden: - Rechte für den Eigentümer - Rechte für die Gruppe - Rechte für "alle Anderen" Für diese drei Gruppen gibt es wiederum drei Rechte, die erteilt werden können: - Ausführungsrecht (x) - Schreibrecht (w) - Leserecht (r) Der Administrator kann den einzelnen Gruppen unabhäng von einander die Rechte zuweisen. 4 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 2.2.1 Beispiel für eine fiktive Firma In der Auftragsbearbeitung einer Firma kann man zwei Gruppen von Angestellten unterscheiden: die Personen (3), die für die Kalkulation zuständig sind, und die Personen (2), die den Kundendienst realisieren. Beide Gruppen sollen mit einem EDV-System ausgestattet werden, bei dem: - jeder Benutzer sein privates Heimatverzeichnis besitzt auf das nur der Benutzer selbst zugreifen kann - jeder Benutzer einer Gruppe zugeordnet ist - jede Gruppe ein Verzeichnis besitzt in das Benutzer diese Gruppe Daten ablegen und austauschen können - die Benutzer einer Gruppe die Daten einer anderen Gruppe besichtigen können, aber nicht verändern dürfen - es ein Verzeichnis (Public) existiert in dem jeder Daten ablegen und besichtigen kann, um z.B. den Datenaustausch mit einer anderen Abteilung zu realisieren. Die graphische Zuordnung der Mitarbeiter zu den Verzeichnissen zeigt Abb.1 Abb. 1 Zuordnung der Mitarbeiter 5 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 2.3 Versuchsdurchführung 2.3.1 Voreinstellungen Wie unter 2.2 erwähnt, ist es notwendig Benutzer (User) und Gruppen zuerstellen, denen ansschließend Verzeichnisse und Zugriffsrechte zugeordnet werden. Die verwendeten Kommandos beziehen sich auf die SuSE Linux Distribution 6.0. 2.3.1.1 Erstellen einer Gruppe Die Benutzergruppe, der die User angehören sollen, wird als erstes erstellt. Dazu wird das Kommando groupadd verwendet. Es wurden die Gruppen 'kalkula' (Kalkulation) und 'kudienst' (Kundendienst) erstellt. Kommando: groupadd kalkula 2.3.1.2 Erstellen eines Users Als Mitarbeiter werden entsprechend 2.2.1 die User Anton, Berta, Clara, Dolli und Emil erstellt. Dazu wird das Kommando useradd mit folgenden Optionen aufgerufen: § -g : Gruppe der der User zugeordnet wird § -d : Homeverzeichnis des Users § -m : Erstelle das Verzeichnis, falls es nicht existiert Kommando: useradd –g kalkula –d /home/anton –m anton Anschließend wird das Linux-Password mit dem Befehl passwd erstellt. Der Einfachheit wegen entspricht das Passwort dem Usernamen. Kommando passwd anton anton anton 2.3.1.3 Erstellen eines Verzeichnisses Die Verzeichnisse der User wurden bereits beim Erstellen der User angelegt und ihnen zugeordnet worden. Es werden nun die Verzeichnisse kalkula, kudienst und public erstellt. Verwendung findet das Kommando mkdir. Kommando: mkdir /home/kalkula 6 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 2.3.1.4 Zuordnung und Zugriffsrechte Nach dem Erstellen von Benutzern, Gruppen, und Verzeichnissen müssen sie einander zugeordnet werden und die entsprechenden Zugriffsrechte gesetzt werden. Der Eigentümer wird über den den Befehl chown festgelegt. Die Zuordnung der Gruppen erfolgt über chgrp. Die Zugriffsrechte auf Dateien und Verzeichnis werden mit chmod gesetzt. Die Codierung erfolgt analog zu Abschnitt 2.2 mit folgenden Oktalzahlen 1 -Ausführungsrecht (x) 2 -Schreibrecht (w) 4 -Leserecht (r) Kommando: chmod 750 /home/kalkula 2.3.2 Einrichten des SAMBA Die Konfiguration des SAMBA erfolgt größtenteils durch die Datei 'smb.conf'. In ihr werden die allgemeinen Einstellungen für den Server und die speziellen für die Zugriffsrechte der User/ Gruppen gesetzt. Das Listing der Datei ist im Anhang ersichtlich. Mit dem Kommando testparm ist es möglich, die Konfiguration zu überprüfen. Werden dabei Fehler oder Unstimmigkeiten erkannt, werden diese gemeldet. Das Aktivieren der geänderten Konfigurationsdatei erfolgt durch eine Restart des Servers mit dem Kommando /sbin/inet.t/smb restart. 7 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 2.3.3 Testen des SAMBA Zum Testen der Funktionalität wurde ein zweiter Rechner mit dem Betriebssystem Windows 98 verwendet. Der Namen des Linus-Rechners ist Marvin. Nach der Anmeldung mit Usernamen 'Anton' und Passwort wurde in der Netzwerkumgebnung des Windows-Rechners unter Fb3 der Rechner Marvin gefunden. Abb. 2 Netzwerkumgebung mit Marvin und Antons Verzeichnisse Beim Testen des Zugriffs auf die Verzeichnisse stellte sich heraus, daß wir unbeschränkten Zugriff nur auf das Public-Verzeichnis bekamen. Bei allen anderen Verzeichnissen (auch dem Home-Verzeichnis) wurde der Zugang verwehrt. Versuche mit anderen Usern brachten die selben Ergebnisse. Abb. 3 Erstellte Dateien im Public-Ordner 8 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler Daraufhin wurden mit dem Befehl smbpasswd noch eine Passwortdatei für den SMBZugriff erstellt. Sie entsprachen den Linux-Passworten. Die dabei erstellte Datei 'smbpasswd' ist im Anhang zu finden. Kommando: smbpasswd –a anton anton anton Der Test nach dem Restart des SAMBA und erneutem Login auf dem Windows-Rechner brachte allerdings keine Änderung im Verhalten. Ein Blick in das Log-File 'samba.log' (Ausschnitte sind im Anhang) zeigte, daß der User zwar erkannt und ihm sein Home-Verzeichnis zugewiesen wird, er aber trotzdem nur den GastZugang (nobody) erhält. Somit ist es ihm natürlich nicht erlaubt auf andere Verzeichnisse als dem Public zuzugreifen. In weiteren Laborterminen wurde noch ein User mit den selben Zugangsdaten (Name/ Passwort) für das FH-Netzwerk erstellt. Der Zugriffstest wurde von einem Windows 2000 Rechner mit dem FH-Login durchgeführt. Wieder war kein Zugriff möglich. Auch der Versuch über einen anderen User auf sein Gruppenverzeichnis zuzugreifen schlug fehl. Abb. 4 Zugriff unter Windows 2000 Ein Blick in die Log-Datei zeigte die selben Meldungen: erkannt als User, aber nur GastZugangsberechtigungen. Auch das Testen mit dem Kommando testparm zeigte in seinem Listing keine Fehler oder Ungereimheiten der Konfiguration des SAMBA. 9 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 3 Auswertung Leider war ein komplett funktionierender File-Server auch in drei! Laborterminen nicht zu erstellen. Der Grund liegt wahrscheinlich an dem schon oft benutzen Linux. In verschiedenen Dateien sind eindeutige Spuren älterer Versuche zu finden. Möglicherweise sind dabei auch andere notwendige Dienste oder Dateien in Mitleidenschaft gezogen worden. Der selbe Versuch unter einem heimischen SuSE 6.4 (Konfiguration auch aus der Konsole) durchgeführt, verlief ohne dies Probleme. Der Zugriff von Windows aus entsprach den Vorgaben und Vorstellungen. Insgesamt wurde man aber durch die (leider erfolglose) Fehlersuche gut mit dem System vertraut gemacht. Das betrifft vor allem das Datei-Handling und -Editieren. 10 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 4 Anhang 4.1 Printout der Datei <smb.conf> [global] encrypt passwords=no server string=Jens_Uwe security=share workgroup=fb3 local master=yes hosts allow= 141.45. logfile=/home/samba.log debug level=3 [homes] comment = Homeverzeichnis von %S browseable=no writeable=yes path=/home/%S public=no create mask=0700 [kalkula] comment=Kalkulation create mask=0750 writeable=yes browseable=yes path=/home/kalkula valid users=@kalkula, @kudienst, dettweil read list=@kudienst [kudienst] comment=Kundendienst create mask=0750 writeable=yes browseable=yes path=/home/kudienst valid users=@kalkula, @kudienst read list=@kalkula [Public] comment=Dateiaustausch path=/home/public create mask=0777 writeable = yes browseable=yes public=yes 11 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 4.2 Ausschnitt aus der Datei <passwd> root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:daemon:/sbin:/bin/bash lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash games:x:12:100::/tmp:/bin/bash man:x:13:2::/var/catman:/bin/bash at:x:25:25::/var/spool/atjobs:/bin/bash postgres:x:26:2:Postgres Database Admin:/var/lib/pgsql:/bin/bash lnx:x:27:27:LNX Database Admin:/usr/lib/lnx:/bin/bash mdom:x:28:28:Mailing list agent:/usr/lib/majordomo:/bin/bash yard:x:29:29:YARD Database Admin:/usr/lib/YARD:/bin/bash wwwrun:x:30:65534:Daemon user for apache:/tmp:/bin/bash squid:x:31:65534:WWW proxy squid:/var/squid:/bin/bash fax:x:33:14:Facsimile Agent:/var/spool/fax:/bin/bash gnats:x:34:65534:Gnats Gnu Backtracking System:/usr/lib/gnats:/bin/bash amanda:x:37:6:Amanda Admin:/var/lib/amanda:/bin/bash ixess:x:38:29:IXware Admin:/usr/lib/ixware:/bin/bash irc:x:39:65534:IRC Daemon:/usr/lib/ircd:/bin/bash ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash firewall:x:41:31:firewall account:/tmp:/bin/false informix:x:43:34:Informix Database Admin:/usr/lib/informix:/bin/bash named:x:44:44:Nameserver Daemon:/var/named:/bin/bash virtuoso:x:45:100:Virtuoso Admin:/opt/virtuoso-lite:/bin/bash nobody:x:65534:65534:nobody:/tmp:/bin/bash fernsehr:x:1000:1000::/home/fernsehr:/bin/sh : : anton:x:1021:4005::/home/anton:/bin/bash berta:x:1022:4005::/home/berta:/bin/bash clara:x:1023:4005::/home/clara:/bin/bash dolli:x:1024:4006::/home/dolli:/bin/bash emil:x:1025:4006::/home/emil:/bin/bash dettweil:x:1026:4005::/home/dettweil:/bin/bash 12 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 4.3 Printout des Verzeichnislistings von /home/ drwx-----drwx-----drwx-----drwx-----drwx-----drwxr-x--drwxr-x--drwxrwxrwx anton berta clara dolli emil root root root kalkula kalkula kalkula kudienst kudienst kalkula kudienst root anton berta clara dolli emil kalkula kudienst public 13 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 4.4 Printout der Datei <smbpasswd> # Samba SMB password file anton:1021:027DF3941EA2842FAAD3B435B51404EE:731800DAA9A5904664DF9338490 7A884::/home/anton:/bin/bash berta:1022:E048154ED22EF8F2AAD3B435B51404EE:42F841C341803FB8E53CA5D7072 A252F::/home/berta:/bin/bash clara:1023:CEEA272E071E40AEAAD3B435B51404EE:576D20BF7E6CD7AB4E3F3B85CF2 A76F4::/home/clara:/bin/bash dolli:1024:FF79AA75D46B980CAAD3B435B51404EE:20E4BE508E11B3614C05FF2A5A2 4221B::/home/dolli:/bin/bash emil:1025:7A9B826CED55DBA8AAD3B435B51404EE:ED371C575806E151491EF1D21717 7444::/home/emil:/bin/bash dettweil:1026:49043FD8F92E69631AA818381E4E281B:5F3B6B518384456E5A54EFE4 4F599C6E::/home/dettweil:/bin/bash 14 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler 4.5 Ausschnitt aus der Datei <samba.log> : : Closing connections 2002/10/15 11:06:40 Server exit (caught signal) Added interface ip=141.45.181.67 bcast=141.45.181.255 nmask=255.255.255.0 2002/10/16 09:34:36 loaded services 2002/10/16 09:34:36 becoming a daemon bind succeeded on port 139 waiting for a connection Initialised IPC area of size 102400 2002/10/16 09:42:04 changed root to / open_oplock_ipc: opening loopback UDP socket. bind succeeded on port 0 open_oplock ipc: pid = 176, oplock_port = 1026 priming nmbd : : Closing connections 2002/10/16 09:42:07 Server exit (normal exit) Initialised IPC area of size 102400 2002/10/16 09:42:08 changed root to / open_oplock_ipc: opening loopback UDP socket. bind succeeded on port 0 open_oplock ipc: pid = 177, oplock_port = 1031 priming nmbd sending a packet of len 1 to (127.0.0.1) on port 137 of type DGRAM Gethostbyaddr failed for 141.45.181.155 2002/10/16 09:42:08 Transaction 0 of length 72 netbios connect: name1=MARVIN name2=TRILIAN Trying username triliaN 2002/10/16 09:42:08 Transaction 1 of length 158 switch message SMBnegprot (pid 177) Requested protocol [PC NETWORK PROGRAM 1.0] Requested protocol [MICROSOFT NETWORKS 3.0] Requested protocol [DOS LM1.2X002] Requested protocol [DOS LANMAN2.1] Requested protocol [Windows for Workgroups 3.1a] Requested protocol [NT LM 0.12] Selected protocol NT LM 0.12 2002/10/16 09:42:08 Transaction 2 of length 131 switch message SMBsesssetupX (pid 177) Domain=[FB3] NativeOS=[Windows 4.0] NativeLanMan=[Windows 4.0] sesssetupX:name=[ANTON] Registered username anton for guest access adding home directory anton at /home/anton Chained message switch message SMBtconX (pid 177) Allowed connection from 141.45.181.155 (141.45.181.155) to IPC$ Trying username ipc$ ACCEPTED: guest account and guest ok found free connection number 12 Connect path is /tmp chdir to /tmp chdir to / 2002/10/16 09:42:08 trilian (141.45.181.155) connect to service IPC$ as user nobody (uid=65534,gid=65534) (pid 177) 2002/10/16 09:42:08 tconX service=ipc$ user=nobody cnum=12 2002/10/16 09:42:08 Transaction 3 of length 99 switch message SMBtrans (pid 177) chdir to /tmp trans <\PIPE\LANMAN> data=0 params=19 setup=0 named pipe command on <LANMAN> name Got API command 0 of form <WrLeh> <B13BWz> (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8) Doing RNetShareEnum RNetShareEnum gave 5 entries of 5 (1 4096 191 4096) 2002/10/16 09:42:08 Transaction 4 of length 70 switch message SMBtconX (pid 177) chdir to / 15 Labor Daten- und Rechnernetze -SambaJens.-R. Korth Uwe Dettweiler Allowed connection from 141.45.181.155 (141.45.181.155) to anton 2002/10/16 09:42:08 invalid username/password for anton 2002/10/16 09:42:08 error packet at line 171 cmd=117 (SMBtconX) eclass=2 ecode=2 16