hostprofi.ru
Подобрать хостинг
Термин·буква I

iptables

краткое определение

iptables — утилита командной строки Linux для управления встроенным сетевым фаерволом (netfilter). Позволяет создавать правила фильтрации пакетов: разрешать/блокировать трафик по IP, порту, протоколу. Заменяется nftables, но остаётся основным инструментом на большинстве серверов.

iptables — пользовательская утилита для настройки netfilter — фреймворка фильтрации пакетов в ядре Linux. Обрабатывает все входящие, исходящие и транзитные пакеты. Используется как основа многих Linux-фаерволов (UFW, firewalld работают поверх iptables/nftables).

Структура iptables

Таблицы (tables): filter (фильтрация), nat (трансляция адресов), mangle (модификация заголовков). Цепочки (chains): INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING. Действия (targets): ACCEPT, DROP, REJECT, LOG.

Основные команды

# Посмотреть правила
iptables -L -n -v

# Разрешить SSH (порт 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Разрешить HTTP и HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# Заблокировать IP
iptables -A INPUT -s 192.168.1.100 -j DROP

# Политика по умолчанию: блокировать всё входящее
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Разрешить уже установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Сохранить правила
iptables-save > /etc/iptables/rules.v4

UFW — упрощённый интерфейс

ufw allow 22/tcp
ufw allow 80,443/tcp
ufw deny from 192.168.1.100
ufw enable
ufw status verbose

История

Linux netfilter появился в ядре 2.4 (2001) как замена ipchains (ядро 2.2, 1998). iptables — инструмент управления netfilter с 2001 года. nftables появился в ядре 4.18 (2013) и постепенно заменяет iptables. FirewallD (RHEL 7+) и UFW (Ubuntu) — frontend поверх iptables/nftables.

Связь с хостингом

iptables — первая линия защиты VDS. Минимальная конфигурация: заблокировать всё входящее, разрешить SSH/HTTP/HTTPS и ESTABLISHED-соединения. fail2ban использует iptables для автоматической блокировки брутфорс-атак. В Docker и Kubernetes iptables используется для маппинга портов и Service-сетей.

История iptables

iptables создан как часть проекта Netfilter и включён в ядро Linux 2.4.0 в 2001 году, заменив ipchains (1.2, 1997) и ipfwadm (1995). Разработан Хармом ван ден Хельденом. nftables — современная замена iptables — впервые появилась в ядре 3.13 (2014) и стала рекомендованной с Debian 10 (2019). В Ubuntu 20.04+ iptables является фронтендом над nftables. ufw (Uncomplicated Firewall) — упрощённый интерфейс над iptables, стандарт Ubuntu.

Основная структура iptables

# Таблицы: filter (по умолчанию), nat, mangle, raw
# Цепочки: INPUT, OUTPUT, FORWARD (filter), PREROUTING, POSTROUTING (nat)

iptables -L -n -v               # просмотр правил
iptables -A INPUT -p tcp --dport 22 -j ACCEPT   # разрешить SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT   # разрешить HTTP
iptables -A INPUT -j DROP       # блокировать всё остальное
iptables-save > /etc/iptables/rules.v4          # сохранить

iptables vs nftables vs UFW vs firewalld

ИнструментУровеньДистрибутив
iptablesнизкийуниверсальный
nftablesнизкий (новый)Debian 10+, Ubuntu 20.04+
ufwвысокийUbuntu
firewalldвысокийRHEL, Fedora

Типичные ошибки

  • Блокировка SSH без разрешения собственного IP — потеря доступа к VPS.
  • Правила не сохранены: после перезагрузки iptables очищается без iptables-persistent.
  • Конфликт iptables и Docker: Docker создаёт собственные правила, iptables-DROP может блокировать контейнерный трафик.

В связке с Docker iptables конфигурируется автоматически: Docker создаёт цепочки DOCKER и DOCKER-USER. Правила в DOCKER-USER применяются до правил Docker и позволяют контролировать трафик контейнеров. Cloudflare IP-ranges (список публикуется на сайте) стоит добавить в whitelist для корректной работы сайта. На Ubuntu Server рекомендуется UFW как фронтенд.

Другие термины