Logo
  • ГЛАВНАЯ
  • ОБО МНЕ
  • СЕРТИФИКАТЫ
nocip.ssh@mail.ru
Главная  >  Поиск и устранения неполадок

Цепочки в iptables


Создана 10.04.2026
Отредактирована 21.04.2026
Отличная идея — разобрать цепочки iptables. Представьте, что iptables — это система пропускных пунктов (КПП) внутри ядра Linux, через которые проходят все сетевые пакеты.
Вот схема того, как пакет движется через основные цепочки в зависимости от его направления.
Общая схема движения пакета

1. 🟢 Цепочка PREROUTING (До маршрутизации)

Где находится: Сразу как пакет зашел на сетевой интерфейс.
Задача: Изменить пакет ДО ТОГО, как система решит, куда его отправлять.
Типичный пример: Перенаправление порта (DNAT). Например, вы летите в Москву, но в аэропорту вас сажают на рейс до Сочи.

Используется в таблице: NAT (и mangle).

* DNAT (Destination NAT)

2. 🟡 Цепочка INPUT (Вход)

Где находится: После маршрутизации, если пакет адресован самому серверу.
Задача: ФИЛЬТРАЦИЯ. Решить: пустить пакет к локальной программе (SSH, Web-сервер) или заблокировать.
Типичный пример: Запретить всем (кроме 1.2.3.4) стучаться на порт 22.

Используется в таблице: filter (главная таблица)

3. 🟡 Цепочка FORWARD (Транзит)

Где находится: После маршрутизации, если пакет НЕ для сервера, а для другого компьютера в сети.
Задача: ФИЛЬТРАЦИЯ ТРАНЗИТА. Сервер работает как маршрутизатор.
Типичный пример: Домашний роутер: пакет идет от ноутбука в интернет. Сервер (роутер) просто передает его дальше, но проверяет — не вредоносный ли он.

Используется в таблице: filter.

4. 🔴 Цепочка OUTPUT (Исход)

Где находится: Когда пакет САМ сервер создал и отправляет наружу.
Задача: Фильтрация или изменение исходящих пакетов.
Типичный пример: Запретить самому серверу ходить на сайты с порно или изменить его внешний IP-адрес (SNAT).

Используется в таблицах: filter, NAT (редко), mangle.

* SNAT (Source NAT)

5. 🔵 Цепочка POSTROUTING (После маршрутизации)

Где находится: Самый последний этап, перед уходом пакета с сетевой карты.
Задача: Изменить пакет (обычно обратный адрес отправителя).
Типичный пример: MASQUERADE (SNAT). Сервер подменяет частный IP (192.168.1.10) на свой публичный IP, чтобы пакет вышел в интернет.

Используется в таблице: NAT

Вариант 1

# SNAT — вы сами руками говорите серверу: «Подменяй обратный адрес на 1.2.3.4» (жёстко заданный IP): iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth1 -j SNAT --to-source 1.2.3.4

или

# MASQUERADE (динамический SNAT) — сервер сам смотрит: «Через какой интерфейс я сейчас ухожу? # Какой у него IP? Вот на него и подменю»: iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth1 -j MASQUERADE

Вариант 2
Когда используется политика исходящего NAT (Source NAT policy) — когда разные внутренние подсети или даже разные порты выходят в интернет с разных публичных IP-адресов. Настройки варианта 2 рассмотрим в отдельном обзоре.
Команда показывает правила в таблице nat (Network Address Translation) для цепочки POSTROUTING.

sudo iptables -t nat -L POSTROUTING -n -v --line-numbers

🧩 Таблицы и их связь с цепочками (Важное уточнение)

Цепочки — это места. Таблицы — это типы действий.
Правило выглядит как iptables -t nat -A PREROUTING ... (В месте PREROUTING, в таблице NAT, сделать действие).
Как это выглядит в матрице (куда можно добавлять правила):
Таблица / Действие
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
raw (отладка)
✅
✅
❌
✅
❌
mangle (изменение TTL и пр.)
✅
✅
✅
✅
✅
nat (DNAT/SNAT)
✅ (DNAT)
❌
❌
✅ (редко)
✅ (SNAT)
filter (Брандмауэр)
❌
✅
✅
✅
❌
*
SNAT (Source NAT) = "Я спрячу своих" (Чтобы выходили в интернет).
DNAT (Destination NAT) = "Я перенаправлю гостей" (Чтобы гости заходили к моим).

🎯 Жизненный пример (Графическая история)

  1. Компьютер Алекса (IP 192.168.1.10) хочет открыть сайт nocip.ru
  2. Пакет идет на сервер (внутренняя сеть eth1, внешняя eth0).
  3. Цепочка PREROUTING: "Ага, пакет пришел. Менять адрес назначения? Нет, это не перенаправление порта. Ок, иди дальше."
  4. Маршрутизация: "Пакет не мне (192.168.1.10 != IP сервера), а наружу. Отправляю в FORWARD."
  5. Цепочка FORWARD (filter): "Алекс, ты можешь выходить в интернет? Проверяю правила... Да, можно. Пускаю."
  6. Цепочка POSTROUTING (NAT): "Пакет уходит наружу. Но у Алекса частный адрес! Меняю 192.168.1.10 на Мой_Внешний_IP (1.2.3.4)."
  7. nocip.ru получает пакет ОТ СЕРВЕРА (1.2.3.4), не от Алекса.
  8. nocip.ru отвечает серверу (1.2.3.4).
  9. Сервер получает ответ.
  10. Цепочка PREROUTING: "А, это ответ от nocip.ru . По таблице соединений вспоминаю, что это для Алекса."
  11. Цепочка FORWARD: "Пропускаю ответ к Алексу."
  12. Цепочка POSTROUTING: (Не трогает обратный путь, или меняет обратно).

💡 Простое запоминалка (Шпаргалка)

  • INPUT = "Пускать ли ко мне?" (Защита сервера)
  • FORWARD = "Пускать ли через меня?" (Маршрутизация)
  • OUTPUT = "Пускать ли от меня?" (Ограничение сервера)
  • PREROUTING = "Перенаправить входящий" (DNAT)
  • POSTROUTING = "Спрятать исходящий" (SNAT, Маскарадинг)

🔁

Приветствуем всех любителей ретро-игровой индустрии на канале RetraR
Сувенирная и брендированная продукция с персонажами из любимых игр.
RetraR — Компьютерные игры для Nintendo Game Boy
RetraR - Computer games for Nintendo Game Boy 🌌🛸👽👾☄️🤖
RetraR - 任天堂ゲームボーイ用コンピュータゲーム 🎮🕹️👾

RetraR в VK
Канал - RetraR в Telegram
Канал - RetraR в Telegram

Оформить заказ

Нажимая на кнопку, вы даете согласие на обработку персональных данных

Спасибо за заказ

Ваш заказ принят в обработку. 

Мы свяжемся с вами в ближайшее время.