Inhalt

4. File-Server

4.1 Allgemein

Zunächst möchte ich daruf hinweisen dass dieser Rechner zwar als File-Server bezeichnet wird, er jedoch auch andere Funktionen wie NIS- und Print-Server bietet.

Es wird im ersten Abschnitt zunächst die Vorbereitung und Installation beschrieben, in den weiteren Abschnitten wird auf die eigentliche Konfiguration bzw. die Installation spezieller Software eingegangen.

Um die Konfiguration zu vervollständigen bitte auch die Punkte unter Allgemein beachten und übernehmen!

Möchte man die Integrität des Dateisystems mittels Tripwire überprüfen bzw. den Rechner im Rahmen der Installation darauf vorbereiten (später hat es eigentlich kaum Sinn) ist zu beachten dass der Rechner im Single-User Betrieb benutzt wird bis mittels Tripwire die entsprechende Datenbank erstellt wurde. Dies ist z.B. gewährleistet indem man niemanden physikalisch an dem Rechner arbeiten lässt und diesen auch noch nicht physikalisch an ein Netzwerk anschliesst. Dies ist natürlich verhältnismässig extrem für einen Rechner z.B. in einer WG, allerdings sollte man zumindest darauf achten dass der Rechner bis zu diesem Zeitpunkt nicht mit dem Internet verbunden ist.

4.2 Vorbereitung

Zunächst sollte man sich die unter Software aufgeführten Updates und Programme/Dateien besorgen und je nach Möglichkeit auf einem anderen Rechner speichern um z.B. per NFS später darauf zugreifen zu können oder auf CD brennen usw.. Natürlich kann man die Dateien auch während bzw. nach der Installation herunterladen, allerdings muss man dann ggf. mit einem nicht ganz sicheren System ins Netz. Um nicht selbst die Pakete während der Installation auswählen zu müssen kann man die Konfigurationsdatei fileserv.sel (siehe Software ) benutzen. Die Datei auf eine Diskette kopieren (empfohlen wenn in dem Gateway ein Diskettenlaufwerk zur Verfügung steht) oder ausdrucken.

Weiter wird von folgender Hardware-Konfiguration ausgegangen:

- AMD K6-2 350MHz

- 64MB RAM

- min. 1.5GB HDD für das System als Primary Master, hier 3.6GB

- 1 HDD für die Home-Verzeichnisse (RAID1) und temporären Speicherplatz, als Primary Slave, Grösse nach Bedarf, hier 10GB

- 1 HDD für die Home-Verzeichnisse (RAID1) und sonstige Daten, als Secondary Master, Grösse nach Bedarf, hier 30GB

(Wenn man wie unten gezeigt ein RAID1-System anlegen möchte muss man beachten dass nur die Hälfte des vorhandenen Speicherplatzes tatsächlich genutzt werden kann)

- Ethernet Interface 100Mbit - Realtek 8129/8139 - PCI - oder anderes kompatibles Interface

- Ethernet Interface 10Mbit - NE2000 kompatibel - PCI

- Parallele Schnittstelle und Drucker

- CD-ROM-Laufwerk oder NFS-Server im LAN als Installationsquelle

- FDD falls kein CD-ROM-Laufwerk vorhanden oder dieses nicht bootfähig ist bzw. wenn man die Datei fileserv.sel per Diskette einlesen möchte

4.3 Installation mittels Yast1

Den Rechner von der 2. CD starten. Ist es nicht möglich von CD-ROM zu starten muss zuvor unter DOS/Windows9x eine Startdiskette erstellt werden. Dazu das Programm setup.exe von der 1. CD starten und den Anweisungen folgen. Dann von dieser Diskette starten. Es wird die Installation gestartet. Sprache, Bildschirm und Tastatur auswählen. Kernelmodule automatisch laden oder, falls dies nicht möglich ist, Kernelmodule manuell laden (NE2000-Karten lassen sich normalerweise ohne Probleme manuell laden). Installation/System starten und dann Installation/Update starten auswählen. Jetzt muss das Quellmedium ausgewählt werden, normalerweise ist dies das CD-ROM-Laufwerk (z.B. /dev/hdb für ein Laufwerk als Slave am 1. IDE-Kontroller oder /dev/scd2 für ein SCSI-Laufwerk mit der ID 2). Mann kann aber natürlich auch über FTP oder NFS usw. installieren. Die folgenden Einstellungen entsprechend vornehmen. Unbedingt Yast1 als Yast-Version und die Installation im Expertenmodus auswählen. Danach die Festplatte partitionieren:

