(Transparenter) Router

Hallo Leute!

Ich möchte zwischen einem bestehenden LAN und dem Hardware-Router (inkl. Firewall), welcher am ADSL-Modem hängt, einen Rechner (mit 2 Netzwerkkarten) hängen. Dieser soll (wenn das andere mal läuft) den Net-Verkehr „regulieren“ (Filter + transparent Proxy).
Das Problem ist nun folgendes: Das LAN ist ein 192.168.0.0/24 - Netz, der HW-Router hat die IP 192.168.0.254. Nun will ich jetzt nichts anderes, als das der Rechner vor dem HW-Router einfach die Pakete für den HW-Router und das I-Net mit eth0 empfängt und über eth1 weiterleitet.
Nach diversen (stundenlangen) Versuchen und Recherchen im Internet war mein grösster Erfolg, dass ich aus dem LAN über den Rechner den Router anpingen konnte. Mehr war aber nicht möglich (weder ein Ping ins I-Net noch ein Zugriff auf das Konfigurationstool des Hardwarerouters). Vom (angehenden) Routing-Rechner war hingegen ein Zugriff in beiderlei Richtung (I-Net und LAN) problemlos möglich.
Ich hatte /proc/sys/net/ipv4/ip_forward auf „1“ gesetzt, die Routing-Tabelle schon in allen möglichen und unmöglichen Konfigurationsarten gesetzt - kein Zugriff vom LAN ins I-Net.
Hat irgendwer Erbarmen mit mir und sagt, welchen Punkt ich die ganze Zeit übersehe?!? Danke!
Pürsti

Nochmals Hallo!

Wenn man im Kernel das Bridging reinkompiliert geht alles gleich viel besser :smile:

Nochmals Hallo!

Hi,

mann kann Beitraege uebrigens auch loeschen. Jetzt nicht mehr.

Wenn man im Kernel das Bridging reinkompiliert geht alles
gleich viel besser :smile:

Hm, Du hast jetzt eine bridge (layer2)[1], wolltest eigentlich einen router (layer3) oder einen proxy (layer5) (so hab ich mir das zusammengereimt). Schiess nochmal in eine zufaellige Richtung, vielleicht triffst Du ja dann die richtige Schicht.

Du hast routing nicht verstanden? Subnets? Gateways? $WHATEVER?

Schoenes Wochenende,
Gruss vom Frank.
===footnotes===
[1] Haette ich ja einen switch fuer $funfzfuffzg aus Aldi genommen, kommt (fast) auf’s gleiche raus.

Hi!

mann kann Beitraege uebrigens auch loeschen. Jetzt nicht
mehr.

Man lernt nie aus…

Wenn man im Kernel das Bridging reinkompiliert geht alles
gleich viel besser :smile:

Hm, Du hast jetzt eine bridge (layer2)[1], wolltest eigentlich
einen router (layer3) oder einen proxy (layer5) (so hab ich
mir das zusammengereimt). Schiess nochmal in eine zufaellige
Richtung, vielleicht triffst Du ja dann die richtige Schicht.

Du hast routing nicht verstanden? Subnets?
Gateways? $WHATEVER?

Ich Physiker, nix Informatiker :smile:

Also, was ich will:
Der Datenverkehr zum/vom I-Net soll nur über diesen Router/Bridge/Proxy (oder wie auch immer die richtige Bezeichnung lautet) laufen können. Ich möchte damit dann den Strom filtern und die Daten, welche als Zielport 80 haben, über einen Proxy umleiten. Damit das irgendwie möglich ist, muss zuerst der Datenstrom von und zum I-Net problemlos über den Rechner laufen können. Das brachte ich mittels bridging hin. Allerdings hatte ich jetzt (wie Du Dir vielleicht schon denken wirst) Probleme, iptables auf die Daten anzuwenden - d.h. die Rules werden einfach ignoriert :frowning:
Hast Du vielleicht eine Ahnung, wie man das besser hinbekommt? Danke!

Pürsti

Hi!

Hallo,

Wenn man im Kernel das Bridging reinkompiliert geht alles
gleich viel besser :smile:

[Welches layer haetten’s denn gern?]
Du hast routing nicht verstanden? Subnets?
Gateways? $WHATEVER?

Ich Physiker, nix Informatiker :smile:

