使用Squid限制内网上网
对于有些公司对保密性要求强,禁止客户机随意上公网。这对于IT管理工作带来不便。
我们可以建立一台squid代理服务器,通过白名单来限制客户网络只能访问指定的域名,比如允许客户机联接windows update或者通过清华源的Ubuntu 源进行软件安装。
本例以CentOS 7.9举例,除安装过程稍有不同, 配置方法一样。
-
安装
$ yum -y install squid $ systemctl enable squid $ systemctl start squid #squid会在3128端口监听,至此,客户机配置http://squid_server_ip:3128为代理服务器已经可以正常上网了
-
配置代理使用白名单
# 在默认配置文件/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
-
白名单写法
#允许访问微软 .microsoft.com #允许访清华源 .tuna.tsinghua.edu.cn
-
重启squid以生效配置
systemctl restart squid
-
查看日志
# Squid的日志默认是unix风格的,不好看, 用perl转一下。 当某个用户需要访问某个服务时,可以通过查看日志,分析这个服务所依赖的网络地址,以判断是否可以将其加入白名单文件。 perl -pe's/^\d+\.\d+/localtime($&)/e;' /var/log/squid/access.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人