Iptables Tutorial 1.1.19 Посвящения Об авторе Как читать этот документ Предварительные условия Типографские соглашения Глава 1. Введение 1.1. Почему было написано данное руководство 1.2. Как он был написан 1.3. Термины, используемые в данном документе Глава 2. Подготовка 2.1. Где взять iptables 2.2. Настройка ядра 2.3. Установка пакета 2.3.1. Сборка пакета 2.3.2. Установка в Red Hat 7.1 Глава 3. Порядок прохождения таблиц и цепочек 3.1. Общие положения 3.2. Таблица Mangle 3.3. Таблица Nat 3.4. Таблица Filter Глава 4. Механизм определения состояний 4.1. Введение 4.2. Таблица трассировщика 4.3. Состояния в пространстве пользователя 4.4. TCP соединения 4.5. UDP соединения 4.6. ICMP соединения 4.7. Поведение по-умолчанию 4.8. Трассировка комплексных протоколов Глава 5. Сохранение и восстановление больших наборов правил 5.1. Плюсы 5.2. И минусы 5.3. iptables-save 5.4. iptables-restore Глава 6. Как строить правила 6.1. Основы 6.2. Таблицы 6.3. Команды 6.4. Критерии 6.4.1. Общие критерии 6.4.2. Неявные критерии 6.4.2.1. TCP критерии 6.4.2.2. UDP критерии 6.4.2.3. ICMP критерии 6.4.3. Явные критерии 6.4.3.1. Критерий Limit 6.4.3.2. Критерий MAC 6.4.3.3. Критерий Mark 6.4.3.4. Критерий Multiport 6.4.3.5. Критерий Owner 6.4.3.6. Критерий State 6.4.3.7. Критерий TOS 6.4.3.8. Критерий TTL 6.4.4. Критерий «мусора» (Unclean match) 6.5. Действия и переходы 6.5.1. Действие ACCEPT 6.5.2. Действие DNAT 6.5.3. Действие DROP 6.5.4. Действие LOG 6.5.5. Действие MARK 6.5.6. Действие MASQUERADE 6.5.7. Действие MIRROR 6.5.8. Действие QUEUE 6.5.9. Действие REDIRECT 6.5.10. Действие REJECT 6.5.11. Действие RETURN 6.5.12. Действие SNAT 6.5.13. Действие TOS 6.5.14. Действие TTL 6.5.15. Действие ULOG Глава 7. Файл rc.firewall 7.1. Пример rc.firewall 7.2. Описание сценария rc.firewall 7.2.1. Конфигурация 7.2.2. Загрузка дополнительных модулей 7.2.3. Настройка /proc 7.2.4. Размещение правил по разным цепочкам 7.2.5. Установка политик по-умолчанию 7.2.6. Создание пользовательских цепочек в таблице filter 7.2.6.1. Цепочка bad_tcp_packets 7.2.6.2. Цепочка allowed 7.2.6.3. Цепочка для TCP 7.2.6.4. Цепочка для UDP 7.2.6.5. Цепочка для ICMP 7.2.7. Цепочка INPUT 7.2.8. Цепочка FORWARD 7.2.9. Цепочка OUTPUT 7.2.10. Цепочка PREROUTING таблицы nat 7.2.11. Запуск SNAT и цепочка POSTROUTING Глава 8. Примеры сценариев 8.1. Структура файла rc.firewall.txt 8.1.1. Структура 8.2. rc.firewall.txt 8.3. rc.DMZ.firewall.txt 8.4. rc.DHCP.firewall.txt 8.5. rc.UTIN.firewall.txt 8.6. rc.test-iptables.txt 8.7. rc.flush-iptables.txt 8.8. Limit-match.txt 8.9. Pid-owner.txt 8.10. Sid-owner.txt 8.11. Ttl-inc.txt 8.12. Iptables-save ruleset Приложение A. Детальное описание специальных команд A.1. Вывод списка правил A.2. Изменение и очистка ваших таблиц Приложение B. Общие проблемы и вопросы B.1. Проблемы загрузки модулей B.2. Пакеты со статусом NEW и со сброшенным битом SYN B.3. SYN/ACK – пакеты и пакеты со статусом NEW B.4. Поставщики услуг Internet, использующие зарезервированные IP-адреса B.5. Как разрешить прохождение DHCP запросов через iptables B.6. Проблемы mIRC DCC Приложение C. Типы ICMP Приложение D. Ссылки на другие ресурсы Приложение E. Благодарности Приложение F. Хронология Приложение G. GNU Free Documentation License 0. PREAMBLE 1. APPLICABILITY AND DEFINITIONS 2. VERBATIM COPYING 3. COPYING IN QUANTITY 4. MODIFICATIONS 5. COMBINING DOCUMENTS 6. COLLECTIONS OF DOCUMENTS 7. AGGREGATION WITH INDEPENDENT WORKS 8. TRANSLATION 9. TERMINATION 10. FUTURE REVISIONS OF THIS LICENSE How to use this License for your documents Приложение H. GNU General Public License 0. Preamble 1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 2. How to Apply These Terms to Your New Programs Приложение I. Примеры сценариев I.1. Пример rc.firewall I.2. Пример rc.DMZ.firewall I.3. Пример rc.UTIN.firewall I.4. Пример rc.DHCP.firewall I.5. Пример rc.flush-iptables I.6. Пример rc.test-iptables
Глава 1. Введение 1.1. Почему было написано данное руководство Скажем так, я посчитал, что существует досадный пробел в HOWTO по части информации об iptables и функциях сетевого фильтра (netfilter), реализованных в новой серии ядер 2.4.x Linux. Кроме всего прочего, я попытался ответить на некоторые вопросы по поводу новых возможностей, например проверки состояния пакетов (state matching). Большинство из них проиллюстрированы в файле скрипта rc.firewall.txt , который вы можете вставить в /etc/rc.d/. Для тех, кому интересно, готов сообщить, что этот файл первоначально был основан на masquerading HOWTO.
Там же вы найдете небольшой сценарий rc.flush-iptables.txt , написанный мною, который вы можете использовать, для своих нужд, при необходимости расширяя под свою конфигурацию.