我有一个运行在Solaris 11.2服务器上的ipfilter,其规则类似于:
pass in log first quick proto tcp from any to any port = 22 flags S keep state
我希望能够编辑并从/etc/ipf/ipf.conf重新加载ipfilterconfiguration。 但是,当我运行svcadm refresh ipfilter ,dynamic状态被丢弃,并且我失去了任何依赖于状态的活动会话。
看起来在Solaris中刷新服务需要简单而残酷的方法:
ipf -D ipf -E 有没有更好的方法来刷新ipfilter(a)不会丢失状态,(b)确保运行的configuration与从零开始加载configuration相同?
它看起来像这样做,我想要的:
ipf -IFa && ipf -If /etc/ipf/ipf.conf && ipf -s -y
这会刷新不活动的filter列表,将规则加载到不活动的filter列表中,交换活动和不活动的filter列表,并使用当前的networking接口列表更新ipfilter。
可以使用ipfstat -t和ipfstat -sl监视dynamic状态,并使用ipf -FS刷新(如果需要)
为了检查磁盘上的configuration是否与当前的configuration相匹配,我发现这个命令很有用(请注意,它将消除不活动的filter列表):
diff -u <(ipfstat -io) <(ipf -IFa && ipf -If /etc/ipf/ipf.conf && ipfstat -Iio)
如果有人知道为什么Solaris服务默认使用ipf -D和ipf -E ,我很想知道。