[stextbox id=“warning“ caption=“Achtung“]Dies ist die alte Version meines tutorials, dass nur noch zu Dokumentationszwecken hier steht![/stextbox]
Die neue Version findet sich unter dem Kapitel: Linux Fileserver
Inhalt
Vorwort
Es ist wieder mal soweit; ich habe etwas freie Zeit und brauche wieder mal ein neues Spielzeug! 😉
Da ich schon länger geplant hatte zuhause einen Fileserver zu betreiben um meine Workstations etwas zu entlasten und die Daten der Familie zentral zu halten war ein Fileserver die richtige entscheidung. Daraus ergeben sich folgende Vorteile:
- Zentrales Daten Backup- und Sicherheit
- Flexible Anpassung de Speicherplatzes
- Einfache Speichererweiterung
- Kann für weitere Netzwerk-Dienste eingesetzt werden
</UL>
Voraussetzungen
Folgende Voraussetzungen stellte ich an meinen Fileserver:
- Preis unter 600 EUR
- RAID-Level 1 Verbund von zwei 300GB Festplatten
- Linux als Betriebssystem
Demzufolge gestaltete sich meine Einkaufsliste wie folgt:
- 1 x AMD Sempron 2600+, BOX; CHF 86.00
- 1 x MSI K8T NEO-FIS2R, VIA K8T8; CHF 120.00
- 2 x Maxtor DiamondMax, 300 GB; CHF 189.00
- 1 x MSI GeForce MX4000-T64, 64M; CHF 42.00
- 1 x Kingston ValueRAM 512MB DDR; CHF 80.00
- 1 x Antec SLK3000B, Hochflexibl; CHF 77.00
Total CHF: 783.00
Installation
Nachdem alles ins Gehäuse eingebaut und angeschlossen ist, wird das System zum ersten mal gestartet und auch sogleich im BIOS rumgewerkelt und munter deaktiviert, was man nicht braucht… g
Nach dem Starten der erste Schreck: Das angeschlossene CD-ROM Laufwerk wird nicht erkannt.
Nach einigen Versuchen wieder zurück ins BIOS gekehrt; AHA, da habe ich wohl etwas zu voreilig den EIDE Port deaktiviert… Nach dem reAktivieren wird das CD-ROM erkannt, doch dann schon der nächste „Stolperstein“: Der onBoard Promise RAID-Controller wird nicht erkannt. Dies bringt uns zu einem wichtigen Thema, nämlich:
Onboard RAID-Controller oder komplett Software RAID?
Hier muss ich, nach mehreren Negativen Erfahrungen mit den onboard RAID Controllern sagen: Macht es nicht! Die „Hardware“ RAID Controller auf dem Mainboard sind keine echten Hardware RAID Controller, sondern sog. „FakeRAID“ Controller; bei diesen Controllern im Niedrig preis Segment (dazu zählen sämtliche onboard RAID Controller, ebenso wie günstigere „RAID Karten“) liegt die RAID Logik nicht im BIOS sondern bei der CPU. Dies heisst, dass man einen Treiber installieren muss, das dise vom Betriebssystem überhaupt erkannt werden. Und diese Treiber sind bestenfalls noch für Windows brauchbar; falls man denn für seine Linux Distribution einen Treiber für den onboard RAID Controller findet ist dieser meist nicht nur mehr als mies programmiert, sondern es gibt auch kein überwachsungstool für den RAID Controller unter Linux, was das RAID grundsätzlich etwas sinnlos macht.
Wir werden nun also den onboard RAID Controller NICHT nutzen und stattdessen mit dem Linux mdm ein md-Soft-RAID erstellen.
Ich partitioniere dieses so:
Filesystem Size Used Avail Use% Mounted on /dev/sda2 1012M 116M 845M 13% / /dev/sda1 76M 9.1M 64M 13% /boot /dev/sda3 178G 33M 169G 1% /files /dev/sda8 4.9G 34M 4.6G 1% /home /dev/sda5 49G 33M 46G 1% /install none 125M 0 125M 0% /dev/shm /dev/sda6 29G 33M 28G 1% /programs /dev/sda7 5.0G 33M 4.7G 1% /server /dev/sda11 289M 8.1M 266M 3% /share /dev/sda12 99M 4.1M 90M 5% /tmp /dev/sda9 1012M 458M 503M 48% /usr /dev/sda10 487M 42M 421M 9% /var
Bei den Packages wähle ich nur die folgenden aus (und deaktivere alle anderen): Samba, Bind, dhcpd, apache, php-mysql, gcc
Die Installation verkläuft dann auch Problemlos und nach einiger Zeit kann ich mich das erste mal am Fileserver anmelden.
Konfiguration
Nun sollte man als erstes ein oder zwei systeme im Internet und auch im Netzwerk anpingen:
# ping 10.0.0.10 # ping heise.de # usw. |
Klapp hier etwas nicht (insbesondere wenn auch die Rechner im internen Netzwerk nicht anpingbar sind, sollte man zuerst dieses Problem lösen. Es erspart einem ne menge ärger.
In diesem Falle sollte man mal ein
ifconfig |
machen. Hier muss die Netzwerkkarte (eth0) erkannt sein und eine IP haben. Diese IP muss natürlich auch von den anderen systemen anpingbar sein.
Die Netzwerkkonfiguration sollte in den meisten Fällen aber schon während der Installation einwandfrei klappen, weshalb hier jetzt nicht näher darauf eingegangen wird.
SAMBA Einrichten
Angenommen, der Fileserver lässt sich von aussen anpingen und kann auch die anderen systeme im Netzwerk erreichen, machen wir uns an die SAMBA-Konfiguration. Hier gibt es zwei Möglichkeiten: Samba als reiner Fileserver in einer Arbeitsgruppe und SAMBA als Domain Controller. -Letzteres hat den Vorteil, dass man dann di eganze user/passwortverwaltung auf dem SAMBA Server hat, sich an einer „richtigen“ Domäne anmelden kann und dann auch sein Benutzerprofil an jedem PC an dem man arbeitet laden kann. Die zweite Lösung ist etwas komplizierter zu konfigigurieren, aber auch nicht sehr schwierig. Ich werde hier zuerst SAMBA als reinen Fileserver beschreiben und Optional die Änderungen, die man dazu machen muss um aus dem Fileserver einen NT Domaincontroller zu machen.
Den ersten schritt müssen jedoch alle ausführen:
SAMBA als Fileserver
Zuerst editieren wir die Datei ’smb.conf‘:
vi /etc/samba/smb.conf |
Diese muss die folgenden Anweisungen enthalten; bei allen anderen genügt in den meisten Fällen der Standard:
#============================ Konfiguration ============================== Hier wird der Server konfiguriert [global] workgroup = MEINE.DOMAIN.TLD netbios name = fileserver # server string ist das, was nacher im "Beschrebungs-Feld" des Ordners angezeigt wird. server string = Samba Server %v running on %L # Charset Options unix charset = CP850 # Bei Samba als Domaincontroller macht diese Anweisung sinn time server = Yes # Falls du kein NT Domaincontroller im Netzwerk hast, der die Benutzer # verwaltet ist security immer "user" (auch wenn samba ein Domain Controller wird!) security = user # Passwort Einstellungen encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = <em>New</em>password:<em> %nn </em>Retype<em>new</em>password:<em> %nn </em>passwd:<em>all</em>authentication<em>tokens</em>updated<em>successfully.</em> # Dies ist der relevante Teil wenn SAMBA ein Domain Controller wird: local master = no os level = 33 domain master = no preferred master = no domain logons = no enable privileges = yes # %L steht für den netbios namen des Servers, %U ist der username logon path = %Lprofiles%U # Profilverzeichniss logon drive = H: # Home-Netzlaufwerk des Users logon home = %L%U # Pfad des Home-Netzlaufwerkes logon script = %U.bat # Logon Script dns proxy = no # Linux typische Dateien vor Windows verstecken (sonst sieht man immer solche "lost+found" und # .datei Dateien, mit denen Wndows sowiesp nix anfangen kann. hide dot files = yes veto files = /lost+found/ # Privilege aktivieren (damit man dem Benutzer erweiterte Domänenrechte zuweisen kann) enable privileges = yes #============================ Freigaben ============================== Und hier die Netzlaufwerk Freigaben Die ersten 3 Freigaben (HOMES, NETLOGON und PROFILES) sind zwingend nötig, wenn SAMBA nacher Domain Controller wird, ansonsten Optional # Heimverzeichnisse des Benutzers (z.B. /home/hmuster) [homes] comment = Home Directories browseable = no writable = yes veto files = /.*/lost+found/ # Verzeichniss der NT Logon Scripts [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes writable = no share modes = no write list = svarco # Hier kommen die benutzerprofile hin [profiles] path = /home/profiles browseable = no guest ok = yes read only = no # Hier können dann die Freigaben nach belieben hinzugefügt werden. Unten ist das Beispiel auf die Partitionierung meines Servers zugeschnitten. [share] comment = Share-laufwerk (hier haben alle user Vollzugriff) path = /share public = yes read only = no write list = @family [files] path = /files comment = Dataserver (ext3) guest ok = no writeable = yes browseable = yes valid users = user1, user2, user3 [install] path = /install comment = Install Directory (Filesystem: ext2) read only = no public = yes [server] path = /server comment = Server-Daten (ext3) guest ok = no writeable = yes browseable = yes valid users = user1 [programme] path = /programs comment = Programme (ext3) guest ok = no writeable = yes browseable = yes valid users = user1 |
Teste jetzt erstmal, ob du dich mit den netzlaufwerken verbinden kannst und Dateien schreiben/lesen. Wenn nicht, bring das zuerst in Ordung.
SAMBA als Domain Controller
Erst wenn alles klappt, solltest du samba als Domain Controller konfigurieren.
Dazu sind zwei zusätzliche Schritte Notwendig:
Editiere nochmals die Datei: ‚/etc/samba/smb.conf‘
vi /etc/samba/smb.conf |
Dann ersetze die folgenden Anweisungen:
local master = no os level = 33 domain master = no preferred master = no domain logons = no |
durch:
local master = yes os level = 33 domain master = yes preferred master = yes domain logons = yes |
Als zweites musst du nun für jeden User, der sich am Server Anmelden will einen Linux user erstellen:
useradd user1 useradd user2 useradd user3 |
usw.
Nun muss man alle diese User noch Samba bekannt machen mittels:
smbpasswd -a USERNAME |
Nachdem man die User erstellt hat, muss man noch ein sogenntes „Maschinen Vertrauenskonto“ erstellen.
Dafür musst du in Linux für jeden PC einen user machen, der genau gleich heisst wie der Netzwerknamen des PCs mit einem ‚$‘ dahinter.
Wenn also der PC im Wohnzimmer den netzwerknamen ‚WOHNZIMMER_PC‘ hat, so muss das „Vertrauens-User-Konto“: ‚WOHNZIMMER_PC$‘ heissen.
Am besten machst du für diese erstmal eine eigene usergruppe:
groupadd -g 101 rechner |
(Die GID „101“ darf unter: /etc/group noch nicht existieren, sonst hier eine andere eintragen!)
Alternativ zu groupadd, kann man auch einfach die Zeile:
rechner:x:101: |
in die Datei /etc/group hinzufügen.
Dann in Linux ein Maschinenkonto erstellen und zu Samba hinzufügen adduser WOHNZIMMER_PC$ -g 101 -d /dev/null -s /bin/false smbpasswd -a -m WOHNZIMMER_PC$ |
Hinweis: Bei einigen Linux-Distributionen wird man bei der Eingabe von adduser WOHNZIMMER_PC$ Probleme bekommen wegen des Dollarzeichens; es erscheint dann etwa die Meldung „Invalid Username“. Dieser fehler liegt nur am adduser-Script, Linux selbst kann sehr gut mit ‚$‘ im Namen umgehen.
In einem solchen fall muss man die Maschinenkonten manuell hinzufügen. Dazu trägt man einfach in der Datei: „/etc/passwd“ zuunterst sowas ein wie:
WOHNZIMMER_PC$:x:504:101:KOMMENTAR:/dev/null:/bin/false
Dabei steht die erste Zahl (hier: 504) für die User-ID; diese kann Grundsätzlich frei bestimmt werden, darf aber noch nicht existieren. Die Zweite Zahl (101) ist die Gruppe des Maschinenkontos. (Hier das Zuvor bestimmte Gruppenkonto „rechner“)
Zuletzt braucht man noch ein admin Konto zu Samba hinzufügen (z.B. ‚root‘)
smbpasswd -a root (oder ein anderer admin user)
Nun sollte man mit dem admin account der Domäne beitreten können.
Benutzer spezielle Domänen rechte zuweisen
Die Option „enable privileges = yes“, die wir weiter oben gesetzt haben bewirkt, dass man nun einzelne Benutzer mit besonderen Domain(-admin) Rechten ausstatten kann.
Dies geht über „net rpc“.
Will man z.B. einem Benutzeraccount „dadmin“ erlauben Maschinen zur Domäne hinzuzufügen genügt folgendes auf der Kommandozeile:
net rpc rights grant 'MEINE.DOMAIN.TLDdadmin' SeMachineAccountPrivilege |
Überprüfen kann man das übrigens mit:
net rpc rights list 'MEINE.DOMAIN.TLDdadmin' |
und
net rpc rights list |
gibt eine Übersicht über die Verfügbaren Rechte aus.
Wenn man ohne fehler bis hierher gekommen ist, hat man nun einen funktionierenden Linux Fileserver.
Weiter gehts mit dem Kapitel: Zusätzliche Services Installieren.
One thought on “Linux Fileserver (alte Version)”