В этом разделе рассмотрим неявные критерии, точнее, те критерии, которые подгружаются неявно и становятся доступны, например, при указании критерия --protocol. На сегодняшний день существует три автоматически подгружаемых расширения, это TCP критерии, UDP критерии и ICMP критерии. Загрузка этих расширений может производиться и явным образом с помощью ключа -m, -match, например -m tcp.
Это расширение зависит от типа протокола и работает только с TCP пакетами (таблица 3.8). Чтобы использовать эти дополнительные критерии, необходимо в правилах указывать тип протокола --protocol tcp. Важно: критерий --protocol tcp обязательно должен стоять перед специфичным критерием. Эти расширения загружаются автоматически для tcp, udp и icmp протоколов.
Таблица 3.8. TCP критерии
Критерий
Пример
Описание
--sport, --source-port
iptables -A INPUT -p tcp --sport 22
Исходный порт, с которого был отправлен пакет. В качестве параметра может указываться номер порта или название сетевой службы. Соответствие имен сервисов и номеров портов вы сможете найти в файле /etc/services. При указании номеров портов правила отрабатывают несколько быстрее, но это менее удобно при разборе листингов скриптов. Номера портов могут задаваться в виде интервала из минимального и максимального номеров, например --source-port 22:80. Если опускается минимальный порт, то есть когда критерий записывается как --source-port:80, то в качестве начала диапазона принимается число 0. Если опускается максимальный порт, то есть когда критерий записывается как --source-port 22:, то в качестве конца диапазона принимается число 65535. Допускается такая запись --source-port 80:22, в этом случае iptables поменяет числа 22 и 80 местами, то есть подобного рода запись будет преобразована в --source-port 22:80. Как и раньше, символ! используется для инверсии. Так критерий --source-port! 22 подразумевает любой порт, кроме 22. Инверсия может применяться и к диапазону портов, например --source-port! 22:80.
--dport, --destination-port
iptables -A INPUT -p tcp --dport 22
Порт, на который адресован пакет. Аргументы задаются в том же формате, что и для --source-port.
--tcp-flags
iptables -p tcp --tcp-flags SYN,ACK,FIN SYN
Определяет маску и флаги tcp-пакета. Пакет считается удовлетворяющим критерию, если из перечисленных флагов в первом списке в единичное состояние установлены флаги из второго списка. Так для вышеуказанного примера под критерий подпадают пакеты, у которых флаг SYN установлен, а флаги FIN и ACK сброшены. В качестве аргументов критерия могут выступать флаги SYN, ACK, FIN, RST, URG, PSH, а также зарезервированные идентификаторы ALL и NONE. ALL – значит ВСЕ флаги и NONE – НИ ОДИН флаг. Так, критерий --tcp-flags ALL NONE означает, что все флаги в пакете должны быть сброшены. Как и ранее, символ! означает инверсию критерия Важно: имена флагов в каждом списке должны разделяться запятыми, пробелы служат для разделения списков.
--syn
iptables -p tcp --syn
Критерий --syn является, по сути, реликтом, перекочевавшим из ipchains. Критерию соответствуют пакеты с установленным флагом SYN и сброшенными флагами ACK и FIN. Этот критерий аналогичен критерию --tcp-flags SYN,ACK,FIN SYN. Такие пакеты используются для открытия соединения TCP. Заблокировав такие пакеты, вы надежно заблокируете все входящие запросы на соединение, однако этот критерий не способен заблокировать исходящие запросы на соединение. Как и ранее, допускается инвертирование критерия символом!. Так критерий! --syn означает все пакеты, не являющиеся запросом на соединение, то есть все пакеты с установленными флагами FIN или ACK.
--tcp-option
iptables -p tcp --tcp-option 16
Удовлетворяющим условию данного критерия будет считаться пакет, TCP параметр которого равен заданному числу. TCP Option – это часть заголовка пакета. Она состоит из 3 различных полей. Первое 8-битовое поле содержит информацию об опциях, используемых в данном соединении. Второе 8-битовое поле содержит длину поля опций. Если следовать стандартам до конца, то необходимо реализовать обработку всех возможных вариантов, однако, вместо этого мы можем проверить первое поле, и в случае, если там указана неподдерживаемая нашим МСЭ опция, то просто перешагнуть через третье поле (длина которого содержится во втором поле). Пакет, который не будет иметь полного TCP заголовка, будет сброшен автоматически при попытке изучения его TCP параметра. Как и ранее, допускается использование флага инверсии условия [!]
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление