ПРИМЕЧАНИЕ: Вы не сможете использовать стандартную проверку портов и расширение -m multiport(например –sport 1024:63353 -m multiport –dport 21,23,80) одновременно. Подобные правила будут просто отвергаться iptables.
Таблица 6-11. Ключи критерия Multiport
(Ключ – Пример – Описание)
Ключ: –source-port
Пример: iptables -A INPUT -p tcp -m multiport –source-port 22,53,80,110
Описание: Служит для указания списка исходящих портов. С помощью данного критерия можно указать до 15 различных портов. Названия портов в списке должны отделяться друг от друга запятыми, пробелы в списке не допустимы. Данное расширение может использоваться только совместно с критериями -p tcpили -p udp. Главным образом используется как расширенная версия обычного критерия –source-port.
Ключ: –destination-port
Пример: iptables -A INPUT -p tcp -m multiport –destination-port 22,53,80,110
Описание: Служит для указания списка входных портов. Формат задания аргументов полностью аналогичен -m multiport –source-port.
Ключ: –port
Пример: iptables -A INPUT -p tcp -m multiport –port 22,53,80,110
Описание: Данный критерий проверяет как исходящий так и входящий порт пакета. Формат аргументов аналогичен критерию –source-portи –destination-port. Обратите внимание на то что данный критерий проверяет порты обеих направлений, т.е. если вы пишете -m multiport –port 80, то под данный критерий подпадают пакеты, идущие с порта 80 на порт 80.
Расширение ownerпредназначено для проверки «владельца» пакета. Изначально данное расширение было написано как пример демонстрации возможностей iptables. Допускается использовать этот критерий только в цепочке OUTPUT . Такое ограничение наложено потому, что на сегодняшний день нет реального механизма передачи информации о «владельце» по сети. Справедливости ради следует отметить, что для некоторых пакетов невозможно определить «владельца» в этой цепочке. К такого рода пакетам относятся различные ICMP responses . Поэтому не следует применять этот критерий к ICMP responses пакетам.
Таблица 6-12. Ключи критерия Owner
(Ключ – Пример – Описание)
Ключ: -uid-owner
Пример: iptables -A OUTPUT -m owner –uid-owner 500
Описание: Производится проверка «владельца» по User ID (UID). Подобного рода проверка может использоваться, к примеру, для блокировки выхода в Интернет отдельных пользователей.
Ключ: –gid-owner
Пример: iptables -A OUTPUT -m owner –gid-owner 0
Описание: Производится проверка «владельца» пакета по Group ID (GID).
Ключ: –pid-owner
Пример: iptables -A OUTPUT -m owner –pid-owner 78
Описание: Производится проверка «владельца» пакета по Process ID (PID). Этот критерий достаточно сложен в использовании, например, если мы хотим позволить передачу пакетов на HTTP порт только от заданного демона, то нам потребуется написать небольшой сценарий, который получает PID процесса (хотя бы через ps) и затем подставляет найденный PID в правила. Пример использования критерия можно найти в Pid-owner.txt .
Ключ: –sid-owner
Пример: iptables -A OUTPUT -m owner –sid-owner 100
Описание: Производится проверка Session ID пакета. Значение SID наследуются дочерними процессами от «родителя», так, например, все процессы HTTPD имеют один и тот же SID (примером таких процессов могут служить HTTPD Apache и Roxen). Пример использования этого критерия можно найти в Sid-owner.txt . Этот сценарий можно запускать по времени для проверки наличия процесса HTTPD , и в случае отсутствия – перезапустить «упавший» процесс, после чего сбросить содержимое цепочки OUTPUT и ввести ее снова.
Критерий stateиспользуется совместно с кодом трассировки соединений и позволяет нам получать информацию о признаке состояния соединения, что позволяет судить о состоянии соединения, причем даже для таких протоколов как ICMP и UDP . Данное расширение необходимо загружать явно, с помощью ключа -m state. Более подробно механизм определения состояния соединения обсуждается в разделе Механизм определения состояний .
Таблица 6-13. Ключи критерия State
(Ключ – Пример – Описание)
Ключ: –state
Пример: iptables -A INPUT -m state –state RELATED,ESTABLISHED
Читать дальше