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
Об авторе Я человек, который имеет на своем попечении достаточно много стареньких компьютеров, объединенных мною в локальную сеть с выходом в Интернет, и обеспечивающий их безопасность. И в этом отношении переход от ipchains к iptables является оправданным. Ранее для повышения безопасности своей сети, вы могли отсекать все пакеты, закрывая определенные порты, однако это порождало проблемы с пассивным FTP (passive FTP) или исходящим DCC в IRC (outgoing DCC in IRC), для которых порты на сервере назначаются динамически и потом сообщаются клиенту для выполнения соединения. В самом начале я столкнулся с некоторыми 'болезнями', перекочевавшими из ipchains, и считал код iptables не совсем готовым к окончательному выпуску. Сегодня же я мог бы порекомендовать всем, кто использует в своей работе ipchains и ipfwadm 'пересесть' на iptables!