针对论坛一兄弟提出的问题,实现以下目的:
ipf+squid作透明代理,限制用户只能访问一些固定的网址,但对于某几个特殊ip,不受限制,让他们可以访问所有网站。
解决方案:
利用squid的acl即可解决,特殊ip以src的acl来实现,放在规则集前门,其余的以dstdomain acl来限制。
实验过程:
两台虚拟机,一个FreeBSD7.0,双网卡,外网le0,地址1.2.3.4(代替下,呵呵),内网卡le1,地址66.66.66.1(看着爽,哈哈)
一个XP,单网卡,地址66.66.66.2,网关是66.66.66.1
1:启用ipfilter
两种方法:
第一种是以内核模块的形式加载
在/etc/rc.conf里面加上ipfilter_enable="YES",在/etc/rc.local里面加入:
kldload ipl.ko
ipf -Fa -f /etc/ipf.rules
ipnat -CF -f /etc/ipnat.rules
第二种是重新编译内核
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK
加入这些重新编译内核。
2:ipf.rules
这个要根据自己的实际情况而定,只开放你希望开放的端口即可,这个规则要复杂了,还应该有限制那些病毒常见的端口,限制私网地址流量等等。
我实验用,所以pass all了,呵呵。
3:ipnat.rules
rdr le1 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128
map le0 66.66.66.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map le0 66.66.66.0/24 -> 1.2.3.4/32 portmap tcp/udp 1025:65500
map le0 66.66.66.0/24 -> 1.2.3.4/32
4:squid.conf
acl a dstdomain .bsdlover.cn
acl b src 66.66.66.3/32
http_access allow b
http_access deny !a
这个就能实现66.66.66.3这个机器不受限制的访问网站,而其他的就只能访问bsdlover.cn,嘿嘿
ipf+squid作透明代理,限制用户只能访问一些固定的网址,但对于某几个特殊ip,不受限制,让他们可以访问所有网站。
解决方案:
利用squid的acl即可解决,特殊ip以src的acl来实现,放在规则集前门,其余的以dstdomain acl来限制。
实验过程:
两台虚拟机,一个FreeBSD7.0,双网卡,外网le0,地址1.2.3.4(代替下,呵呵),内网卡le1,地址66.66.66.1(看着爽,哈哈)
一个XP,单网卡,地址66.66.66.2,网关是66.66.66.1
1:启用ipfilter
两种方法:
第一种是以内核模块的形式加载
在/etc/rc.conf里面加上ipfilter_enable="YES",在/etc/rc.local里面加入:
kldload ipl.ko
ipf -Fa -f /etc/ipf.rules
ipnat -CF -f /etc/ipnat.rules
第二种是重新编译内核
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK
加入这些重新编译内核。
2:ipf.rules
这个要根据自己的实际情况而定,只开放你希望开放的端口即可,这个规则要复杂了,还应该有限制那些病毒常见的端口,限制私网地址流量等等。
我实验用,所以pass all了,呵呵。
3:ipnat.rules
rdr le1 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128
map le0 66.66.66.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map le0 66.66.66.0/24 -> 1.2.3.4/32 portmap tcp/udp 1025:65500
map le0 66.66.66.0/24 -> 1.2.3.4/32
4:squid.conf
acl a dstdomain .bsdlover.cn
acl b src 66.66.66.3/32
http_access allow b
http_access deny !a
这个就能实现66.66.66.3这个机器不受限制的访问网站,而其他的就只能访问bsdlover.cn,嘿嘿
![nixsky[www.nixsky.com]](/templets/images/toplogo.gif)

