接続を切断せずにSSH経由でリモートでIPFWを再起動/再ロードする

接続を切断せずにSSH経由でリモートでIPFWを再起動/再ロードする

現在の接続を切断せずにリモートでIPFWを再起動するか、SSH接続を介してスクリプトを再ロードできますか?

答え1

私の質問に対する答えを見つけたようです。議論する私の質問に部分的に答えました。はい、実際にスクリプトを実行すると、最初に多くのスクリプトがこの行を使用するため、すべてのルールがフラッシュされますipfw -f flush

しかし、それによると文書、特別なものがあります31話、無効にすることはできず、セット31のルールはipfw flushこのコマンドでは削除されません(ただし、このコマンドを使用して削除できますipfw delete set 31)。したがって、set 31スクリプトにルール番号を追加して再起動しても、SSH 切断ルールには影響しません。たとえば、

$cmd 00410 set 31 allow tcp from any to me 22 in via $pif setup keep-state

または

$cmd 00280 set 31 allow log tcp from any to any 22 out via $pif setup keep-state

答え2

SSHセッションにのみ興味がある場合は、ルールの最初にSSHの静的ルールのみを使用して、動的ルールテーブルを更新したときに発生する切断を防ぐことができます。

たとえば、次のようになります。

ipfw add 100 allow tcp from any to any 22 in via $pif setup keep-state
ipfw add 101 allow ip from any 22 to any out via $pif setup keep-state

使用:

ipfw add 100 allow ip from any to any 22 in via $pif
ipfw add 101 allow ip from any 22 to any out via $pif

答え3

SHスクリプト「/etc/fw.rules」(私の記憶が正しい場合は、FBSDの一般的なスクリプトは「rc.firewall」です)とsudo権限(もちろんrootとして実行可能)を考えてみましょう。

#sudo sh -c "/bin/sh /etc/fw.rules  > /dev/null 2>&1"

関連情報