Прежде, чем начать выполнение лабораторной работы
- Убедитесь, что Вы понимаете:
- модель взаимодействия открытых систем OSI/ISO;
- стек протоколов TCP/IP;
- термин трансляция сетевых адресов (NAT);
- взаимодействие узлов с установлением соединения (TCP) и без него (UDP);
- как работает фильтрация пакетов.
- Прочитайте документацию к следующим утилитам:
- tcpdump
- nmap
- iptables
- ssh
- ping
- telnet
Задание на лабораторную работу
- Проверьте установлены ли на узлах пакеты tcpdupm, iptables, nmap.
- С использованием утилиты iptables определите какие правила определены на каждом из узлов во всех таблицах (mangle, nat, filter)? Какие политики "по умолчанию" определены для цепочек?
- На узле host2 выполните следующие действия:
- Изучите файл /etc/sysconfig/iptables-config. Сохраняются ли правила пакетного фильтра после перезапуска? Если нет, настройте так, чтобы настройки сохранялись (переменные IPTABLES_SAVE_ON_STOP и IPTABLES_SAVE_ON_RESTART).
- Используя скрипт /etc/init.d/iptables, сохраните текущие правила пакетного фильтра (параметр save). Просмотрите файл /etc/sysconfig/iptables и сравните его содержимое с результатами, полученными в п. 2.
- Добавьте (команда iptables) в каждую таблицу (команда iptables) и каждую цепочку правило, требующее записывать в журнал информацию о каждом обрабатываемом пакете (цель LOG, модификатор --log-prefix).
- Использованием утилиты ping проверьте связь в следующих направлениях. В каждом случае запишите, какие цепочки были использованы при обработке запросов. Поясните полученный результат.
- host1 -> host2;
- host1 -> host3;
- host1 -> host2 в сети соседней группы;
- host2 -> host1.
- На узле host2 измените политику для цепочек INPUT, FORWARD, OUTPUT таблицы filter на DROP. Повторите п. 4. Изменился ли результат? Поясните полученный результат.
- В пакетном фильтре узла host2 создайте правило, разрешающее принимать ECHO-запросы (протокол icmp, тип запроса echo-request) от узла host1. На узле host1 запустите утилиту ping и проверте связь до узла host2. Поясните полученный результат. Доработайте правило на узле host2 так, чтобы он мог корректно обрабатывать ECHO-запросы от узлов своей сети (добавьте правило, разрешающее ECHO-ответы, протокол icmp, тип запроса echo-reply, измените созданное правило, разрешающее запросы не только от host1).
- На узле host2:
- запустите сервис sshd.
- В таблице filter создайте цепочки для обработки пакетов, приходящих от и уходящих в сети групп [N-1] и [N+1]. Пакеты могут предназначаться и генерироваться всеми узлами сети, включая host2 (цепочки INPUT, FORWARD, OUTPUT).
- Разработайте систему правил, допускающую следующий трафик:
- для сетей групп N+1 и N-1 echo-запросы и echo-ответы для всех узлов Вашей сети;
- для Вашей сети доступ на узлел host2 через внутренний интерфейс по протоколу SSH (тип протокола tcp, порт 22).
- Попробуйте с узла host1 соединиться по ssh с узлом host2.
- На узле host1 запустите утилиту nmap и "просканируйте" host2. Какие службы работают на узле host2?
- На узле host3 запустите сервис sshd.
- Дополните настройки пакетного фильтра на узле host2 таким образом, чтобы при соединении "извне" по протоколу tcp и порту 2222, соединение былор перенаправлено на узел host3 (таблица nat, цепочка PREROUTING, правило DNAT). Доработайте правила так, чтобы подобный трафик был разрешен через узел host2.
- Попросите администраторов сетей групп N+1 и N-1 соединиться по протоколу ssh и порту 2222 с Вашим узлом host2. На узле host1 запустите ssh и попробуйте соединиться с узлом host2 по порту 2222. Поясните результат.
- Сконфигурируйте фильтр на узле host3 так, чтобы он производил трансляцию адресов Вашей локальной сети во внешний адрес, предоставленный провайдером ISP2.
- С использованием утилиты ping проверте наличие связи узла host1 с узлом 192.168.1.11. Поясните результат.
- Сохраните настройки сетевого фильтра в файле /etc/sysconfig/iptables. Настройте сервис iptables так, чтобы он автоматически запускался при загрузке системы на 3 уровень.
Контрольные вопросы
- Зачем нужен пакетный фильтр?
- На каком уровне модели OSI/ISO работает фильтр?
- Сколько пакетов передаётся при установлении соединения по протоколу TCP?
- Что такое трансляция адресов (NAT)? Зачем она используется?
Полезные ссылки
- Пакетный фильтр iptables