Auf /dev/hda (Primary Master): eine ca. 10MB grosse primäre Partition vom Typ Linux Native, eine ca. 400MB grosse primäre Partition vom Typ Linux SWAP und eine weitere, min. 1GB grosse primäre Partition vom Typ Linux Native anlegen.

Auf /dev/hdb (Primary Slave): zwei je 5GB grosse primäre Partitionen vom Typ Linux Native anlegen.

Auf /dev/hdc (Secondary Slave): eine 25GB grosse und eine 5GB grosse primäre Partition vom Typ Linux Native anlegen.

Anm.: Die zweite Partition auf /dev/hdb sollte ungefähr genau so gross sein wie die zweite Partition auf /dev/hdc da diese beiden Partitionen später den Raid1-Verbund bilden und dieser nur so gross ist wie die kleinste der beiden dafür genutzten Partitionen, wenn eine der Partitionen grösser ist als die andere wird der zusätzliche Platz nicht genutzt.

Die Ziel-Partition/Dateisysteme wie folgt festlegen:

Device  Mountpoint
hda1    /boot
hda3    /
hdb1    /upload
hdc1    /public

hdb2 und hdc2 werden nicht gemountet. Die einzelnen Partitionen, auf Wunsch mit Prüfen, formatieren, soweit nicht Daten vorhanden sind die weiter genutzt werden sollen, zumindest hda1 und hda3 sollten formatiert werden.

Jetzt die Installation festlegen, dazu die Konfiguration von Diskette laden (siehe Vorbereitung ) oder falls kein Diskettenlaufwerk zur Verfügung steht mittels der ausgedruckten Konfigurationsdatei die Pakete manuell (de-)selektieren, am einfachsten funktioniert dies wenn man zuvor das SuSE Minimal System lädt. Wenn der Installationsumfang festgelegt wurde die Installation starten. Zuletzt in das Hauptmenü wechseln und die Installation abschliessen bzw. Yast beenden. Es muss noch der Kernel ausgewählt werden, bei obiger Hardwarekonfiguration wird der Pentium optimierte Kernel verwendet. Danach wird der LILO konfiguriert, als Ziel den Master-Boot-Sektor und als Wartezeit 5 Sekunden einstellen, dies ist lange genug um, falls notwendig, eine Auswahl zu treffen, dauert aber nicht zu lange wenn der Rechner z.B. ohne Tastatur und ohne Bildschirm gestartet wird, also keine Eingabe möglich ist. Der Name der Konfiguration ist frei wählbar, ich benutze normalerweise suse, dann weiss ich im Falle eines missglückten Kernelupdates o.ä. definitiv welcher der SuSE Kernel ist. Die zu bootende (Root-) Partition ist bei obiger Partitionierung und Zuweisung der Ziel-Partition /dev/hda3. Der Kernel ist /boot/vmlinuz. Die Einstellungen bzgl. der Zeitzone usw. erklären sich von selbst. Dem Rechner muss natürlich ein Rechnername und ein Domainname gegeben werden, diese Namen sind ebenfalls frei zu vergeben. Das Netzwerk als echtes Netzwerk konfigurieren, als IP-Adresse muss eine Adresse aus dem für private Netzwerke reservierten Bereich vergeben werden, z.B. 192.168.1.1. Als Default-Gateway wird die Adresse des Gateway , z.B. 192.168.1.2 eingetragen. Die Frage ob inetd, Portmapper und NFS-Server gestartet werden sollen mit ja beantworten. Es muss dann der DNS-Server eingetragen werden, dabei darauf achten dass in der unteren Zeile die zuvor vergebene lokale Domain eingetragen ist damit Hostnamen innerhalb dieser Domain nicht vom DNS-Server aufgelöst werden. Bei der Sendmail Konfiguration Rechner mit permanenter Netzanbindung auswählen. Zuletzt muss das Root-Paswort vergeben werden, siehe Passworte . Danach wollen noch Maus und Modem eingerichtet werden, dies einfach abbrechen. Ggf. restliche Pakete installieren. Das Basissystem steht. Jetzt ist ein guter Zeitpunkt den Rechner neu zu starten und im BIOS lediglich den Start von Festplatte einzutragen, dies verhindert dass, evtl. auch versehentlich, von Diskette bzw. CD-ROM gestartet wird.

4.4 Updates einspielen

