Toon posts:

[slackware 9] iptables en squid

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi,

ik zie waarschijnlijk iets over het hoofd:

machine draait iptables (nat) en squid als proxy
eth1 is interne nic, eth0 externe
probleem: ik wil op mn clients nix instellen maar wel dat ze door de proxy surfen
dat zou moeten kunnen met de regel die nu uit gecomment is
maar ik krijg dan alleen maar time-outs bij het surfen
wanneer ik de proxy handmatig instel werkt het prima

iemand een idee ?
uiteraard google gebruikt en de surtsj

iptables info :
code:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
/sbin/modprobe ipt_MASQUERADE
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -P INPUT DROP
iptables -A FORWARD -i eth0 -o eth0 -j REJECT


Squid info
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
root@guus:~# diff /etc/squid/squid.conf /etc/squid/squid.conf.default
53c53
< http_port 10.0.0.1:3128
---
> # http_port 3128
1721c1721
<  http_access allow all
---
> # http_access deny all
1743,1744c1743,1744
< acl our_networks src 10.0.0.0/24
< http_access allow our_networks
---
> #acl our_networks src 192.168.1.0/24 192.168.2.0/24
> #http_access allow our_networks
2042,2043c2042,2043
<  httpd_accel_port 80
<  httpd_accel_host virtual
---
> # httpd_accel_port 80
>
2071,2072c2071
<  httpd_accel_with_proxy on
<
---
> # httpd_accel_with_proxy off
2092c2091
<  httpd_accel_uses_host_header on
---
> # httpd_accel_uses_host_header off

[ Voor 7% gewijzigd door Verwijderd op 06-05-2003 16:09 ]


  • Lethalis
  • Registratie: April 2002
  • Niet online
Wat bedoel je met "op mijn clients niks instellen" *?*

Je moet altijd wel óf een proxy instellen (bijv squid op server), óf een gateway (bij nat en forwarding op server).

Ask yourself if you are happy and then you cease to be.


  • Leon
  • Registratie: Maart 2000
  • Laatst online: 10-04 09:12

Leon

Rise Of The Robots

Heb je dit document al gelezen over transparant caching met squid :? :)

quick guide:

iptables:
iptables -t nat -A PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -p TCP -s 0/0 --dport 21 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP -d 0/0 --dport 20 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 110 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 22 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 23 -j MASQUERADE

squid.conf:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

En natuurlijk nog een dhcp server die ip-adressen uitdeelt en het is helemaal plug en go :P

[ Voor 71% gewijzigd door Leon op 07-05-2003 15:56 ]

Eeuwige n00b


Verwijderd

Geef op de clients alleen de gateway (je squid bak)

ipchains -A input -j REDIRECT 3128 -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 80 lijkt mij het tegenovergestelde van jouw geremde redirect :?

[ Voor 4% gewijzigd door Verwijderd op 07-05-2003 15:53 ]


Verwijderd

Topicstarter
ik denk dat het probleem hier in zit:

als er een pakketje binnenkomt veranderd de port naar 3128
het ip adres veranderd echter ook: (man page squid)
code:
1
2
3
4
5
6
7
8
9
10
11
   REDIRECT
       This  target is only valid in the nat table, in the PREROUTING and OUT-
       PUT chains, and user-defined chains which are only  called  from  those
       chains.  It alters the destination IP address to send the packet to the
       machine itself (locally-generated packets are mapped to  the  127.0.0.1
       address).  It takes one option:

       --to-ports port[-port]
              This  specifies  a  destination  port  or range of ports to use:
              without this, the destination port is never  altered.   This  is
              only valid if the rule also specifies -p tcp or -p udp.


vervolgens wordt het geNAT en dus komen de pakketjes terug op de proxy en gaan ze niet verder omdat het ip adres veranderd was in die van de proxy
wat dus moet gebeuren (volgens mij) is dat alles geNAT wordt behalve verkeer wat van port 3128 afkomt, dit heb ik geprobeerd met :

iptables -t nat -A POSTROUTING -o eth0 !-- sport 3128 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ! -p tcp --sport 3128

maar dat werkt dus niet

@ Codewalker: ik gebruik geen ipchains

@ leon: alles moet gemasquerade worden BEHALVE verkeer van de proxy, heb geen zin alles met de hand te gaan masqueraden ;)

[ Voor 11% gewijzigd door Verwijderd op 07-05-2003 16:27 ]


Verwijderd

Topicstarter
dit hierboven is onzin :P
hij doet het immers wel als ik de proxy instel in de browser, het verkeer wordt daarna dus nog steeds geNAT

ik heb deze howto gevolgd : http://en.tldp.org/HOWTO/mini/TransparentProxy.html

iemand nog een idee ?

Verwijderd

(ik heb niet zo'n verstand van IPTables)

Wat je moet doen voor Transparent proxying is:

rdr on $int_if inet proto tcp from 10.0.0.0/24 to any port 80 -> 127.0.0.1 port 3128
1) rdr
2) on $int_if
3) inet
4) proto tcp
5) from 10.0.0.0/24
6) to any
7) port 80
8 ) ->
9) 127.0.0.1
10) port 3128
vertaalt:
redirect op interne_interface ipv4 protocol tcp vanaf 10.0.0.0/24 welke graag naar any_ip port 80 naar 127.0.0.1 port 3128
1) redirect (stuur door)
2) op interne_interface (een/de LAN interface)
3) ipv4 (dat betekent inet; inet6 = ipv6)
4) protocol tcp
5) vanaf 10.0.0.0/24 (10.0.0.1-10.0.0.254)
6) naar elk IP address (houdt dus in elk internet address maar kan ook een LAN address zijn die bijv. op een andere NIC zit)
7) port 80 (443/https kun je ook includen in een andere rule)
8 ) alles dat aan bovenstaande eisen voldoet redirecten we naar:
9) 127.0.0.1 (kan verschillen je kunt ook 10.0.0.5 nemen als dat je intern_interface IP is en je ook graag users non-transparent mogelijkheid wilt geven)
10) port 3128 (en Squid doet de rest mits goed geconfigureerd 8))

Geen idee hoe je dat met IPTables doet. Ik wil het niet weten ook, maar dit is een Nederlandse vertaling met wat je kunt doen om het te werken. Dus niks NAT. Bij (transparent) Squid heb je geen NAT nodig. Je gebruikt portforwarding bij transparent Squid. Bij non-transparent Squid heb je geen enkele NAT/RDR rule nodig. Plemp als je Squid transparant aan de praat hebt NAT maar 'ns uit, en gebruik dan je proxy om te surfen. Je zult zien: werkt!
Pagina: 1