Создать таблицу в iptables

8

Я хочу создать собственную таблицу с использованием iptables, чтобы в нее можно было добавлять свои собственные цепочки. Но я не вижу никакой возможности сделать это. Я пытался найти его, но ничего не нашел. Пожалуйста помоги.

Tarun
источник

Ответы:

16

Я думаю, что вы ищете создание цепочки , а не таблицы.

   -N, --new-chain chain
          Create a new user-defined chain by the given name.  There must be no target of that name already.

Пример ( -t filterподразумевается):

iptables -N Services
iptables -A INPUT -j Services
iptables -A Services -m tcp -p tcp --dport 80 -j ACCEPT

Таблицы могут быть выбраны с -tопцией:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

И если вы используете iptables-restore, вышеупомянутые два правила могут быть объединены в:

*nat
-A POSTROUTING -j MASQUERADE
COMMIT

*filter
:Services -
-A INPUT -j Services
-A Services -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT
Lekensteyn
источник
Спасибо за ответ, но я хочу создать другую таблицу для своих пользовательских цепочек. Создание другой таблицы не возможно?
Тарун
1
Почему вы хотите создать другую таблицу? Чтобы иметь возможность группировать свои цепи? Если вы не напишите свой собственный модуль ядра, вы не сможете вставлять новые цепочки. Посмотрите эту картину о потоке пакетов, чтобы понять, для чего используются разные таблицы.
Лекенштейн
Хорошо, я этого не знал. Спасибо за помощь.
Тарун
5

Создание таблицы выполняется на уровне ядра; обычно нет необходимости создавать новый, если только он не добавляет в ядро ​​возможности TCP / IP.

Вероятно, вы захотите создать новую цепочку в одной из существующих таблиц, что делается с помощью -Nфлага.

Игнасио Васкес-Абрамс
источник
«Обычно в этом нет необходимости ...» - но пользовательские цепочки делают вещи намного аккуратнее. Например, добавление пользовательской цепочки в интерфейс.
Конрад Гаевский