Для отображения порядковых номеров iptables правил в списке необходимо использовать опцию --line-numbers
Например, просмотрим содержимое таблицы трансляции и правила влияющие на пересылку пакетов между интерфейсами:iptables -L POSTROUTING -t nat -n -v --line-numbers
iptables -L FORWARD -n -v --line-numbersУдалим несколько записей по номеру:
iptables -D FORWARD 55
iptables -t nat -D POSTROUTING 15Цепочку следует явно указывать, так как номера уникальны только в рамках каждой цепочки.
Удалять следует внимательно и по одному элементу ! Так как после удаления, следующие номера сдвигаются.
Т.е. Если вы хотели удалить в списке строки 15 и 25, удалять нужно начиная с большего номера,
иначе 25 запись после удаления 15 сменит номер на 24.URL:
Обсуждается: http://www.opennet.me/tips/info/1915.shtml
Полезно
Поздравляю автора. Он наконец-то прочитал документацию и включил мозг. Я по номерам добавляю и удаляю правила уже года 3.
В более сложных ситуациях делаю так:
# iptables-save > iptables.rules ; vim iptables.rules && iptables-restore < iptables.rules
но при этом счетчики начинают врать - значения не последние.
> # iptables-restore < iptables.rulesfor i in "nat mangle filter"
do
for j in "Z X F" do
iptables -t $i -$j;
done
done# iptables-restore < iptables.rules
>for i in "nat mangle filter"
> for j in "Z X F"
> iptables -t $i -$j;eval iptables\ -t\ {nat,mangle,filter}\ -{Z,X,F}\;
...И да, оказывается xargs не нужен.
---В подворотне вас ждёт маниак шелл-скриптинга
>но при этом счетчики начинают врать - значения не последние.iptables-save -c > iptables.rules ; vim iptables.rules && iptables-restore < iptables.rules