Toon posts:

[FreeBSD] parent proxy als gateway met squid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al een tijdje bezig met Squid om met een parent proxy een gateway op te zetten.
De bedoeling is dat het als volgt gaat werken:

internet <--> interne proxy <--> server <--> clients

Waarom interne proxy? Omdat ik het bedrijfsnetwerk wil scheiden van het LAN-party netwerk (de LAN party is in een bedrijfsruimte zeg maar) en het bedrijf heeft 2 proxy servers, 1 daarvan kan en mag ik gebruiken maar ik heb geen zin voor 50 computers (en ik denk de mensen die komen ook niet) apart een proxy voor internet in willen stellen. Dus wil ik het liefst DHCP gebruiken om alle IP adressen uit te delen, en dan de server als standaard gateway in te stellen voor internet, daartussen moet dus alleen nog wel die proxy komen want een directe verbinding met internet in het netwerk is er niet. (Ook wil ik bandbreedte limiteren per IP maar dat is een andere zaak).

Ik heb hiervoor al een paar HOWTO's gelezen, en het verste dat ik gekomen ben, is dat ik bij elke URL die ik intyp een foutmelding krijg van Squid, connection refused. Maar het vreemde is dat hij als ik hem als gewone gateway gebruik, dat hij dan automatisch naar poort 3128 wil verbinden (daarom ook die connection refused) bij elke URL. Hoe kan ik ervoor zorgen dat hij gewoon naar poort 80 verbind en niet naar poort 3128?

De proxy werkt overigens prima in normale modus met de parent proxy ;)

[ Voor 8% gewijzigd door Verwijderd op 07-02-2005 11:38 ]


  • Oxi
  • Registratie: September 2001
  • Laatst online: 14-11-2022

Oxi

code:
1
iptables -t nat -A PREROUTING -i $INTRANET -p TCP --dport 80 -j REDIRECT --to-port 3128

Waarbij $INTRANET de naam van de interne interface bevat :)

I wouldn't give his troubles to a monkey on a rock


Verwijderd

Topicstarter
thnx, ff kijken hoe ik die rule kan converten naar IPFW/IPNat. Want onder FreeBSD is er geen iptables :( Heb al deze rule geprobeerd in IPFilter:
pass out quick on rl0 proto tcp from 192.168.1.2 port = 3128 to any port = 80 keep state
maar dat werkte helaas niet :(

Verwijderd

Topicstarter
Het is gelukt :) Het probleem is alleen dat nu enkel port 80 werkt, en de rest niet.
Ik heb nu bij IPNat deze rule staan:
rdr rl0 0/0 port 80 -> 127.0.0.1 port 3128 tcp

en had al geprobeerd om diezelfde rule nog 2 keer toe te voegen en dan port 80 te vervangen door poort 21(FTP) en 443(HTTPS) maar toen kreeg ik helemaal geen connecties meer op rl0, iemand die me hiermee verder kan helpen?

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 15-01 10:55
Ik denk (pas op: ik denk!) dat dat niet kan, en je daar een SOCK's proxy server voor moet hebben. maar zo'n probleem hoeft het niet te zijn:
De client computers kunnen niet FTP-en. Je zet op de tafel gewoon: Stel deze proxy in, anders kun je alleen HTTP-en :)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Spearhead
  • Registratie: November 2001
  • Laatst online: 14-08-2025
Verwijderd schreef op maandag 07 februari 2005 @ 14:47:
Het is gelukt :) Het probleem is alleen dat nu enkel port 80 werkt, en de rest niet.
Ik heb nu bij IPNat deze rule staan:
rdr rl0 0/0 port 80 -> 127.0.0.1 port 3128 tcp

en had al geprobeerd om diezelfde rule nog 2 keer toe te voegen en dan port 80 te vervangen door poort 21(FTP) en 443(HTTPS) maar toen kreeg ik helemaal geen connecties meer op rl0, iemand die me hiermee verder kan helpen?
Dat is een bugje in ipfilter, in mijn geval ging het wel goed als je die rules herschrijft als:

rdr rl0 192.168.2.0/24 port 80 -> 127.0.0.1 port 3128 tcp (in plaats van 192.168.2.0 uiteraard het subnet in kwestie)

eventueel aangevuld met:

rdr rl0 a.b.c.d/32 port 80 -> 127.0.0.1 port 3128 tcp (het ip-adres van de machine zelf, als het ook daarvoor moet gelden)

Deze rule(s) kun je wel herhalen voor andere poorten, althans, bij mij werkte het dan wel.

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Lichtelijk offtopic:
Snelheid per client kan je ook prima in squid regelen. Zoek maar een de delay-pool hoek.

Verwijderd

Topicstarter
Spearhead schreef op maandag 07 februari 2005 @ 22:03:
[...]

Dat is een bugje in ipfilter, in mijn geval ging het wel goed als je die rules herschrijft als:

rdr rl0 192.168.2.0/24 port 80 -> 127.0.0.1 port 3128 tcp (in plaats van 192.168.2.0 uiteraard het subnet in kwestie)

eventueel aangevuld met:

rdr rl0 a.b.c.d/32 port 80 -> 127.0.0.1 port 3128 tcp (het ip-adres van de machine zelf, als het ook daarvoor moet gelden)

Deze rule(s) kun je wel herhalen voor andere poorten, althans, bij mij werkte het dan wel.
Ik heb het nu met 192.168.0.0/16 gedaan, maar helaas werkt dit ook niet :( (hij blokkeert alleen nu niet meer alle poorten als ik die rules toevoeg : ) )

  • Spearhead
  • Registratie: November 2001
  • Laatst online: 14-08-2025
Moet je misschien nog een 'pass' regel toevoegen ? Mogelijk wordt het verkeer nu wel geNAT, maar daarna alsnog door je packet filter rules geweigerd.
Volgens mij is het zo, dat verkeer eerst geNAT wordt, en daarna door je filter gaat, dus in het filter moet je de geNATte adressen gebruiken.

Verwijderd

Topicstarter
IPFilter heeft nu gewoon pass in all, dus dat is het probleem niet ;)
Pagina: 1