Die zuvor von SuSE heruntergeladenen Updates einspielen (siehe Software ). Dazu mittels init 1 den Runlevel wechseln und Yast aufrufen (yast eingeben) -> Installation festlegen/starten -> Pakete einspielen -> die Quelle auswählen -> in das Verzeichnis wechseln in dem sich die Updates befinden. Nur die Updates einspielen deren «veraltete» Versionen bereits installiert sind. Ist ein Paket bereits installiert, die Version unterscheidet sich jedoch von der neuen Datei, ist in den eckigen Klammern ein o eingetragen, ist die Version identisch ist ein i eingetragen. Die Pakete die mit o gekennzeichnet sind zur Installation markieren und diese dann durchführen. /sbin/lilo aufrufen. Da einige Pakete aktualisiert werden die zum Basis-System gehören nach der Installation den Rechner neu starten.

4.5 RAID1-Verbund anlegen

In einem Software RAID1-Verbund werden zwei Partitionen zu einem Device zusammengefasst (/dev/md0 - /dev/mdx) das sich wie eine normale Partition ansprechen lässt. Der Vorteil ist die Ausfallsicherheit, fällt eine der beiden Partitionen aus sind auf der anderen Partition die Daten weiterhin erhalten, ersetzt man die defekte Partition durch eine entsprechend vorbereitete neue Partition werden automatisch auf der neuen Partition die Daten rekonstruiert bis sich wieder auf beiden Partitionen dasselbe befindet wobei auch mit nur einer der beiden Partitionen weiterhin gearbeitet werden könnte. Der Nachteil ist dass man nur die Hälfte des physikalisch vorhandenen Speichers nutzen kann, da ja auf beiden Partitionen dasselbe gespeichert ist. Da normalerweise nicht die Partition selbst sondern die Festplatte physikalisch beschädigt wird macht ein RAID1-Verbund nur Sinn wenn sich die beiden Partitionen auf unterschiedlichen Festplatten befinden. In unserem File-Server sind deshalb /dev/hdb2 und /dev/hdc2 dafür vorgesehen.

Da der SuSE-Kernel für die alten mdutils kompiliert ist, diese Tools jedoch verhältnismässig lange nicht mehr weiterentwickelt werden und nur bis Version 0.5 vorliegen sollte ein neuer Kernel mit Unterstützung für die neueren und auch für Kernel 2.4 tauglichen raidtools in der Version 0.90 kompiliert werden. Dazu werden die Kernelquellen linux-2.2.16.tar.gz zum Kernel 2.2.16, die Kernelpatches raid-2.2.16-A0, bridge-0.0.6-against-2.2.16.diff und die Konfigurationsdatei file_server_raid_bridge (siehe Software ) benötigt.

Möchte man die alten mdutils verwenden muss man die raidtools zunächst deinstallieren und die mdutils installieren. Die Konfiguration bzw. Installation des neuen Kernels und LILO überspringen.

Die Kernelquellen nach /usr/src/linux-2.2.16/ entpacken. Den Link /usr/src/linux/ der auf /usr/src/linux-2.2.16.SuSE/ zeigt ändern, er muss auf /usr/src/linux-2.2.16 zeigen. Nach /usr/src/ wechseln und den Kernel für RAID und Bridge patchen: patch -p0 < raid-2.2.16-A0 und patch -p0 < bridge-0.0.6-against-2.2.16.diff ausführen. Nach /usr/src/linux/ wechseln, die Konfiguration explizit festlegen und den Kernel bzw. die Module kompilieren:

make mrproper
make menuconfig
(Hier die Konfigurationsdatei file_server_raid_bridge laden und danach
Gerätetreiber unter
- Processor type and features
- Block devices
- SCSI support -> SCSI lowl-level-drivers
- Network device support
auswählen)

make dep
make bzImage
make modules
make modules_install

Die Datei /usr/src/linux/arch/i386/boot/bzImage nach /boot/kernel-2.2.16-raid-bridge kopieren.

Die Datei /etc/lilo.conf editieren: Über die Zeile

image = /boot/vmlinuz

folgendes eintragen:

image = /boot/kernel-2.2.16-raid-bridge
root = /dev/hda3
label = raid-bridge

/sbin/lilo aufrufen. Der neue Kernel kann jetzt als Bootkonfiguration raid-bridge beim booten ausgewählt werden bzw. wird automatisch default geladen wenn wie oben beschrieben der Eintrag für die Konfiguration raid-bridge in der Datei /etc/lilo.conf über der Konfiguration suse steht.

Den Rechner neu starten und depmod -a aufrufen.

Jetzt wird das RAID-Device konfiguriert: Mittels touch /etc/raidtab und chmod 0644 /etc/raidtab die Konfigurationsdatei anlegen und die Rechte korrekt setzen. In diese Datei folgendes eintragen:

