web-dev-qa-db-ja.com

状態を維持しながらipfilter構成を更新します

次のようなルールでSolaris11.2サーバーでipfilterを実行しています。

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

/etc/ipf/ipf.confからipfilter設定を編集して再読み込みできるようにしたいと思います。ただし、svcadm refresh ipfilterを実行すると、動的状態がドロップされ、状態に依存するアクティブなセッションがすべて失われます。

Solarisでサービスを更新するには、次のような単純ですが残忍なアプローチが必要なようです。

  1. ipf -D
  2. ipf -E
  3. 構成ファイルからルールをロードします

(a)状態をドロップせず、(b)実行中の構成が構成を最初からロードするのと同じであることを確認するipfilterを更新するより良い方法はありますか?

2
Tom Shaw

これは私が望むことをするように見えます:

_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_に頼る理由を誰かが知っているなら、私は知りたいです。

3
Tom Shaw