您能打开仅限于本地主机访问的网络浏览器吗?

您能打开仅限于本地主机访问的网络浏览器吗?

我想打开 Web 浏览器(firefox / chromium)来访问在本地主机上运行的 Web 应用程序。我需要禁用所有其他网络访问。例如,如果我运行 wireshark,则应该看不到来自 Web 浏览器的对公共搜索引擎、dns 解析器或遥测端点的外部请求。使用浏览器内的工具或命令行上的标志可以实现这一点吗?

答案1

最简单的选择可能是创建浏览器可执行文件的副本(符号链接或硬链接会更方便,但如果您使用的是 Windows,则可能不起作用),并为可执行文件的新名称设置防火墙规则,以防止向非环回地址发出出站请求。使用链接可能不起作用的原因是 Windows 内核认为进程映像基于文件的规范名称,并将解析链接以找到它。如果该映像名称是防火墙规则过滤器使用的名称……那么,硬链接可能会起作用(也可能不起作用,这取决于 Windows 如何处理这种情况),但符号链接不会起作用(或者,您必须为整个浏览器创建一个,而不仅仅是它的备用名称)。我不认为 Linux 会坚持寻找规范的图像名称,但我也从未尝试建立这样的规则。

更好的选择可能是安装另一个专门用于此环境的浏览器。市面上不乏浏览器,大多数基于 Chromium,但也有少数基于 Firefox。如果您不需要支持最新的 Web 标准并且使用的是 Windows,那么甚至还有 IE;您可能不会将它用于其他任何用途。使用完全不同的浏览器的一个优点(除了绕过“规则应用于哪个名称?”)是它可以保持最新状态,而无需您重新连接或重新复制备用名称。但是,更新程序当然需要运行进程才能执行此操作……

另外,请注意,DNS 请求不一定从浏览器发起。在具有 DNS 解析器缓存的操作系统上,可能有一个服务(守护进程)来维护它。主机解析 API 通常会使用缓存,而不是直接查询 DNS 服务器,并且该服务将对任何缓存未命中进行 DNS 查询。您应该在 Wireshark 中检查请求实际上来自哪个进程。

答案2

我发现这个工具叫x11docker它在 kali linux vmware 机器上为我工作。

这是一个示例 DockerFile,它安装了 Firefox 浏览器和代码服务器 Web 应用程序。我可以从容器内部使用 Firefox 访问代码服务器,并且每个 wireshark 都没有与主以太网设备建立连接。

FROM kalilinux/kali-rolling

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y kali-desktop-xfce \
    && rm -rf /var/lib/apt/lists/*

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y firefox-esr curl \
    && rm -rf /var/lib/apt/lists/*

RUN useradd -ms /bin/bash kali \
    && echo 'kali:kali' | chpasswd \
    && usermod -aG sudo kali \
    && sed -i '1 i\TERM=xterm-256color' /home/kali/.bashrc \
    && echo 'Set disable_coredump false' > /etc/sudo.conf

RUN curl -fsSL https://code-server.dev/install.sh | sh
CMD code-server
USER kali

下面是使用 x11docker 工具运行容器的命令(我将我的 docker 镜像标记为 code-server):

x11docker --name code-server --network=none --workdir /workspace -- -v $(pwd):/workspace -- code-server

然后我就可以进入容器并运行 Firefox 来访问在本地主机上运行的 Web 应用程序。

docker exec -it code-server bash

相关内容