Як проходять таблиці iintables iptables


22

Я знаю, що у Linux є 3 вбудовані таблиці, і кожна з них має власні ланцюги, як описано нижче:

ФІЛЬТР : ПЕРЕГЛЯД, ВПЕРЕД, ПЕРЕГЛЯД

NAT : ПЕРЕВІНКА, ВХОД, ВИХІД, ПОСТРОЮВАННЯ

МАНГЛ : ПЕРЕВІРКА, ВХОД, ВПЕРЕД, ВИХІД, ПОСТРОЮВАННЯ

Але я не можу зрозуміти, як вони проходять, в якому порядку, якщо вони є. Наприклад, як вони проходять, коли:

  1. Я надсилаю пакет на ПК у своїй же локальній мережі
  2. коли я надсилаю пакет на ПК в іншій мережі
  3. коли шлюз отримує пакет, і він повинен переслати його
  4. коли я отримую призначений для мене пакет
  5. будь-який інший випадок (якщо такий є)

Відповіді:


28

У Вікіпедії є чудова діаграма, яка показує порядок обробки.

Для отримання більш детальної інформації ви також можете ознайомитись з документацією на iptables, зокрема з проїздом таблиці та ланцюгів . Що також включає схему потоку .

Порядок змінюється залежно від того, яким чином використовується netfilter (як міст або мережевий фільтр та чи взаємодія він із прикладним шаром).

Як правило (хоча в деталях у зв'язаній вище главі є більше чорта) ланцюги обробляються як:

  • Розгляньте ланцюжок INPUT як "вхідний трафік ззовні до цього хоста".
  • Дивіться ланцюг FORWARD як "трафік, який використовує цей хост як маршрутизатор" (джерело та призначення не є цим хостом).
  • бачити ланцюг OUTPUT як "трафік, який хостирає хост".
  • ПЕРЕДАЧАЛЬНЕ / РОСТРУТУВАННЯ по-різному використовує для кожного з типів таблиць (наприклад, для таблиць nat, PREROUTING призначений для вхідного (маршрутизованого / переправленого) трафіку SNAT, а POSTROUTING призначений для вихідного (маршрутизованого / пересланого) трафіку DNAT. Подивіться на документи для отримання додаткової інформації специфіка.

Різні таблиці:

  • Mangle - це зміна пакетів (тип служби, час жити тощо) на траверсі.
  • Nat має вводити правила NAT.
  • Сировина використовується для маркування та відстеження з'єднання.
  • Фільтр призначений для фільтрації пакетів.

Отже, для п’яти сценаріїв:

  1. Якщо хостинг-відправник ваш хост із iptables, OUTPUT
  2. Те саме, що вище
  3. Ланцюг FORWARD (за умови, що на шлюзі знаходиться хост з iptables)
  4. Якщо "я" - хост із iptables, INPUT
  5. Подивіться на правила ланцюга вище (що є загальним правилом) та діаграму потоку (і це також залежить від того, що ви намагаєтесь досягти за допомогою IPTables)

Нещодавно я також натрапив на це посилання - stuffphilwrites.com/2014/09/iptables-processing-flowchart . Філ Хаген є приємною блок-схемою.
slm

1
Ще один хороший ресурс - digitalocean.com/community/tutorials/… .
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.