我经常看到 iptables 被配置为允许所有包到相关连接,以及特定服务端口到新连接。
说NEW的理由是什么?如果连接不是新的,我猜它是相关的,所以特定的端口规则不会执行。那么为什么要使用 NEW 而不仅仅是协议和端口号明确定义服务端口呢?
我喜欢将 nginx 作为本地代理服务器运行,如果上游服务器不可用,则提供陈旧的缓存文件。
这很有效,除了本地机器重新启动,而互联网连接出现故障。在这种情况下,nginx 根本不会启动,说“在上游找不到主机......”。
在每种情况下我都需要 nginx 启动,否则无法在上游连接失败时提供陈旧的缓存。
那么如何让nginx在启动时忽略连接错误呢?
有没有可能实现一个简单的通过连接端口和iptables触发的密码锁?因此,例如,访问者需要按此顺序连接端口 1001,1009,1008,1004 才能访问端口 80。任何其他端口在 1000-1009 范围内失序都会重置锁定。
在几个服务器系统上,我遇到了两种主要风格的iptables
防火墙配置:
第一个是阻塞INPUT
除提供的服务(如 HTTP)的端口之外的所有端口。
第二个是阻塞INPUT
除了NEW
几个服务的连接状态的每个数据包,精心设置和ESTABLISHED
状态连接的所有数据包。OUTPUT
除了处于ESTABLISHED
状态的连接之外,它还阻止所有数据包。
后者提供了第一个简单解决方案无法管理的哪种安全性?
当然,出于某种原因阻止用户使用传出端口可能会很有用,但是如果我不需要保护服务器免受其自身用户的侵害,而仅需要保护服务器免受外部威胁,那么两种方法是否相同,或者第二种方法是否仍会提供好处?