Text
                    Лабораторная работа №
5
(
2
часа)
Настройка
iptables
Цели:
изучить основы использования
netfilter
/
iptables
для построения
брандмауэра
,
получить
навыки использования основных команд
iptables
,
навыки разработки, создания и изменения правил фильтрации пакетов.
Инструкции по выполнению
:
Загрузите ОС
Linux
, войдите в сеанс и
получите доступ к командной строке. Перед выполнением заданий
лабораторной ра
боты ознакомьтесь с главой 22 пункт 11 (с.978) книги «
UNIX
и
Linux
. Руководство системного администратора» Эви Немет и соавторов.
Внимательно прочитайте условие лабораторной работы, выполните
требуемые задания, ответьте на приведенные вопросы и составьте и
тоговый
отчет по работе.
Перед
началом
работы
проверьте
,
установлены ли
на
Вашей
машине
необходимые пакеты
(
firestarter
или
shorewall
)
.
В случае необходимости
установите их. Для удобства выполнения работы Вам понадобится две
работающие в виртуальной маши
не системы под управлением ОС
Linux
:
одна для настройки
iptables
, вторая для тестирования созданных правил.
Также в тестировании будет использоваться операционная система хоста
(любая).
Для виртуальной машины, на которой Вы будете настраивать
iptables
,
зад
айте два виртуальных сетевых адаптера. К одному из них подключите
тестовую виртуальную машину, а ко второму
–
реальную.
Одним из средств обеспечения безопасности системы является
установка и настройка межсетевого экрана (брандмауэра, файервола). Для
совре
менных версий ядра операционной системы
Linux
основным средством
построения брандмауэра является проект
Netfilter
/
iptables
.
Iptables
входит в
стандартную поставку большинства дистрибутивов
Linux
. Кроме этого,
существуют специализированные дистрибутивы для
построения файерволов,
в том числе
LiveCD
.
Основой взаимодействия с
Netfilter
является утилита
iptables
. Как Вам
известно, синтаксис задания правила при помощи этой утилиты:
iptables
[
-
t
таблица] команда [
критерий
] [
цель
]
Если в правило не включается явно
е указание таблицы вида «
-
t
таблица
», то предполагается использование таблицы
filter
–
основной для
построения файервола.
Сразу же за именем таблицы указывается команда. Если таблица не
указывается, то команда должна стоять первой лексемой. Команда
определ
яет действие, которое должно быть выполнено с пакетом
iptables
.
Раздел «критерий» задает условие проверки, по которому
определяется, следует ли применять это правило к пакету или нет.


