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.注意事项
QQ要接收图片得走全局http代理,可在电脑网络配置里设置,这样就可以收到图片啦。
squid如果配置了密码认证,mac做http全局代理里会一直弹鉴权框,不能保存用户名密码,暂时无解,只能把认证先注释。