4.3 IP-фильтр iptables: архитектура и синтаксис

Linux 3.13 is out bringing among other thing the first official release of nftables. nftables is the project that aims to replace the existing {ip,ip6,arp,eb}tables framework aka iptables.
nftables version in Linux 3.13 is not yet complete. Some important features are missing and will be introduced in the following Linux versions.
It is already usable in most cases but a complete support (read nftables at a better level than iptables) should be available in Linux 3.15.

Источники [ править]

Эта статья содержит материалы из статьи «В Ubuntu планируют перейти с iptables на nftables», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить редактор может снять этот шаблон после оформления и проверки. 

Комментарии:В Ubuntu планируют перейти с iptables на nftables

 

Имеете своё мнение на этот счёт?

Оставьте свой комментарий

Поделитесь новостью с друзьями
Telegram Facebook Twitter ВКонтакте LiveJournal

 

Служебная информация Короткая ссылка Статистика посещений Сведения о странице Архив (по id) Обновить

Основные действия над пакетами в фильтре iptables

Действие Пояснения

ACCEPT

Пакет прекращает движение по цепочке (и всем вызвавшим цепочкам, если текущая цепочка была вложенной) и считается принятым; тем не менее, пакет продолжит движение по цепочкам в других таблицах и может быть отвергнут там.

DROP

Отбрасывает пакет и iptables «забывает» о его существовании. Отброшенные пакеты прекращают свое движение полностью.

RETURN

Прекращает движение пакета по текущей цепочке правил и производит возврат в вызывающую цепочку, если текущая цепочка была вложенной, или, если текущая цепочка лежит на самом верхнем уровне (например INPUT), то к пакету будет применена политика по умолчанию.

LOG

Служит для журналирования отдельных пакетов и событий. В системный журнал могут заноситься заголовки IP-пакетов и другая интересующая вас информация.

REJECT

Используется, как правило, в тех же самых ситуациях, что и DROP, но в отличие от DROP, команда REJECT выдает сообщение об ошибке на хост, передавший пакет.

SNAT

Используется для преобразования сетевых адресов (Source Network Address Translation), т.е. изменение исходящего IP-адреса в IP-заголовке пакета.

DNAT

Destination Network Address Translation используется для преобразования адреса места назначения в IP-заголовке пакета.

MASQUER ADE

 В основе своей представляет то же самое, что и SNAT, только не имеет ключа -to -source. Причиной в том, что маскарадинг может работать, например, с dialup-подключением или DHCP, т.е. в тех случаях, когда IP-адрес присваивается устройству динамически. Если используется динамическое подключение, то нужно использовать маскарадинг, если же используется статическое IP-подключение, то лучшим выходом будет использование действия SNAT.

 REDIRECT

 Выполняет перенаправление пакетов и потоков на другой порт той же самой машины. К примеру, можно пакеты, поступающие на HTTP-порт, перенаправить на порт HTTP proxy. Действие REDIRECT очень удобно для выполнения «прозрачного» проксирования (transparent proxy), когда компьютеры в локальной сети даже не подозревают о существовании прокси.

TTL

Используется для изменения содержимого поля «время жизни» (Time To Live) в IP-заголовке. Один из вариантов применения этого действия — это устанавливать значение поля Time To Live во всех исходящих пакетах в одно и то же значение. Если установить на все пакеты одно и то же значение TTL, то тем самым можно лишить провайдера одного из критериев определения того, что подключение к Интернету разделяется между несколькими компьютерами. Для примера можно привести число TTL = 64, которое является стандартным для ядра Linux.

Блокировка сканирования порта

Хакеры так и ждут возможности просканировать открытые порты на вашем сервере и взломать систему безопасности. Чтобы не допустить этого безобразия:

sudo iptables -N block-scan sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN sudo iptables -A block-scan -j DROP 

где block-scan — это название новой цепочки.

Надеюсь, что этот пост был максимально полезным для вас!

Как сохранить правила Iptables

sudo iptables-save > /etc/

Как восстановить правила Iptables, при этом существующие правила удалятся

sudo iptables-restore < /etc/

Как добавить правила Iptables, чтобы они дописались к существующим:

sudo iptables-restore -n < /etc/

Если вы хотите чтобы правила автоматически сохраняли и загружались при перезагрузке системы:

sudo apt install iptables-persistent

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности,  полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством! Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля. Что Вы получите?

  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.

Как проходит обучение?

  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.

А еще поможем Вам:

  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.

Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.

Таблицы как пространства имен

Еще одна интересная вещь о таблицах в nftables – это то, что они также являются полноценными пространствами имен. То есть две таблицы могут создавать цепочки, наборы и другие объекты с одинаковыми именами.

# nft add table inet table_one # nft add chain inet table_one my_chain # nft add table inet table_two # nft add chain inet table_two my_chain # nft list ruleset … table inet table_one { chain my_chain { } } table inet table_two { chain my_chain { } }

Это свойство означает, что приложения могут организовывать правила в своих собственных цепочках, не затрагивая другие приложения. В iptables приложениям было тяжело вносить изменения в брандмауэр, не влияя на другие приложения.

Однако и тут есть один нюанс. Каждый хук таблицы или цепочки можно рассматривать как независимый и отдельный брандмауэр. То есть пакет должен пройти через все, чтобы в итоге быть принятым. Если table_one принимает пакет, его все еще может отклонить table_two. Именно здесь в игру вступает приоритезация хуков. Цепочка с более низким приоритетом гарантированно будет выполнена перед цепочкой с более высоким приоритетом. Если приоритеты равны, то поведение не определено.

Читайте также:  Как установить и настроить прокси-сервер Squid в Ubuntu 20.04