当我使用公共 WiFi(笔记本电脑)时,我想通过其高级设置配置我的防火墙以仅允许 HTTPS 网络流量。
我的第一个尝试是默认阻止传入和传出,然后允许从任何计算机到任何计算机的 UDP 和 TCP 端口 443(传入和传出)。但是,当我在任何 SSL/443 网站上使用浏览器时,我遇到了网络错误。我误解了什么导致我的尝试失败?
Chrome 浏览器报告的错误是
错误 10(net::ERR_ACCESS_DENIED):未知错误。
Firefox 给出了一个常规错误,但是当我使用 Fiddler 跟踪 HTTPS 流量时,我得到了以下信息:
(要求)
连接 mail.google.com:443 HTTP/1.1
用户代理:Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1 (.NET CLR 3.5.30729; .NET4.0E)
代理连接:保持活动
主机:mail.google.com
(回复)
HTTP/1.1 502 连接失败 连接:关闭 时间戳:21:57:34.739
HTTPS 连接失败。
System.Net.Sockets.SocketException:尝试以访问权限 xxx.xxx.xx.xx:443 禁止的方式访问套接字,
位于 Fiddler.ServerChatter.CreateConnectedSocket(IPAddress[] arrDestIPs, Int32 iPort, Session _oSession),
位于 Fiddler.Session._handleHTTPSConnect()
当策略设置正确时,我计划将其导出(保存)以供将来我回到公共 WiFi 时使用。
笔记:如果不同版本的 Windows 具有类似的配置细微差别,请随意发布这些答案 - 如果接近,我可能会推断。
答案1
要浏览网页,您还需要允许 DNS:UDP 端口 53(以及 TCP,但不是很多)。
答案2
当你浏览某个网站时,你的浏览器会发送出站TCP SYN 数据包来建立连接。防火墙会自动允许属于此连接的所有双向流量。因此请不允许入站流量,除非您正在运行 Web 服务器并希望人们向您发起 TCP 连接。
某些站点可能需要 TCP/80(HTTP)来建立 TCP/443(HTTPS)连接,因此请尝试打开 80 以及前面提到的 DNS 端口。
Windows 7 允许您按名称指定程序(例如浏览器)并控制对特定程序/进程的访问。XP 将规则应用于所有程序/进程。我手边没有 Vista 来检查其控制级别。