刷新 ipfilter 配置并保持状态

刷新 ipfilter 配置并保持状态

我在 Solaris 11.2 服务器上运行 ipfilter,其规则类似于:

pass in log first quick proto tcp from any to any port = 22 flags S keep state

我希望能够从 编辑并重新加载 ipfilter 配置/etc/ipf/ipf.conf。但是,当我运行 时svcadm refresh ipfilter,动态状态被删除,并且我丢失了所有依赖于状态的活动会话。

看来在 Solaris 中刷新服务需要采用简单但残酷的方法:

  1. ipf -D
  2. ipf -E
  3. 从配置文件加载规则

有没有更好的方法来刷新 ipfilter,其 (a) 不会删除状态,并且 (b) 确保正在运行的配置与从头开始加载的配置相同?

答案1

看起来这就是我想要的:

ipf -IFa && ipf -If /etc/ipf/ipf.conf && ipf -s -y

这将刷新非活动过滤器列表,将规则加载到非活动过滤器列表中,交换活动和非活动过滤器列表,并使用当前网络接口列表更新 ipfilter。

可以使用和来监视动态状态ipfstat -t,并ipfstat -sl使用以下方法刷新(如果需要)ipf -FS

为了检查磁盘配置是否与活动配置匹配,我发现这个命令很有用(请注意,它将消除非活动过滤器列表):

diff -u <(ipfstat -io) <(ipf -IFa && ipf -If /etc/ipf/ipf.conf && ipfstat -Iio)

如果有人知道为什么 Solaris 服务默认使用ipf -Dipf -E,我很想知道。

相关内容