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

[经验分享] squid-7240173

[复制链接]

尚未签到

发表于 2018-12-26 12:02:50 | 显示全部楼层 |阅读模式
  Squid的分类和作用   
  1、普通代理服务
  即标准的、传统的代理服务
  需要客户机在浏览器中指定代理服务器的地址、端口
  2、透明代理服务
  适用于企业的网关主机(共享接入Internet)中
  客户机不需要指定代理服务器地址、端口等信息
  需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理
  3、反向代理服务
  为Internet用户访问企业Web站点提供缓存加速
  Squid配置
  一、安装
  #rpm -ivh squid*
  二、配置
  #cd /etc/squid
  #cp squid.conf squid.conf.bak
  #vi /etc/squid/squid.conf
  http_port 192.168.0.1:8080                    //192.168.0.1为本机接内网IP地址
  cache_mem 64 MB
  cache_dir ufs /var/spool/squid 1000 16 256
  cache_effective_user squid
  cache_effective_group squid
  dns_nameservers 222.85.85.85                  //222.85.85.85为dnsIP
  cache_access_log /var/log/squid/access.log
  cache_log /var/log/squid/cache.log
  cache_store_log /var/log/squid/store.log
  visible_hostname 192.168.0.1
  cache_mgr admin@163.com
  acl all src 0.0.0.0/0.0.0.0
  http_access allow all
  三、初始化squid
  1、创建Squid使用硬盘缓冲区的目录结构
  #/usr/sbin/squid -z
  #ls -l /var/spool/squid/
  2、设置squid错误提示信息为中文
  #mv /etc/squid/errors /etc/squid/errors.bak
  #ln -s /usr/share/squid/errors/Simplify_Chinese /etc/squid/errors

  #/etc/init.d/squid>  四、测试
  1、关闭防火墙或开启8080端口
  #service iptables stop
  或
  #iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
  2、设置客户端IE浏览器
  右击IE——属性——连接——局域网设置——代理服务器
  地址:192.168.0.1  端口:8080
  五、访问控制应用实例
  1、禁止IP地址为192.168.0.254的客户机上网。
  #vi /etc/squid/squid.conf
  acl badclientip1 src 192.168.0.254
  http_access deny badclientip1

  #/etc/rc.d/init.d/squid>  2、禁止192.168.0.0子网里所有的客户机上网。
  #vi /etc/squid/squid.conf
  acl badclientnet1 src 192.168.0.0/255.255.255.0
  http_access deny badclientnet1

  #/etc/rc.d/init.d/squid>  3、禁止用户访问IP地址为122.224.185.6的网站。
  #vi /etc/squid/squid.conf
  acl badsrvip1 dst 122.224.185.6
  http_access deny badsrvip1

  #/etc/rc.d/init.d/squid>  4、禁止用户访问域名为www.163.com的网站。
  #vi /etc/squid/squid.conf
  acl baddomain1 dstdomain -i www.163.com
  http_access deny baddomain1

  #/etc/rc.d/init.d/squid>  5、禁止用户访问域名包含有163.com的网站。
  #vi /etc/squid/squid.conf
  acl badurl1 url_regex -i 163.com
  http_access deny badurl

  #/etc/rc.d/init.d/squid>  6、禁止用户访问域名包含有sex关键字的URL
  #vi /etc/squid/squid.conf
  acl badurl2 url_regex -i sex
  http_access deny badurl2

  #/etc/rc.d/init.d/squid>  7、限制IP地址为192.168.0.254客户机并发最大连接数为5。
  #vi /etc/squid/squid.conf
  acl clientip1 src 192.168.0.254
  acl conn5 maxconn 5
  http_access deny client1 conn1

  #/etc/rc.d/init.d/squid>  8、禁止192.168.1.0这个子网里所有的客户机在周一到周五的9:00到18:00上网。
  #vi /etc/squid/squid.conf
  acl clientnet1 src 192.168.1.0/255.255.255.0
  acl worktime time MTWHD 9:00-18:00
  http_access deny clientnet1 worktime

  #/etc/rc.d/init.d/squid>  9、禁止客户机下载*.mp3、*.mp4、*.zip和*.rar类型的文件。
  #vi /etc/squid/squid.conf
  acl badfile1 urlpath_regex -i \.mp3$\.exe$\.zip$\.rar$
  http_access deny badfile1

  #/etc/rc.d/init.d/squid>  六、透明代理的实现
  1、编辑主配置文件
  #vi /etc/squid/squid.conf
  http_port 192.168.0.1:8080                    //192.168.0.1为本机接内网IP地址
  cache_mem 64 MB
  cache_dir ufs /var/spool/squid 1000 16 256
  cache_effective_user squid
  cache_effective_group squid
  dns_nameservers 222.85.85.85                  //222.85.85.85为dnsIP
  cache_access_log /var/log/squid/access.log
  cache_log /var/log/squid/cache.log
  cache_store_log /var/log/squid/store.log
  visible_hostname 192.168.0.1
  cache_mgr admin@163.com
  #以下是实现透明代理的4条语句的关键,缺一不可
  httpd_accel_host virtual
  httpd_accel_port 80
  httpd_accel_with_proxy on
  httpd_accel_uses_host_header on
  可以用iptables/ipchains直接将对Web端口80的请求直接转发到Squid端口8080,由Squid接手,而用户浏览器仍然认为它访问的是对方的80端口。例如以下这条命令:
  iptables -t nat -A PREROUTING -s 192.168.2.0/32 -p tcp --dport 80 -j REDIRECT 8080 就是将192.168.2.0的所有针对80端口的访问重定向到8080端口。
  acl all src 0.0.0.0/0.0.0.0
  http_access allow all
  2、配置iptables实现NAT代理
  1)开启路由转发
  #echo 1 > /proc/sys/net/ipv4/ip_forward
  2)设置代理
  #iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j SNAT –-to-source 211.162.11.1
  3)设置端口重定向
  #iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
  七、用户身份认证(注:Squid不支持在透明代理模式下启用用户身份认证功能)
  1、认证程序查看
  #ls /usr/lib/squid
  2、编辑主配置文件
  #vi /etc/squid/squid.conf
  http_port 192.168.0.1:8080                    //192.168.0.1为本机接内网IP地址
  cache_mem 64 MB
  cache_dir ufs /var/spool/squid 1000 16 256
  cache_effective_user squid
  cache_effective_group squid
  dns_nameservers 222.85.85.85                  //222.85.85.85为dnsIP
  cache_access_log /var/log/squid/access.log
  cache_log /var/log/squid/cache.log
  cache_store_log /var/log/squid/store.log
  visible_hostname 192.168.0.1
  cache_mgr break@163.com
  #以下是实现用户身份认证的语句
  auth_param basic program /usr/lib/squid/ncsa_auth/etc/squid/passwd
  auth_param basic children 5
  auth_param basic credentialsttl 2 hours
  auth_param basic realm Example.com's Squid proxy-caching
  acl auth_user proxy_auth REQUSquid的分类和作用   
  1、普通IRED
  http_access allow auth_user
  3、建立帐户文件
  #useradd test1
  #passwd test1
  #htpasswd -c /etc/squid/passwd test1
  #useradd test2
  #passwd test2
  #htpasswd /etc/squid/passwd test2
  4、测试用户认证
  1)#/etc/init.d/squid restart
  2)在客户端的Web浏览器中配置好代理服务器的IP地址和端口号;
  3)访问任意网站,这时Web浏览器会弹出输入用户名和口令的对话框。
  4)输入正确的用户名和口令,就能连接上Internet了。
  5)如果用户名和口令不正确,则出现错误信息。
  注:若希望实现某些特殊IP地址或子网的客户机(如领导使用的计算机)不需要经过用户认证直接上网,其他客户机必须经过用户认证后才能上网的功能,可以利用Squid是顺序处理
  http_access选项的特点,为这些特殊的客户机建立类型为src源IP地址方式的ACL,然后将允许特殊客户机ACL的http_access的语句放在设置认证用户的http_access语句前面。
  acl noauth_user src 192.168.1.0/255.255.255.0
  auth_param basic program /usr/lib/squid/ncsa_auth/etc/squid/passwd
  auth_param basic children 5
  auth_param basic credentialsttl 2 hours
  auth_param basic realm Example.com's Squid proxy-caching
  acl auth_user proxy_auth REQUIRED
  http_access allow noauth_user
  http_access allow auth_user


运维网声明 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-656060-1-1.html 上篇帖子: SQUID之refresh_pattern使用方法 下篇帖子: CentOS7上squid的部署及两种模式(4.1版本)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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