Пример: iptables -X allowed
Описание: Удаление заданной цепочки из заданной таблицы. Удаляемая цепочка не должна иметь правил и не должно быть ссылок из других цепочек на удаляемую цепочку. Если имя цепочки не указано, то будут удалены все цепочки заданной таблице кроме встроенных.
Команда: -P, –policy
Пример: iptables -P INPUT DROP
Описание: Задает политику по-умолчанию для заданной цепочки. Политика по-умолчанию определяет действие, применяемое к пакетам не попавшим под действие ни одного из правил в цепочке. В качестве политики по умолчанию допускается использовать DROP и ACCEPT.
Команда: -E, –rename-chain
Пример: iptables -E allowed disallowed
Описание: Команда -E выполняет переименование пользовательской цепочки. В примере цепочка allowed будет переименована в цепочку disallowed. Эти переименования не изменяют порядок работы, а носят только косметический характер.
Команда должна быть указана всегда. Список доступных команд можно просмотреть с помощью команды iptables -h или, что тоже самое, iptables –help. Некоторые команды могут использоваться совместно с дополнительными ключами. Ниже приводится список дополнительных ключей и описывается результат их действия. При этом заметьте, что здесь не приводится дополнительных ключей, которые используются при построении критериев (matches) или действий (targets). Эти опции мы будем обсуждать далее.
Таблица 6-3. Дополнительные ключи
(Ключ – Команды, с которыми используется – Описание)
Ключ: -v, –verbose
Команды, с которыми используется:–list, –append, –insert, –delete, –replace
Описание: Используется для повышения информативности вывода и, как правило, используется совместно с командой –list. В случае использования с командой –list, в вывод этой команды включаются так же имя интерфейса, счетчики пакетов и байт для каждого правила. Формат вывода счетчиков предполагает вывод кроме цифр числа еще и символьные множители K (x1000), M (x1,000,000) и G (x1,000,000,000). Для того, чтобы заставить команду –list выводить полное число (без употребления множителей) требуется применять ключ -x, который описан ниже. Если ключ -v, –verbose используется с командами –append, –insert, –delete или –replace, то будет выведен подробный отчет о произведенной операции.
Ключ: -x, –exact
Команды, с которыми используется:–list
Описание: Для всех чисел в выходных данных выводятся их точные значения без округления и без использования множителей K, M, G. Этот ключ используется только с командой –list и не применим с другими командами.
Ключ:-n, –numeric
Команды, с которыми используется:–list
Описание: Заставляет iptables выводить IP-адреса и номера портов в числовом виде предотвращая попытки преобразовать их в символические имена. Данный ключ используется только с командой –list.
Ключ:–line-numbers
Команды, с которыми используется:–list
Описание: Ключ –line-numbers включает режим вывода номеров строк при отображении списка правил командой –list. Номер строки соответствует позиции правила в цепочке. Этот ключ используется только с командой –list.
Ключ: -c, –set-counters
Команды, с которыми используется: –insert, –append, –replace
Описание: Этот ключ используется для установки начального значения счетчиков пакетов и байт в заданное значение при создании нового правила. Например, ключ –set-counters 20 4000 установит счетчик пакетов = 20, а счетчик байт = 4000.
Ключ: –modprobe
Команды, с которыми используется: Все
Описание: Ключ –modprobe определяет команду загрузки модуля ядра. Данный ключ может использоваться в случае, когда модули ядра находится вне пути поиска (search path). Этот ключ может использоваться с любой командой.
6.4. Критерии
Здесь мы подробнее остановимся на критериях выделения пакетов. Я разбил все критерии на пять групп. Первая –
6.4.1. Общие критерии
Здесь мы рассмотрим
Таблица 6-4. Общие критерии
(Критерий – Пример – Описание)
Критерий: -p, –protocol
Пример: iptables -A INPUT -p tcp
Описание: Этот критерий используется для указания типа протокола. Примерами протоколов могут быть
Критерий: -s, –src, –source
Пример: iptables -A INPUT -s 192.168.1.1
Описание: IP-адрес(а) источника пакета. Адрес источника может указываться так, как показано в примере, тогда подразумевается единственный IP-адрес. А можно указать адрес в виде address/mask, например как
Критерий: -d, –dst, –destination
Пример: iptables -A INPUT -d 192.168.1.1
Описание: IP-адрес(а) получателя. Имеет синтаксис схожий с критерием –source, за исключением того, что подразумевает адрес места назначения. Точно так же может определять как единственный IP-адрес, так и диапазон адресов. Символ ! используется для логической инверсии критерия.
Критерий: -i, –in-interface
Пример: iptables -A INPUT -i eth0
Описание: Интерфейс, с которого был получен пакет. Использование этого критерия допускается только в цепочках
Критерий: -o, –out-interface
Пример: iptables -A FORWARD -o eth0
Описание: Задает имя выходного интерфейса. Этот критерий допускается использовать только в цепочках
Критерий: -f, –fragment
Пример: iptables -A INPUT -f
Описание: Правило распространяется на все фрагменты фрагментированного пакета, кроме первого, сделано это потому, что нет возможности определить исходящий/входящий порт для фрагмента пакета, а для ICMP-пакетов определить их тип. С помощью фрагментированных пакетов могут производиться атаки на ваш брандмауэр, так как фрагменты пакетов могут не отлавливаться другими правилами. Как и раньше, допускается использования символа ! для инверсии результата сравнения. только в данном случае символ ! должен предшествовать критерию -f, например ! -f. Инверсия критерия трактуется как «все первые фрагменты фрагментированных пакетов и/или нефрагментированные пакеты, но не вторые и последующие фрагменты фрагментированных пакетов».
6.4.2. Неявные критерии
В этом разделе мы рассмотрим
6.4.2.1. TCP критерии
Этот набор критериев зависит от типа протокола и работает только с
Таблица 6-5. 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. За дополнительной информацией обращайтесь к описанию критерия multiport.
Критерий: –dport, –destination-port
Пример: iptables -A INPUT -p tcp –dport 22
Описание: Порт или диапазон портов, на который адресован пакет. Аргументы задаются в том же формате, что и для –source-port.
Критерий: –tcp-flags
Пример: iptables -p tcp –tcp-flags SYN,FIN,ACK SYN
Описание: Определяет маску и флаги tcp-пакета. Пакет считается удовлетворяющим критерию, если из перечисленных флагов в первом списке в единичное состояние установлены флаги из второго списка. Так для вышеуказанного примера под критерий подпадают пакеты у которых флаг
Критерий: –syn
Пример: iptables -p tcp –syn
Описание: Критерий –syn является по сути реликтом, перекочевавшим из ipchains. Критерию соответствуют пакеты с установленным флагом
Критерий: –tcp-option
Пример: iptables -p tcp –tcp-option 16
Описание: Удовлетворяющим условию данного критерия будет будет считаться пакет,
6.4.2.2. UDP критерии
В данном разделе будут рассматриваться критерии, специфичные только для протокола
Таблица 6-6. UDP критерии
(Критерий – Пример – Описание)
Критерий: –sport, –source-port