Iptables правило перемещения в списке

У меня есть 2 правила iptables

iptables -A INPUT -s 5.5.5.5 -j DROP
iptables -A INPUT -s 6.5.5.5 -j ACCEPT 

есть функция или команда, которая будет менять правила следующим образом:

iptables -A INPUT -s 6.5.5.5 -j ACCEPT 
iptables -A INPUT -s 5.5.5.5 -j DROP

Ответ 1

Сначала проверьте номер строки:

iptables -nL --line-numbers

Удалить по строке:

iptables -D INPUT {line}

Вставьте, где бы вы хотели:

iptables -I INPUT {line} -i lo -p tcp --dport {port} -j ACCEPT -m comment --comment "This rule is here for this reason"

Найдено в этих источниках:

Удалить правило

Вставить правило

Ответ 2

Нет такой команды для обмена двумя правилами iptables.

Вы можете просто удалить и вставить их в соответствующую позицию.

Ответ 3

Существует программа с именем iptables-persistent, которая делает правила iptable постоянными в качестве службы os. эта служба включает файл конфигурации в качестве экспорта iptables-save.

Таким образом, вы можете изменить порядок строк в файле конфигурации и перезапустить службу.

sudo service iptables-persistent restart

Так просто!!!!!

Ответ 4

Вместо -A использовать -D для удаления, а затем снова добавить

iptables -D INPUT -s 5.5.5.5 -j DROP

iptables -D INPUT -s 6.5.5.5 -j ACCEPT

Теперь добавьте с измененным значением

iptables -A INPUT -s 5.5.5.5 -j ACCEPT

iptables -A INPUT -s 6.5.5.5 -j DROP

Ответ 5

Пусть assuem ваша цепочка INPUT имеет только эти два правила, поэтому их идентификационный номер будет 1 и 2 соответственно для -A INPUT -s 5.5.5.5 -j DROP и -A INPUT -s 6.5.5.5 -j ACCEPT

Теперь включите их: iptables -R INPUT 2 -s 5.5.5.5 -j DROP iptables -R INPUT 1 -s 6.5.5.5 -j ACCEPT

iptables -R - это команда Заменить правило, уже существовавшее в iptables с другим.

Его использование: iptables -R [chain name] [line number] [new rule]