Nicht so schlimm, ich auch nicht (Schlosser advanced :wink:.

Also, was ich will:
Der Datenverkehr zum/vom I-Net soll nur über diesen
Router/Bridge/Proxy (oder wie auch immer die richtige
Bezeichnung lautet)

Hm, das muesstest Du dann aber entscheiden. Willst Du auf layer2 filtern (was AFAIK gar nicht gut geht), layer3 (nach IP#:stuck_out_tongue:orts, sehr begrenzt Inhalten) oder layer5 (application, content filtering)

laufen können. Ich möchte damit dann den Strom filtern und die
Daten, welche als Zielport 80 haben, über einen Proxy umleiten.

Also routing (layer3) mit DNAT.

Allerdings hatte ich jetzt (wie Du Dir vielleicht schon
denken wirst) Probleme, iptables auf die Daten anzuwenden -
d.h. die Rules werden einfach ignoriert :frowning:

Wundert mich nicht.

Hast Du vielleicht eine Ahnung, wie man das besser hinbekommt?

Kurzanleitung (evtl. lueckenhaft):

  1. CONFIG_NETFILTER, CONFIG_IP_NF_CONNTRACK, CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_MATCH_STATE, CONFIG_IP_NF_FILTER, CONFIG_IP_NF_NAT, CONFIG_IP_NF_TARGET_REDIRECT und CONFIG_IP_NF_TARGET_LOG im kernel aktivieren,

  2. neuen kernel booten / neue Module laden

  3. subnets festlegen

  4. passende Regeln schreiben, insbesondere das -j REDIRECT sollte in Deine nat-Tabelle.

  5. IP forwarding aktivieren

    echo 1 >/proc/sys/net/ipv4/ip_forward

(IIRC).

Vollstaendige Anleitung unter [1]. (Ist IMHO wirklich gut, ausserdem lernst Du dort die Grundlagen von TCP/IP. Ich hab das daran gut begriffen.) Bei konkreten Fragen: you are welcome.

HTH,
Gruss vom Frank.
===footnotes===
[1] http://iptables-tutorial.frozentux.net/iptables-tuto…

Hallo!

Ich Physiker, nix Informatiker :smile:

Nicht so schlimm, ich auch nicht (Schlosser advanced :wink:.

Die Bezeichnung gefällt mir :smile:

Also, was ich will:
Der Datenverkehr zum/vom I-Net soll nur über diesen
Router/Bridge/Proxy (oder wie auch immer die richtige
Bezeichnung lautet)

Hm, das muesstest Du dann aber entscheiden. Willst Du auf
layer2 filtern (was AFAIK gar nicht gut geht), layer3 (nach
IP#:stuck_out_tongue:orts, sehr begrenzt Inhalten) oder layer5 (application,
content filtering)

laufen können. Ich möchte damit dann den Strom filtern und die
Daten, welche als Zielport 80 haben, über einen Proxy umleiten.

Also routing (layer3) mit DNAT.

Schon wieder einen neuen Begriff gelernt (DNAT)…

Allerdings hatte ich jetzt (wie Du Dir vielleicht schon
denken wirst) Probleme, iptables auf die Daten anzuwenden -
d.h. die Rules werden einfach ignoriert :frowning:

Wundert mich nicht.

Dachte ich es mir…

Hast Du vielleicht eine Ahnung, wie man das besser hinbekommt?

Kurzanleitung (evtl. lueckenhaft):

  1. CONFIG_NETFILTER, CONFIG_IP_NF_CONNTRACK,
    CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_MATCH_STATE,
    CONFIG_IP_NF_FILTER, CONFIG_IP_NF_NAT,
    CONFIG_IP_NF_TARGET_REDIRECT und CONFIG_IP_NF_TARGET_LOG im
    kernel aktivieren,

Die meisten Sachen kommen mir bekannt vor - bis auf das LOG. Benötige ich das?

  1. neuen kernel booten / neue Module laden
  2. subnets festlegen
  3. passende Regeln schreiben, insbesondere das -j REDIRECT
    sollte in Deine nat-Tabelle.
  4. IP forwarding aktivieren

echo 1

>/proc/sys/net/ipv4/ip_forward

(IIRC).

http://iptables-tutorial.frozentux.net/iptables-tuto…

Danke für den Link!
Werde mich heute abend nach Deiner Anleitung noch mal an die Arbeit machen.
Danke für Deine Ratschläge!

Pürsti

Hallo!

Hi,

  1. CONFIG_NETFILTER, CONFIG_IP_NF_CONNTRACK,
    CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_MATCH_STATE,
    CONFIG_IP_NF_FILTER, CONFIG_IP_NF_NAT,
    CONFIG_IP_NF_TARGET_REDIRECT und CONFIG_IP_NF_TARGET_LOG im
    kernel aktivieren,

Die meisten Sachen kommen mir bekannt vor - bis auf das LOG.
Benötige ich das?

Nicht unbedingt, man kriegt dadurch ein weiteres target und kann mit -j LOG fuer matchende Pakete einen Eintrag in den log files erzeugen. Ist zum debuggen und zum protokollieren, wer da was am gateway rumfummelt ganz nuetzlich. Zwingend noetig ist es nicht. Lies die Hilfe zu den kernel sources und den link, dann wird Dir das alles klar.

Viel Erfolg,
Gruss vom Frank.

Hallo Frank!

Ich wollte Dir nur mitteilen, dass aufgrund Deiner Hilfe der Router jetzt wie gewünscht läuft.
Nochmals ein herzliches Dankeschön und ein schönes Wochenende!

Pürsti