postrouting iptables что это
Настройка netfilter с помощью iptables
Утилита командной строки iptables используется для настройки брандмауэра netfilter, встроенного в систему на базе ядра Linux.
Данная инструкция подходит как для чайников, которые хотят разбираться в аспектах защиты сети, так и опытных специалистов в качестве шпаргалки.
Принцип настройки
Общий синтаксис использования iptables:
Команды указывают, какое именно действие мы совершаем над netfilter, например, создаем или удаляем правило.
В каждой таблице есть цепочки, для каждой из которых создаются сами правила. Например, для вышеупомянутой таблицы filter есть три предопределенные цепочки — INPUT (входящие пакеты), OUTPUT (исходящие) и FORWARD (транзитные).
[номер]
Некоторые команды требуют указания номера правила, например, на удаление или редактирование.
Условие описывает критерии отработки того или иного правила.
Ну и, собственно, что делаем с пакетом, если он подходит под критерии условия.
* справедливости ради, стоит отметить, что ключ с действием не обязан идти в конце. Просто данный формат чаще всего встречается в инструкциях и упрощает чтение правил.
Ключи iptables и примеры их использования
Команды
Нижеперечисленные ключи определяют действия, которые выполняет утилита iptables.
Условия
Данные ключи определяют условия правила.
Действия
Действия, которые будут выполняться над пакетом, подходящим под критерии условия. Для каждой таблицы есть свой набор допустимых действий. Указываются с использованием ключа -j.
Таблица | Действие | Описание |
---|---|---|
filter | ACCEPT | Разрешает пакет. |
DROP | Запрещает пакет. | |
REJECT | Запрещает с отправкой сообщения источнику. | |
nat | MASQUERADE | Для исходящих пакетов заменяет IP-адрес источника на адрес интерфейса, с которого уходит пакет. |
SNAT | Аналогично MASQUERADE, но с указанием конкретного сетевого интерфейса, чей адрес будет использоваться для подмены. | |
DNAT | Подмена адреса для входящих пакетов. | |
REDIRECT | Перенаправляет запрос на другой порт той же самой системы. | |
mangle | TOS | Видоизменение поля TOS (приоритезация трафика). |
DSCP | Изменение DSCP (тоже приоритезация трафика). | |
TTL | Изменение TTL (время жизни пакета). | |
HL | Аналогично TTL, но для IPv6. | |
MARK | Маркировка пакета. Используется для последующей фильтрации или шейпинга. | |
CONNMARK | Маркировка соединения. | |
TCPMSS | Изменение значения MTU. |
Примеры часто используемых команд iptables
Общие команды
Просмотр правил с их номерами:
Для каждой таблицы смотреть правила нужно отдельно:
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Основы iptables для начинающих. Часть 3. Таблица nat
В качестве продолжения нашего цикла о брандмауэре iptables мы рассмотрим таблицу nat, в которой происходит преобразование сетевых адресов. С этой таблицей, также, как и с filter вы будете часто встречаться, выполняя такие привычные и повседневные задачи, как выход в интернет, проброс портов или перенаправление трафика. При этом действие механизма NAT более сложное и требует более глубокого понимания происходящих процессов, поэтому советуем уделить внимание в первую очередь теоретической части.
Сразу с этого места сделаем небольшое отступление, потому как с понятием «пакет» существует изрядная путаница, которая может приводить начинающих в некоторое замешательство. Начнем с того, что понятие пакет применимо только к протоколу IP сетевого уровня (L3). Пакет состоит из заголовка и полезной нагрузки. Заголовок, вместе с иной служебной информацией, содержит два важных поля: адрес отправителя (SRC IP) и адрес получателя (DST IP). Полезной нагрузкой IP-пакета является один из протоколов транспортного уровня (L4): TCP, UDP, GRE и т.д.
Следует четко запомнить: IP-заголовок содержит только адрес отправителя и адрес получателя, понятие порт в протоколе IP отсутствует. Порт появляется в заголовках транспортного протокола L4 (TCP, UDP), но информация об адресах источника и назначения там отсутствует. Но как быть, если где-то говорят о пакете на порт TCP 80? Это выражение следует понимать, как IP-пакет с полезной нагрузкой в виде TCP-сегмента с портом назначения 80. Также следует помнить, что у каждого транспортного протокола свой набор портов и одни и те же порты могут быть использованы одновременно с разными протоколами.
Теперь перейдем к самому понятию NAT, эта технология возникла тогда, когда потребовалось предоставить доступ к внешней сети узлам сети внутренней, не имеющим выделенного IP-адреса. По мере роста сетей при ограниченном количестве «белых» IP-адресов это становилось все большей проблемой и привело к совершенствованию механизма NAT.
Существует несколько видов NAT:
Далее мы будем говорить именно о перегруженном NAT (NAPT, NAT Overload, PAT, маскарадинг), потому что в большинстве реализаций используется именно он, также следует отметить, что PAT (Port Address Translation, Трансляция порт-адрес) требует обязательного наличия открытого порта, что может вызвать проблемы с прохождением NAT для транспортных протоколов не использующих порты, например, GRE.
Вернемся к iptables, функции NAT реализованы в одноименной таблице nat (все таблицы обозначаются строчными буквами), которая содержит цепочки PREROUTING, POSTROUTING и OUTPUT. В первые две цепочки попадает весь трафик узла, в последнюю только собственный исходящий.
Обратите внимание, что все преобразования NAT выполняются либо до, либо после принятия решения о маршрутизации и фильтрации трафика брандмауэром, этот момент следует учитывать при построении правил фильтрации.
В таблице nat доступно два основных действия:
Что делает SNAT? Он заменяет адрес источника пакета внешним адресом, также, при необходимости, меняет и порт источника, что позволяет различать запросы, сделанные с одного и того же порта разных ПК, запись о выполненной трансляции заносится в специальную таблицу трансляций (она же таблица NAT). Получив ответ роутер находит запись в таблице трансляций и на ее основании изменяет адрес и порт назначения ответного пакета, после чего он прозрачно доставляется адресату в локальной сети.
В общем виде запись в iptables для SNAT будет выглядеть следующим образом:
Приведенное выше правило будет изменять адрес источника для всех исходящих пакетов без разбору, что не всегда корректно и безопасно, поэтому правилом хорошего тона считается явно задавать диапазон адресов для преобразования:
Также мы можем выполнять трансляцию адресов не для всего трафика, а выборочно, указывая необходимые порты и протоколы, скажем только для SSH:
Частным случаем SNAT является действие MASQUERADE (маскарадинг), его основным отличием является то, маскарадинг самостоятельно получает IP-адрес от заданного сетевого интерфейса и не требует его явного указания. Это удобно если на внешнем интерфейсе используется динамический IP-адрес. Вторая особенность MASQUERADE в том, что при остановке интерфейса таблица трансляций полностью очищается и все текущие соединения разрываются. Причина такого поведения в том, что при следующем запуске интерфейса имеется возможность получить новый IP-адрес и все текущие записи сразу окажутся неверны.
Можно ли использовать MASQUERADE со статическим внешним адресом? Можно, но следует учитывать, что данное действие дает более высокую нагрузку на систему, так как определяет адрес внешнего интерфейса для каждого пакета, и в данном случае предпочтительно использовать SNAT.
Маскарадинг, также, как и SNAT, можно использовать только в цепочке POSTROUTING, и типичная запись будет выглядеть так:
Данное правило изменит адрес назначения всех пакетов пришедших на внешний интерфейс ens33 по протоколу tcp с портом назначения TCP-сегмента 3389 на адрес внутреннего сервера 192.168.100.1. Изменение номера порта при этом не производится. Если же вы используете нестандартный порт, то правило будет выглядеть несколько иначе:
При выполнении проброса портов обязательным критерием должен быть указан входящий интерфейс (как в правиле выше) или адрес этого интерфейса, в противном случае преобразованию будут подвергаться все пакеты, в том числе и проходящие из внутренней сети наружу. При использовании адресов вместо интерфейсов правило будет иметь следующий вид:
Узел назначения видит, что ему пришел пакет от удаленного узла XXX.XXX.XXX.XXX и он формирует ответный пакет с этим адресом в качестве назначения, а в качестве источника подставляет собственный адрес. Так как удаленный узел не принадлежит локальной сети данный пакет будет направлен основному шлюзу, т.е. назад нашему роутеру. А так как на шлюзе в любом случае включен либо SNAT, либо MASQUERADE, то локальный адрес источника будет заменен адресом внешнего интерфейса и такой пакет будет отправлен назад удаленному узлу.
Частным случаем DNAT является REDIRECT, это действие позволяет перенаправлять пакеты на другой порт текущего узла. Это удобно при прозрачном проксировании, либо перенаправлении трафика. Например, перехватим все DNS-запросы и направим их локальному DNS-серверу, развернутому на этом же узле:
А следующее правило выполнит прозрачное проксирование HTTP-трафика, не предназначенного узлу на развернутый на нем прокси-сервер:
Мы же перейдем к не менее интересной теме последующего движения пакетов. Давайте еще раз внимательно изучим схему выше. Действие DNAT в цепочке PREROUTING выполняется до решения о маршрутизации, а, следовательно, пакеты могут претерпевать «чудесные превращения». Непонимание этого момента приводит ко многим грубым ошибкам в настройке брандмауэра и неработоспособным конфигурациям.
Допустим у нас с внешнего адреса 198.51.100.1 и порта 3390 сделан проброс на внутренний адрес 192.168.100.1 и порт 3389, но нормально закрытый брандмауэр блокирует подключения. Что нам нужно сделать? Правильно, открыть порт. Если долго не думать, то вырисовывается такой набор правил:
На первый взгляд все правильно: мы «открыли» порт 3390 для внешних подключений, а затем перенаправили соединения с него на внутренний узел. Однако это грубая ошибка. Почему? Давайте разбираться.
И снова схема движения пакетов! Так, что мы видим? А видим мы то, что пакет первым делом попадает в цепочку PREROUTING таблицы nat и именно здесь у него будут изменены адрес и порт назначения. После чего пакет из локального, предназначенного данному узлу, превратится в транзитный и вместо цепочки INPUT таблицы filter пойдет в цепочку FORWARD и приведенное выше правило никогда не сработает.
А как будет правильно?
Аналогично, действие REDIRECT превращает транзитные пакеты в локальные и при возникновении такой необходимости фильтровать мы их должны уже не в цепочке FORWARD, а в INPUT.
В данной статье мы рассмотрели только базовые возможности таблицы nat в самых простых конфигурациях, но именно прочное усвоение базовых принципов позволяет успешно изучать более сложные схемы, которых мы обязательно коснемся в наших будущих публикациях.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.
Доброго времени, читатели и гости моего блога. C этой статьи начну серию статей о подсистеме Netfilter/iptables в Linux. В данной статье приведу основные понятия работы netfilter в Linux. Для понимания данной темы, обязательно советую ознакомиться со статьями Основные понятия сетей, Настройка сети в Linux, диагностика и мониторинг и Настройка и управление сетевой подсистемой Linux (iproute2).
Введение и история
Архитектура Netfilter/iptables
Предварительные требования ( с )
Как уже говорилось выше, для работы Netfilter необходимо ядро версии 2.6 (ну или хотя бы 2.3.15). Кроме того, при сборке и настройке ядра необходимо наличие настроек CONFIG_NETFILTER, CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_FILTER (таблица filter), CONFIG_IP_NF_NAT (таблица nat), CONFIG_BRIDGE_NETFILTER, а также многочисленные дополнительные модули: CONFIG_IP_NF_CONNTRACK (отслеживание соединений), CONFIG_IP_NF_FTP (вспомогательный модуль для отслеживания FTP соединений), CONFIG_IP_NF_MATCH_* (дополнительные типы шаблонов соответствия пакетов: LIMIT, MAC, MARK, MULTIPORT, TOS, TCPMSS, STATE, UNCLEAN, OWNER), CONFIG_IP_NF_TARGET_* (дополнительные действия в правилах: REJECT, MASQUERADE, REDIRECT, LOG, TCPMSS), CONFIG_IP_NF_COMPAT_IPCHAINS для совместимости с ipchains, CONFIG_BRIDGE_NF_EBTABLES и CONFIG_BRIDGE_EBT_* для работы в режиме моста, прочие CONFIG_IP_NF_* и CONFIG_IP6_NF_*. Полезно также указать CONFIG_PACKET.
Схема работы
Для начального понимания архитектуры Netfilter/iptables отлично подойдет иллюстрация из википедии, которую я несколько модифицировал для большей прозрачности и понимания материала:
Ахтунг, ниже в трех абзацах изложена основная мысль статьи и принцип работы сетевого фильтра, поэтому желательно вчитаться как можно внимательнее!
Каждая цепочка, которую проходит пакет состоит из набора таблиц (table) (обозначены овалами). Таблицы в разных цепочках имеют одинаковое наименование, но тем не менее никак между собой не связаны. Например таблица nat в цепочке PREROUTING никак не связана с таблицей nat в цепочке POSTROUTING. Каждая таблица состоит из упорядоченного набора (списка) правил. Каждое правило содержит условие, которому должен соответствовать проходящий пакет и действия к пакету, подходящему данному условию.
Очень часто о таблицах и цепочках говорят в плоскости «таблицы содержат в себе наборы цепочек», но я считаю, что это неудобно и непонятно.
Цепочки netfilter:
Цепочки организованны в 4 таблицы:
Как я уже отметил, непосредственно для фильтрации пакетов используются таблицЫ filter. Поэтому в рамках данной темы важно понимать, что для пакетов, предназначенных данному узлу необходимо модифицировать таблицу filter цепочки INPUT, для проходящих пакетов — цепочки FORWARD, для пакетов, созданных данным узлом — OUTPUT.
Примеры прохождения цепочек
Последовательность обработки входящего пакета, предназначенного для локального процесса:
Последовательность обработки пакета, уходящего с нашего хоста:
Последовательность обработки проходящего пакета (начинается от п.2 первой процедуры):
Как видно, таблица nat и mangle может модифицировать получателя или отправителя сетевого пакета. Именно поэтому сетевой пакет несколько раз сверяется с таблицей маршрутизации.
Механизм определения состояний (conntrack)
Выше в тексте несколько раз указывалось понятие «определение состояний», оно заслуживает отдельной темы для обсуждения, но тем не менее я кратко затрону данный вопрос в текущем посте. В общем, механизм определения состояний (он же state machine, он же connection tracking, он же conntrack) является частью пакетного фильтра и позволяет определить определить к какому соединению/сеансу принадлежит пакет. Conntrack анализирует состояние всех пакетов, кроме тех, которые помечены как NOTRACK в таблице raw. На основе этого состояния определяется принадлежит пакет новому соединению (состояние NEW), уже установленному соединению (состояние ESTABLISHED), дополнительному к уже существующему (RELATED), либо к «другому» (неопределяемому) соединению (состояние INVALID). Состояние пакета определяется на основе анализа заголовков передаваемого TCP-пакета. Модуль conntrack позволяет реализовать межсетевой экран сеансового уровня (пятого уровня модели OSI). Для управления данным механизмом используется утилита conntrack, а так же параметр утилиты iptables: -m conntrack или -m state (устарел). Состояния текущих соединений conntrack хранит в ядре. Их можно просмотреть в файле /proc/net/nf_conntrack (или /proc/net/ip_conntrack).
Чтобы мысли не превратились в кашу, думаю данной краткой информации для понимания дальнейшего материала будет достаточно.
Управление правилами сетевой фильтрации Netfilter (использование команды iptables)
В общем случае формат команды следующий:
Ниже приведены команды и параметры утилиты iptables:
Критерии (параметры) отбора сетевых пакетов команды iptables
Критерии отбора сетевых пакетов негласно делятся на несколько групп: Общие критерии, Неявные критерии, Явные критерии. Общие критерии допустимо употреблять в любых правилах, они не зависят от типа протокола и не требуют подгрузки модулей расширения. Неявные критерии (я бы из назвал необщие), те критерии, которые подгружаются неявно и становятся доступны, например при указании общего критерия —protocol tcp|udp|icmp. Перед использованием Явных критериев, необходимо подключить дополнительное расширение (это своеобразные плагины для netfilter). Дополнительные расширения подгружаются с помощью параметра -m или —match. Так, например, если мы собираемся использовать критерии state, то мы должны явно указать это в строке правила: -m state левее используемого критерия. Отличие между явными и неявными необщими критериями заключается в том, что явные нужно подгружать явно, а неявные подгружаются автоматически.
Ниже в виде таблицы приведены часто используемые параметры отбора пакетов:
Состояние соединения. Доступные опции:
Действия над пакетами
Данный заголовок правильнее будет перефразировать в «Действия над пакетами, которые совпали с критериями отбора«. Итак, для совершения какого-либо действия над пакетами, необходимо задать ключ -j (—jump) и указать, какое конкретно действие совершить.
Действия над пакетами могут принимать следующие значения:
Кроме указанных действий, существуют и другие, с которыми можно ознакомиться в документации (возможно, в скором времени я дополню статью в ходе освоения темы). У некоторых действий есть дополнительные параметры.
В таблице ниже приведены примеры и описания дополнительных параметров:
На этом закончим теорию о сетевом фильтре netfilter/iptables. В следующей статье я приведу практические примеры для усвоения данной теории.
Резюме
В данной статье мы рассмотрели очень кратко основные понятия сетевого фильтра в Linux. Итак, подсистема netfilter/iptables является частью ядра Linux и используется для организации различных схем фильтрации и манипуляции с сетевыми пакетами. При этом, каждый пакет проходит от сетевого интерфейса, в который он прибыл и далее по определенному маршруту цепочек, в зависимости от того, предназначен он локальной системе или «нелокальной». Каждая цепочка состоит из набора таблиц, содержащих последовательный набор правил. Каждое правило состоит из определенного критерия/критериев отбора сетевого пакета и какого-то действия с пакетом, соответствующего данным критериям. В соответствии с заданными правилами над пакетом может быть совершено какое-либо действие (Например, передача следующей/другой цепочке, сброс пакета, модификация содержимого или заголовков и др.). Каждая цепочка и каждая таблица имеет свое назначение, функциональность и место в пути следования пакета. Например для фильтрации пакетов используется таблица filter, которая содержится в трех стандартных цепочках и может содержаться в цепочках, заданных пользователем. Завершается путь пакета либо в выходящем сетевом интерфейсе, либо доставкой локальному процессу/приложению.
Литература
Довольно много интересной информации на русском содержится тут:
Настройка iptables, разбираемся вместе.(Часть 1)
Мы будем разбираться с iptables и без небольшого теоритического вступления не обойтись.
Что бы правильно составлять правила брандмауэра нужно понимать как вообще идут пакеты и что с ними происходит.
Порядок движения транзитных пакетов
Шаг | Таблица | Цепочка | Примечание |
---|---|---|---|
1 | Сетевой интерфейс (например, eth0) | ||
2 | mangle | PREROUTING | Обычно эта цепочка используется для внесения изменений в заголовок пакета, например для изменения битов TOS и пр.. |
3 | nat | PREROUTING | Эта цепочка используется для трансляции сетевых адресов ( Destination Network Address Translation). Source Network Address Translation выполняется позднее, в другой цепочке. |
4 | Принятие решения о дальнейшей маршрутизации, т.е. в этой точке решается куда пойдет пакет — локальному приложению или на другой узел сети. | ||
5 | mangle | FORWARD | Далее пакет попадает в цепочку FORWARD таблицы mangle. |
6 | Filter | FORWARD | В цепочку FORWARD попадают только те пакеты, которые идут на другой хост Вся фильтрация транзитного трафика должна выполняться здесь. Не забывайте, что через эту цепочку проходит траффик в обоих направлениях, обязательно учитывайте это обстоятельство при написании правил фильтрации. |
7 | mangle | POSTROUTING | Эта цепочка предназначена для внесения изменений в заголовок пакета уже после того как принято последнее решение о маршрутизации. |
9 | nat | POSTROUTING | Эта цепочка предназначена в первую очередь для Source Network Address Translation. Здесь же выполняется и маскарадинг (Masquerading). |
9 | Выходной сетевой интерфейс (например, eth1). |
Для локального приложения(входящие пакеты)
Шаг | Таблица | Цепочка | Примечание |
---|---|---|---|
1 | Входной сетевой интерфейс (например, eth0) | ||
2 | mangle | PREROUTING | Обычно используется для внесения изменений в заголовок пакета, например для установки битов TOS и пр. |
3 | nat | PREROUTING | Преобразование адресов ( Destination Network Address Translation). |
4 | Принятие решения о маршрутизации. | ||
5 | mangle | INPUT | Пакет попадает в цепочку INPUT таблицы mangle. Здесь вносятся изменения в заголовок пакета перед тем как он будет передан локальному приложению. |
6 | filter | INPUT | Здесь производится фильтрация входящего трафика. Помните, что все входящие пакеты, адресованные нам, проходят через эту цепочку, независимо от того с какого интерфейса они поступили. |
7 | Локальный процесс/приложение (т.е., программа-сервер или программа-клиент) |
От локальных процессов(исходящие пакеты)
Шаг | Таблица | Цепочка | Примечание |
---|---|---|---|
1 | Локальный процесс (т.е., программа-сервер или программа-клиент). | ||
2 | Принятие решения о маршрутизации. Здесь решается куда пойдет пакет дальше — на какой адрес, через какой сетевой интерфейс и пр. | ||
3 | mangle | OUTPUT | Здесь производится внесение изменений в заголовок пакета. Выполнение фильтрации в этой цепочке может иметь негативные последствия. |
4 | nat | OUTPUT | Эта цепочка используется для трансляции сетевых адресов (NAT) в пакетах, исходящих от локальных процессов брандмауэра. |
5 | Filter | OUTPUT | Здесь фильтруется исходящий траффик. |
6 | mangle | POSTROUTING | Цепочка POSTROUTING таблицы mangle в основном используется для правил, которые должны вносить изменения в заголовок пакета перед тем, как он покинет брандмауэр, но уже после принятия решения о маршрутизации. В эту цепочку попадают все пакеты, как транзитные, так и созданные локальными процессами брандмауэра. |
7 | nat | POSTROUTING | Здесь выполняется Source Network Address Translation. Не следует в этой цепочке производить фильтрацию пакетов во избежание нежелательных побочных эффектов. Однако и здесь можно останавливать пакеты, применяя политику по-умолчанию DROP. |
8 | Сетевой интерфейс (например, eth0) |
Как мы поняли есть основные три таблицы :
Для таблицы nat применимы действия:
Действие DNAT (Destination Network Address Translation) производит преобразование адресов назначения в заголовках пакетов. Другими словами, этим действием производится перенаправление пакетов на другие адреса, отличные от указанных в заголовках пакетов.
SNAT (Source Network Address Translation) используется для изменения исходных адресов пакетов. С помощью этого действия разделить единственный внешний IP адрес между компьютерами локальной сети для выхода в Интернет. В этом случае брандмауэр, с помощью SNAT, автоматически производит прямое и обратное преобразование адресов, тем самым давая возможность выполнять подключение к серверам в Интернете с компьютеров в локальной сети.
Маскировка ( MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это потому, что каждый раз, когда требуется выполнение этого действия — производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом, т.е. когда вы подключаетесь к Интернет, скажем через PPP, SLIP или DHCP.
Далее мы должны задать какой именно тип пакет будем фильтровать.
Действие с пакетом.
Получается у нас цепочка [ таблица — filter ] — [ трафик — INPUT ] — [ действие — DROP ] логика действий только кажется сложной. Думаю мы с вами на примерах разберемся и станет все просто.
Команд iptables:
Начнем разбираться на конкретных примерах.
Список критериев правил:
Так же критерия можно комбинировать.
S tate и деологический предшественник conntrack, имеет единственный параметр --state, аналогичный параметру --ctstate модуля conntrack (но, в отличие от него, не поддерживающий состояния DNAT и SNAT).
Первое как понятно это протокол, потом десятичное число(что значит не знаю),потом идет время жизни соединения. Далее состояние ESTABLISHED то есть соединение уже установлено, бывает еще UNREPLIED что значит что ответного трафика еще не было. Далее расположены адреса отправителя и получателя, порт отправителя и получателя. Далее все наоборот соответственно, ASSURED этот флаг сообщает о том, что соединение установлено уверенно и эта запись не будет стерта по достижении максимально возможного количества трассируемых соединений.
Как только трассировщик увидел первый ( SYN ) пакет, то присваивает ему статус NEW. Как только через трассировщика проходит второй пакет ( SYN/ACK ), то соединению присваивается статус ESTABLISHED.
С протоколом UDP немного все по другому этот протокол не предусматривает установления и закрытия соединения, но самый большой недостаток — отсутствие информации об очередности поступления пакетов. Но с точки зрения трасировщика все так же как с TCP. Первому пришедшему пакету присваивает ему статус NEW. Как только вы отправляете ответный пакет присваивается статус ESTABLISHED. Единственное отличия что статут ASSURED присваиваться только когда обменялись уже несколькими пакетами.
Логирование применений правил.
iptables дает возможность вести логи отдельных пакетов и событий. Для этого применяется действие LOG.
—log-level Используется для задания уровня журналирования (log level). Полный список уровней вы найдете в руководстве (man) по syslog.conf. Обычно, можно задать следующие уровни: debug, info, notice, warning, warn, err, error, crit, alert, emerg и panic. Логи пишутся в файл syslog.
Популярные команды управления iptables.
-n номер портов и ip в цифровом варианте.
—line-numbers номер строки.
REDIRECT
Новые правила автоматически не сохраняются и после перезагрузки сервера не будут действовать. Поэтому после изменения iptables нам нужно сохранить изменения.
iptables-save > /etc/iptables Сохранить текущий настройки в файл iptables.
iptables — restore > /etc/iptables Загрузить правила из файла.
Способ сохранять и загружать правила на ваше усмотрение. Мы с вами познакомились только с основами теории iptables, возможности настройки конечно гораздо больше. Более подробно о которых расскажем в другой статье.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.