PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NAT / Proxy mit Squid 2.6



tooliload
04.07.08, 20:51
Hallo,

ich habe mir Debian installiert mit Squid 2.6 (apt-get install squid).
Nun habe ich Squid so gut es geht transparent eingestellt, Squid als Proxy läuft an sich, wenn er direkt im Browser eingetragen wird.

Mein Problem ist, das ich einen Lancom Gateway habe, dieser benötigt einen Proxy der einen NAT durchführt, der Proxy muss daher auf Port 80 lauschen (IP Tables?).

Wie mache ich das am besten? Ich habe über Google auf einigen Seiten gelesen, das wohl 2 Netzwerkkarten (eth0 ...) benötigt werden stimmt das?

Auszug meiner Squid.conf :


acl all src 0.0.0.0/0.0.0.0
acl our_networks src 192.168.0.0/24
http_access allow our_networks
http_port 192.168.0.211:3128 transparent
always_direct allow all


(Der Debian-Server hat die Netzwerk IP 192.168.0.211, die anderen PC´s bzw. der Gateway befinden sich ebenfalls im 192.168.0.X Bereich)

Befehl für die IP-Tables:



iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

und

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.211:3128


Leider geht es so nicht, würde mich daher auf Hilfe freuen.
Ein genaues Tut habe ich leider mit Google nicht gefunden, da sich viele Tuts mit den älteren Versionen von Squid rumschlagen und viele Befehle (z.B transparent Modus) in v2.5+ neu sind.

Freue mich auf Antworten.

Gruß und Danke im Voraus.

Tino

honkstar
04.07.08, 21:10
Hallo,

leider habe ich noch nicht ganz verstanden, was du vorhast, du wirbelst da einiges durcheinander (so scheint es mir)


Nun habe ich Squid so gut es geht transparent eingestellt, Squid als Proxy läuft an sich, wenn er direkt im Browser eingetragen wird.
Dann ist der Proxy nicht wirklich transparent, aber da sollte folgender code-Schnipsel helfen:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Was ist das für ein
Lancom Gateway?
Die, die ich davon kenne, haben solche Probleme nicht, warum auch?
Was willst du denn damit erreichen? Warum braucht das dingen einen Proxy, der NAT macht?

Ich habe über Google auf einigen Seiten gelesen, das wohl 2 Netzwerkkarten (eth0 ...) benötigt werden stimmt das?
Nö, das geht auch alles mit einer Karte, wenn ich verstehe was du vorhast...

Deswegen:

Leider geht es so nicht, würde mich daher auf Hilfe freuen.
Was geht genau nicht, keine Verbindung ins internet?
Keine Anfragen an den Proxy?

Was sagen squid-logfiles (access.log, cache.log, etc), was sagt /var/log/messages.
Was passiert, wenn du per tcpdump mal "mithörst", was auf dem Interface ankommt?

So viele Fragen ;-)

tooliload
04.07.08, 21:31
Hallo,

danke für deine super schnelle Antwort und naja den ganzen Fragen :( .
Den von dir bereitgestellten Code-Schnipsel wurde bereits von mir eingetragen, siehe oben.

Beim Lancom Gateway handelt es sich um den 1711er.


Was willst du denn damit erreichen? Warum braucht das dingen einen Proxy, der NAT macht?
Das wurde mir vom Lancom Support so gesagt, ich danke das es etwas mit meiner Internetleitung zu tun hat, dieses ist ein UMTS-Router hier im Haus.

Bei uns läuft das so ab:
PC´s gehen zum Switch, dieser ist mit dem Lancom Gateway 1711 verbunden, welcher auf dem eingestellten Lan 1 als "Standardgateway" den UMTS Router anwählt.

Falls gefragt wird, worum der Gateway dazwischen, ich nutze das Loadbalancing da mir eine UMTS Verbindung zu lahm ist, durch das LB wird auf der nächsten UMTS Karte weitergemacht, wenn die 1. ausgelastet ist.



Was geht genau nicht, keine Verbindung ins internet?
Keine Anfragen an den Proxy?
/var/log/messages = existiert nicht, dafür aber die Squid-Logs, hier:

access.log -> Besagt das die über den PC angewählte Seite geladen wurde, auch die dazugehörige Werbung usw. Ich habe jedoch auf meinen Bildschrim die Meldung bekommen "Seite nicht gefunden".

cache.log -> Da wurde seit 14 Uhr nichts mehr geschrieben (da war ich am konfigurieren, also keine aktuellen Einträge)

store.log ->


LANGE.ZAHL RELEASE -1 FFFFFFFFF SEHRLANGEZAHL 200 121519§
Ich sehe jetzt nochmal im Gateway nach, aber gemäß dem Support (sogar bezahlt) sollte alles korrekt sein.

Gruß

Tino

// Edit: Warum die Dinger über nen Proxy laufen sollen?
Durch das Loadbalancing ändert sich die IP Adresse ständig, daher ist es mir ohne Proxy unmöglich vernüpftig zu surfen. (Ständige Logouts beim Onlinebanking oder in Foren)

honkstar
04.07.08, 21:50
Hallo,

jetzt wird es etwas klarer.
Aber mit ist nur bedingt klar, wo jetzt das Problem ist.

Ich fasse mal für micht zusammen:
Du gehst über UMTS ins Internet. Du hast dafür min. 2 Karten oder Geräte.
Wenn die erste Karte "voll" ist, macht der LanCom 1711 ein LB??? (woher weiss der 1711er, dass er anfangen soll?)
Das LB sieht so aus, dass die 2 UMTS-Verbindung aufgebaut wird und sich unterstützend auf die generelle Anbindung auswirkt?!?

Jetzt bleibe ich dabei:
Was ist dein Problem?

Kriegst du keine Verbindung hin, wenn das LB "angeht".
Kriegst du generell keine Verbindung über den Proxy hin?

Was war denn deine Anfrage an den Support?
Ich kann nicht beurteilen, ob die gut oder schlecht sind, habe immer nur die neuesten LCOS-Referenzbücher schön ausgedruckt neben mir, wenn ich die dinger konfigurieren muss, deswegen brauche ich die nicht ;-)

