0%

redhat7部署squid服务

前言

squid可正向代理、正向透明代理、反向代理。

squid正向代理

正向代理和SNAT原理类似。
服务端:两块网卡,一块连外网,一块连内网

  • 网卡一:桥接模式,连外网
  • 网卡二:仅主机模式,连内网,IP地址(192.168.0.106)
    客户端:单网卡,仅主机模式,IP地址(192.168.0.102)
    正向代理搭建过程:
  1. 配置双网卡
  • 新增网卡
    image.png
  • 开启新增网卡
    image265c2b32707a5a1b.png
  • 配置网卡
    1
    nm-connection-editor #进入图形化界面配置网卡
  • 外网网卡配置
    image7140b2e3e4527852.png
  • 内网网卡配置
    image1600272b0e2e2222.png
    image927d534047159c16.png
    image60c900cb240b5142.png
  • 重启网卡使配置生效
    1
    systemctl restart network
    image9b4429ed27c3a58b.png
  1. 安装squid
    1
    yum install squid
  2. 清除防火墙规则
    1
    2
    iptables -F
    service iptables save
  3. 重启squid并加入开机启动项
    1
    2
    systemctl restart squid
    systemctl enable squid
  4. 客户端验证正向代理
    客户端是仅主机模式,本身无法访问互联网网站,但是经过服务端的正向代理后,就可以访问互联网。
  • 客户端浏览器设置代理:设置为服务端的3128端口(squid服务默认端口)
    image70e74e9682a1191a.png
  • 检查客户端是否能访问互联网网站
    image49f4a88c22965db1.png
  1. 正向代理设置访问控制
  • 禁止url含有特定词的访问

(1)修改配置文件/etc/squid/squid.conf,增加以下语句:
image4f6951b33296de8a.png
(2)重启squid服务使配置生效

1
systemctl restart squid

(3)验证:url里面含有linux,已被squid拦截。
image0348992fed9143de.png

  • 仅允许某个IP使用正向代理服务

(1)修改配置文件/etc/squid/squid.conf,增加以下语句:
imageeb5cb2c90fcdc01b.png
(2)重启squid服务使配置生效

1
systemctl restart squid

(3)验证:将客户端的IP改为其他IP地址,则无法使用正向代理访问互联网
image5b7d495c01009ca8.png
image529422e4ac01d2b4.png

  1. 服务端设置正向透明代理
    透明代理是对客户端而言,客户端不用在浏览器设置代理,就是透明代理。以下是正向透明代理的设置方法:
  • 修改配置文件/etc/squid/squid.conf,修改以下语句:
    image66787df57652fefe.png
    image82735d8d4a7624b4.png
  • 检查配置文件语法是否正确
    1
    squid -k parse
  • 停止squid服务,初始化透明模式的squid配置
    image439cf4390b7aa491.png
  • 重启squid服务
    1
    systemctl restart squid
  • 服务端设置防火墙策略,使客户端与服务端共用外网网卡访问互联网
    (1)方法一:通过iptables设置转发策略
    开启DNS服务的数据转发功能,允许squid转发IPv4数据包
    1
    2
    iptables -F
    iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno16777736 -j MASQUERADE
    image672695e7696f852d.png
    把客户端的80端口请求转发到服务端的3128端口(squid服务的端口),并且对客户端的IP做SNAT(源地址转换,使得客户端与服务端共用外网网卡)
    1
    2
    3
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j  REDIRECT --to-ports 3128
    iptables -t nat -A POSTROUTING -s 192.168.0.102 -o eno16777736 -j SNAT --to 192.168.43.208
    service iptables save
    image9f3f73a7e1eed80f.png
    (2)方法二:通过firewalld-config设置转发策略
    imagecb1b5596770b28bd.png
  • 客户端修改网卡配置,将网关设置为服务端IP地址192.168.0.106,DNS服务设置为8.8.8.8。浏览器不设置代理,即可访问互联网网站。
    image6279dfa426002e43.png

squid反向代理

就是可以在用代理服务器的IP地址访问到网站内容,看起来这个网站就是代理服务器自己做的一样。说得通俗一点,就是偷别人的作品,冠上自己的姓名。以下是squid反向代理的配置方法:
重新做一台squid代理服务器,只需要一张桥接网卡,可连外网。

  • 安装squid
    1
    yum install squid
  • 修改配置文件/etc/squid/squid.conf
    1
    2
    3
    http_port 192.168.43.208:80 vhost #将本机外网网卡地址设置为虚拟主机
    cache_peer 122.142.74.150 parent 80 0 originserver #同步目标服务器的网站内容

    image629638bce63ab274.png
  • 重启squid服务并 加入开机启动项
    1
    2
    systemctl restart squid
    systemctl enable squid
  • 在浏览器输入本机地址,即可访问到目标网站(www.jldaren.com)的内容,和原站一模一样
    imageb623a21ac4f98893.png
    imagea38a90f80016fbd2.png
-------------本文结束感谢您的阅读-------------