配置Squid基本服务器,使局域网内客户机通过服务器上网

Posted on Posted in proxy
Tips: 本文创建于2016年6月15日,已超过 2 年,内容或图片可能已经失效!

系统:CentOS 5.5 主机名:cdn.abc.com
外网IP:192.168.21.160
内网IP:192.168.237.160
安装Squid软件,配置基本服务器,使内部网段192.168.237.0/24内的客户机通过服务器192.168.21.160访问外网,并且做以下策略限制

- 禁止所有客户机访问www.abc.com域名
- 禁止IP地址为192.168.237.131的客户机访问外网
- 禁止所有用户访问IP地址为192.168.237.129的网站
- 禁止所有用户访问域名中包含有163.com的网站
- 禁止192.168.237.0/24这个网段所有的客户机在周一到周五的18:00-21:00上网
- 禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件

> 关闭SELinux

  1. vi /etc/selinux/config  
  2. #SELINUX=enforcing     #注释掉  
  3. #SELINUXTYPE=targeted  #注释掉  
  4. SELINUX=disabled  #增加  
  5. :wq  保存,关闭。  
  6. shutdown -r now重启系统  

> 开启防火墙3128端口(后面配置squid的端口为3128)

  1. vi /etc/sysconfig/iptables  
  2. # 添加下面的内容  
  3. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT  
  4. /etc/init.d/iptables restart  #重启防火墙使配置生效  

> 修改主机的路由模式

  1. vi /etc/sysctl.conf  
  2. net.ipv4.ip_forward = 1    #0为关闭,1为开启路由 使用sysctl -p 命令查看  

> 安装Squid

  1. yum install squid   #安装(Squid 2.6)  
  2. service squid start #启动  
  3. service squid restart #重启  
  4. chkconfig squid on  #设置开机启动  

> 配置Squid

  1. cp /etc/squid/squid.conf /etc/squid/squid.confbak  #备份  
  2. vi  /etc/squid/squid.conf  #编辑文件  
  3.   
  4. http_port 3128  
  5. cache_mem 128 MB  
  6. cache_dir ufs /var/spool/squid 4096 16 256  
  7. cache_effective_user squid  #设置用户  
  8. cache_effective_group squid  #设置用户组  
  9. access_log /var/log/squid/access.log   #设置访问日志文件  
  10. cache_log /var/log/squid/cache.log  #设置缓存日志文件  
  11. cache_store_log /var/log/squid/store.log  #设置缓存记录文件  
  12. visible_hostname cdn.abc.com  #设置squid服务器主机名  
  13. cache_mgr root@root.com  
  14. acl all src 0.0.0.0/0.0.0.0  #设置访问控制列表,默认开启  
  15. http_access allow all  
  16. acl client dstdomain -i www.abc.com    #找到TAG: acl标签,在其最后添加下面内容  
  17. http_access deny client  #禁止所有客户机访问www.abc.com域名  
  18. acl client131 src 192.168.237.131  #禁止IP地址为192.168.237.131的客户机访问外网  
  19. http_access deny client131  
  20. acl client129 dst 192.168.237.129  #禁止所有用户访问IP地址为192.168.237.129的网站  
  21. http_access deny client129  
  22. acl client163 url_regex -i 163.com  #禁止所有用户访问域名中包含有163.com的网站  
  23. http_access deny client163  
  24. acl clientdate src 192.168.237.0/255.255.255.0  #禁止这个网段所有的客户机在周一到周五的18:00-21:00上网  
  25. acl worktime time MTWHF 18:00-21:00  
  26. http_access deny clientdate worktime  
  27. acl clientxiazai urlpath_regex -i \.mp3$  \.exe$  \.zip$  \.rar$  
  28. http_access deny clientxiazai  #禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件  
  29.   
  30. service squid stop    #停止  
  31. /usr/sbin/squid  -z   #初始化cache缓存目录  
  32. service squid start    #启动  
  33. service squid restart  #重启  
  34. 备注:访问控制应用实例  
  35. acl clientall src 192.168.237.0/255.255.255.0  #禁止192.168.237.0这个子网里所有的客户机上网  
  36. http_access deny clientall  
  37. acl urlsex url_regex -i sex   #禁止用户访问域名包含有sex关键字的URL  
  38. http_access deny urlsex  
  39. acl client132 src 192.168.237.132  #限制IP地址为192.168.237.132的客户机并发最大连接数为5  
  40. acl conn5 maxconn 5  
  41. http_access deny client132 conn5  

