当前位置:首页 > 焦点

网页白名单怎么设置

浏览器提示“无法访问此网站”,网页或者公司内网系统突然打不开,白名十有八九是单设白名单没配对。网页白名单说白了就是网页一份“允许通行”的名单,只有名单里的白名地址能通过,其他一律拦在外面。单设这东西在企业防火墙、网页路由器、白名家长控制软件里到处都是单设,设置逻辑大同小异。网页

先拿企业防火墙举例。白名我见过一家小公司,单设行政把财务系统地址填进了URL过滤的网页白名单,结果出纳还是白名打不开。查了半天,单设问题出在协议上——财务系统走的是HTTPS,而白名单里只写了HTTP。防火墙不认域名后面的路径,它只看协议、域名、端口这三样。所以填白名单的时候,https://fin.abc.com和http://fin.abc.com是两条不同的规则,别想着一条通吃。

家用路由器里的白名单更粗暴。TP-Link的管理后台有个“访问控制”选项卡,里面可以选“白名单模式”。一旦开启,列表里没出现的设备直接断网。有次我帮邻居设置,他填了自己手机的MAC地址,却忘了填智能电视的。结果电视连不上WiFi,他以为是路由器坏了。MAC地址白名单和网址白名单是两码事,前者管设备,后者管网站。别搞混。

如果是在Windows系统里做网页白名单,比如给小孩用的电脑,可以用“家长控制”功能。控制面板里找到“家庭安全选项”,添加允许访问的网站列表。这里有个坑:Windows的白名单只对IE和旧版Edge生效,Chrome和Firefox根本不鸟它。所以更靠谱的做法是在路由器层面做,或者用第三方软件比如Cold Turkey。Cold Turkey的白名单模式会直接屏蔽所有网站,只放行你列出的那几个。我试过把*.wikipedia.org加进去,结果发现它不支持通配符子域名,只能一个个手动添加。这种细节,说明书上通常不写。

浏览器扩展也能干这事。Chrome有个叫“BlockSite”的插件,开启白名单模式后,只有你指定的网址能打开。但注意,用户能随时禁用扩展。所以如果是给小孩或员工用,得配合系统权限锁死扩展管理页面。否则白名单形同虚设。

企业级场景里,白名单往往和代理服务器绑定。Squid或者Nginx做正向代理时,配置文件里写acl allowed_sites dstdomain .example.com,然后http_access allow allowed_sites。这里.example.com前面的点表示包含所有子域名。但如果你写www.example.com,那就只匹配这一个。很多人栽在这个点上,以为加了域名就万事大吉,结果mail.example.com还是被拦。

还有一个容易忽略的地方:白名单里的网址如果引用了外部CDN、字体或者广告脚本,这些外部资源不在白名单里,页面照样显示不全。比如你只允许taobao.com,但淘宝的图片放在alicdn.com上,那页面就是一堆裂图。解决办法要么把CDN域名也加进去,要么在防火墙里设置“仅过滤主文档,放行子资源”。后者安全性差一些,但省事。

设置完记得测试。别只试一个网址就完事。拿几个不在名单里的地址试试,看是否真的被拦。再拿名单里的地址试试,看是否真的能通。我见过有人把白名单和黑名单同时启用,结果规则冲突,白名单里的反而被黑名单覆盖了。防火墙的规则顺序是从上往下匹配,第一条命中就执行,后面的不管。所以白名单规则要放在黑名单前面。

最后说个实际案例。某学校机房要限制学生只能访问内部教学平台。管理员在路由器里加了10.0.0.5这个IP的白名单。但教学平台用的是域名learn.school.local,而DNS服务器不在白名单里。结果学生输入域名,DNS解析请求被拦截,直接报错。后来把DNS服务器IP也加进去才解决。白名单不是只加目标网站就行,中间环节的DNS、认证服务器、甚至时间同步服务器,都可能需要放行。少一个,整个链条就断。

所以设置白名单之前,先画个流程图:用户请求经过哪些设备、哪些服务、哪些域名。然后把这些节点全加进去。别嫌麻烦,漏一个就得折腾半天。

分享到: