我已经安装了 gufw 防火墙实用程序,并想创建一个端口白名单(想要最大程度的安全性,但目前将单个 IP 列入白名单太麻烦了)。到目前为止,我只将端口 53(用于 DNS)、80(用于 HTTP)和 443(用于 HTTPS)输入和输出都输入到白名单中,并关闭了防火墙,但 Ubuntu 软件中心可以毫无阻碍地安装程序,而防火墙肯定在运行(当列表条目不存在时,www 内容不会加载)。
它是否使用这些端口中的任何一个进行程序数据传输?我觉得很奇怪。或者 Ubuntu 中是否存在预定义的覆盖异常(这是一个新设置,12.04)?这里可能是什么情况,软件中心使用哪个端口传输程序数据(我假设它确实使用 HTTP 作为界面和列表条目,但程序本身呢?)?
总结:
为什么 Ubuntu 软件中心可以穿过我的防火墙(通过阻止所有其他端口,而不是 DNS/HTTP/HTTPS),以便安装程序?
它使用哪个端口来传输程序数据?
答案1
这是我在使用 Ubuntu 软件中心安装单个应用程序时运行 Wireshark 发现的结果:
- DNS 请求(通过 UDP 端口 53 传出到您配置的 DNS 服务器,用于...)和HTTP(传出至 TCP 端口 80 至...)
reviews.ubuntu.com
myapps.developer.ubuntu.com
software-center.ubuntu.com
- 有关本地 APT 配置(已配置的存储库)的所有信息。这通常是 HTTP 或 FTP,当然也需要 DNS。查看“软件源”以查看您正在使用的 Ubuntu 存档镜像。如果您可以
sudo apt-get update
无错误地运行,则一切就绪。
注意:我没有发现任何 HTTPS 流量。不过,对于私有 PPA(用于商业软件)来说,情况可能如此。
答案2
如果你阻止除 ssh 之外的所有内容并运行 apt-get update,它将返回 IP 和端口:
Err:2 http://archive.canonical.com/ubuntu xenial InRelease
Could not connect to archive.canonical.com:80 (91.189.92.191). - connect (111: Connection refused) [IP: 91.189.92.191 80]
Err:3 http://us-east1.gce.archive.ubuntu.com/ubuntu xenial InRelease
Could not connect to us-east1.gce.archive.ubuntu.com:80 (35.196.129.83). - connect (111: Connection refused) [IP: 35.196.129.83 80]
Err:4 http://us-east1.gce.archive.ubuntu.com/ubuntu xenial-updates InRelease
Unable to connect to us-east1.gce.archive.ubuntu.com:http: [IP: 35.196.129.83 80]
Err:5 http://us-east1.gce.archive.ubuntu.com/ubuntu xenial-backports InRelease
Unable to connect to us-east1.gce.archive.ubuntu.com:http: [IP: 35.196.129.83 80]
Err:6 http://security.ubuntu.com/ubuntu xenial-security InRelease
Could not connect to security.ubuntu.com:80 (91.189.88.162). - connect (111: Connection refused) [IP: 91.189.88.162 80]
Reading package lists...
也许在真实控制台而不是远程终端上测试会更好。拔下 LAN 电缆并运行 apt update,然后检查返回的错误。