sticky Wichtig DHCP-Spoofing mit TG585v7 und dynamischen IP's


Mehr
12 Jul 2009 02:41 - 10 Feb 2014 21:47 #8550 von zid
Dieses HOWTO ist das Ergebnis einer Diskusion mit jk99:
www.dieschmids.at/downl/router/thomson/585v7/config/konfigs-TG585v7-r8690-generic.zip/
Vielen Dank Sepp für deine hochinteressanten Bemerkungen und Fragen.


DHCP-Spoofing ist auch unter der Bezeichnung "Öffentliche IP-Adresse einer Verbindung einem Gerät zuweisen" bekannt. Der Rechner, dem die öffentliche IP zugeordnet wird, heißt default Server/exposed Host.
Bei DHCP-Spoofing mit dynamischen IPs gibts bzw. gab es folgende Probleme:

- Das "Wandern" der öffentlichen IP
Das DHCP-Spoofing hat bei r8.2.1.5 einen Bug, s. den Punkt DHCP im Abschnitt Open Issues der Release Notes für r8.2.1.5:
www.dieschmids.at/forum/3-speedtouch-firmware/6166-offizielle-firmware-release-infos
Dieser Bug ist problematisch bei Telekom-Zugängen. Nach dem 8h-Zwangsdisconnect der Telekom wird die neue öffentliche IP in den spoofing Pool gelegt, die Zuordnung MAC <-> öffentliche IP geht jedoch verloren. Wenn jetzt ein Rechner im LAN zufällig vor dem default Server seine IP erneuert, dann bekommt er die öffentliche IP, während dem default Server eine private IP zugeteilt wird, die öffentliche IP beginnt zu "wandern", was zu lustigen Effekten führen kann:
www.dieschmids.at/forum/2-speedtouch-allgemein/3408-dhcp-spoofing-zuviele-pub-ips-im-lan
Dieser Bug ist in der r8.2.3.10 gefixt.

- Falsches NAT-Template nach einem Reboot
Nach einem Reboot "vergißt" das TG den default Server und setzt ein NAT-Template vom Typ "Outbound NAPT without Default Server". Gebraucht wird ein Template vom Typ "Outbound NAPT with Default Server" (und dem korrekten default Server natürlich).
Folge: Der default Server ist von außen nicht mehr erreichbar, selbst wenn er die IP korrekt erneuert hat.

- Probleme mit den Netzdaten des DHCP-Servers bei manchen Routern
Manche Router (z.B. Linksys WRT54GL) können mit den Netzdaten, die der DHCP-Server des TG liefert, nicht viel anfangen und setzen keine default Route.
Folge: Man ist off.
Dieses Problem kann durch Aktivierung der Option "localgw" beseitigt werden. Weitere Details dazu sind im Abschnitt "Hinweise und Bemerkungen" zu finden.

In diesem Howto wird wird DHCP-Spoofing manuell so eingerichtet, daß die oben erwähnten Probleme nicht mehr auftreten.
Dieses Howto bezieht sich auf r8.2.3.10 und höher und ist für r8.2.1.5 und tiefer nicht geeignet!
Die Konfiguration ist mit einem statisch konfigurierten Rechner vorzunehmen, während der Konfiguration sind alle Hosts, die über DHCP konfiguriert werden zu deaktivieren oder vom Modem zu trennen.

Flush der Leases

=>dhcp server lease flush

Definition eines spoofing Pools
Die Option "localgw" wird sicherheitshalber aktiviert, Details dazu im Abschnitt "Hinweise und Bemerkungen"

=>dhcp server pool add name DefaultServer index 0
=>dhcp server pool config name DefaultServer intf LocalNetwork leasetime 28820 unnumbered enabled localgw enabled


Definition der DHCP-Regeln
Vorsicht, in diesem Beispiel wird die MAC-Adresse des Routers (00-1c-10-a2-e5-fa) gesetzt, der für den Test verwendet wurde. Diese MAC-Adresse ist durch die MAC-Adresse des eingesetzten default Servers zu ersetzen- in beiden Zeilen!

=>dhcp rule add name=DefaultServer type=mac mac=00-1c-10-a2-e5-fa
=>dhcp rule add name=not_DefaultServer type=mac mac=!00:1c:10:a2:e5:fa


