使用Squid限制内网上网

对于有些公司对保密性要求强,禁止客户机随意上公网。这对于IT管理工作带来不便。

我们可以建立一台squid代理服务器,通过白名单来限制客户网络只能访问指定的域名,比如允许客户机联接windows update或者通过清华源的Ubuntu 源进行软件安装。

本例以CentOS 7.9举例,除安装过程稍有不同, 配置方法一样。

  1. 安装

    $ yum -y install squid
    $ systemctl enable squid
    $ systemctl start squid
    
    #squid会在3128端口监听,至此,客户机配置http://squid_server_ip:3128为代理服务器已经可以正常上网了
    
  2. 配置代理使用白名单

    # 在默认配置文件/squid.conf 中的 acl CONNECT method CONNECT 后面增加关于whitelist的项目
    
    #
    # Recommended minimum configuration:
    #
    
    #这里是默认配置文件,定义了局域网的网段
    acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
    acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
    acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
    acl localnet src fc00::/7       # RFC 4193 local private network range
    acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
    
    #这里是默认配置文件,定义了代理的端口,其中有一条 1025-65535开放了大量的端口,如果你需要访问的目标网站用的端口不在下列的范围,自己增加一条
    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 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
    
    # 以下三行配置是开启了目标域名白名单, 白名单写在/etc/squid/whitelist.txt里
    acl whitelist dstdomain "/etc/squid/whitelist.txt"
    # 允许白名单域名
    http_access allow whitelist
    # 禁止非白名单域名
    http_access deny !whitelist
    
    
  3. 白名单写法

    #允许访问微软
    .microsoft.com
    
    #允许访清华源
    .tuna.tsinghua.edu.cn
    
    
  4. 重启squid以生效配置

    systemctl restart squid
    
  5. 查看日志

     # Squid的日志默认是unix风格的,不好看, 用perl转一下。 当某个用户需要访问某个服务时,可以通过查看日志,分析这个服务所依赖的网络地址,以判断是否可以将其加入白名单文件。
    perl -pe's/^\d+\.\d+/localtime($&)/e;' /var/log/squid/access.log  
     
    
posted @   陈大玉  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示