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

[经验分享] linux5.4+squid

[复制链接]

尚未签到

发表于 2018-12-27 06:46:53 | 显示全部楼层 |阅读模式
  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_port192.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 reload
  四、测试
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 reload
  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 reload
  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 reload
  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 reload
  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 reload
  6、禁止用户访问域名包含有sex关键字的URL
#vi /etc/squid/squid.conf
acl badurl2 url_regex -i sex
http_access deny badurl2
#/etc/rc.d/init.d/squid reload
  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 reload
  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 reload
  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 reload
  六、透明代理的实现
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_nameservers222.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 REDIRECT8080 就是将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-source211.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_port192.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_nameservers222.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 REQUIRED
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-656202-1-1.html 上篇帖子: squid安装文档 下篇帖子: squid 日志各项解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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