ServerAID
Найти гайд, команду, тег… ⌘ K
Глоссарий  ·  термин

iptables — что это и зачем

iptables — классический брандмауэр Linux: набор правил, по которым ядро пропускает или блокирует сетевые пакеты. На современной Ubuntu заменён на nftables и обычно скрыт за UFW; саму команду `iptables` напрямую трогают редко, но понимать её стоит — на ней построена вся сетевая безопасность.

iptables — классический брандмауэр Linux: набор правил, по которым ядро пропускает или блокирует сетевые пакеты. На современной Ubuntu заменён на nftables и обычно скрыт за UFW; саму команду iptables напрямую трогают редко, но понимать её стоит — на ней построена вся сетевая безопасность.

Что это в одном абзаце

Когда сетевой пакет приходит на сервер или уходит с него, ядро Linux прогоняет его через цепочку правил — это и есть netfilter, фреймворк фильтрации в ядре. iptables — это CLI-утилита, через которую вы добавляете и просматриваете эти правила. Каждое правило говорит: «если пакет с такими-то признаками — сделать с ним вот это». Базовые действия: ACCEPT (пропустить), DROP (молча выбросить), REJECT (отбить ошибкой).

# Показать все текущие правила
sudo iptables -L -n -v

# Заблокировать входящие с конкретного IP
sudo iptables -A INPUT -s 1.2.3.4 -j DROP

# Разрешить SSH из приватной сети
sudo iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 22 -j ACCEPT

В чистом виде iptables-команды громоздкие, поэтому для рутинной работы используют надстройки: UFW на Ubuntu, firewalld на RHEL/Fedora.

Цепочки и таблицы

iptables-правила сгруппированы в цепочки. Стандартные цепочки:

  • INPUT — пакеты, адресованные этому серверу (включая SSH-подключения извне).
  • OUTPUT — пакеты, исходящие с сервера.
  • FORWARD — пакеты, проходящие сквозь сервер (для маршрутизатора или Docker-хоста).

У каждой цепочки есть политика по умолчанию (что делать, если ни одно правило не сработало): обычно ACCEPT, но в строгих конфигурациях ставят DROP — «всё запрещено, кроме явно разрешённого».

Цепочки сгруппированы в таблицы:

  • filter — основная фильтрация (ACCEPT/DROP). По умолчанию.
  • nat — преобразование адресов (для проброса портов и NAT-роутинга, в том числе у Docker).
  • mangle — модификация заголовков пакетов (TOS, TTL).
  • raw — раннее вмешательство до conntrack.

В типовой работе вы видите только filter — на остальные таблицы натыкаетесь редко.

Переход с iptables на nftables

С 2018 года в Linux появилась более современная подсистема — nftables. Она:

  • Объединяет IPv4 и IPv6 правила в одной утилите (nft), вместо параллельных iptables и ip6tables.
  • Имеет более чистый и читаемый синтаксис.
  • Быстрее на больших правилосписках (тысячи правил).

Начиная с Debian 11 и Ubuntu 22.04, iptables — это обёртка: ваши команды iptables -A INPUT ... транслируются в правила nftables под капотом. Команда называется iptables-nft, и она сосуществует со старой iptables-legacy (которая до сих пор в комплекте, но не используется по умолчанию).

Проверить, какой бэкенд у вас активен:

sudo update-alternatives --display iptables
sudo iptables -V                 # должно содержать "(nf_tables)"

Поэтому фраза «iptables в nftables» — это не о миграции правил, а о том, что они уже работают через nftables: команда iptables физически работает с nft-таблицами. Прямо писать в nft стоит, если вы делаете что-то новое; старые скрипты с iptables-restore будут работать.

Кто использует iptables на Ubuntu

В чистом виде — почти никто. Поверх iptables/nftables работают надстройки:

  • UFW (Uncomplicated Firewall) — стандартный фронт на Ubuntu. Команды типа sudo ufw allow 22/tcp под капотом транслируются в правила netfilter. Подробно — UFW на Ubuntu.
  • fail2ban — сервис, который читает логи (auth.log, nginx access) и при подозрительной активности сам пишет правила в iptables/nftables. Подробно — fail2ban для SSH.
  • Docker — при старте контейнера с -p 80:80 Docker сам создаёт правила в таблице nat для проброса порта. Поэтому при включённом UFW могут возникать неожиданности — Docker обходит UFW через цепочку DOCKER-USER.
  • Kubernetes / kube-proxy — для маршрутизации сервисов внутри кластера тоже использует netfilter.

В обычной серверной практике — пользуйтесь UFW и fail2ban, не лезьте в iptables руками.

