GNU/Linux >> Linux の 問題 >  >> Linux

iptables から特定のルールを削除するにはどうすればよいですか?

問題なく機能する最適なソリューションは次のようになります。
1. コメント付きで一時的なルールを追加:

comment=$(cat /proc/sys/kernel/random/uuid | sed 's/\-//g')
iptables -A ..... -m comment --comment "${comment}" -j REQUIRED_ACTION

2. ルールが追加され、それを削除したい場合 (またはこのコメントが付いているものすべて)、次の操作を行います:

iptables-save | grep -v "${comment}" | iptables-restore

したがって、$comment に一致するすべてのルールを 100% 削除し、他の行はそのままにしておきます。このソリューションは、過去 2 か月間、1 日あたり約 100 のルールの変更で機能します - 問題はありません。

同じコマンドを実行しますが、「-A」を「-D」に置き換えます。例:

iptables -A ...

iptables -D ...

ルールの番号を使用することもできます (--line-numbers ):

iptables -L INPUT --line-numbers

出力例:

Chain INPUT (policy ACCEPT) 
    num  target prot opt source destination
    1    ACCEPT     udp  --  anywhere  anywhere             udp dpt:domain 
    2    ACCEPT     tcp  --  anywhere  anywhere             tcp dpt:domain 
    3    ACCEPT     udp  --  anywhere  anywhere             udp dpt:bootps 
    4    ACCEPT     tcp  --  anywhere  anywhere             tcp dpt:bootps

したがって、2 番目のルールを削除する場合:

iptables -D INPUT 2

更新

特定のテーブル (nat など) を使用する場合は、それを削除コマンドに追加する必要があります (コメントについては @ThorSummoner に感謝します)

sudo iptables -t nat -D PREROUTING 1

最初に、次のコマンドですべての iptables ルールを一覧表示します:

iptables -S

次のようにリストされます:

-A XYZ -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

次に、目的の行をコピーし、 -A を置き換えるだけです -D で それを削除するには:

iptables -D XYZ -p ...

Linux
  1. Ubuntu から aria2 をアンインストールする方法

  2. ls コマンドからディレクトリを除外するにはどうすればよいですか

  3. Linuxからジェンキンスを完全に削除するにはどうすればよいですか

  1. USB から iso 9660 を削除するには?

  2. Google Chrome から古い履歴を削除するにはどうすればよいですか?

  3. コマンドラインから特定のサイズのファイルを作成するにはどうすればよいですか?

  1. CentOS / RHEL 6 :iptables ルールを保存する方法

  2. 特定の glibc バージョンにリンクするにはどうすればよいですか?

  3. Linux 端末から特定のファイルを見つけるにはどうすればよいですか?