На главную страницу
Форум txt.version   



Статья :: Iptables Tutorial 1.1.19 : Oskar Andreasson

Iptables Tutorial 1.1.19

Автор: (C) Oskar Andreasson

Copyright (C) 2001-2002 by Oskar Andreasson

Перевод: (C) Андрей Киселев

Последнюю версию документа можно получить по адресу: http://iptables-tutorial.frozentux.net


fb2-документ отформатирован с использованием большого количества тегов <emphasis> и <strong>. Чтобы в «читалке» (в частности, Haali Reader) текст выглядел «красиво», настройте свойства соотвествующих стилей (emphasis и strong), изменив, например, их цвета или начертания. (прим. автора fb2-документа)

Посвящения

Прежде всего, я хотел бы посвятить данный документ моей замечательной подруге Нинель (Ninel). Она поддерживает меня больше, чем я когда-либо смогу поддержать ее.

Во-вторых – всем разработчикам Linux сделавшим эту замечательную операционную систему, за их невероятно напряженный труд.

Об авторе

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

Как читать этот документ

Этот документ написан, так чтобы облегчить читателям понимание замечательного мира iptables. Здесь вы не найдете информации об ошибках в iptables или в netfilter. Если вы столкнетесь с ними, то можете связяться с командой разработчиков, а они в ответ могут сообщить вам, действительно ли существует такая ошибка. На сегодняшний день iptables и netfilter практически не содержат ошибок, хотя изредка одна – две «проскакивают». Информация о таких ошибках обязательно появляется на главной странице проекта Netfilter.

Вышесказанное также означает, что при написании наборов правил, прилагаемых к данному руководству, не учитывалось возможное наличие каких-либо ошибок внутри netfilter. Основная цель примеров – показать порядок написания набора правил и проблемы, с которыми вы можете столкнуться. Например, в этом документе не поясняется, как закрыть уязвимость Apache 1.2.12 на HTTP порту (фактически в примерах вы найдете, как закрыть этот порт, но по другой причине).

Этот документ был написан с целью дать начинающим хороший, простой и в то же время достаточно полный учебник по iptables. Он не содержит информации по действиям и критериям из patch-o-matic по той простой причине, что потребовалось бы слишком много усилий, чтобы запомнить весь список изменений. Если у вас возникнет необходимость в получении информации по модификациям patch-o-matic, то вам следует обращаться к документации, которая сопровождает конкретный patch-o-matic, она доступна на главной странице проекта Netfilter.

Предварительные условия

Данное руководство предполагает наличие у читателя начальных сведений о Linux/Unix, языке сценариев командной оболочки. Кроме того, вы должны знать – как пересобрать ядро операционной системы и иметь некоторое представление о его внутреннем устройстве.

Я постарался, насколько это возможно, сделать документ доступным для понимания как можно более широкому кругу читателей, однако я не всесилен, и поэтому от вас все-таки потребуется наличие некоторых познаний.

Типографские соглашения

В данном документе приняты следующие соглашения по выделению информации различного рода:

Команды, вводимые пользователем, и вывод, получаемый в результате работы команд, отображаются моноширинным шрифтом, кроме того, ввод пользователя отображается жирным шрифтом:

[blueflux@work1 neigh]$ ls

default eth0 lo

[blueflux@work1 neigh]$

Все команды и имена программ отображаются жирным шрифтом .

Все упоминания об аппаратном обеспечении, а так же о внутренних механизмах ядра или абстрактных понятиях системы (например: петлевой (loopback) интерфейс), отображаются курсивом.

Имена файлов и пути к файлам отображаются таким образом: /usr/local/bin/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, написанный мною, который вы можете использовать, для своих нужд, при необходимости расширяя под свою конфигурацию.

1.2. Как он был написан

Я консультировался с Марком Бучером (Marc Boucher) и другими членами команды разработчиков netfilter. Пользуясь случаем, выражаю огромную признательность за их помощь в создании данного руководства, которое изначально было написано для boingworld.com, а теперь доступно на моем персональном сайте frozentux.net. С помощью этого документа вы пройдете процесс настройки шаг за шагом и, надеюсь, что к концу изучения его вы будете знать о пакете iptables значительно больше. Большая часть материала базируется на файле rc.firewall.txt, так как я считаю, что рассмотрение примера – лучший способ изучения iptables. Я пройду по основным цепочкам правил в порядке их следования. Это несколько усложняет изучение, зато изложение становится логичнее. И, всякий раз, когда у вас возникнут затруднения, вы можете обращаться к этому руководству.




Iptables Tutorial 1.1.19 : Oskar Andreasson

