场景:一台路由带约300台机器上网,内网服务器一台,内网ip192.168.6.172,其实这台机器还有个公网IP,为了避免部分网友逻辑混乱,不管这个公网IP,如果只有内网IP也一样操作。
(1)使用Squid缓存部分常用资源,轻出口带宽压力
(2)实现部分办公室职员和所有车间职员只允许访问邮箱和几个固定网站,中层领导和有其它需要的职员访问黑名单(淘宝、股票、游戏等)之外的网站,公司高层不受限制。
1、开启路由转发
echo "1" > /proc/sys/net/ipv4/ip_forward2、安装Squid
yum -y insall squid3.配置/etc/squid/squid.conf
http_port 3128 transparent #Squid默认端口 acl baimingdansite url_regex -i "/etc/squid/baimingdan.site" #定义白名单 acl heimingdansite url_regex -i "/etc/squid/heimingdan.site" #定义黑名单 acl liwai src "/etc/squid/liwai_ip" #定义例外IP acl lingdao src "/etc/squid/lingdao_ip" #定中层领导IP(受控,使用黑名单人员) acl zhiyuan src "/etc/squid/zhiyuan_ip" #定义职员IP(受控,使用白名单人员) http_access allow liwai #首先允许例外IP http_access allow lingdao !heimingdansite #领导使用黑名单 http_access allow zhiyuan baimingdansite #职员使用白名单 cache_mem 512 MB #分配内存 maximum_object_size 4 MB #不存储超过4MB的文件 maximum_object_size_in_memory 4096 KB #超过4M的文件内存不进行缓存 cache_dir ufs /var/spool/squid 4096 16 256 #缓存文件夹路径和参数,4096表示4G,目录分16组,每组256个目录 cache_effective_user squid #用户,默认的 cache_effective_group squid #用户组 access_log /var/log/squid/access.log #日志 cache_log /var/log/squid/cache.log #日志 cache_store_log /var/log/squid/store.log #日志 logfile_rotate 10 #一般LOG文件轮换,用处不大,小型网络可以设置10-20,中型5-10,大型1-2 visible_hostname mail.iewb.nett #服务器名 cache_mgr jimmy@iewb.net #你的邮箱 http_access deny all #拒绝不在ACL控制列表中的所有访问以上是我按我的需要进行的配置,当然还可以配置只允许特定端口之类的,这些网友自己去摸索。以上配置squid3.0以上版本适用,2.0需要修改下。
iptables -F #清空原来列表 iptables -t nat -F #清空原来列表 iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -p udp –dport 53 -o eth0 -j MASQUERADE #开启外网eth0,DNS的NAT网络地址转换功能 iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -p tcp –dport 443 -o eth0 -j MASQUERADE#开启HTTPS的网络地址转换功能,解决Squid不能访问HTTPS问题 iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-ports 3128 #设置端口转发功能,把内网eth0的80端口转发3128端口完成。
squid -k reconfigure #启动完squid后又修改squid.conf可以使用这个命令重新载入配置,比重启服务要快很多。
备注:写下本文是想以最简化的代码提供一个思路,实际运用过程中还需要解决很多问题,比如普通职员(白名单用户)想要访问腾讯邮箱的话,在baimingdan.site中不仅要加入mail.qq.com这个网址,还要加入其它一些腾讯的网址,不然会有界面比较乱或不能上传附件之类的事情,具体加入什么自己可以应该能搞定。一般情况下只使用squid缓存80端口而不是把缓存服务器当做网关。
Proudly Powered By WordPress | IEWB.NET 2009-2024 版权所有