Was sind dynamische IP-Nummern?
IP-Nummern sind knapp und daher teuer. Die Provider versuchen deshalb, IP-Nummern einzusparen, indem sie sich nur so viele IP-Nummern zuweisen lassen, wie sich Kunden gleichzeitig bei Ihnen einwählen können. Die Anzahl der potenziellen Rechner, die sich einwählen könnten, ist aber höher; daher kann nicht mehr für jeden Rechner eine IP-Nummer fest zugeordnet werden.
Der Trick besteht also darin, daß auf eine feste Zuordnung Rechner - IP-Nummer verzichtet wird und stattdessen bei jedem Verbindungsaufbau aus einem freien Pool eine ausgewählt wird, die dem Client mitgeteilt wird. Diese Technik wird nur beim PPP-Protokoll benutzt, nicht jedoch bei rawip.
Diese Methode ist prima, wenn man nur eine Arbeitsstation hat und Session-orientiert arbeitet: Verbindung aufbauen, surfen, surfen, Mails austauschen, surfen und schließlich Verbindung abbauen.
Will man nur ein klein wenig mehr (transparenten Internetzugriff), stellt sich schnell heraus, daß das Internetkonzept und dynamische IP-Nummern nicht zusammenpassen.
Folgende Punkte sind für einen transparenten Internetzugriff wünschenswert:
Dieses läßt sich mit ISDN wunderbar lösen, vor allem deshalb, weil der Verbindungsaufbau im Gegensatz zu einem Modem sehr schnell geht. Tatsächlich dauert er nur wenige Sekunden.
Folgende Punkte sind bei dynamischen IP-Nummern nicht realisierbar:
Sehr wohl aber ist man genauso wie sonst auch nicht gegen Angriffe aus dem Internet geschützt. Ein Hacker kann nur nicht voraussagen, welchen Rechner er angreift; er sucht sich halt nur zufällig eine IP-Nummer aus oder belauscht eine Verbindung und kann den Rechner angreifen. Der Vorteil liegt allerdings darin, daß der Hacker weniger Zeit hat, da die Verbindung abgebaut und mit einer neuen IP-Nummer aufgebaut wird, wobei zwischen den beiden IP-Nummern erstmal kein Zusammenhang zu erkennen ist. Als wirksamer Schutz reicht dies aber nicht aus.
Aus dem Offene-Sockets-Problem ergeben sich zwei Punkte, die bei einem IZG mit dynamischen IP-Nummern beachtet werden müssen:
Abhilfe schafft für dieses Probem, daß man dem Client nicht erlaubt, direkt in das Internet eine Verbindung aufzubauen (über Masquerading), sondern nur über Proxies, siehe Abschnitt Squid. Aber auch diese Methode ist nicht zuverlässig.
Wirkliche Abhilfe schafft nur die Aktivierung des RST-Provoking Mode. Dabei wird bei dem Paket die Quell-IP-Nummer gegen die jetzt aktuelle dynamische IP-Nummer ausgetauscht, was bewirkt, daß beide Seiten diesen Socket schließen.
Dieser Modus ist leider noch nicht in den offiziellen Kernel gekommen. Den Patch von Erik Corry findet man hier:
http://www.image.dk/~ehcorry/linux/
Er ist für Kernel der Version bis 2.0.33 passend, ab Version
2.0.34 wird er vermutlich im Standardkernel sein. Im Standardkernel
von SuSE Linux 5.2 und im Quellpaket lx_suse
ist dieser
Patch schon enthalten.
Zur Aktivierung gibt man dieses Kommando ein:
echo 7 > /proc/sys/net/ipv4/ip_dynaddr
Für den Quiet-Mode würde man statt dessen 5
verwenden.
Bei Erfolg sieht man in /var/log/messages
Meldungen der
folgenden Art:
ip_rewrite_addrs(): shifting saddr from 1.1.1.1 to 149.228.142.50 (state 2)
Um den Mode bei SuSE zu aktivieren, trägt man
in /sbin/init.d/i4l_hardware
vor dem Start des
isdnlog
folgende Zeilen ein:
test -z "$I4L_DYNIP" ||
echo 7 > /proc/sys/net/ipv4/ip_dynaddr
Außerdem muß die Datei /etc/rc.config
so geändert
werden:
I4L_DYNIP="yes"
Der Provider stellt nur dynamische IP-Nummern zur Verfügung, während der Konfiguration von i4l werde ich aber nach IP-Nummern gefragt - welche IP-Nummer soll ich denn da angeben?
i4l arbeitet mit einer transparenten Netzanbindung, d.h. logisch gesehen ist die Verbindung immer aktiv, auch wenn noch gar nicht gewählt wurde und keine dynamischen IP-Nummern ermittelt werden konnten. Um dieses Pseudo-Netzwerk zu konfigurieren, müssen aber zwangsläufig IP-Nummern angegeben werden.
Es empfiehlt sich daher, eine Pseudo-IP-Nummer zu benutzen,
z.B. dieselbe, die man auch für seine Ethernetanbindung
benutzt. Das ist möglich, da die PPP-Verbindung als
pointopoint
-Verbindung (beim ifconfig
) konfiguriert
wurde. Dies ist ein spezieller Modus, durch den der
Kernel weiß, daß hier nur eine Verbindung zwischen
zwei Punkten stattfindet. Warum Point-To-Point (PtP)
als pointopoint angegeben wird, weiß ich auch nicht.
Um keinen Konflikt mit offiziellen IP-Nummern zu provozieren, sollte man eine aus dem privaten Bereich wählen, z.B. 192.168.1.1.
Falls man bei T-Online angeschlossen ist oder dies plant: Benutze nicht 192.168.0.*. Darüber werden zum Teil interne Dienste wie CEPT abgehandelt.