transparent Squid 2.5Stable10 + FreeBSD 5.3

Ryan Rathje mrsharky at iastate.edu
Mon Jun 20 15:40:54 GMT 2005


Here's my FreeBSD setup

Nic1 -> outside (123.456.789.10)
Nic2 -> internal (192.168.1.2)

Here's my client Win2k setup

IP: 192.168.1.5
MASK: 255.255.255.0
GW: 192.168.1.2

-------------------------------------

I have FreeBSD 5.3 installed with the modified kernel options

options         IPFILTER
options         IPFILTER_LOG
options         NMBCLUSTERS=32768
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_DEFAULT_TO_ACCEPT

in a machine with 2 NICS ( NIC1 -> outside work; NIC2 -> interal network
(192.168.1.2).  I configured Squid with the ARG --enable-ipf-transparent, and
ths is what my options (/var/db/ports/squid/) file looks like for configuring Squid:

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for squid-2.5.10_1
_OPTIONS_READ=squid-2.5.10_1
WITHOUT_SQUID_LDAP_AUTH=true
WITHOUT_SQUID_DELAY_POOLS=true
WITHOUT_SQUID_SNMP=true
WITHOUT_SQUID_CARP=true
WITHOUT_SQUID_SSL=true
WITH_SQUID_PINGER=true
WITHOUT_SQUID_DNS_HELPER=true
WITHOUT_SQUID_HTCP=true
WITHOUT_SQUID_VIA_DB=true
WITHOUT_SQUID_CACHE_DIGESTS=true
WITH_SQUID_WCCP=true
WITH_SQUID_UNDERSCORES=true
WITH_SQUID_CHECK_HOSTNAME=true
WITHOUT_SQUID_STRICT_HTTP=true
WITH_SQUID_IDENT=true
WITHOUT_SQUID_USERAGENT_LOG=true
WITHOUT_SQUID_ARP_ACL=true
WITHOUT_SQUID_PF=true
WITH_SQUID_IPFILTER=true
WITH_SQUID_FOLLOW_XFF=true
WITHOUT_SQUID_AUFS=true
WITHOUT_SQUID_COSS=true
WITHOUT_SQUID_LARGEFILE=true
WITHOUT_SQUID_STACKTRACES=true
WITH_SQUID_RCNG=true

In the squid.conf file I've made (what I think) are the appropriate changes: 
 
http_port 3128
httpd_accel_host virtual 
httpd_accel_port 80 
httpd_accel_with_proxy on 
httpd_accel_uses_host_header on 

and lastly, this is what my rc.conf looks like:

hostname="Gohan"

squid_enable="YES"

firewall_enable="YES"
firewall_type="open" 
firewall_quiet="NO"  
firewall_logging="YES"

# IPFILTER enabled
ipfilter_enable="YES"
ipfilter_program="/sbin/ipf"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""

ipfw add allow all from any to 192.168.1.2 80
ipfw add fwd 192.168.1.2 tcp from any to 192.168.1.2 3128
ipfw add fwd 192.168.1.2,3128 tcp from any to any 80,82,3128 out recv
192.168.1.2 xmit 129.186.215.57

---------------------------------------------------------

I ran ethereal on the client machine (192.168.1.5) that is behind Squid, and it
appears that the client hits the 192.168.1.2 but doesn't forward it onto the
Squird proxy, therefor never reaching the outside world.  I get the normal "Page
can not be displayed" message on the client.  I would have thought that if it
was hitting the Squid it would give a Squid error message.  

My gut feeling is it has something to do with my ipfw rules, any and ALL help
would get GREATLY appreciated.  thanks







More information about the freebsd-net mailing list