Zu den Logs:

/var/log/messages = existiert nicht
Ok, vllt. /var/log/syslog ? oder vergleichbares?


access.log -> Besagt das die über den PC angewählte Seite geladen wurde, auch die dazugehörige Werbung usw. Ich habe jedoch auf meinen Bildschrim die Meldung bekommen "Seite nicht gefunden".
Immerhin, kannst du das vllt. mal kopieren und hier mal posten...


cache.log -> Da wurde seit 14 Uhr nichts mehr geschrieben (da war ich am konfigurieren, also keine aktuellen Einträge)
Dann hast du seit 14 Uhr auch nicht mehr neugestartet, vllt. scheitert es daran? Also Änderungen und kein Neustart (soll ja immer mal wieder passieren)


store.log ->
Man könnte sagen: Vergiss diese Datei, das Loggen bringt imho nichts, weil du mit den logs nur bedingt was machen kannst.

Poste doch bitte nochmal deine squid.conf und den Auszug aus iptables -vnL.
und beschreib nochmal dein Problem unabhängig von der Aussage des Supports.
Und tcpdump könnte auch noch helfen ;-)

tooliload
04.07.08, 22:31
Hallo,



Du gehst über UMTS ins Internet. Du hast dafür min. 2 Karten oder Geräte.
Wenn die erste Karte "voll" ist, macht der LanCom 1711 ein LB??? (woher weiss der 1711er, dass er anfangen soll?)
Das LB sieht so aus, dass die 2 UMTS-Verbindung aufgebaut wird und sich unterstützend auf die generelle Anbindung auswirkt?!?
Eigentlich steuert der Lancom Gateway alles, man kann pro UMTS Gegenstelle eine Geschwindigkeit einstellen, wenn der Lancom GW dann merkt "Aha 50kb/s erreicht", dann macht er auf der 2. UMTS Gegenstelle weiter. (War mir nicht sicher, aber ich glaube das du das genau so meinst).



Was ist dein Problem?
Kriegst du keine Verbindung hin, wenn das LB "angeht".
Kriegst du generell keine Verbindung über den Proxy hin?
Der Proxy an sich läuft, also ohne Zwischenschaltung über den Gateway, nur kann ich so leider nur eine UMTS Karte nutzen. Das LB geht auch, nur ist das wie gesagt ohne Proxy quatsch. Das aktuelle Problem liegt also zwischen Gateway und Proxy.

Der Gateway leitet zwar die Anfragen weiter, aber gibt dem PC keine Website aus (Meldung: Website nicht gefunden, egal welche Seite ich aufrufe)

Zum Support, es war keine direkte Anfrage, mehr ein Auftrag. Es gibt bei Lancom spezielle Leute die einem das Gerät konfigurieren.
Mein Auftrag entspricht meiner oben genannten Beschreibung (mal verfeinert).



Ich möchte das alle PC´s vom WLAN und LAN verbunden mit dem Lancom 1711 über einen Switch über einen Proxy surfen, da ich ein Loadbalancing mit 2 UMTS Gegenstellen verwende. Die IP Verteleiung lautet so:

UMTS Gegenstelle 1 - 192.168.0.1
UMTS Gegenstelle 2 - 192.168.0.2
Gateway 1711 - 192.168.0.154
Proxy Server (squid) - 192.168.0.211
PC´s - 192.168.0.160 - 192.168.0.165

Es ist Wichtig, das über die DHCP IP Vergabe vom Lancom Gateway als Standardgateway die IP Adresse des Gateways bestehen bleibt.
Zu den Log´s, die Datei syslog gibts, aber keine Einträge.
Weiteres habe ich als JPG im Anhang drin (wollte nicht alles abtippen, da es keine Textkopier-Funktion bei M$ Virtual PC gibt).



Dann hast du seit 14 Uhr auch nicht mehr neugestartet, vllt. scheitert es daran? Also Änderungen und kein Neustart (soll ja immer mal wieder passieren)
Oha das stimmt, wohl total vergessen, habe daher gleich nen Reload & Restart durchgeführt. Siehe da, die Log wurde voll, es ging leider immer noch nicht.


Poste doch bitte nochmal deine squid.conf und den Auszug aus iptables -vnL.
und beschreib nochmal dein Problem unabhängig von der Aussage des Supports. Und tcpdump könnte auch noch helfen ;-)Nochmals, siehe Anhang und die Beschreibung des Problems oben im jetzigen Post.

Ich danke dir schon mal im Voraus.

Gruß

Tino
p.s es hört sich so an, als hättest du auch ein LanCom Gerät? Schon mal selber versucht über einen Proxy damit zu surfen?

// Edit: Zu den IPtables, so wie es aussieht wird da nix gespeichert.

tooliload
04.07.08, 23:03
Hallo,

anbei nochmal der tcpdump, welcher beobachtet wurde, als die PC´s über den Gateway surfen sollten (also PC <-> Gateway <-> Proxy & Internet)

Siehe Anhang.

Gruß

Tino

honkstar
04.07.08, 23:33
Ok,

wieder etwas klarer geworden.
Also dein Problem besteht darin, dass du neuerdings einen Proxy eingebaut hast, und über den sollen die Verbindungen erstmal laufen, der soll die Anfrage dann über den 1711er weiterleiten. Der 1711er kümmert sich um die Verbindungsauf- bzw. abbauten der UMTS-Karten.
Also ist dein Problem, dass alle Verbindungen vom Proxy nicht an GW weitergeleitet werden.
Wie wäre es, wenn du dem Proxy-Rechner einfach mal sagst, dass er als Default-GW den 1711er nehmen soll?
Das würde dann zu folgendem führen:
PC --> ANFRAGE AN squid
squid guckt, ob er die Seite im Cache hat und liefert aus, sonst...
squid --> über defgw an 1711
1711 --> Versand der Daten an 1. oder 2. UMTS-Karte
Rückantwort aus dem INternet --> 1711 --> squid (ab in den Cache) --> PC

Der Aufbau und Abbau der Verbindungen des 1711er hat ja nix mit dem Squid zu tun.
Und Squid muss ja gar nicht wissen, welche Technik benutzt wird um ins Internet zu kommen.


Poste doch bitte mal in textform deine squid.conf (sorry, aber zum Bildergucken bin ich zu müde...), guck mal ob ip_forward aktiviert ist, was erzählt route -n auf dem Proxy, ifconfig auf dem Proxy.


// Edit: Zu den IPtables, so wie es aussieht wird da nix gespeichert.
Sorry mein Fehler, sollte noch ein -t nat hintendran


p.s es hört sich so an, als hättest du auch ein LanCom Gerät? Schon mal selber versucht über einen Proxy damit zu surfen?
Moment, das ist verdreht, du willst glaube ich, mit einem Proxy über ein LanCom-Gerät surfen...
Und ja, sowas ähnliches habe ich schon mal gebaut, dabei ist es so, dass ein eigenes Subnetz hinter einem 821+ steht und von da über nen Proxy geleitet wird...

Du kannst ja mal testen, wie es aussieht, wenn du vom Proxy surfen willst ... also wget www.web.de oder curl www.web.de oder wie auch immer.

tooliload
05.07.08, 11:18
Hallo,

danke für deine erneute Geduld und Antwort.
Ich habe die ganze Nacht durchgearbeitet, anscheint zu viel oder zu ungeduldig.

Fakt ist 90% der Rechner gehen jetzt nicht mehr im Haushalt, was das Internet anbelangt, obwohl jedoch nur am Proxy und an einem Rechner was umgestellt wurde.

