19.6.5. Правила фильтрации

We use cookies. Read the Privacy and Cookie Policy

19.6.5. Правила фильтрации

Задание правил фильтрации IPTables похоже на задание правил в IPChains. Для создания правила используется опция --append (или -А). После этой опции указывается имя цепочки и критерий выбора пакетов в этой цепочке. Затем указывается опция --jump (или -j), значением которой служит действие (ACCEPT, DROP и т.п.):

iptables -A INPUT критерий_выбора -j действие

В качестве критерия выбора обычно указываются либо порты, либо IP-адреса, либо MAC-адрес. По этим параметрам и будет «вылавливаться» пакеты из цепочки. Можно задать сразу несколько критериев выбора, перечислив их друг за другом.

Фильтрация по портам, IP-адресу и MAC-адресу в IPTables задается с помощью следующих критериев выбора:

-p протокол — задает протокол, по которому будет производиться отбор пакетов. Может принимать значение all, что означает «все протоколы»;

-s адрес (или --source адрес) — задает исходный IP-адрес, по которому будет производиться отбор пакетов. В качестве значения может указываться сетевая маска или порт;

-d адрес (или --destination адрес) — задает IP-адрес получателя, по которому будет производиться отбор пакетов. В качестве значения может указываться сетевая маска или порт;

-i интерфейс — задает входной интерфейс (eth0, ppp0 и т.п.), с которого будет производиться отбор пакетов. Этот критерий работает только в цепочках INPUT и FORWARD. При задании интерфейса может использоваться знак «+», означающий «все интерфейсы заданного типа». Например, запись ppp+ означает все интерфейсы ppp (ppp0-pppN);

интерфейс — задает выходной интерфейс (eth0, ppp0 и т.п.), с которого будет производиться отбор пакетов. Способ задания такой же, что и для предыдущего случая. Этот критерий работает только в выходных цепочках (OUTPUT);

--sport порт[:порт] (или --source-port порт[:порт]) — задает исходный порт или диапазон исходных портов, по которому будет производиться отбор пакетов. Эта опция может использоваться только после опций -p tcp или -p udp. Диапазон портов задается номером первого и конечного портов, разделенных двоеточием;

--dport порт [:порт] (или --destination-port порт[:порт]) — задает порт назначения или диапазон портов назначения, по которому будет производиться отбор пакетов. Эта опция может использоваться только после опций -p tcp или -p udp. Диапазон портов задается номером первого и конечного портов, разделенных двоеточием;

--port порт [,порт] — позволяет задать порты, которые будут восприниматься и как порты источника, и как порты назначения. Использование этого критерия возможно только после использования -p tcp или -p udp и опции -m multiport;

-m состояние — задает состояние соединения. В качестве состояния возможно указание большого количества вариантов. За подробной информацией обращайтесь к справочной системе. Некоторые варианты использования данного критерия приведены ниже, на практических примерах;

--mac-source мак_адрес — задает MAC-адрес, по которому будет производиться отбор пакетов. Возможно только после использования критерия -m mac.

Рассмотрим теперь практические примеры. Выделить пакеты, приходящие от узла с MAC-адресом 11:12:13:14:15:16, можно с помощью правила:

iptables -A INPUT --mac-source 11:12:13:14:15:16 -j ...

Потом вы уже сами определите действие после опции -j. Если же нам нужно выделить все пакеты, кроме тех, которые присылает узел с этим MAC-адресом, то нужно использовать символ инверсии «!».

IPTables позволяет указывать несколько портов (не больше 15) через запятую, например:

iptables -A INPUT -p tcp -m multiport --sport 22,53,80,110 -j ...

Вместо портов источника вы можете указать порты назначения, используя опцию --dport.

Если вы хотите одновременно указать как порты источника, так и порты назначения, используйте опцию --port:

iptables -A INPUT -p tcp -m multiport --port 22,53,80,110

Данный текст является ознакомительным фрагментом.