防火墙应用程序适合软件堆栈的哪个位置?

use*_*698 6 firewall port

我试图从服务器上的应用程序试图通过同一台服务器上的软件防火墙。

没有防火墙:

program asks OS for port; then poof:
program --> port --> internet
Run Code Online (Sandbox Code Playgroud)

防火墙适用于何处?

program asks OS for port; then poof:
program --> firewall(block/pass) --> port --> internet
Run Code Online (Sandbox Code Playgroud)

或者

program asks OS for port; then poof:
program --> port --> firewall(block/pass) --> internet
Run Code Online (Sandbox Code Playgroud)

Nat*_*n C 8

简而言之,您机器上的本地防火墙充当将通过操作系统网络堆栈的实际流量的看门人。

所以,它会是这样的:

软件 -> 网络堆栈(入/出) -> 防火墙 -> 网络

它并不能阻止端口绑定的内核处理这一点。但是,如果配置为这样做,它将阻止端口上的流量。


squ*_*man 5

有(出于所有实际目的)两个不同的层次与您的要求有关。

请求端口绑定的应用程序与防火墙运行的级别不同。应用程序将直接与 TCP/IP 堆栈对话以获取绑定。这完全独立于任何防火墙,无论防火墙是本地应用程序主机还是远程系统。

一旦绑定已被授予,防火墙将拦截它们配置为注意的端口上的数据包。然后,一旦数据包开始流经这些端口,防火墙就可以开始工作并检查流量。那是防火墙将允许或阻止的时候。