Ich werde daher nochmal ALLES zurücksetzen (Proxy inkl. Debian, Gateway und eventuell einen Rechner.)

Was ich gestern noch so gelesen habe, ist das es wohl mit meinem Kernel 2.6-486 Probleme mit den iptables gibt.

Wenn das stimmt, ist eventuell auch klar warum die Regeln nicht gespeichert wurden (auch trotz deiner Änderung nicht).

Zum Eintrag ip_forward, diesen Befehl kennt Squid wohl nicht, zumindest ha t er Ihn bei jedem Start bemengelt.

Ich melde mich dann zum Nachmittag / Abend nochmal und belasse dann erstmal alles auf Standard (außer Gateway, der bekommt das Vorgefertigte Image von Lancom).

Gruß

Tino

honkstar
05.07.08, 12:09
Stopp,

mit ip_forward meinte ich, dass das Forwarding im Kernel eingestellt sein muss.
Meistens ist das ein Problem, wenn du zwischen 2 Netzen Pakete weiterleiten willst, aber da du das hier ja nicht vorhast, brauchst du die Option nicht.


Ich werde daher nochmal ALLES zurücksetzen (Proxy inkl. Debian, Gateway und eventuell einen Rechner.)
Das ist Windows-Arbeitsweise, linuxer denken erstmal ;-)

Also langsam,
schalte am besten erstmal den transparenten Modus am squid aus
flushe dann alle Regeln bei iptables per
iptables -t nat -F
teste alle Netzwerkverbindungen mittels ping von den Rechenrn aus, also ping auf squid-PC, ping auf 1711er, ping ins Internet. Vllt scheitert es schon da.
sollten alle Verbindungen hin und her klappen, versuche im Internet zu surfen, zuerst mit einem PC ohne eingetragenen Proxy.
wenn das nicht geht, ist fürs erste "nicht* dein Proxy das Problem.
wenn das geht, einen PC nehmen und den Proxy dort eintragen und wieder versuchen, im Internet zu surfen. wenn das geht, freuen...
wenn nicht, gucken ob vom Proxy alle verbindungen korrekt an den 1711er weitergeleitet werden (tcpdump etc.)
Irgendwo da müsste es dann haken.
Firewallregeln brauchst du erstmal nicht, da squid das erstmal alles für dich übernehmen kann. Erst wenn das alles geht, kann man drüber nachdenken, irgendwas transparent zu machen, Verbindungen umzubiegen, Berechtigungen zu vergeben und was weiss ich zu machen.

Natürlich sollten alle Rechner halbwegs gescheit konfiguriert sein und nicht schon auf Clientseite Durcheinander dareinbringen ... aber da gehe ich jetzt mal von aus.

tooliload
08.07.08, 11:24
Hallo,

sorry das ich mich nicht gemeldet habe. Ich lag im Krankenhaus.
(Hitzschlag am WE).

So nun trink ich immer schön ... also zum Problem zurück. Bin mal deinen Anweisen nachgegangen, das Netzwerk funktionierte wieder nach einem Reset des Gateways (Lancom 1711er).

Jetzt ist dort wieder die Standard-Config drauf, also was mir der Support eingerichtet hat.

So im Moment sieht es einfach danach aus, dass der Gateway die Anfragen nicht engegen nimmt, wenn ich den Proxy "so" im Browser einstelle dann geht er (habe Testweise mal einen Werbefilter in Squid integriert).

Also folgendes habe ich noch probiert:
PC zum Standardgateway, Standardgateway zum Squid und zurück -> geht nicht
PC zum Squid (im Browser), (und zurück?) -> geht
PC zum Squid (als Standardgateway in der Lankarte), (und zurück?) -> geht nicht
Squid (Website öffnen über Console oder Dateien downloaden) -> geht

Ich muss tcpdump erstmal installieren und melde mich gleich wieder..

lg

Tino

tooliload
09.07.08, 11:49
Hallo,

also wenn wir Glück gehabt haben (oder ich :p), dann geht eventuell alles so wie du das geschrieben hast, der Gateway hat einen weg, zumindest ist er nun kaputt (startet nicht mehr, leuchten nur alle lampen, (hard)reset nimmt er nicht an)

Lancom hat ja zum Glück so nen schönen Austausch-Service, hoffe das es wirklich nur 24 Stunden dauert, bis das neue Gerät da ist, dann melde ich mich nochmal, wenn ich alles wieder so Eingestellt habe, wie es hier im Board steht.

Falls es geht, Danke schon mal für deine Zeit und Geduld.

Grüße

Tino