страницы в данном разделе 
Iptables Tutorial 1.1.19 : Oskar Andreasson 1.3. Термины, используемые в данном документе : Oskar Andreasson
1.3. Термины, используемые в данном документе : Oskar Andreasson 2.2. Настройка ядра : Oskar Andreasson
2.3.1. Сборка пакета : Oskar Andreasson 2.3.1. Сборка пакета : Oskar Andreasson
2.3.2. Установка в Red Hat 7.1 : Oskar Andreasson 2.2. Настройка ядра : Oskar Andreasson
2.3.1. Сборка пакета : Oskar Andreasson 2.3.2. Установка в Red Hat 7.1 : Oskar Andreasson
2.3.1. Сборка пакета : Oskar Andreasson 2.3.2. Установка в Red Hat 7.1 : Oskar Andreasson
3.1. Общие положения : Oskar Andreasson 3.2. Таблица Mangle : Oskar Andreasson
3.1. Общие положения : Oskar Andreasson 3.2. Таблица Mangle : Oskar Andreasson
4.1. Введение : Oskar Andreasson 4.2. Таблица трассировщика : Oskar Andreasson
4.3. Состояния в пространстве пользователя : Oskar Andreasson 4.4. TCP соединения : Oskar Andreasson
4.5. UDP соединения : Oskar Andreasson 4.6. ICMP соединения : Oskar Andreasson
4.8. Трассировка комплексных протоколов : Oskar Andreasson 4.1. Введение : Oskar Andreasson
4.2. Таблица трассировщика : Oskar Andreasson 4.3. Состояния в пространстве пользователя : Oskar Andreasson
4.4. TCP соединения : Oskar Andreasson 4.5. UDP соединения : Oskar Andreasson
4.6. ICMP соединения : Oskar Andreasson 4.8. Трассировка комплексных протоколов : Oskar Andreasson
5.2. И минусы : Oskar Andreasson 5.3. iptables-save : Oskar Andreasson
5.2. И минусы : Oskar Andreasson 5.3. iptables-save : Oskar Andreasson
6.2. Таблицы : Oskar Andreasson 6.3. Команды : Oskar Andreasson
6.4.1. Общие критерии : Oskar Andreasson 6.4.1. Общие критерии : Oskar Andreasson
6.4.2.1. TCP критерии : Oskar Andreasson 6.4.2.1. TCP критерии : Oskar Andreasson
6.4.2.2. UDP критерии : Oskar Andreasson 6.4.3.1. Критерий Limit : Oskar Andreasson
6.4.3.1. Критерий Limit : Oskar Andreasson 6.4.3.5. Критерий Owner : Oskar Andreasson
6.4.3.6. Критерий State : Oskar Andreasson 6.4.3.7. Критерий TOS : Oskar Andreasson
6.5. Действия и переходы : Oskar Andreasson 6.5.1. Действие ACCEPT : Oskar Andreasson
6.5.2. Действие DNAT : Oskar Andreasson 6.5.4. Действие LOG : Oskar Andreasson
6.5.6. Действие MASQUERADE : Oskar Andreasson 6.5.8. Действие QUEUE : Oskar Andreasson
6.5.12. Действие SNAT : Oskar Andreasson 6.5.13. Действие TOS : Oskar Andreasson
6.5.14. Действие TTL : Oskar Andreasson 6.5.15. Действие ULOG : Oskar Andreasson
6.2. Таблицы : Oskar Andreasson 6.3. Команды : Oskar Andreasson
6.4.1. Общие критерии : Oskar Andreasson 6.4.2.1. TCP критерии : Oskar Andreasson
6.4.2.1. TCP критерии : Oskar Andreasson 6.4.2.2. UDP критерии : Oskar Andreasson
6.4.3.1. Критерий Limit : Oskar Andreasson 6.4.3.1. Критерий Limit : Oskar Andreasson
6.4.3.5. Критерий Owner : Oskar Andreasson 6.4.3.6. Критерий State : Oskar Andreasson
6.4.3.7. Критерий TOS : Oskar Andreasson 6.4.1. Общие критерии : Oskar Andreasson
6.4.2.1. TCP критерии : Oskar Andreasson 6.4.2.2. UDP критерии : Oskar Andreasson
6.4.2.1. TCP критерии : Oskar Andreasson 6.4.2.2. UDP критерии : Oskar Andreasson
6.4.3.1. Критерий Limit : Oskar Andreasson 6.4.3.5. Критерий Owner : Oskar Andreasson
6.4.3.6. Критерий State : Oskar Andreasson 6.4.3.7. Критерий TOS : Oskar Andreasson
6.4.3.1. Критерий Limit : Oskar Andreasson 6.4.3.5. Критерий Owner : Oskar Andreasson
6.4.3.6. Критерий State : Oskar Andreasson 6.4.3.7. Критерий TOS : Oskar Andreasson
6.5. Действия и переходы : Oskar Andreasson 6.5.2. Действие DNAT : Oskar Andreasson
6.5.4. Действие LOG : Oskar Andreasson 6.5.6. Действие MASQUERADE : Oskar Andreasson
6.5.8. Действие QUEUE : Oskar Andreasson 6.5.12. Действие SNAT : Oskar Andreasson
6.5.13. Действие TOS : Oskar Andreasson 6.5.14. Действие TTL : Oskar Andreasson
6.5.15. Действие ULOG : Oskar Andreasson 6.5.2. Действие DNAT : Oskar Andreasson
6.5.4. Действие LOG : Oskar Andreasson 6.5.6. Действие MASQUERADE : Oskar Andreasson
6.5.8. Действие QUEUE : Oskar Andreasson 6.5.12. Действие SNAT : Oskar Andreasson
6.5.13. Действие TOS : Oskar Andreasson 6.5.14. Действие TTL : Oskar Andreasson
6.5.15. Действие ULOG : Oskar Andreasson 7.2. Описание сценария rc.firewall : Oskar Andreasson
7.2.1. Конфигурация : Oskar Andreasson 7.2.2. Загрузка дополнительных модулей : Oskar Andreasson
7.2.4. Размещение правил по разным цепочкам : Oskar Andreasson 7.2.6.1. Цепочка bad_tcp_packets : Oskar Andreasson
7.2.6.4. Цепочка для UDP : Oskar Andreasson 7.2.6.5. Цепочка для ICMP : Oskar Andreasson
7.2.7. Цепочка INPUT : Oskar Andreasson 7.2. Описание сценария rc.firewall : Oskar Andreasson
7.2.2. Загрузка дополнительных модулей : Oskar Andreasson 7.2.4. Размещение правил по разным цепочкам : Oskar Andreasson
7.2.6.1. Цепочка bad_tcp_packets : Oskar Andreasson 7.2.6.4. Цепочка для UDP : Oskar Andreasson
7.2.6.5. Цепочка для ICMP : Oskar Andreasson 7.2.7. Цепочка INPUT : Oskar Andreasson
7.2.2. Загрузка дополнительных модулей : Oskar Andreasson 7.2.4. Размещение правил по разным цепочкам : Oskar Andreasson
7.2.6.1. Цепочка bad_tcp_packets : Oskar Andreasson 7.2.6.4. Цепочка для UDP : Oskar Andreasson
7.2.6.5. Цепочка для ICMP : Oskar Andreasson 7.2.7. Цепочка INPUT : Oskar Andreasson
7.2.2. Загрузка дополнительных модулей : Oskar Andreasson 7.2.4. Размещение правил по разным цепочкам : Oskar Andreasson
7.2.6.4. Цепочка для UDP : Oskar Andreasson 7.2.6.5. Цепочка для ICMP : Oskar Andreasson
7.2.6.4. Цепочка для UDP : Oskar Andreasson 7.2.6.5. Цепочка для ICMP : Oskar Andreasson
7.2.7. Цепочка INPUT : Oskar Andreasson 8.1.1. Структура : Oskar Andreasson
8.1.1. Структура : Oskar Andreasson 8.3. rc.DMZ.firewall.txt : Oskar Andreasson
8.4. rc.DHCP.firewall.txt : Oskar Andreasson 8.1.1. Структура : Oskar Andreasson
8.1.1. Структура : Oskar Andreasson 8.3. rc.DMZ.firewall.txt : Oskar Andreasson
8.4. rc.DHCP.firewall.txt : Oskar Andreasson A.2. Изменение и очистка ваших таблиц : Oskar Andreasson
A.2. Изменение и очистка ваших таблиц : Oskar Andreasson Приложение B. Общие проблемы и вопросы : Oskar Andreasson
B.2. Пакеты со статусом NEW и со сброшенным битом SYN : Oskar Andreasson B.3. SYN/ACK – пакеты и пакеты со статусом NEW : Oskar Andreasson
B.1. Проблемы загрузки модулей : Oskar Andreasson B.2. Пакеты со статусом NEW и со сброшенным битом SYN : Oskar Andreasson
B.3. SYN/ACK – пакеты и пакеты со статусом NEW : Oskar Andreasson Приложение C. Типы ICMP : Oskar Andreasson
Приложение D. Ссылки на другие ресурсы : Oskar Andreasson Приложение F. Хронология : Oskar Andreasson
4. MODIFICATIONS : Oskar Andreasson 4. MODIFICATIONS : Oskar Andreasson
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION : Oskar Andreasson 1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION : Oskar Andreasson
Приложение I. Примеры сценариев : Oskar Andreasson I.2. Пример rc.DMZ.firewall : Oskar Andreasson
I.3. Пример rc.UTIN.firewall : Oskar Andreasson I.4. Пример rc.DHCP.firewall : Oskar Andreasson
I.6. Пример rc.test-iptables : Oskar Andreasson I.1. Пример rc.firewall : Oskar Andreasson
I.2. Пример rc.DMZ.firewall : Oskar Andreasson I.3. Пример rc.UTIN.firewall : Oskar Andreasson
I.4. Пример rc.DHCP.firewall : Oskar Andreasson I.6. Пример rc.test-iptables : Oskar Andreasson

Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)


Microsoft Office Журнал Компьютерра № 32 от 5 сентября 2006 года Журнал Компьютерра № 34 от 18 сентября 2006 года