ds-mod - transparenter Proxy

7559thomas

Neuer User
Mitglied seit
22 Apr 2006
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Situation:
Ich nutze die FBF7050 mit ds-mod (Version 14.04.01ds-0.2.6) für meinen Internetzugang. Nun habe ich eine Linux-Box mit installiertem squid (Port8080), die ich gerne als transparenten Proxy einsetzen möchte. Also alle Port80-Anftragen an die Linux-Box (Port8080) senden und den direkten Zugang der weiteren Clients zum Internet sperren. Nur die Linux-Box darf (über Port80) raus.

Vorteil:
Ich muß nicht alle Clients einzeln auf den Proxy (Linux-Box) einstellen und ich kann mir sicher sein, dass niemand an den Proxy vorbei ins Internet geht.

Problem: Ich bekomme es nicht geregelt, dass FBF ankommende Anfragen an meine (interne) Linux-Box weiterreicht. Ich denke (bin in diesem Bereich noch nicht so sicher), dass dafür das Modul iptable_nat auf der FBF erforderlich ist.
Kann mir jemand sagen,
a) ob es für mein Problem eine simple Lösung auch ohne fehlende Module gibt (wenn ja, natürlich bitte auch beschreiben) oder
b) wie ich iptable_nat in die FBF bekomme

Wäre nett, wenn ich hier einen Expertentipp bekommen könnte. Wenn ein solcher Tipp mir hilft, dann werde ich hier anschließend das komplette Vorgehen (auch Umgang mit den weiteren wichtigen Protokollen TCP, SSH, IMAP, POP, SMTP...) beschreiben. Denke, dass dies auch für andere interessant sein könnte.
 
Hi.
Mit einer entsprechenden Portweiterleitung sollte das doch eigentlich funktionieren, oder?

Iptables ist im dsmod enthalten, einfach firewall-cgi im menuconfig aktivieren.

MfG Oliver
 
Hallo Oliver,
mit der firewall und -cgi kann ich über die whitelist den Zugang raus ins Internet freigeben oder sperren. Doch ich möchte ja jede Anfrage, die über die FBF ins Internet möchte wieder zurück ins LAN schicken -auf die LinuxBox mit ProxyServer.

Die Portweiterleitung kenne ich nur für Anfragen von draußen (Internet) auf einen bestimmten Server im LAN. Nur möchte ich hier für den "transparenten Proxy" interne Anfragen erst zum (internen) Proxy senden und dann nur über diesen Proxy in das Internet schaufeln.

Aber vielleicht geht dies ja wirklich einfach über irgendeine einzustellende Weiterleitung - wenn hier jemand diese Lösung kennt, dann bitte posten.

Danke
Thomas
 
So wie ich das verstanden habe, hat hier jemand was ähnliches vor.

Du musst dir iptables installieren (ds-mod). Die folgenden Zeilen sind die wichtigen. Natürlich musst du sie an deine Umgebung anpassen.

Code:
iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp --dport 80
- -j DNAT --to squid-box:3128
iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j
SNAT --to iptables-box
iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp
- --dport 3128 -j ACCEPT

Vielleicht hilft es dir ja

Gruß,
Rob
 
Kann ich nur bestätigen. Destination-NAT (DNAT) ist die einfachste Möglichkeit, funktioniert allerdings nicht mit HTTP/1.0-Anfragen (jeder moderne Browser benutzt HTTP/1.1 oder zumindest das "Host" Feld im HTTP-Header, somit ist das keine Einschränkung). Du mußt dazu zusätzlich bei den Libs die iptables DNAT Lib und das entsprechende Kernel Modul auswählen.

Die allgemeinere Methode setzt iproute2 und das MARK-Taget für iptables vorraus (iproute2 müßtest du erst noch für die Box kompilieren). Die Idee ist es, Pakete von Clients nach Port 80 zu markieren und diese markierten Pakete über eine alternative Routing Tabelle zu routen, welche nur die squidbox als Standardgateway enthält. So gelangen die IP-Pakete ohne Überschreiben der Zieladresse bei der Squidbox an, bei welchem du dich dann über httpd_accel_host schlau machen solltest. Der ganze Hokus Pokus ist bei DNAT nicht notwendig.

Mfg,
danisahne
 
danisahne schrieb:
.... Du mußt dazu zusätzlich bei den Libs die iptables DNAT Lib und das entsprechende Kernel Modul auswählen.

Mfg,
danisahne

Danke für die Hilfe - ich denke, nun auf dem richtigen Weg zu sein.
Die NAT-Einträge in den iptables (Beitrag von robot_rap) habe ich so auch mit einer anderen Installation schon einmal genutzt (IPCOP) - hierbei war/ist mein Problem nun, dass in der FBF dieser Befehlssatz so nicht vorhanden ist.

Danisahne,
könntest Du bitte die Libs und das entsprechende Kernel-Modul genau nennen? Ich habe es mit libipt_DNAT.so und iptable_nat.o im 'make menuconfig' (anschließend 'make') versucht - leider ohne Erfolg. Fehlt hier noch etwas oder mache ich noch einen grundsätzlichen Fehler?

Gruß
Thomas
 
Ich weiß auch nicht so genau, welche du alle brauchst. Das kannst du doch ganz gut im RAM testen. Außerdem sagt dir doch iptables recht genau, was er nicht finden kann.

Kernelmodule kannst du im RAM mit insmod nachladen, Libraries z.B. einfach nach /var/tmp/lib/ und dann
Code:
export LD_LIBRARY_PATH=/var/tmp/lib/
bevor du iptables ausführst. Wenn du alle gefunden hast, die du brauchst, dann kannst du die Firmware nochmal erstellen.

Was du auf jeden Fall brauchst:
  • ip_tables.o
  • iptable_nat.o (wahrscheinlich)
  • iptable_filter.o
  • libipt_standard.so
  • libipt_DNAT.so
  • libipt_SNAT.so
  • libipt_tcp.so

Mfg,
danisahne
 
super beitrag, hat mir viel geholfen. :rock:

@mod
wäre prima, wenn ihr das in das ds-mod subforum verschieben könntet
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,831
Beiträge
2,219,105
Mitglieder
371,533
Neuestes Mitglied
ipeee
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.