我在 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 中刷新服务需要采用简单但残酷的方法:
ipf -D
ipf -E
- 从配置文件加载规则
有没有更好的方法来刷新 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 -D
和ipf -E
,我很想知道。