Zuordnung der DHCP-Regeln

=>dhcp server pool ruleadd name DefaultServer rulename DefaultServer
=>dhcp server pool ruleadd name=LAN_private rulename=not_DefaultServer


Kontrolle spoofing Pool

=>dhcp server pool list name DefaultServer
Pool Address Range Intf Admin Alloc State
0 DefaultServer 0.0.0.0 LocalNetwork up dynamic down

DHCP server = 0.0.0.0 [unnumbered]
Netmask = 0.0.0.0
Leasetime = 28820s
DNS domain = lan
DNS metric = 0

DNS address list:
0.0.0.0 (local DNS)

Rule list:
DefaultServer


Kontrolle LAN Pool

=>dhcp server pool list name=LAN_private
Pool Address Range Intf Admin Alloc State
1 LAN_private 10.0.0.[1-254] LocalNetwork up dynamic static

DHCP server = 10.0.0.138
Netmask = 255.255.255.0
Leasetime = 86400s
Gateway = 10.0.0.138
DNS domain = lan
DNS metric = 10

DNS address list:
10.0.0.138 (local DNS)
10.0.0.138

Rule list:
not_DefaultServer


Firewall deaktivieren

=>firewall level set name Transparent

Konfiguration von PPP und NAPT
Wenn DHCP-Spoofing einsetzt wird, sollte der Verbindungsmodus "Dauerbetrieb/always-on" sein. Details dazu s. hier:
www.dieschmids.at/forum/6-ankuendigungen-und-faqs/2413-speedtouch-thomson-modem-auf-dauerbetrieb-stellen

=>ppp ifdetach intf INTERNET
=>ppp ifconfig intf INTERNET unnumbered enabled pool DefaultServer


Danach ist ein Template vom Typ "Outbound NAPT with Default Server" zu setzen. Dieses Template übersteht auch einen Reboot, was nicht der Fall ist, wenn die Konfiguration über das Webgui vorgenommen wird.
Wird eine ini der Telekom eingesetzt, so ist vorher noch ein unnötiges Template zu entfernen, das stören könnte. Bei den inis aus dem DL-Bereich des Forums ist dieser Schritt nicht notwendig, da dieses Template schon entfernt wurde, es kann bei "nat tmpladd..." weitergemacht werden.

=>nat tmpllist
...
13 NAPT INTERNET any 0.0.0.1 unmapped 0


Jener Index, der den Eintrag "unmapped" enthält, ist zu entfernen. Der Index kann variieren. Danach kann man das Template für den default Server setzen.

=>nat tmpldelete index 13
=>nat tmpladd intf INTERNET type napt outside_addr 0.0.0.1 inside_addr 0.0.0.1


Jetzt darf das Listing der Templates keine Zeile mit einen "unmapped" Eintrag enthalten.

=>nat tmpllist
...
13 NAPT INTERNET any 0.0.0.1 0.0.0.1 0


Ist das der Fall, so kann die PPP-Schnittstelle aktiviert werden.

=>ppp ifattach intf INTERNET

Kontrolle des spoofing Pools
Nach Aktivierung der PPP-Schnittstelle muß der spoofing Pool die öffentliche IP enthalten und bei "Gateway" eine virtuelle IP (= öffentliche IP + 1) eingetragen sein, da die "localgw"-Option aktiv ist (s.u.):

=>dhcp server pool list name=DefaultServer
Pool Address Range Intf Admin Alloc State
0 DefaultServer 88.117.87.118 LocalNetwork up dynamic up

DHCP server = 10.0.0.138 [unnumbered]
Netmask = 255.255.255.255
Leasetime = 28820s
Gateway = 88.117.87.119 [virtual]
DNS domain = lan
DNS metric = 0

DNS address list:
10.0.0.138 (local DNS)
195.3.96.67
213.33.98.136

Rule list:
DefaultServer


Tests
Ausgangspunkt ist der Zustand ohne zugeteilte Leases, d.h. der Output von

=>dhcp server lease list
=>


ist leer. Dann wird ein DHCP-client im LAN (nicht der default Server!) gestartet, sodaß er sich eine IP via DHCP holt. Diese IP muß aus dem LAN Pool kommen, das sieht dann z.B. so aus:

