Как подготовить правила, а не добавлять, используя iptables?

65

Довольно простой вопрос: как ПОДГОТОВИТЬ правила на IPTABLES, а не APPEND?

У меня есть DROPзаявления в нижней части моих правил. У меня есть программное обеспечение для добавления новых правил, но добавлять правила после DROPутверждений не очень хорошо. Каждый раз, когда я хочу добавить новое правило, мне нужно очистить таблицу (что неэффективно).

Есть ли способ добавить правило, то есть добавить правило вверху таблицы, а не внизу?

Большое спасибо.

пиво
источник

Ответы:

84

Используйте -Iпереключатель:

sudo iptables -I INPUT 1 -i lo -j ACCEPT

Это вставило бы правило в позицию # 1 в цепочке INPUT.

Яник Жируард
источник
2
Dang! Ты избил меня на 18 секунд ... Я не был достаточно быстр :(
Яник Жируард
1
Хехехехехехе :)
CJC
2
@YanickGirourad, ха, у тебя есть галочка!
CJC
5
Также отметим, что при использовании -I INPUT 1 правило не перезаписывается. Вместо этого все правила будут сдвинуты на одну позицию вверх.
Абдул
1
Важное замечание от Абдулла.
Halsafar
19

-Iвставлю. Вы, вероятно, используете, -Aчтобы добавить.

Вы также iptables -I chain rulenumможете вставить правило как число "rulenum" в цепочку "chain". -R chain rulenumможно использовать для замены определенного правила на номер «руленум» в цепочке «цепочка». iptables -L -n --line-numbersпокажет номера правил в крайнем левом столбце.

CJC
источник
Сейчас я спешу, или я бы посмотрел, но было бы неплохо увидеть пример того, как работает «цепочка», или ссылку.
PJ Brunet
//, обратитесь к fedoraproject.org/wiki/… для получения дополнительной информации о том, как правильно вставить правило IPTables.
Натан Басанезе
2

Чтобы помочь определить, к какому номеру строки добавить новое правило, я использую iptables-saveвывод существующих правил на консоль.

Для новичков я также могу предложить чит-карту, используя webmin для администрирования ваших правил. Это очень дружелюбно, и вы можете легко переупорядочить правила вручную в списке. Он также будет обрабатывать «небольшие» изменения в реализациях iptables на основе redhat и debian.

AngryWombat
источник
2
iptables -L --line-numbersнемного больше не зависит от платформы
Sirex
1
Я не уверен точно, почему нужно использовать webmin для этого (или чего-то еще). Намного лучше изучить способ командной строки, чем использовать костыль.
Сокол Момот
2

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

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

sudo service iptables-persistent restart

Так легко!!!!!

shgnInc
источник