Раздел «цель» указывает на действие, которое должно быть выполнено при в ыполнении условия проверки в правиле или переход на другую цепочку правил. Какие действия чаще всего применяются в качестве цели при построении брандмауэра? Задание. Пользуясь материалами лекции, выведите пронумерованный список текущих правил ( - L ) и сохра ните его в файл, затем очистите стандартные цепочки от заданных правил. Пометьте в отчете эти команды. Задайте политику по умолчанию ACCEPT для встроенных цепочек правил файервола. Синтаксис команд iptables . Для добавления правила в нужную цепочку использ уется команда - A «Имя_цепочки». Как Вы помните, существуют 3 встроенные цепочки: INPUT , OUTPUT и FORWARD , а также есть возможность создания своих собственных цепочек. Задание. Добавьте в цепочку INPUT правило для блокирования всего входящего трафика с тест овой машины. Просмотрите созданное Вами правило. Проверьте его работоспособность, попытавшись подключиться при помощи telnet или ssh к настраиваемой машине сначала с тестовой виртуальной машины, а затем из операционной системы хоста. Добавьте правило для б локирования исходящего трафика на 80 порт выбранного Вами узла (например, program . vsu или vsu . by ). Убедитесь в его работоспособности. Для удаления правила из цепочки используется команда – D «Имя_цепочки» «номер_правила». При этом правила нумеруются по по рядку, начиная с 1. Также возможно удаление правила по точному совпадению. Задание. Просмотрите номера правил, которые Вы создали. Удалите правило для блокирования трафика с тестовой машины. Не забывайте отмечать выполняемые команды в отчете. Просмотрите с писок текущих правил после удаления. Для замены правила в цепочке используется команда – R «Имя_цепочки» «номер_правила» «новое_правило». Задание. Замените правило блокирования исходящего трафика на 80 порт некоторого узла на блокирование трафика на 80 по рт для другого узла и только для одного из двух сетевых интерфейсов. Убедитесь в его работе. Для вставки правила в цепочку используется команда – I «Имя_цепочки» «номер_правила». 
Задание. Вставьте в цепочку OUTPUT правило на позицию 1, разрешающее трафик н а 80 порт на все узлы. Почему правило, заданное в предыдущем задании перестало работать? Критерий проверки пакетов могут быть разделены на 5 основных групп:  Общие критерии – для любых правил;  TCP - критерии – только для TCP - пакетов;  UDP - критерии – только дл я UDP - пакетов;  ICMP - критерии – для работы с ICMP - пакетами;  Специальные критерии: limit , owner , state и т.д. Задание. Используя соответствующий критери й скройте настраиваемую машину от попыток ее « пропинговать » . Отметьте в отчете соответствующее правило. З адание. Сбросьте созданные ранее правила фильтрации трафика. Считая, что тестовая виртуальная машина расположена в недоверенной сети, а хост - машина в доверенной сети настройте брандмауэр согласно следующим требованиям: в недоверенной сети должна быть возмо жность доступа к web - серверу на настраиваемой машине, а также возможность пересылки почты через настраиваемую машину; доступ через ssh или telnet из недоверенной сети к серверу должен быть запрещен и должен протоколироваться; в доверенной сети разрешен дос туп к ssh , web , почте и ftp ; доступ через telnet должен быть разрешен только для одного компьютера из доверенной сети – Вашей реальной машины. Отметьте в отчете команды для задания этих правил. Сохранение заданных правил. Если Вы создали набор правил для файервола и затем перезагрузите Ваш компьютер, то вы потеряете все добавленные правила. Если Вы хотите сохранить эти правила, Вы должны добавить команды для добавления этих правил в скрипт загрузки или использовать команды iptables - save / iptables - restore . Задание. При помощи указанных команд сохраните правила настроенного брандмауэра и попробуйте восстановить их при загрузке. Убедитесь в работоспособности этого варианта. Добавьте восстановление правил в загрузочный скрипт. Кроме использования утилиты ipt ables , для настройки файервола можно использовать различные графические фронтенды к этой утилите. Таким фронтендом является, например, firestarter . Задание. Установите одно из предлагаемых дистрибутивом Linux средств настройки файервола с графическим интер фейсом и попытайтесь с его помощью выполнить предыдущее задание. 
Контрольные вопросы: Какие таблицы поддерживает Netfilter ? Что делает указанное ниже правило: iptables – A INPUT – p tcp -- syn – j DROP Что делает указанное ниже правило: iptables – A INPUT – m mac -- mac - source 00:01:34:56:AB:CD – j DROP Что делает указанное ниже правило: iptables – A INPUT – m state -- state ESTABLISHED,RELATED – S ACCEPT Что делают указанные ниже правила: iptables - A OUTPUT - o eth0 - p tcp -- dport 443 - m state - - state NEW,ESTABLISHE D - j ACCEPT iptables - A INPUT - i eth0 - p tcp -- sport 443 - m state -- state ESTABLISHED - j ACCEPT Что делают указанные ниже правила: iptables - A OUTPUT - p icmp -- icmp - type echo - request - j ACCEPT iptables - A INPUT - p icmp -- icmp - type echo - reply - j ACCEPT Что делают указанные ниже правила: iptables - A OUTPUT - p udp - o eth0 -- dport 53 - j ACCEPT iptables - A INPUT - p udp - i eth0 -- sport 53 - j ACCEPT Что делают указанные ниже правила: iptables - N LOGGING iptables - A INPUT - j LOGGING iptables - A LOGGING - m limit -- l imit 10/ min - j LOG -- log - prefix " IPTables Packet Dropped : " -- log - level 7 iptables - A LOGGING - j DROP В чём разница между целями DROP и REJECT ?