=>dhcp server lease list

Lease Pool TTL State Clientid
0 10.0.0.2 LAN_private 23:53:46 USED [01] 00:19:cb:0c:6c:17


Danach wird der default Server aktiviert, er muß die öffentliche IP zugeteilt bekommen:

=>dhcp server lease list

Lease Pool TTL State Clientid
1 88.117.87.118 DefaultServer 05:51:41 USED [01] 00:1c:10:a2:e5:fa
0 10.0.0.2 LAN_private 21:43:50 USED [01] 00:19:cb:0c:6c:17


Wenn alles paßt

=>saveall


Hinweise und Bemerkungen

Man kann DHCP Spoofing über die Leasedauer steuern. Dieser Ansatz ist nicht sehr robust, da bei einem zufälligen Verbindungsabbruch und anschließendem Reconnect der default Server sich keine neue IP holt und somit offline bleibt. Vorteilhafter ist es, den Verbindungszustand durch einen Watchdog o. ä. zu überwachen. jk99 hat bei einem Linksys WRT54GL gezeigt, wie so etwas aussehen könnte.


Wenn nur der default Server am Modem hängt, ist es besser, NAT zu deaktivieren und voll zu routen (besonders wenn auf das Netzwerk von außen zugegriffen wird):

=>nat ifconfig intf INTERNET translation disabled

Die Option "localgw"
Diese Option wird normalerweise nicht aktiviert, was zur Folge hat, daß der DHCP-Server dem Client die öffentliche IP samt /8er-Netz und die IP des PPP-Peers (bei der Telekom 62.47.95.239) als Gateway-Adresse liefert. Der Linksys WRT54GL hat damit Probleme, er setzt keine Hostroute für die Peer-Adresse und damit auch keine default Route (ohne Hostroute ist das ein sinnloser Eintrag). Die Routing-Tabelle sieht dann nach dem Bezug der öffentlichen IP so aus:

Dieses Bild ist für Gäste verborgen.
Bitte anmelden oder registrieren um das Bild zu sehen.



Wenn am GL eine alternative Firmware eingesetzt wird, dann kann man die fehlenden Einträge nachträglich manuell setzen (macht jk99 z.B.), bei der Standardfirmware v4.30.7 geht das jedoch nicht.
Wird die "localgw"-Option aktiviert, dann wird nicht die IP des PPP-Peers, sondern eine IP aus dem /8er-Netz (öffentliche IP + 1) als Gateway-Adresse übertragen. Für diese IP braucht es keine Hostroute und der GL setzt ohne Probleme die default Route. Das sieht dann so aus:

Dieses Bild ist für Gäste verborgen.
Bitte anmelden oder registrieren um das Bild zu sehen.



Dieses Problem kann auch bei anderen Routern auftreten, deshalb sollte man sicherheitshalber die Option "localgw" aktivieren.

Grundsätzlich ist DHCP-Spoofing eine Notlösung und sollte nur dann eingesetzt werden, wenn alle Stricke reißen, z.B bei manchen Online-Spielen.
Nicht angebracht ist die Verwendung von DHCP-Spoofing, wenn

- einfache Server betrieben werden.
In diesem Fall sind Portweiterleitungen zuverlässiger und unkomplizierter:
www.dieschmids.at/forum/6-ankuendigungen-und-faqs/2413-speedtouch-thomson-modem-auf-dauerbetrieb-stellen
www.dieschmids.at/forum/6-ankuendigungen-und-faqs/3513-zusaetzlicher-router-nach-dem-thomson-speedtouch
- eine statische IP vorliegt.
In diesem Fall sollten z.B. solche Konstruktionen eingesetzt werden:
www.dieschmids.at/forum/4-fragen-zur-konfiguration/7631-thomson-tg585-v7-server-ip-block-problem?lang=de&limitstart=0#7632
edit 2010.02.26:
Link aktualisiert.
Letzte Änderung: 10 Feb 2014 21:47 von andi.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Moderatoren: andifrm1912enjoyherby68benderrwhomegeko
Ladezeit der Seite: 0.261 Sekunden
Powered by Kunena Forum