Hallo,
Ik wil een transparante proxy maken op...Ubuntu uiteraard. Ik krijg het alleen werkend als ik gebruik maak van masquerade in iptables. Volgens mij moet dit echter zonder kunnen als ik al die tutorials bekijk op internet, nl. door alleen maar via iptables verzoeken op poort 80 door te sturen naar poort 3128. Waarom lukt mij dat niet?
Over Ubuntu-box:
-2 NIC's:
eth0 192.168.2.3 voor internet,
eth1 172.16.0.1 voor LAN.
-ipv4 forwarding is ingeschakeld
-Squid luistert naar 172.16.0.1:3128, dus intern.
-iptables commando's:
iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -t nat -A PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 3128
Op deze manier werkt internet bij de clients dus goed. In de access.log kan ik zien welke client welke webpagina opvraagt. Geblokkeerde websites via de proxy kunnen daadwerkelijk niet bezocht worden door de clients.
Heel mooi, echter zou de eerste iptables regel niet hoeven volgens mij. Squid is een applicatie die voor de client internet opgaat, dus hoef je het ip-adres voor de client niet meer te maskeren, omdat de client zelf het internet niet opgaat. Door echter slechts de bovengenoemde tweede iptables regel te hanteren kunnen de clients internet niet op.
Wat er volgens mij nu gebeurt is dat Squid gemaskeert wordt...? Moet ik dan een regel maken die 172.16.0.1:3128 doorstuurt naar 192.168.2.3:3128?