特定の場所にiptableルールが存在するかどうかを確認する方法はありますか?
このように:
iptables -C INPUT 1 -j ACCEPT
ベストアンサー1
解析された出力はiptables -L --line-numbers
それほど悪くないはずです。
num=3
if iptables -L foo --line-numbers | grep -qe "^$num "; then
echo "rule exists at line #$num"
else
echo "no rule at line #$num"
fi
つまり、これがどれほど役に立つかはわかりません。たとえば、チェーンの先頭からルールを削除すると、他のルールの数が変更され、一意の識別子などとして使用できなくなるためです。iptables -L foo --line-numbers | sed -ne '$s/ .*//p'
チェーン()のルール数を計算して比較することもできます。
冗談で言えば走れるiptables -D foo "$num"
。 number にルールがなければ文句を言うでしょうが$num
、もちろん破壊的でもあります。