/
Текст
Лабораторная работа №
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
?