> 客户端配置代理

  1. 192.168.237.160:3182  

转自[配置Squid基本服务器,使局域网内客户机通过服务器上网][1]

[1]: http://www.osyunwei.com/archives/1179.html

> 一个默认的squid 配置

  1. #  
  2. # Recommended minimum configuration:  
  3. #  
  4. acl manager proto cache_object  
  5. acl localhost src 127.0.0.1/32 ::1  
  6. acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1  
  7.   
  8. # Example rule allowing access from your local networks.  
  9. # Adapt to list your (internal) IP networks from where browsing  
  10. # should be allowed  
  11. acl localnet src 10.0.0.0/8 # RFC1918 possible internal network  
  12. acl localnet src 172.16.0.0/12  # RFC1918 possible internal network  
  13. acl localnet src 192.168.0.0/16 # RFC1918 possible internal network  
  14. acl localnet src fc00::/7       # RFC 4193 local private network range  
  15. acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines  
  16.   
  17. acl SSL_ports port 443  
  18. acl Safe_ports port 80      # http  
  19. acl Safe_ports port 21      # ftp  
  20. acl Safe_ports port 443     # https  
  21. acl Safe_ports port 70      # gopher  
  22. acl Safe_ports port 210     # wais  
  23. acl Safe_ports port 1025-65535  # unregistered ports  
  24. acl Safe_ports port 280     # http-mgmt  
  25. acl Safe_ports port 488     # gss-http  
  26. acl Safe_ports port 591     # filemaker  
  27. acl Safe_ports port 777     # multiling http  
  28. acl CONNECT method CONNECT  
  29.   
  30. #  
  31. # Recommended minimum Access Permission configuration:  
  32. #  
  33. # Only allow cachemgr access from localhost  
  34. http_access allow manager localhost  
  35. http_access deny manager  
  36.   
  37. # Deny requests to certain unsafe ports  
  38. http_access deny !Safe_ports  
  39.   
  40. # Deny CONNECT to other than secure SSL ports  
  41. http_access deny CONNECT !SSL_ports  
  42.   
  43. # We strongly recommend the following be uncommented to protect innocent  
  44. # web applications running on the proxy server who think the only  
  45. # one who can access services on "localhost" is a local user  
  46. #http_access deny to_localhost  
  47.   
  48. #  
  49. # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS  
  50. #  
  51.   
  52. # Example rule allowing access from your local networks.  
  53. # Adapt localnet in the ACL section to list your (internal) IP networks  
  54. # from where browsing should be allowed  
  55. http_access allow localnet  
  56. http_access allow localhost  
  57.   
  58. # And finally deny all other access to this proxy  
  59. http_access deny all  
  60.   
  61. # Squid normally listens to port 3128  
  62. http_port 3128  
  63.   
  64. # Uncomment and adjust the following to add a disk cache directory.  
  65. #cache_dir ufs /var/spool/squid 100 16 256  
  66.   
  67. # Leave coredumps in the first cache dir  
  68. coredump_dir /var/spool/squid  
  69.   
  70. # Add any of your own refresh_pattern entries above these.  
  71. refresh_pattern ^ftp:       1440    20% 10080  
  72. refresh_pattern ^gopher:    1440    0%  1440  
  73. refresh_pattern -i (/cgi-bin/|\?) 0 0%  0  
  74. refresh_pattern .       0   20% 4320  

Leave a Reply

Your email address will not be published. Required fields are marked *

four × one =