Squid正向代理

1.squid安装启动

1.1 squid安装[官网]

yum install -y squid
mkdir -pv /home/anzhihe/app/squid && chown anzhihe.anzhihe -R /home/anzhihe

1.2 supervisord启动squid

[program:squid]
command=/usr/sbin/squid -f /home/anzhihe/app/squid/squid.conf -N -d debug
#directory=/home/anzhihe/app/xxx
user=root
priority=999
numprocs=1
autostart=true
autorestart=true
startsecs=1
startretries=5
stopsignal=KILL
stopwaitsecs=10
stdout_logfile=/home/anzhihe/logs/supervisor/squid.log
stderr_logfile=/home/anzhihe/logs/supervisor/squid.err
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stopasgroup=true

1.3 启动服务

/usr/sbin/squid -z -f /home/anzhihe/app/squid/squid.conf
supervisorctl restart squid


2.squid正向代理配置

#############################################################################
# squid权限控制 acl和http_access
#############################################################################
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
# 声明IP段,可以请求squid。注意一定要有掩码
acl test src 10.xxx.0.0/16

# 定义ssl端口、一些安全端口和http访问的connect方法
acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http
acl CONNECT method CONNECT

# 允许本机管理缓存,其他的拒绝
http_access allow manager localhost
http_access deny manager

# 允许授权IP访问squid
http_access allow test

# 认证配置
#auth_param basic program /usr/lib64/squid/ncsa_auth /home/anzhihe/app/squid/squid_passwd
#auth_param basic children 5
#auth_param basic credentialsttl 2 hours
#auth_param basic realm anzhihe's Proxy Caching Domain
#auth_param basic casesensitive on
#acl anzhihe proxy_auth REQUIRED
#http_access allow anzhihe
#http_access deny all

# 拒绝非安全端口
http_access deny !Safe_ports

http_access allow CONNECT !SSL_Ports

cache_effective_user anzhihe

# squid启动端口
http_port 80

# 日志配置
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt
debug_options ALL,9
access_log /home/anzhihe/logs/applogs/squid-access.log squid
logfile_rotate 1

# 缓存配置
hierarchy_stoplist cgi-bin ?
cache_mgr test@xxx.com
cache_mem 2048 MB
maximum_object_size 50 MB
maximum_object_size_in_memory 10 MB
cache_swap_high 95
cache_swap_low 90
visible_hostname squid_test_server
cache_dir ufs /home/anzhihe/app/squid 1000 16 256
cache_log /home/anzhihe/logs/applogs/cache.log
cache_store_log /home/anzhihe/logs/applogs/store.log
coredump_dir /home/anzhihe/app/squid

# 添加自己的刷新缓存的正则
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern .       0   20% 4320


3.ACL规则参考

acl规则限制配置

# deny news #过滤所有url中含有news的网站

acl newsurl_regex -i news

#过滤URL中出现news关键字

http_accessdeny news

# deny video #过滤主流的视频网站

acl videodstdomain .youku.com .56.com .tudou.com .qiyi.com

http_accessdeny video

acl anzhihetimetime MTWHF 9:00-12:00

http_accessdeny !anzhihetime  #9:00-12:00这段时间外不可以访问


加入以上配置到配置文件后,刷新squid服务即可
CentOS6下squid代理之正向代理-squid正向代理配置

CentOS6下squid代理之正向代理-squid正向代理服务器

time ACL允许你控制基于时间的访问,时间为每天中的具体时间,和每周中的每天。日期以单字母来表示,见如下表。时间以24小时制来表示。[星期]:可以使用这些关键字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天) [时间段]:可以表示为10:00-20:00。例如:

aclanzhihetime time MTWHF 9:00-18:00周一到周五的9点到18点

访问控制应用实例

1) 禁止IP地址为192.168.16.200的客户机上网。

acl badclientip1 src192.168.16.200

http_access deny badclientip1


2) 禁止192.168.1.0这个子网里所有的客户机上网。

acl badclientnet1 src192.168.1.0/255.255.255.0

http_access denybadclientnet1


3) 禁止用户访问IP地址为210.21.118.68的网站。

acl badsrvip1 dst210.21.118.68

http_access deny badsrvip1


4) 禁止用户访问域名为www.163.com的网站。

acl baddomain1 dstdomain -iwww.163.com

http_access deny baddomain1


5) 禁止用户访问域名包含有163.com的网站。

acl badurl1 url_regex -i163.com

http_access deny badurl1


6) 禁止用户访问域名包含有sex关键字的URL。

acl badurl2 url_regex -i sex

http_access deny badurl2


7) 限制IP地址为192.168.16.200的客户机并发最大连接数为5。

acl clientip1 src192.168.16.200 acl conn5 maxconn 5 http_access deny client1 conn1


8) 禁止192.168.2.0这个子网里所有的客户机在周一到周五的9:00到18:00上网。

acl clientnet1 src192.168.2.0/255.255.255.0 acl anzhihetime time MTWHF 9:00-18:00 http_access denyclientnet1 anzhihetime


9) 禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件。

acl badfile1 urlpath_regex -i\.mp3$ \.exe$ \.zip$ \.rar$ http_access deny badfile1


10) 禁止QQ通过squid代理上网。

acl qq url_regex -itencent.com http_access deny qq


4.注意事项

  1. QQ要接收图片得走全局http代理,可在电脑网络配置里设置,这样就可以收到图片啦。

  2. squid如果配置了密码认证,mac做http全局代理里会一直弹鉴权框,不能保存用户名密码,暂时无解,只能把认证先注释。 

Squid正向代理Squid中文权威指南.pdf

参考


anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/2871.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注