Когда лезть в iptables напрямую

  • Отладка, когда правило, поставленное через UFW или Docker, делает не то, что ожидалось. sudo iptables -L -n -v --line-numbers покажет полную картину.
  • Сценарии, которые UFW не покрывает: NAT-проброс портов, маркировка пакетов, детальная фильтрация по conntrack-состояниям.
  • Контейнеры: понимать цепочки DOCKER-USER, DOCKER, DOCKER-INGRESS.

Перед редактированием — всегда делайте дамп текущих правил, чтобы было куда откатиться:

sudo iptables-save > /root/iptables.before.$(date +%Y%m%d)

И помните: правила iptables живут в памяти ядра. После ребута они пропадут, если их не сохранил какой-нибудь сервис (netfilter-persistent, UFW, Docker).

Частые вопросы

Что такое iptables простыми словами

Это утилита, через которую вы говорите ядру Linux, какие сетевые пакеты пускать на сервер, а какие выбрасывать. Стандарт брандмауэра Linux с конца 1990-х. Сейчас под капотом работает через nftables, но команда iptables всё ещё актуальна.

iptables и nftables — это одно и то же

Не одно и то же, но связанное. nftables — современная подсистема фильтрации в ядре. iptables — более старая, частично вытесненная. На Ubuntu 22.04+ команда iptables под капотом транслируется в nftables-правила (iptables-nft-режим), поэтому в реальной системе работают именно nftables, а не «классический» iptables.

Чем UFW отличается от iptables

UFW — это упрощённая обёртка над iptables/nftables. Команды UFW (sudo ufw allow 22/tcp) транслируются в полноценные правила netfilter, но синтаксис понятнее и короче. UFW не делает того, что не умеет iptables — это просто удобный фасад.

Сохраняются ли правила iptables после ребута

По умолчанию нет — правила хранятся в памяти ядра. Чтобы они применялись при загрузке, нужен пакет iptables-persistent (или netfilter-persistent), который сохраняет правила в /etc/iptables/rules.v4 и rules.v6 и восстанавливает при старте. UFW и Docker имеют свои механизмы сохранения и применяют правила при старте сервиса.

Где смотреть текущие правила iptables

sudo iptables -L -n -v — все правила в таблице filter. -n — не резолвить IP в DNS (быстрее), -v — детальный вывод со счётчиками пакетов и байтов. С --line-numbers — увидите номера строк, по которым удобно делать iptables -D INPUT 5 (удалить пятую строку).

Что почитать

  • UFW на Ubuntu — стандартный фронт для управления iptables/nftables. Команды короче и понятнее, под капотом — те же netfilter-правила.
  • fail2ban для SSH — пример сервиса, который автоматически пишет правила в iptables при подозрительных попытках входа.
  • SSH-ключи Ubuntu — типовой стек защиты SSH: ключи (отключаем парольный вход), UFW (закрываем лишние порты), fail2ban (банит ботов через iptables).

Похожие материалы

Сроки поддержки Ubuntu LTS — на сколько хватает релиза
Глоссарий

Сроки поддержки Ubuntu LTS — на сколько хватает релиза

Ubuntu LTS — это релиз с долгой поддержкой: 5 лет бесплатных security-обновлений и 10 лет с подпиской Ubuntu Pro. Промежуточные релизы (24.10, 25.04) живут всего 9 месяцев. Разбираем, какие версии сейчас актуальны, до какой даты безопасно сидеть на 22.04 и 24.04, и когда выходит 26.04 LTS.

Редакция
Debian или Ubuntu — что выбрать
Глоссарий

Debian или Ubuntu — что выбрать

Debian и Ubuntu — две родственные операционные системы: Ubuntu сделана на базе Debian и тянет оттуда пакеты, формат `.deb` и пакетный менеджер apt. Различия — в скорости релизов, наборе из коробки и философии. Кратко: Debian Stable консервативнее и аскетичнее, Ubuntu LTS — свежее и удобнее, особенно для рабочего стола и облаков. Под прод подходят оба, выбор сводится к тому, что вам важнее: предсказуемость или новизна.

Редакция
bash — что это и зачем
Глоссарий

bash — что это и зачем

bash (Bourne Again SHell) — это командная оболочка, которая обрабатывает то, что вы вводите в терминале Linux. Запускает программы, расширяет переменные, выполняет конструкции `if` / `for`, читает скрипты из файлов с шебангом `#!/bin/bash`. На Ubuntu — оболочка по умолчанию для интерактивных пользователей; для системных скриптов используют более строгий `/bin/sh` (`dash`).

Редакция
Ubuntu — что это и зачем
Глоссарий

Ubuntu — что это и зачем

Ubuntu — самый популярный дистрибутив Linux: бесплатная операционная система на базе Debian, удобная и для серверов, и для рабочего стола. Под капотом Linux-ядро, поверх — пакетный менеджер apt, рабочий стол GNOME (на Desktop) и стек systemd-сервисов. Релизы выходят каждые полгода, LTS-версии — раз в два года и поддерживаются 5 лет.

Редакция