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]