设为首页 收藏本站
查看: 1255|回复: 0

[经验分享] Proxy服务器配置_Squid

[复制链接]

尚未签到

发表于 2018-12-27 11:38:16 | 显示全部楼层 |阅读模式
  实验环境:CentOS6.0
  ServerIP:192.168.0.1
  ClientIP:192.168.0.8
  Port:3128(可以修改)
  #yum install squid -y
  #vim /etc/squid/squid.conf
  ***************************************************************************************************************
  1.信任用户与目标控制,通过acl定义出localhost等相关用户(相当于用acl起的别名)
  acl manager proto cache_object#定义manager为管理功能
  acl localhost src 127.0.0.1/32#定义localhost为本机来源
  acl localhost :1 /128
  acl to_localhost dst 127.0.0.0/8 0.0.0.0/32#定义连接本机的“昵称”
  acl to_localhost dst ::1/128
  2.信任用户与目标控制,定义可能使用这部Proxy的网络用户
  acl localnet src 192.168.0.0/16
  acl localnet src fc00::/7
  acl jjflan   src 192.168.1.0/24  192.168.100.0/24
  acl dropsex urlpath_regex /sexy.*\.jpg#定义出现/sexy且以.jpg结尾的文件的“昵称”
  acl dropdomain dstdomain .facebook.com#定义域名“昵称”
  acl dropurl url_regex ^http://www.google.com.*#定义网址“昵称”(必须以^开始,以.*结束)
  acl dropdomainlist  "/etc/squid/dropdomain.txt" #指定某个文件的“昵称”
  3.定义可取得的数据端口所在
  acl SSL_ports port 443
  acl Safe_ports port 80          # http
  acl Safe_ports port 21          # ftp
  acl Safe_ports port 443         # https
  acl CONNECT method CONNECT
  4.定义这些名称是否可放行
  http_access allow manager localhost
  http_access deny manager#拒绝其他管理来源
  http_access deny !Safe_ports
  http_access deny CONNECT !SSL_ports
  http_access deny dropdomain
  http_access deny dropsex
  http_access deny dropurl
  http_access allow jjflan
  http_access deny dropcntv
  http_access allow localnet
  http_access allow localhost
  http_access deny all
  5.网络端口设置
  http_port 3128#默认端口是3128
  6.缓存与内存相关设置
  hierarchy_stoplist cgi-bin ?
  cache_mem 8 MB#给Proxy额外的内存
  7.磁盘高速缓存的配置
  cache_dir ufs /var/spool/squid 100 16 256 #缓存共100M,一层文件16个,二层文件256个
  coredump_dir /var/spool/squid
  minimum_object_size 0 KB#小于0K的数据不要放缓存
  maximum_object_size 4096 KB#大于4M的数据不要放于缓存
  cache_swap_low 90#减低到90%的磁盘高速缓存为止
  cache_swap_high 95#磁盘高速缓存使用到95%时开始减少
  8.其它可能用到的默认值
  access_log /var/log/squid/access.log  squid#记录使用过squid的用户
  ftp_user Squid@#用Proxy登录ftp时使用的账号名称
  ftp_passive on#代理的ftp服务采用被动连接
  9.磁盘中缓存的存在时间
  #                网址开头       最小时间  百分比  最大时间  (以分钟为单位)
  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
  refresh_pattern \.vbird\.       120        50%     1440
  (在网址出现.vbird.时,数据缓存2小时后就算是旧数据,最长保存一天,经过50%的时间后也会被判为旧数据)
  cache_mgr 287523394@qq.com#默认的proxy管理员的email
  cache_effective_user squid#启动squid PID的拥有者
  cache_effective_group squid#启动squid PID的组
  visible_hostname        Server1.example.com#由于DNS问题,需要设置主机名
  ipcache_size 1024#IP缓存的设置值
  ipcache_low 90
  ipcache_high 95
  *********************************************************************************************************
  #/etc/init.d/squid start
  #/etc/init.d/squid reload  (刷新的时候使用这个命令)
  针对Proxy的其它操作:
  1.增加/srv/squid/目录给予2G的容量作为磁盘高速缓存
  #vim /etc/squid/squid.conf
  **********************************************************************************
  添加:
  cache_dir ufs /srv/squid 2000 16 256
  **********************************************************************************
  #mkdir /srv/squid
  #chmod 750 /srv/squid
  #chown squid:squid /srv/squid
  #chcon --reference=/var/spool/squid /srv/squid
  #/etc/init.d/squid restart
  默认1G的高速缓存占用10M内存,squid程序本身占用15M内存,配置文件中的“cache_mem”选项指的是在此基础上额外加的内存
  2.不进行某些网页的缓存操作
  #vim /etc/squid/squid.conf
  ************************************************************************************
  acl QUERY      urlpath_regex  cgi-bin \?
  acl denyphp    urlpath_regex  \.php$
  cache deny QUERY#拒绝后面的URL被缓存
  cache deny denyphp#拒绝以php为结尾的网页缓存(php一般为动态网页)
  ************************************************************************************
  #/etc/init.d/squid reload
  3.防火墙和SELinux的设置:
  #iptables -A INPUT -i $EXTIF -p tcp -s 192.168.100.0/24  --dport 3128 -j ACCEPT
  (防火墙对外网使用Proxy的过滤限制)
  对于SELinux,配置文件类型是squid_conf_t,缓存目录类型是squid_cache_t,/var/spool/类型是var_t
  4.上层Proxy与获取数据分流的设定
  #vim /etc/squid/squid.conf
  **********************************************************************************************
  cache_peer  hinet.cetos.vbird  parent    3128  3130  proxy-only no-query no-digest
  cache_peer_domain hinet.centos.vbird  .cn
  **********************************************************************************************
  #/etc/init.d/squid reload
  语法:
  cache_peer   [上层Proxy主机名] [Proxy角色] [Proxy Port] [icp port] [参数]
  参数:
  proxy-only:向上层请求到的数据不缓存到本地Proxy;
  wieght=n:   n值越大,表示该Proxy越重要;
  no-query:  向上层请求数据时,不发送icp数据包;
  no-digest: 不向附近主机要求建立digest记录表格;
  no-netdb-exchange:不向附近的Proxy发送ICMP数据包请求。
  cache_peer_domain [上层Proxy主机名] [要求的域名]
  5.Proxy+NAT:形成透明代理(Transparent Proxy)
  1>在对外的防火墙服务器(NAT)上安装Proxy;
  2>在Proxy上启动transparent功能;
  #vim /etc/squid/squid.conf
  ****************************************************
  修改:
  http_port 3128 transparent
  ****************************************************
  #/etc/init.d/squid reload
  3>NAT服务器加上一条port 80转port 3128的规则
  #iptables -t nat -A PREROUTING -i $EXTIF -s 192.168.0.0/24  -p tcp --dport 80 -j REDIRECT --to-ports 3128
  6.配置Proxy使代理不使用缓存
  删除缓存目录后,在配置文件设置缓存目录的地方添加read-only选项即可
  #/etc/init.d/squid stop
  #rm -fr /var/spool/squid/*
  #vim /etc/squid/squid.conf
  *************************************************************
  修改:
  cache_dir ufs /var/spool/squid 100 16 256 read-only
  cache_mem 0MB
  *************************************************************
  /etc/init.d/squid start
  7.Proxy的认证设置
  使用squid自带的ncsa_auth认证模块,该模块利用Apache提供的帐号密码建立命令所制作的密码文件作为验证依据
  配置条件:
  内部网络192.168.0.0/24使用Proxy时不需要验证
  外部主机192.168.1.0/24使用Proxy需要验证
  使用NCSA的基本身份验证方式,且密码文件建立在/etc/squid/squid_user.txt
  上述仅有一个用户student,密码:westos
  #rpm -ql squid | grep ncsa
  #yum install httpd
  #rpm -ql httpd-tools | grep htpasswd
  #vim /etc/squid/squid.conf(修改)
  ************************************************************************
  1.设置验证相关的参数(必须放置文件最前面,否则会报错)
  auth_param basic program /usr/lib/squid/ncsa_auth  /etc/squid/squid_user.txt #通过ncsa_auth读取squid_user.txt
  auth_param basic children 5#启动5个程序来管理验证的需求
  auth_param basic realm Welcom to This!
  2.针对验证功能放行与否的acl与http_access设置
  acl jjflan src 192.168.0.0/24
  acl squid_user proxy_auth REQUIRED#建立一个需要验证的acl名称
  http_access allow jjflan
  http_access allow quid_user#对于验证处理放于最后
  **************************************************************************
  #htpasswd -c /etc/squid/squid_user.txt student
  #/etc/init.d/squid restart
  8.可以配合squid官方给出的末端日志分析工具:SARG分析Proxy的代理情况(监控)
  #yum install gd -y
  从网站上下载sarg的rpm包
  #rpm -ivh sarg-*
  #vim /etc/sarg/sarg.conf
  ***************************************************************************
  title "Squid 用户访问报告"#在第49行左右
  font_size 12px#第69行左右
  charset UTF-8#第353行左右
  ***************************************************************************
  #sarg
  #sarg -d 02/08/2011   #查看2011年8月2号的报表
  #sh /etc/cron.daily/sarg#制作每天报表
  通过http访问报表结果
  http://localhost/sarg即可
  注:
  1.代理服务器是用在应用层上的一种防火墙方式,硬盘的性能是决定Proxy性能的关键;
  2.NAT服务器:伪装、过滤数据包,工作于二、三、四层协议上;Proxy服务器:由服务程序提供代理,工作于应用层部分;
  3.由于一般Proxy有缓存功能(可以取消该功能),不太适合动态网页;
  4.squid.conf文件内,权限过滤的设置是有顺序的!!!!
  5.通常写该配置文件时,先写deny的选项,后写allow的选项。
  6.用虚拟机做实验时,注意IP地址,否则没效果!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656447-1-1.html 上篇帖子: squid apche获取原ip 下篇帖子: 学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表