iptablesルールを移動する(削除して追加しない)

iptablesルールを移動する(削除して追加しない)

iptablesルールを移動して場所を変更する方法はありますか?私はこれを使用して-I特定の場所にルールを挿入できることを知っていますが、カウンターを維持するのも好きです。

答え1

次のこともできます。

  1. 出力をiptables-saveファイルに書き込みます。 iptables-save > /tmp/iptables.txt
  2. テキストエディタを使用してこのファイルを編集し、目的の行を移動します。
  3. ファイルを再読み込みします。iptables-restore < /tmp/iptables.txt

答え2

いいえ、ルールを移動できません。ただし、追加/挿入/交換ルールにカウンタ(-cまたは--set-countersパラメータを使用)を設定できます。したがって、現在の数を確認してルールを削除してから、以前の数の値に再挿入できます。

答え3

持っているものと変更したいことを理解するには、まずいくつかのチェックを実行する必要があります。

  1. カウンターを確認し、後で入力できるようにどこかに書き留めます。
    iptables-save -c
    
  2. 交換/再配置したい行を確認してください。
    iptables -L -v -n --line-n
    
  3. 指定されたCHAINにルールを作成し、手順で説明したカウンタを追加します。例えば。
    iptables -R INPUT 5 -i virbr0 -p udp -m udp -c 3441 472271 --dport 53 -j ACCEPT -m comment --comment "Some comment"
    

その意味-c

-c [packets:bytes]

上記のiptablesルールは5行目に入力されます。

以下では、現在のiptables(およびカウンタ)を保存できます。

iptables-save -c -f /somepath/iptrules-$(date +%F)

答え4

に追加するValentin Bajramiの返信:

現在のiptablesルールとファイルカウンタがある場合は、次を使用してください。

iptables-save -c -f /somepath/iptrules-$(date +%F)

その後、必要に応じてファイルを変更できます。

nano /somepath/iptrules-$(date +%F)

その後、カウンターを使用して復元します。

iptables-restore -c /somepath/iptrules-$(date +%F)

ipv6を扱う場合は、上記の両方のコマンドをip6tablesに置き換えることができます。

関連情報