Я прохожу черезУчебник по iptablesи в настоящее время я вГлава 6. Обход таблиц и цепочек..
У меня возникли проблемы с пониманиемпочемуза таблицами 6-1, 6-2 и 6-3, перечисленными в предыдущей главе.
Вопросы:
Есть ли лучшая книга или интернет-ресурс, где можно найти лучшее объяснение?
Должен ли я заучивать/запоминать различные шаги, описанные в этих таблицах?
Вышеуказанному руководству, похоже, уже много лет. Все ли, что
iptables
там сказано, все еще на 100% верно?iptables
Версия, которая у меня в системе, —1.4.14
.
Все эти вопросы возникают в основном потому, что я до сих пор «чувствую», что, возможно, все, что iptables
следовало сделать, это предоставить намабсолютный минимумнабор точек-крюков (например, крючки до и после маршрутизации), а также возможность сделатьпроизвольныйобработка пакетов (в любой последовательности, которую мы посчитаем подходящей, и любое количество раз - пользовательский конечный автомат) вместо того, чтобы оговорить подробную последовательность шагов, как в приведенных выше таблицах. Например, на диаграмме, которая следует за таблицей 6-3, почему шаг «фильтровать входные данные» должен идти только после «искажать входные данные», а не до? И почему не и до, и после? И т. д.
решение1
Есть ли лучшая книга или онлайн-ресурс?
Возможно? Вероятно? Существует множество онлайн и оффлайн ресурсов для изучения Linux и iptables.Викиимеет хороший обзор. ВотдругойРуководство по использованию и администрированию. Вотдругойруководство с той же информацией, что и FrozenTux, но немного переписанное.
Должен ли я заучивать/запоминать различные шаги?
Это зависит от того, зачем вы вообще учитесь?
Тынуждатьсязапомнить все, чтобы использовать iptables? Нет.фильтриспользуется по умолчанию, если вы не определяете никакую другую таблицу. Будет ли это полезно, если вы хотите использовать iptables в полной мере? Безусловно.
Все еще действует?
Да.
почему шаг «фильтровать входные данные» должен идти только после «искажать входные данные», а не до? И почему не до и после?
Ключевым моментом является описание в таблице 6.1, строки 8 и 9. По сути, вам нужно принять решение об изменении (т. е. искажении) пакета до его фактической фильтрации.
Вот почему сначала срабатывает входная цепочка Mangle, а затем — входная цепочка Filter.
Аналогично, последовательность шагов важна, поскольку пакет является входящим для машины (на которой запущен iptables). Вы не можете принимать решения о «входе» или входящем пакете после того, как он уже был маршрутизирован и теперь является исходящим.
Вы заметите, что таблица 6.3 НЕ является продолжением таблицы 6.2. Вместо этого они похожи до строки 7 (решение о маршрутизации), а затем строка 8 представляет собой другой путь или разветвление. Таблица 6.2 предназначена для пакетов в пределах одной сети. Таблица 6.3 предназначена для пакетов вне сети.
Важно помнить о 7-уровневой модели OSI. Каждый бит данных упаковывается и переупаковывается в различные сегменты, пакеты и кадры. Каждый сетевой «прыжок» — это еще одна возможность для любого конкретного сегмента, пакета или кадра быть измененным и перезаписанным.
iptables дает очень детальный контроль над этой переупаковкой. Вы можете написать правила для входящих пакетов, исходящих пакетов, пакетов только для вашей сети и не для других или наоборот, вашего устройства, не вашего устройства и т. д. И вы можете изменить различные заголовки для всех этих фреймов. **
** Я знаю, что свободно смешиваю "фрейм", "сегмент" и "пакет". Извините, мне действительно не следует этого делать. Если я не пытаюсь что-то доказать или не провожу конкретный сетевой анализ, я всегда так делаю.