例如,如果我将我的 PC 配置为通过 HTTP 浏览网页,并且我拒绝了所有入站和出站请求和响应,那么我是否需要仅对出站请求开放端口 80,还是需要对出站和入站请求开放端口 80?
答案1
你的问题有点模糊。防火墙的实现有很多种。
在旧的低端防火墙(无状态数据包过滤器)上,你必须编写规则来允许或拒绝双向流量。如今大多数防火墙都是有状态的。如果您以正确的方式构建规则,那么您可以编写一条规则来允许建立连接,并且一旦建立连接,其他一切都将被允许。您仍然可以在大多数有状态防火墙上编写无状态规则。
基于 Linux iptables 的防火墙将像这样设置有状态连接。注意,我只有一个针对 mysql 服务器的传入连接的明确规则,传出连接将由 ESTABLISHED 规则处理。
# permit established connections
iptables -t filter -A FORWARD -m state --state ESTABLISHED -j ACCEPT
# permit incoming requests to a mysql server
iptables -t filter -A FORWARD -p tcp --destination mysql.server.ip --dport 3306 \
-m state --state NEW\,ESTABLISHED -j ACCEPT
如果您感兴趣的防火墙不是基于 Linux 的,那么您几乎肯定必须深入研究该特定防火墙的文档。