raiddev /dev/md0
raid-level            1
nr-raid-disks         2
nr-spare-disks        0
chunk-size            4
persistent-superblock 1
device        /dev/hdb2
raid-disk     0
device        /dev/hdc2
raid-disk     1

Mittels fdisk den Partitionstyp der beiden Partitionen hdb2 und hdc2 auf den Typ 0xFD setzen: fdisk /dev/hdb eingeben, t ausählen, die Nummer der Partition, also 2 und den Code des Partitionstyps angeben: fd. Mittels w die Änderungen auf die Platte eintragen. Diesen Vorgang für die zweite Partition wiederholen: fdisk /dev/hdc starten und wie oben vorgehen.

Das RAID-Device /dev/md0 mittels mkraid /dev/md0 anlegen und den Rechner neu starten. Das Device /dev/md0 ist ab sofort wie eine «normale» Partition zu nutzen. Zunächst muss das Device formatiert werden: mke2fs /dev/md0.

Anm.: Bitte abwarten bis beide Partitionen synchronisiert wurden. Die Synchronisation wird nach dem Anlegen des Devices automatisch gestartet. Wenn dieser Vorgang z.B. durch den Neustart des Rechners unterbrochen wird wird die Synchronisation nach dem Start von vorne begonnen. Der Status ist mittels cat /proc/mdstat zu beobachten, der Wert hinter resync zeigt ihn in Prozent an. Ist der Punkt resync nicht aufgeführt ist die Synchronisation bereits abgeschlossen. Wird nicht gewartet bis die Synchronisation abgeschlossen ist und versucht das Device zu formatieren kann sich der ganze Rechner aufhängen!

Da dieser RAID1-Verbund für die Home-Verzeichnisse benutzt werden soll folgendes in /etc/fstab eintragen:

/dev/md0        /home       ext2        defaults   1 2

und mount /home ausführen.

4.6 Benutzerverwaltung

Benutzer werden wie folgt angelegt: Yast -> Administration des Systems -> Benutzerverwaltung. Die benötigten Accounts anlegen. Auch hier gute Passwörter wählen, siehe Passworte . Wenn man «sicher» gehen möchte ändert jeder Benutzer sein Passwort direkt nach dem ersten Login, wenn dann cracklib benutzt wird, werden automatisch zu schwache Passwörter herausgefiltert.

Zusätzlich zu den «normalen» Benutzern wird noch ein Account admin angelegt der als einziger Schreibrechte auf /public/ hat, dadurch verhindert man dass man sich als root einloggen muss um Änderungen vorzunehmen und trotzdem ist sichergestellt dass dort keine ungewollten Änderungen vorgenommen werden. Ausserdem wird ein Benutzer voice-fax angelegt, dieser Account dient ausschliesslich als Mail-Account, dieser Benutzer bekommt vom Gateway die mittels capircvd empfangenen Faxe und angenommenen Anrufe per Mail zugestellt.

4.7 Quota

Wenn man für die einzelnen Benutzer bzw. Gruppen Limits bzgl. der Festplattennutzung vergeben möchte muss man entsprechend Quotas einrichten. Zunächst in /etc/fstab eintragen dass das entsprechende Device mit Unterstützung für Quota gemountet wird. Dazu z.B. folgende Zeile abändern wenn man für die Home-Verzeichnisse Benutzer-Quotas vergeben möchte:

/dev/md0        /home       ext2        defaults   1 2

zu

/dev/md0        /home       ext2        defaults,usrquota   1 2

Entsprechend für Gruppen-Quotas:

/dev/md0        /home       ext2        defaults,grpquota   1 2

Es können auch Benutzer- und Gruppen-Quotas gleichzeitig genutzt werden, dann usrquota und grpquota durch ein Komma getrennt eintragen. Danach mittels mount /home -o remount das Device neu mounten, mittels mount sollte dargestellt werden dass die Unterstützung aktiviert wurde. Alternativ kann man natürlich auch den Rechner neu starten. quotacheck -avug durchführen, jetzt können mittels edquota -u benutzer bzw. edquota -g gruppe die Limits eingerichtet werden. Es kann ein sogenanntes Soft- und Hardlimit eingerichtet werden, wird das Softlimit erreicht wird der Benutzer gewarnt dass er das Limit erreicht hat, der Benutzer hat jedoch bis zum Erreichen des Hardlimits einen Spielraum eingeräumt, dieser ist jedoch nur bis Ablauf der Grace Period verfügbar. Die Grace Period wird mittels edquota -t eingerichtet. Das Hardlimit kann nicht überschritten werden. Wird als Limit 0 angegeben ist ist kein Limit gesetzt.

