Inhaltsverzeichnis
Grund-Aufbau eines kleinen Netzwerks
http://www.linuxwiki.de/KarlhannsSpiegel_2fMeinNetzwerk?action=show
Eine Schritt für Schritt Beschreibung in Kurzfassung, wie ich als absoluter Netzwerk-Unwissender meine Gerätschaft zur freundlichen Mitarbeit überreden konnte. :)
Andere Hilfsangebote
Um etwas tiefer in die Hintergründe einzusteigen oder auftretende Probleme vor allem bei der Grundinstallation und den Interrupt-Adressen (IRQs) zu durchleuchten, sei nochmals die Dokumentation NET-3-HOWTO.html in der jeweiligen Distribution [/usr/share/doc/howto/de/DE-NET3-HOWTO.txt] empfohlen.
Viele Anregungen befinden sich auch auf den Wiki-Seiten von LuLUG , speziell
http://www.adsl4linux.de hier sind auch spezielle Anleitungen für einzelne Provider verfügbar
- Das Linux-Buch von Peter H. Ganten (bei LOB eine Neuauflage)
- die allen Distributionen beiliegenden Manuals
Planung
Gegeben: ein Notebook, ein Rechner im Arbeitszimmer und die Möglichkeit, in ein Firmen-Netz oder mit einer Computer-begeisterten Usergroup mit eigenem Netzwerk zu kooperieren.
Vorraussetzung:der entsprechende Kernel und die Netzwerk- bzw. Module PCMCIA-Module sind installiert.
es ist sicher nicht ganz abwägig sich vorher ein Paar Gadanken bezüglich vorhandener Hardware und des Systems zu machen, dabei sind die IRQs besonders wichtig.
{{{ KDE -> Kontrollzentrum -> Kontrollzentrum ->Infos
}}} kann die meisten Daten preisgeben.
eine detaillierte Beschreibung der Telefon-Konfiguration ist auf der lokalen Seite /TelefonVerkabelung
Wunsch: die Dokumente mit beiden Fremdnetzen und dem eigenen PC austauschen. Auch soll es möglich sein, mit dem Notebook auf dem Balkon im Internet zu surfen.
Eine recht komplexe Konfiguration also, sicherlich etwas für Netzwerk-Spezialisten, sie mögen mir die sehr laienhafte Beschreibung verzeihen.
Sicherheit ist erste Installateur-Pflicht. Mit den Befehlen tar wird als root zunächst das aktuelle System gesichert. # tar cvfz /data/archiv/poseidon-etc.tgz /etc # tar cvfz /data/archiv/nautilus-etc.tgz /etc
Die Ordner /data/archiv sollte bereits vorhanden sein.
Verbindung
SERVER <--> CLIENT
Bei meinem Beispiel ist in beiden Geräten eine Wave-LAN-Karte der Firma: 1stWAVE Wireless International GmbH (Orinoco-GOLD-compatibel) http://www.1stwave.de
- Internet-Verbindung (PPP, Kppp, pppd bzw. ISDN, DSL, FLAT] laufen.
- Drucker, Modem, Fax-Spool sind am am SERVER installiert.
- Der Server dient vorläufig auch als Router.
Kenndaten
Netzwerkadresse 10.10.10.1 Domain-Name home Device eth0 Rechner 1(SERVER + Gateway) nautilus 10.10.10.100 Rechner 2(CLIENT) poseidon 10.10.10.101 auf allen Rechnern localhost 127.0.0.1
Anmerkung: die Adresse 10.10.10.xx ist mit dem alternativen Netzwerkadresse (Firma oder Club) identisch, so entfällt eine zusätzliche Administration.
Die IPs des jeweiligen Rechners können in die Netzwerk-Grundkonfiguration eingetragen werden als feste Route. (YaST2 bei SuSE).
Mit lsmod kann überprüft werden, ob die benötigten Module vorhanden sind.
Grundkonfiguration
auf allen Rechnern werden die benutzen Netzwerk-Daten eintragen
Bei SuSE in /etc/network
loopback 127.0.0.0 home 10.10.10.100
auf allen Rechnern werden die Netzwerke eintragen in /etc/hosts
localhost 127.0.0.1 nautilus 10.10.10.100 poseidon 10.10.10.101
Bei Debian befindet sich dieser Eintrag in /etc/pcmcia/network.opts
# Host's IP address, netmask, network address, broadcast address IPADDR="10.10.10.101" NETMASK="255.255.255.0" NETWORK="10.10.10.1" BROADCAST="10.10.10.255" # Gateway address for static routing GATEWAY="10.10.10.1"
und /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# The loopback interface auto lo iface lo inet loopback # die nächsten Zeilen können auch gelöscht werden #iface eth0 inet static, (bei statischer IP-Zuweisung) # adress 10.10.10.100 # network 10.10.1.0 # netmasc 255.255.255.0 # gateway 10.10.10.1 # broadcast 10.10.10.255
Tests
Nachdem die Konfiguration ohne Nameserver gelungen ist, sollten zunächst verschiedene Test auf allen Rechnern durchgeführt werden:
- von poseidon : # ping nautilus
- von poseidon: # ping 10.10.10.100
- von nautilus: # ping poseidon
- von nautilus: # ping 10.10.10.101
- von beiden Rechnern aus zum anderen # telnet [NAME und IP]
- # bing (Performance-Test; ist auch bei SUSE dabei)
NFS
Schau dazu auch auf NFS, hier die Kurzform.
Server - Anpassung
dazu die freizugebenden Verzeichnisse eintragen:
- in nautilus:/etc/exports
/data poseidon.dom(rw) /home poseidon.dom(rw)
Die entsprechenden Daemonen NFS -Server und PortMapper müssen gestartet werden (Aktivierung per SuSE-YaST)
oder direkt in der Datei
- {{{ nautilus:/etc/rc.config
START_PORTMAP=yes
NFS_SERVER=yes
- }}}
Client - Anpassung
Auf dem Client braucht nur der PortMapper-Daemon gestartet zu werden.
poseidon: /etc/rc.config START_PORTMAP=yes NFS_SERVER=no
Bei Debian befinden sich die Einträge in
- /etc/rc?
Client-Zugriff auf Serverdaten
Wenn bisher alles richtig läuft, sollte es nun möglich sein, ein Verzeichnis des Servers auf dem Client zu mounten. Dazu muss die /etc/fstab auf dem Client so angepasst werden, dass auch dem User das mounten erlaubt ist. Auf CLIENT ist ein zusätzliches Verzeichnis /nautilus und darunter ein Unterverzeichnis /data Voraussetzung.
Korrektur der Datei poseidon:/etc/fstab
nautilus:/data /nautilus/data nfs rw,noauto,user, rsize=4096, wsize=4096, 0 0 nautilus:/home /nautilus/home nfs rw,noauto,user, rsize=4096, wsize=4096, 0 0
Mit dem folgenden Befehl wird das Verzeichnis eingebunden:
mount nautilus:/data /nautilus/data
Die Unterverzeichnisse und Dateien des Servers sind nun wie jedes lokale Verzeichnis verfügbar. Alle Datei-Operationen sind möglich. Wenn auf poseidon auch noch ein LINK in «Eigene_Dateien» gesetzt wird, kann auch aus den Anwendungsprogrammen Z.B. StarOffice heraus jede Datei erreicht werden.
SSH
Die benötigten Pakete werden mit YaST (SuSE), bzw bei Debian mit
# apt-get install ssh
auf alle beteiligten Geräte vor-installiert.
Zunächst am CLIENT:
Für die Autorisierung des Client (root) muß ein RSA-Schlüssel erzeugt werden. Dieser Schlüssel wird für den Login-Prozess statt Name/Password benutzt. Falls kein Schlüssel existiert, wird die normale Password-Abfrage benutzt (natürlich verschlüsselt).
Falls noch ein alter oder defekter Schlüssel existiert (/etc/ssh_host_key sowie /etc/ssh_host_key.pub) sollten diese Dateien gelöscht oder umbenannt werden. Die Datei »known_hosts« sollte ebenfalls umbenannt werden. ROOT führt jetzt den folgenden Befehl aus.
# ssh-keygen -b 1024 -f /etc/ssh_host_key -N
Dann muß der sshd-Daemon auf dem Client-Rechner gestartet werden:
# sshd
Damit dies auch automatisch beim Systemstart geschieht, sollte das über die rc-Dateien eingestellt werden:
YaST -> Konfigurationsdatei -> START_SSHD=yes
Debian -> /etc/rc? Die Config-Dateien werden dabei in /etc/ssh/* abgelegt
Danach sollte probehalber auf dem eigenen Rechner eine Anmeldung erfolgen, um die Funktionalität zu überprüfen:
- # ssh poseidon -l root
Nach einer 'einmaligen' Sicherheits-Abfrage ... (yes|no) , bestätigt durch <yes> , und der Eingabe des root-Passworts kann root sich auf nautilus einloggen. Mit <exit> kann wieder zurück geschaltet werden.
Um sich auch als User einloggen zu können, muß auch als *User* einen RSA-Schlüssel anlegt werden. Zunächst benötigt man ein neues Verzeichnis, falls es nicht existiert:
- # mkdir ~/.ssh
Dann wird als USER der Schlüssel erstellst
- # ssh-keygen -b 1024 -f ~/.ssh/identity -N
Nicht vertippen
Anschließend einloggen auf 'poseidon', auch hier wieder die Sicherheitsabfrage ...<yes>, das Passwort und wir sind drin.
SERVER und andere Rechner
Die gleiche Prozedur wiederholt sich auf allen angeschlossenen Rechnern. Auch auf dem entfernten Rechnern sollte natürlich auch der sshd laufen
Tests
Es kann noch geprüft werden, ob die /etc/host.conf stimmt
order hosts, bind multi on
vom Client aus können nun Test-Operationen ausgeführt werden:
- # ssh nemo@nautilus PASSWORT
loggt auf SERVER ein und ermöglicht das starten einer Anwendung auf nautilus
- # scp poseidon:/DIR/DATEI nautilus:/DIR/
kopiert Dateien zum Server
Wichtig: Finger weg von resolve.conf und route.conf
Drucker für den Client aktivieren
Ich habe dabei die einfachste Configurations-Variante gewählt, da das Notebook nicht immer am Netzwerk angeschlossen ist. Die Einrichtung einer Warteschlage und Definition des Server-Druckers. Ich bin von einer LPR-Lösung ausgegangen, CUPS ist nur unerheblich anders. Die notwendigen Infos stehen bestens in der SuSE-Datenbank. Im einzelnen sind lediglich bei diese wenigen Dateien Überprüfungen notwendig:
- poseidon:/var/spool/lpd/REMOTE-PRINTER
- poseidon:/etc/printcap
- nautilus:/etc/hosts.lpd
letztere enthält die Namen der berechtigten Clients.
Interent-Zugang vom Client aus
Es ist auch darauf zu achten, daß auch dem User die Benutzung des Modem erlaubt ist (YaST -> Benutzerverwaltung).
Einwahl (Erster Test)
- Auf dem CLIENT als USER@poseidon einloggen nach USER@nautilus [PASSWORT]
dann wird kppp oder ein anderes Dialin-tool gestartet und versucht ein Verbindung zum Internet zu bekommen. Es ist ratsam auf dem Server und ebenso auf dem Client bereits einen Browser aktiv laufen zu haben. Dazu öffnen wir ein KDE-Terminal-Fenster und geben diese Befehle ein:
# ssh -X USER@nautilus [PASSWORT-Abfrage beantworten] # kppp
Jetzt sollte die Einwahl in der gewohnten Weise ablaufen. Allerdings kann es sein, dass es zu Fehlermeldungen kommt. Die Problematik bezüglich X kann ignoriert werden.
Xlib: extension »RENDER« missing on display »natilus:10.0«
Auch das angeblich fehlende Interface bleibt ohne Wirkung, es wird ein neues angelegt.
Opener: received ExecPPPDaemon In parent: pppd pid 2921 Couldn't find interface ppp0: Kein passendes Gerät gefunden Kernel supports ppp alright error opening resolv.conf! Opener: received RemoveLock
Der Server müsste nun am Internet hängen. Eine Verbindung mit dem Browser auf dem Server nach www.teamstaroffice.org sollte klappen.
Client goes Internet.
Zunächst kann im gleichen Terminal-Fenster oder besser einem weiteren, nachdem auch dieses mit ssh auf nautilus angesetzt wird, Mozilla gestartet werden. Eine Verbindung mit dem Browser auf dem Server nach www.teamstaroffice.org sollte ebenfalls klappen.
- # ssh -X USER@nautilus [PASSWORT-Abfrage beantworten] | soffice
oder
- # ssh -X USER@nautilus [PASSWORT-Abfrage beantworten] | mozilla
TIPP: das Passwort kann auch direkt mit Doppelpunkt PASSWORT übergeben werden
Wenn dies geklappt hat, haben wir die eigentlichen Hürden überwunden.
Selbstverständlich möchten wir auch ohne ssh vom Client aus ins Internet gelangten, dazu muss die Verbindung Server --> Internet stehen. Versuchen wir allerdings direkt aus dem Browser des Clients die Seite aufzurufen, werden wir vorerst scheitern. Dazu muss der Server als ROUTER eingerichtet werden und auf dem Client das Internet-Gateway = SERVER bekannt gegeben werden.
Router und Gateway
lies dazu bitte auch NetzwerkKonfiguration.
DHCP-Server
Der DhcpServer muß installiert sein. falls nicht, dazu eingeben (Debian):
# apt-get install dhcp3-server
Bei SuSE läßt sich das über YaST erledigen - so steht es jedenfalls in der Doku.
Es ist aber ein Bug zur Erbauung der Anfänger mitgeliefert worden Daher bin ich nach etlichen Fehlschlägen zu dieser Lösung gekommen:
Das Gateway kann in der laufenden Sitzung als Test zunächst einmalig aktiviert werden. Damit wissen wir, dass alles richtig arbeitet:
# route add default gw 10.10.10.1
Um die Einstellung dauerhaft zu bekommen, habe ich die Datei poseidon:/etc/pcmcia/network.opts direkt wie nachfolgend editiert. Zusätzlich habe ich auf dynamische IP-Zuweisung umgestellt. Es gab bei den Club-Treffen mehrere Clients mit gleicher fester IP. Die dazu notwendige Änderung am SERVER ist nur gering. Sie geschieht über die Datei /etc/[dhcp3/]dhcp.conf. Die wesentlichen Einträge sind:
/etc/[dhcp3/]dhcp.conf option domain-name 'home' option routers 10.10.10.1 option domain-name-server 10.10.10.1;
auch die Angaben unter Subnet-range müssen entsprechend gesetzt sein:
subnet 10.10.10.0 netmask 255.255.255.0 range 10.10.10.100 10.10.10.200 option subnet-mask 255.255.255.0
Den DhcpServer starten
# /etc/init.d/dhcp3-server start
DHCP-Client
Beim Client ändert sich allerdings die /etc/pcmcia/network.opts [siehe oben bei DEBIAN]
- Dokumatation zu diesem Thema: # /usr/share/doc/packages/pcmcia/PCMCIA-HOWTO section 5.2:
# Network adapter configuration (beim CLIENT) # Use DHCP (via /sbin/dhcpcd or /sbin/dhclient)? [y/n] DHCP="y" # Use /sbin/pump for BOOTP/DHCP? [y/n] PUMP="n" GATEWAY=""
DNS-Server
siehe auch file:///usr/var/doc/HOWTO/de-html/DE-DNS-HOWTO.html
ThomasWaldmann hat mir bind9 installiert, es tut allerdings nicht immer ganz perfekt.
BIND9
ipmasq (erledigt die Masquerating Geschichten - darauf sollte dann das Firewalling Konzept aufbauen)
Das PaketFilter/MasqueradeSshProxy konfigurieren und danach überprüfen
# iptables -t nat -L -n -v
in /etc/network/options eintragen:
ip_forward=yes
und anschließend, damit das sofort wirkt:
echo "1" >/proc/sys/net/ipv4/ip_forward
Allgemeiner Funktions-Tests
am Server (nautilus.nemo)
root@nautilus:/home/nemo$ ps aux |grep dhc root 559 0.0 0.6 3108 1620 ? S 09:33 0:00 /usr/sbin/dhcpd3 -q eth0 root 717 0.0 0.2 1780 732 pts/1 S 09:37 0:00 grep dhc
root@nautilus:/home/nemo$ ps aux |grep pump root 719 0.0 0.2 1776 724 pts/1 S 09:37 0:00 grep pump
root@nautilus:/etc/dhcp3$ ps aux |grep name root 264 0.0 0.9 13264 2416 ? S 09:33 0:00 /usr/sbin/named
root@nautilus:/etc/dhcp3$ route Kernel IP Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface max04.LF.net * 255.255.255.255 UH 0 0 0 ppp0 dom * 255.255.255.0 U 0 0 0 eth0 default max04.LF.net 0.0.0.0 UG 0 0 0 ppp0
/etc/resolv.conf anschauen [sie darf sich nicht verändern vor und nach Einwahl mit kppp] search home nameserver 127.0.0.1
Test am Client:
route -n sollte aehnlich oben aussehen ping 80.190.101.128 sowie ping thinkmo.de muessen anzeigen
Verschlüsselung
es fehlt nur noch eine saubere Eingrenzung der beteiligten PCs, dazu siehe in die Dokumentation zu WLan und -Verschlüsselung
DSL-Erweiterung über WLAN
die Beschreibung ist umgezogen nach DslRouter
Frage: trotz anscheinend korrekter Config muss ich bei jedem Neu-boot bind9 restart durchführen. Was ist die Ursache, wie kann das verhindert werden?
A: Bind deinstallieren. Ersetze es durch welchen Du willst, aber nicht_ bind! z.B. fli4l verwendet dnsmasq
B: alternativ: in /ppp/ip-up.d bind9 restart ergänzen ??dnsmasq kann ich nur empfehlen. Es kann auch gleich als DHCP-Server fungieren, dann hast Du deine Namen und automatisch vergebenen IP-Adressen zusammen. -- HenrykGerlach 2004-05-26 21:27:15
/MoinEditorBackup (geschützte Seite)