|
Linux als Dial On Demand
Internet Gateway 24.04.2000 |
Autor: mw |
|
Zuhause habe ich einige Windows PCs miteinander vernetzt. Nun wollte
ich naürlich nicht für jeden PC ein eigenes Modem einrichten, was zudem
umständlich wäre, da nur immer ein einziger PC aufs Netz könnte.
Deshalb habe ich meine Linux Box so eingerichtet, dass sie als Gateway
zwischen meinem Intranet und dem Internet fungiert. Die Idee war dabei,
dass meine Linux Box sich automatisch mit dem Internet verbindet, also mit
dem Modem rauswählt, sobald einer der PCs aufs Internet will. Dann
sollten alle TCP/IP Packete, welche für's Internet bestimmt sind, mittels
IP Masquerade geroutet werden. Natürlich soll die Linux Box die
Verbindung nach einer gewissen Zeit der Inaktivität auch wieder trennen,
damit die Telephonkosten nicht explodieren. Zu guter Letzt habe ich noch
Squid installiert, einen Proxy Server, welcher den Web Zugriff deutlich
beschleunigt und die Sicherheit gegen Zugriffe von aussen erhöht.
Die folgenden Schritte gelten für SuSE Linux 6.2 sollten aber auch
auf andere Distributionen anwendbar sein.
|
1. |
Voraussetzungen |
|
- SuSE Linux 6.2 (oder eigentlich jedes Linux mit Kernel 2.2.xx
- IP Masquerading in den Kernel einkompiliert (ist im Standard Kernel
der Fall
- dnrd 2.6, kann hier
runtergeladen werden
- pppd (sollte mit wvdial installiert worden sein)
- wvdial 1.3 / 1.4 (1.3 befindet sich auf der SuSE CD)
- externes Modem oder ISDN Adapter
- Internet Provider
- ev. Squid 2.2
|
2. |
Dial on
Demand einrichten |
|
- wvdial einrichten:
Als erstes muss wvdial eingerichtet werden, damit der Zugang zum
Internet Provider funktioniert. Dies geschieht mittels YaST. Im SuSE
Manual ist dies zudem schön erklärt. Hat man seinen Internetzugang
eingerichtet und getestet muss man die Datei wvdial.dod
ins Verzeichnis /etc/rc.d kopieren. Es müssen an dieser Datei
eigentlich keine Veränderungen gemacht werden
wvdial.dod kann als root aufgerufen werden. mit /etc/rc.d/wvdial.dod
start wird Dial on Demand gestartet. Um dies zu automatisieren macht
man entweder in /etc/rc.d/init.d/boot.local einen entsprechenden
Eintrag, oder was eleganter ist die nötigen symbolischen Links in den
entsprechenden Runleveln. Das wären
ln /etc/rc.d/rc2.d/S20wvdial.dod /etc/rc.d/wvdial.dod
ln /etc/rc.d/rc2.d/K20wvdial.dod /etc/rc.d/wvdial.dod
ln /etc/rc.d/rc3.d/S20wvdial.dod /etc/rc.d/wvdial.dod
ln /etc/rc.d/rc3.d/S20wvdial.dod /etc/rc.d/wvdial.dod
Mit diesen Links wird wvdial.dod in den Runleveln 2 und 3
gestartet, resp. gestoppt.
- dnrd einrichten
Damit nun die Verbindung zum Internet aufgebaut wird, muss man der
Linux Box noch die DNS Server des Providers mitteilen. Dazu gibt es
zwei möglichkeiten. Entweder trägt man diese direkt in die /etc/resolv.conf
ein, was manuell oder mit YaST gemacht werden kann oder man wählt
einen etwas eleganteren Weg, was einem vor allem bei Wechseln des
Internet Providers das Leben vereinfacht. Man richtet dnrd ein. dnrd
ist ein kleiner DNS Cache, welcher schon abgefragte IP Adressen
speichert und falls nötig Anfragen zu den DNS des Providers
weiterleitet.
Zuerst installiert man das Packet dnrd.
Dann macht man am Ende der Datei /etc/rc.d/init.d/boot.local den
Eintrag
......
/usr/sbin/dnrd -s dns1 -s dns2
Wobei dns1 und dns2 für die IP Adressen der DNS
Server des Providers stehen. Dieser Eintrag bewirkt, dass dnrd am Ende
des Bootvorganges mit den richtigen Parametern aufgerufen wird.
Nun muss man in der /etc/resolv.conf Datei noch einen Eintrag Eintrag
machen. Als einziger DNS Server (sofern kein weiterer im Intranet
vorhanden ist) muss dort 127.0.0.1, was die local Adresse der Linux
box ist eingetragen werden sein. Dies kann man von Hand machen oder
aber mit YaST. Wenn man nun auf der Linux Box eine externe IP Adresse
öffnen will, z.B. mit lynx http://www.yahoo.com
sollte die Linux Box sich automatisch verbinden.
Achtung! Je nach dem was für Dienste noch installiert sind, kann
es sein, dass sich die Linux Box von nun an selbstständig mit dem
Netz verbindet! Sendmail ist zum Beispiel ein solcher Kandidat. Ich
empfehle aber sowieso, alle Dämonen welche nicht gebraucht werden zu
deinstallieren!
|
3. |
Masquerading
einrichten |
|
Ich habe hierzu eine sehr einfache Lösung gewählt, welche wohl nicht
die sicherste, aber sehr einfach zu implementieren.
Man muss das File /etc/rc.d/firewall durch folgendes Skript ersetzen
#!/bin/sh
# 2000 Marcel Weber
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/ipchains -F
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.168.0/255.255.255.0 -j MASQ
/sbin/ipchains -A forward -s 127.0.0.1/255.255.255.255 -j MASQ
Anstelle von 192.168.168.0/255.255.255.0 sollte man natürlich den
Adressbereich seines eigenen Intranets angeben. Hat man also z.B. Computer
mit den IP Adressen 192.168.0.2 bis .4 dann gibt man
192.168.0.0/255.255.255.0 an!
Die beiden ersten Zeilen sorgen dafür, dass die nötigen Module für IP
Masquerading sicher geladen werden! Es kann sein, dass man ein paar
Fehlermeldungen kriegt. Ist aber nicht weiter schlimm solange es keine IP
Masquerading Module sind, welche fehlen!
Zudem muss man in /etc/rc.config MSQ_START="yes" eintragen! Die
restlichen Parameter sind wurscht, da wir dies direkt im obigen Skript
gemacht haben!
Nach Aenderungen in rc.config muss man SuSEconfig aufrufen!
|
4. |
Squid
einrichten |
|
Wenns ein wenig nobler zugehen soll, kann man zusätzlich noch Squid
installieren, welches mit SuSE Linux geliefert wird. Es handelt sich dabei
um einen Cache Proxy Server, welcher zum einen die Sicherheit erhöht, zum
anderen den Webzugriff durch Caching beschleunigt.
- Als erstes Squid von der CD installieren
- Dann in /etc/rc.config START_SQUID=yes eintragen.
- Dieses Skript nach /etc/squid.conf
kopieren
Dieses Skript erlaubt allen den Zugriff auf den Proxy auf dem Port
8080
- SuSEconfig aufrufen. Man kann Squid aber auch direkt starten mit /etc/rc.d/squid
start
|
5. |
Die Clients
einrichten |
|
Damit nun die Clients Zugriff auf das Internet haben müssen folgende
Dinge gemacht werden. Man muss Ihnen den Default Gateway mitteilen, den
DNS Server und optional den Proxy Server. Zudem müssen die Clients
selbstverständlich TCP/IP installiert haben. In Windows 2000 sieht dies
folgendermassen aus:

Bild Anklicken zum Vergrössern
192.168.168.1 wäre in diesem Beispiel meine Linux Box!
Zudem muss unter Eweitert -> DNS "Adressen dieser
Verbindung in DNS" registrieren deaktiviert sein, sonst beginnt
Windows 2000 immer wieder ins Internet zu wählen.
Den Proxy Server muss man im Internet Explorer oder Netscape ebenfalls
mit der folgenden Adresse angeben: proxy 192.168.168.1 port 8080, resp.
die IP Adresse Deiner Linux Box.
|
6. |
Hinweis |
|
Gerade bei Windows 98 und 2000 gibt es mittlerweile einige Programme
welche sich selbstständig mit dem Internet verbinden wollen. Zum Beispiel
die Automatische Windows Update Benachrichtigung oder Live Update, etc.
Auch Outlook muss z.B. auf manuell gestellt werden, damit es nicht alle 10
min. ins Internet wählt. Die Aktivität auf der Linux Box kann man aber
schön in der /var/log/messages Datei nachschauen. Dort werden alle ppp
Verbindungen eingetragen. Man könnte diese Informationen auch brauchen um
die Telephonkosten zu berechnen. Der Proxy hat auch eine Log Datei unter /var/squid/logs/access.log.
Dort sieht man zudem wer, wann, welche Seite aufgerufen hat. |