Man kann ein Limit für Blöcke und für Inoden vergeben, Blöcke entspricht dem Speicherplatz, Inoden entspricht der Anzahl der Dateien.

Da mittels edquota der Standard-Editor aufgerufen wird und dies ohne andere Konfiguration der vi ist sind hier einige Leute vor ein Problem gestellt da dieser nicht intuitiv benutzt werden kann. Deshalb eine kleine Hilfe:

Um etwas zu editieren i drücken, hierdurch wird der INSERT-Modus aktiviert, jetzt kann man Veränderungen durchführen. Den INSERT-Modus kann man mittels STRG+C beenden. Um die Datei zu schliessen und abzuspeichern einen Doppelpunkt, dann wq eingeben und mit RETURN bestätigen. Um die Datei ohne Speichern zu beenden einen Doppelpunkt, dann qa! eingeben und mit RETURN bestätigen.

Mittels quotaon -avug bzw. quotaoff -avug kann die Unterstützung für Quotas ein- bzw. ausgeschaltet werden. Um die Unterstützung nach dem Starten automatisch zu starten in /etc/rc.config folgendes ändern:

START_QUOTA="no"

zu

START_QUOTA="yes"

Danach SuSEconfig aufrufen.

4.8 Bridge

Wenn man zwei Netzwerksegmente miteinander verbinden möchte benötigt man normalerweise zusätzliche Hardware wie eine Switch. Dies ist eigentlich kein Problem, schliesslich werden verschiedene Netzwerksegmente hauptsächlich in grösseren Netzwerken benötigt, hier sollte es möglich sein solche Hardware zu kaufen. Wenn man aber sein privates Netzwerk in verschiedene Segmente aufteilen und diese dann doch wieder miteinander verbinden möchte ist eine solche Switch einfach zu teuer. Warum möchte man das machen? Z.B. wenn man Rechner die mit unterschiedlichen Netzwerkinterfaces ausgestattet sind miteinander verbinden möchte, bei mir ist z.B. ein Rechner (der HP-UX-Client) mit einem 10Mbit BaseT Netzwerkinterface ausgestattet während das restliche Netzwerk mit 100Mbit TX Netzwerkinterfaces ausgestattet ist, d.h. die Verbindung kann physikalisch nicht aufgebaut werden. Um trotzdem alle Rechner in das Netzwerk zu integrieren wird der File-Server als Bridge eingerichtet. Dazu sind in dem Rechner zwei Netzwerkinterfaces eingesetzt, ein 100Mbit TX und ein 10Mbit BaseT Interface.

Wenn der Kernel noch nicht wie unter RAID1 beschrieben kompiliert wurde dieses incl. der LILO-Konfiguration nachholen und den Rechner mit dem neuen Kernel starten. Die beiden Netzwerkinterfaces wie folgt einrichten: Yast -> Administration des Systems -> Hardware in System integrieren -> Netzwerkkarte konfigurieren -> für eth0 und eth1 die entsprechenden Treiber auswählen, mittels Esc ein Menü zurück gehen -> Netzwerk konfigurieren -> Netzwerk Grundkonfiguration -> für beide Devices eine IP-Adresse vergeben (für eth0 192.168.1.1 und für eth1 192.168.1.4), den Gateway auf 192.168.1.2 einstellen. Beide Devices aktivieren.

Das Paket bridge-utils-0.9.1-1.i386.rpm mittels rpm -Uvh bridge-utils-0.9.1-1.i386.rpm installieren, danach SuSEconfig ausführen.

Die Datei bridge (siehe Software ) nach /sbin/init.d/ kopieren und mittels chmod 0744 /sbin/init.d/bridge die Zugriffsrechte setzen. Ggf. überprüfen ob die Einträge in /sbin/init.d/bridge mit den eingerichteten Rescourcen des Servers übereinstimmen.

Den Rechner neu starten, mittels /sbin/init.d/bridge start kann die Bridge gestartet bzw. mittels /sbin/init.d/bridge stop gestoppt werden. Den Status der Bridge kann man mittels /sbin/init.d/bridge status anzeigen lassen.

Um die Bridge nach dem Rechnerstart automatisch zu starten folgende Links anlegen: ln -s ../bridge /sbin/init.d/rc2.d/K15bridge und ln -s ../bridge /sbin/init.d/rc2.d/S70bridge.

