Search squid archive

Re: Transparent Proxy by squid 2.6 stable 14 in ubuntu 7.10 not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Lets just go over all these settings....

kang ason wrote:
--- kang ason <a550n@xxxxxxxxx> wrote:

Date: Fri, 1 Feb 2008 07:00:27 -0800 (PST)
From: kang ason <a550n@xxxxxxxxx>
Subject: Transparent Proxy by squid 2.6 stable 14 in
ubuntu 7.10 not working
To: squid-users@xxxxxxxxxxxxxxx

Dear all

i have server running squid (transparent proxy) in linux (squid installed using synaptic Package
Manager
on ubuntu 7.10 with squid 2.6 Stable 14)

this server have two interfaces, eth0 to internet &
eth1 to LAN
And this is my squid.conf

http_port 192.168.10.10:8080 transparent

Fine. BUT, is 192.168.10.10 an IP assigned to eth1 ??
As a test you can drop the IP here and FW inbound traffic to 192.168.10.10:8080

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

You can kill these to and replace them with the refresh_patterns below.

cache_vary on
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 128 MB
cache_swap_low 98
cache_swap_high 99
maximum_object_size 51200 KB
minimum_object_size 0 KB
ipcache_size 2048
ipcache_low 98
ipcache_high 99
fqdncache_size 2048
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
cache_dir ufs /var/spool/squid 5000 18 256
access_log /var/log/squid/access.log
 squid
cache_log /dev/null

Better to have a cache_log and see whats going wrong with squid when something does.

cache_store_log /dev/null

Better to use "cache_store_log none" and prevent all the attempted writes to /dev/null

emulate_httpd_log off
log_ip_on_direct on
mime_table /usr/share/squid/mime.conf
log_mime_hdrs off
pid_filename /var/run/squid.pid
log_fqdn off
ftp_user admin@server
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
hosts_file /etc/hosts
refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440

Useful to add:
  refresh_pattern (cgi-bin|\?) 0 0% 0

refresh_pattern .      0   20%   4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255

I know its the default config line, but better to use CIDR or no mask here (default is /32)


acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https

acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync

It's useful to make sure _ALL_ of the SSL_Ports are also in Safe_Ports.

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl
 Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

## Client IP Address
acl VLAN10 src 192.168.10.0/255.255.255.0

Better to use CIDR 192.168.10.0/24

http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
http_access deny purge
http_access allow purge localhost

Ahhh... that will never match. The line above ALWAYS denies purge.
Kill it or switch the config lines.

http_access deny manager
http_access allow VLAN10
http_access allow manager localhost

again, that will never match for the global 'deny manager' above.

http_access allow localhost
http_access deny all

icp_access allow all
cache_mgr admin@server
cache_effective_user proxy
cache_effective_group proxy
visible_hostname Proxy.server
always_direct allow all
coredump_dir /var/spool/squid
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
store_dir_select_algorithm round-robin
## ---- end of
 squid.conf ----

and this is my iptables for squid transparent
iptables -t nat -A PREROUTING -i eth1 -s
192.168.10/24 -p tcp --dport 80 -j REDIRECT
--to-port 8080

Well, unless you have other IPA assigned to eth1, using IP here is pretty redundant,

iptables -A PREROUTING -t nat -i eth1 -p tcp -s
192.168.10.0/24 -j ACCEPT

So what is NAT meant to be doing with this traffic? ACCEPT allows without changes. It seems to me that port-80 traffic is being redirected to squid, and the rest is let out into the internet with RFC1918 private addresses (depending on "-t filter -A FORWARD" bridging rules).

iptables -t nat -A POSTROUTING -o eth0 -s
192.168.10/24 -j MASQUERADE


Try this:
iptables -t nat -A PREROUTING -o eth0 -s 192.168.10.10 -p tcp --dport 80 -j ACCEPT iptables -t nat -A PREROUTING -i eth1 -s 192.168.10/24 -p tcp --dport 80 -j REDIRECT --to-port 8080

iptables -t filter -A FORWARD -i eth1 -s 192.168.10/24 -p tcp --dport 80 -j REJECT



when i look into /var/log/squid/access.log, i can
found client access squid.
if client setting browser using proxy into
192.168.10.10 with port 8080, i can see client in
/var/log/squid/access.log

what wrong with my squid.conf or iptables rules?
why transparent proxy not working, & why client must
setting using proxy in their browser if the want
using
proxy.

Also check that some form of transparency support has been built into your squid.
 Run 'squid -v'.
 Look for '--enable-linux-netfilter' in the configured list.



thanks.



regards
ason
Cah Kopeng
Lereng Utara Gunung Merbabu


Amos
--
Please use Squid 2.6STABLE17+ or 3.0STABLE1+
There are serious security advisories out on all earlier releases.

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux