感谢支持
我们一直在努力

Ubuntu+Cisco ASA搭建支持WCCP的Squid

环境说明


Cisco防火墙地址


inside口:10.10.0.1


outside口:123.*.*.*


DMZ口:172.*.*.*



Cisco核心交换机


总出口10.10.0.2



squid:10.10.0.3


防火墙、交换机、squid通过交换机连接



1.安装Ubuntu


hostname:proxy


ip:10.6.1.3 gateway:10.6.1.2 netmask:255.255.255.0 broadcast:10.6.1.255


2.修改root密码


设置root密码:sudo passwd root


3.取消squid版本信息


/src/errorpage.c 文件在以下地方修改



} error_hard_text[] = {


    {


        ERR_SQUID_SIGNATURE,


            “\n<BR clear=\”all\”>\n”


            “<HR noshade size=\”1px\”>\n”


            “<ADDRESS>\n”


            “Generated %T by %h (%s)\n”            #将%s修改即可,%t为当前时间


            “</ADDRESS>\n”                       #%h 为主机名称


            “</BODY></HTML>\n”


}


4.编译:


apt-get source squid


./configure –prefix=/usr/ –localstatedir=/var/squid –sysconfdir=/etc/squid –enable-cache-digests –enable-delay-pools –enable-forward-log –enable-async-io –enable-dlmalloc –enable-arp-acl –enable-linux-netfilter –disable-hostname-checks –enable-underscores –enable-auth –enable-icmp –enable-htcp


安装后文件位置:


/usr/squid    主目录


/usr/ sbin/squid 执行文件


/etc/squid/squid.conf    配置文件


/var/squid/logs    日志


/var/squid/cache    自己建立的cache


5.配置squid


mkdir /var/ squid/cache     #给squid创建 cache目录


chown –R proxy:proxy /var/squid    #更改/var/squid目录的所有者为proxy


/usr /sbin/squid –z    #生成交换文件目录


squid    启动squid


修改配置文件:


cd /etc/squid/


rm squid.conf


vi squid.conf


将下边的内容复制到squid.conf里


access_log /var/squid/logs/access.log squid


cache_store_log /var/squid/logs/store.log


cache_log /var/squid/logs/cache.log


acl all src 0.0.0.0/0.0.0.0


acl internal dstdomain “/etc/squid/internal.acl“    #定义acl


http_port 3128 transparent


http_access allow all


wccp2_router 10.6.1.1    #指定防火墙的地址
wccp2_rebuild_wait on
wccp2_forwarding_method 1
wccp2_return_method 1
wccp2_assignment_method 1
wccp2_service standard 0


cache_mem 4096 MB


cache_dir ufs /var/squid/cache 10240 16 256


cache_effective_user proxy


error_directory /usr/share/errors/no  


cache_mgr **@***    #设置错误提示页面中管理员的邮件地址


forwarded_for off   #不显示客户端私有IP


logfile_rotate 3   #日志轮回,保存轮回几次的日志


memory_pools on   #让squid自动分配内存          


memory_pools_limit none   #不做上限限制


cache_swap_low 85


cache_swap_high 95


no_cache deny internal    #对于acl internal中的域名不缓存

6.启用wccp的功能


将下列内容放在/etc/init.d/rc.local


modprobe ip_gre


iptunnel add wccp2 mode gre remote 172.*.*.* local 10.6.1.3 dev eth0


#重要说明:因为cisco防火墙默认把IP地址值最大的一个值当做自己的Router Identifier,没法改变。我在刚开始的测试中,一直都无法成功,就是因为Router Identifier的问题,squid如果同asa的inside口建立gre的话,squid无法接受到客户端的代理请求,如果建立gre通道的时候跟Router Identifier的IP地址建立,能接收到请求,但无法返回信息,因为网关设置的是防火墙inside口的ip,通道是跟DMZ口建立的,DMZ口无法与内网的IP通信,所以造成这个原因。之后我把squid的网关改成了核心交换机的ip地址,问题解决了。


ifconfig wccp2 inet 127.0.0.2 netmask 255.255.255.0 up


iptables -t nat -A PREROUTING -i wccp2 -p tcp –m tcp –dport 80 -j DNAT –to-destination 10.6.1.3:3128


echo 1 > /proc/sys/net/ipv4/ip_forward


echo 0 > /proc/sys/net/ipv4/conf/wccp2/rp_filter


echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter


echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter


echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter


echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter


/usr/sbin/squid



防火墙配置


ASAconfig)#access-list PROXY extended permit 10.*.*.* 255.255.0.0 any eq www    #定义客户端IP


ASAconfig)# wccp web-cache redirect-list PROXY


ASA(config)# wccp interface inside web-cache redirect in



7.安装apache


apt-get install apache2


8.管理日志


8.1设置计划任务


crontab –e


PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/etc/squid


30 23 * * 0 /usr/sbin/squid –k rotate


45 23 * * 0 rm /var/squid/logs/cache.log.*


50 23 * * 0 rm /var/squid/logs/store.log.*

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu+Cisco ASA搭建支持WCCP的Squid
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