Eine Bridge ist normalerweise ein transparenter Teil des Netzwerks, d.h. sie hat keine eigene IP-Adresse. Wenn der Rechner aber nicht nur als Bridge eingesetzt wird oder über das Netzwerk zu administrieren sein soll benötigt er trotzdem eine IP-Adresse. Wenn das Skript /sbin/init.d/bridge nicht entsprechend geändert wurde wird der Bridge die IP-Adresse 192.168.1.1 zugewiesen, alle Interfaces die der Bridge hinzugefügt wurden (in diesem Fall eth0 und eth1) lassen sich über diese IP-Adresse ansprechen.

4.9 NFS-Server

Um anderen Linux-Clients den Zugriff auf Verzeichnisse zu geben wird der Rechner als NFS-Server eingerichtet. In /etc/rc.config ist alles korrekt eingetragen wenn bei der Installation wie oben vorgegangen wurde. Es muss noch angegeben werden welchen Rechnern Zugriff auf welche Verzeichnisse gewährt wird, ob Schreibzugriff möglich ist oder ob nur gelesen werden darf usw.. Dazu in die Datei /etc/exports folgendes eintragen:

/home   192.168.1.101(rw,root_squash)
/daten  192.168.1.101(rw_root_squash) 192.168.1.2(ro,root_squash)
/temp   192.168.1.101(rw,root_squash) 192.168.1.2(rw,root_squash)

Hier wird dem Client 192.168.1.101 Schreib- und Lesezugriff auf /home, /daten und /temp gegeben. Der Client 192.168.1.2 hat nur auf /temp Schreib- und Lesezugriff und auf /daten nur Lesezugriff.

Ausserdem muss in /etc/hosts.deny eingetragen werden:

portmap: ALL

und in /etc/hosts.allow:

portmap: 127.0.0.0/255.0.0.0 192.168.1.0/255.255.255.0

Damit die Änderungen wirksam werden /sbin/init.d/nfsserv restart ausführen.

Anm.: Wenn der Kernel nicht neu kompiliert wurde (siehe RAID1 ) und der NFS-Server nicht richtig funktioniert mittels Yast das Paket nfsserv durch das Paket knfsd ersetzen und den Rechner neu starten.

4.10 NIS-Server

Um nicht nur Verzeichniss sondern auch die Benutzer- und Passwort-Datenbank zu exportieren wird der Rechner als NIS-Server eingerichtet. Hierzu in /etc/rc.config folgendes ändern:

START_YPSERV="no"
START_YPPASSWDD="no"

zu

START_YPSERV="yes"
START_YPPASSWDD="yes"

und folgenden Eintrag hinzufügen:

YP_DOMAINNAME="domain"

wobei domain durch den Namen der lokalen Domain ersetzt wird. Wichtig ist das tatsächlich nur die Domain- und nicht der Host-Name angegeben wird. zusätzlich in /etc/hosts.deny

ypserv: ALL

und in /etc/hosts.allow

ypserv: 127.0.0.0/255.0.0.0 10.0.0.0/255.0.0.0 \
        192.168.1.0/255.255.255.0

eintragen damit nur Rechner mir einer IP-Adresse 192.168.1.x als NIS-Client Zugriff auf die Passwort-Datenbank haben.

SuSEconfig aufrufen und den Rechner neu starten. Dann /usr/lib/yp/ypinit -m aufrufen, kontrollieren ob die Einstellungen OK sind und mit STRG+D und y bestätigen. Danach mittels /sbin/init.d/ypserv restart den NIS-Server neu starten.

4.11 Samba

Um Windows-Clients den Zugriff auf Verzeichnisse und Drucker zu geben wird Samba entsprechend konfiguriert und gestartet. Dazu in /etc/smb.conf folgendes eintragen:

[global]
workgroup = Arbeitsgruppe
# Name der Arbeitsgruppe
guest account = nobody
os level = 2
security = server
printing = bsd
printcap name = /etc/printcap
load printers = yes
# yes wenn Drucker freigegeben werden sollen
socket options = TCP_NODELAY
map to guest = Bad User
interfaces = 192.168.1.1/255.255.255.0
# Die IP-Adresse des Interfaces über das
# Samba laufen soll, sollen mehrere
# Interfaces genutzt werden
# durch ein Leerzeichen getrennt anfügen
wins support = yes
logon script =%U.bat
domain logons = yes
domain master = yes
server string = Samba %v on %h
# Beschreibung des Servers,
# %v gibt die Version und %h den Hostnamen aus
encrypt passwords = yes

[homes]
# hier werden die home-Verzeichnisse freigegeben
comment = Home-Verzeichnis auf %h
# Beschreibung des Shares, wie server string
browsable = no
# der jeweils angemeldete Benutzer
# sieht nur sein home-Verzeichnis
read only = no
create mode = 0600

[printers]
# entfaellt wenn unter [global] load printers = no
comment = Drucker auf %h
# s.o.
browsable = no
printable = yes
public = yes
# auch Gaeste haben Zugriff
read only = yes
create mode = 0700
directory = /tmp
# wenn nur bestimmte Benutzer Zugriff
# erhalten sollen wie folgt eintragen:
# valid users = tux, linus

Jetzt müssen noch die Sektionen der einzelnen Shares, also freigegebenen Verzeichnisse, angegeben werden, hierbei erscheint das Share in der Windows Netzwerkumgebung wie es in den eckigen Klammern benannt wird:

[upload]
comment = Temporaeres Verzeichnis
path = /upload
browsable = yes
guest ok = yes
read only = no
create mode = 0644

[public]
comment = File-Server
path = /public
browsable = yes
guest ok = yes
read only = yes
write list = admin
create mode = 0644

Hiermit werden zwei Shares freigegeben: upload und public. upload ist für alle Benutzer und Gäste freigegeben, alle Benutzer haben Lese- und Schreib-Zugriff. public ist ebenfalls für alle Benutzer und Gäste freigegeben, allerdings hat nur der Benutzer admin Schreib-Zugriff. Dieser Benutzer sollte eigens hierfür angelegt sein, siehe Benutzerverwaltung .

Damit die Änderungen wirksam werden mittels /sbin/init.d/smb restart Samba neu starten. Damit Samba nach jedem Neustart automatisch gestartet wird folgendes in /etc/rc.config ändern:

START_SMB="no"

zu

START_SMB="yes"

Danach SuSEconfig aufrufen.

Um verschlüsselte Passworte nutzen zu können das Skript /sbin/mksmbpasswd.sh anlegen: touch /sbin/mksmbpasswd.sh und danach chmod 0744 /sbin/mksmbpasswd.sh ausführen. In diese Datei folgendes eintragen:

#!/bin/sh
awk 'BEGIN {FS=":"
        printf("#\n# SMB password file.\n#\n")
        }
{ printf( "%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: \
                 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: \
                 %s:%s:%s\n", $1, $3, $5, $6, $7) }
'

Danach cat /etc/passwd | /sbin/mksmbpasswd.sh > /etc/smbpasswd und chmod 0600 /etc/smbpasswd ausführen. Die Passworte der einzelnen Benutzer mittels /usr/bin/smbpasswd -Ubenutzer vergeben, danach können die Benutzer die Passworte selbst mittels smbpasswd ändern.

4.12 Drucker

Möchte man Drucker an den Server anschliessen und diese dann freigeben wie folgt vorgehen: /var/lib/apsfilter/SETUP aufrufen, mit RETURN bestätigen -> ENTRY -> DEVICE -> Parallel, das Device angeben: lp0-2 -> PRINTER, den verwendeten Drucker auswählen und die Auflösung einstellen, evtl. einen Namen vergeben -> PAPER, Papierformat einstellen -> Color -> ADD -> Bestätigen bis das Setup geschlossen wird. Mittels lpr /etc/HOSTNAME sollte der Host-Name des Rechners gedruckt werden.

Wenn mehrere Drucker angeschlossen oder aus anderen Gründen mehrere parallele Schnittstellen genutzt werden sollen müssen diese in /etc/modules.conf eingetragen werden. Folgende Zeile entsprechend abändern:

options parport_pc io=0x378 irq=none,none

oder durch diese ersetzen:

options parport_pc io=0x378,0x278 irq=none,none

Wenn hier Änderungen vorgenommen wurden muss der Rechner neu gestartet werden.

Es müssen für das parallele Device, also /dev/lp0-2, die Zugriffsrechte mittels chmod 0622 /dev/lp0-2 korrekt gesetzt werden.

4.13 Unnötige bzw. unsichere Dienste deaktivieren

Im Gegensatz zu der allgemein gültigen Aussage bzgl. Unnötige bzw. unsichere Dienste deaktivieren bleiben auf dem File-Server folgende Dienste aktiv:

time, login und pop3. Die entsprechenden Zeilen nicht auskommentieren.

4.14 Backup

Auch wenn man z.B. einen Raid-Verbund angelegt hat sollte man nicht auf regelmässige Backups verzichten, was nützt das ausfallsicherste System wenn man, warum auch immer, als Root z.B.rm /home/ -R eingibt? Man kann natürlich manuell die wichtigsten Daten sichern, hier wird jedoch ein Skript vorgestellt mittels dem man entsprechende Verzeichnisse, egal wie gross, in Images sichert die man bequem auf CD brennen kann:

Mittels touch backup.sh und chmod 0744 backup.sh die Datei anlegen und ausführbar machen. Folgendes in die Datei eintragen:

#!/bin/bash

SOURCE=/home
# Verzeichnis welches gesichert werden soll

TARGET=/daten/home.backup
# Verzeichnis in dem das Backup gespeichert werden soll
# Das Verzeichnis muss manuell angelegt werden!

LOG=/var/log/backup.log
# Dateiname fuer die Log-Datei angeben

CDSIZE=700000
# Groesse der einzelnen Images angeben, z.B. wenn sie hinterher
# auf CD gebrannt werden sollen, z.B. 700000 fuer 700MB Rohlinge

# Altes Backup loeschen
rm $TARGET/image.*

# Backup erstellen
date >> $LOG
dump -9M -B $CDSIZE -f $TARGET/backup $SOURCE

# ISO Image(s) erstellen
cd $TARGET
for i in $( ls backup* ); do
    mkisofs -r -o $TARGET/image.$i $TARGET/$i
    rm $i
done

# Berechtigungen auf 'Nur Lesen' setzen
chmod 0400 $TARGET/image.*

echo "From Backup-Script@"$HOSTNAME
echo "The following backup(s) exist(s) now:"
dir $TARGET/image.*

Dieses Skript z.B. nach /etc/cron.weekly/ kopieren um es wöchentlich ausführen zu lassen, dann kann man unter der Woche die zuletzt angelegten Backups bei Gelegenheit brennen.

Im Fall der Fälle kann mittels restore rf /cdrom/image.001 das Image zurück gespielt werden (vorrausgesetzt das Image befindet sich auf der gemounteten CD). Bitte beachten dass der aktuelle Inhalt des entsprechenden Verzeichnisses komplett auf den alten Zustand zurück gesetzt wird, wenn also nur Teile beschädigt wurden und neuere Daten erhalten bleiben sollen diese zunächst temporär sichern und hinterher manuell zurückspielen. Wenn sich das Backup über mehrere CDs erstreckt wird man automatisch dazu aufgefordert die nächste CD einzulegen.

4.15 Kernel 2.4.1

Wenn man den Kernel 2.4.1 statt des Kernel 2.2.16 verwenden möchte diesen wie unter RAID1 beschrieben kompilieren und LILO entsprechend einrichten, natürlich die Kernelguellen linux-2.4.1.tar.gz statt linux-2.2.16.tar.gz nach /usr/src/linux-2.4.1/ entpacken und den Link /usr/src/linux/ entsprechend abändern. Die Kernelquellen brauchen nicht gepatcht werden. Die Konfigurationsdatei file_server_raid_bridge für den Kernel 2.4.1 verwenden.

Nachdem der Rechner neu gestartet wurde depmod -a aufrufen.

Falls neue Treiber z.B. für Ethernet-Interfaces benutzt werden sollen zunächst mittels Yast einen vorhandenen Treiber auswählen, z.B. den für NE-2000 kompatible PCI-Karten, und danch den Eintrag in /etc/modules.conf entsprechend ändern, möchte man z.B. den Treiber für Winbond-840 Chipsätze verwenden folgendes ändern:

alias eth0 ne2k-pci

zu

alias eth0 winbond-840

Der Name des entsprechenden Moduls ist unter /lib/modules/2.4.1/kernel/drivers/net/ zu finden, die letzen beiden Zeichen (.o) nicht angeben.

Falls die Module nicht geladen werden bzw. nicht gefunden werden können folgenden Link anlegen: ln -s /lib/modules/2.4.1/kernel/drivers/net/ /lib/modules/2.4.1/net

Falls das Modul bridge nicht geladen werden kann bzw. /sbin/init.d/bridge start fehlschlägt, folgenden Link anlegen: ln -s /lib/modules/2.4.1/kernel/net/bridge/bridge.o lib/modules/2.4.1/misc/bridge.o. Ggf. vorher das Verzeichnis misc anlegen: mkdir /lib/modules/2.4.1/misc.

4.16 Abschluss

Nicht vergessen die unter Allgemein aufgeführten Einstellungen vorzunehmen, wie z.B. die Tripwire -Datenbank zu initialisieren!


Inhalt