Лабораторная работа № 5. Настройка сетевого экрана iptables.

Прежде, чем начать выполнение лабораторной работы

  1. Убедитесь, что Вы понимаете:
    • модель взаимодействия открытых систем OSI/ISO;
    • стек протоколов TCP/IP;
    • термин трансляция сетевых адресов (NAT);
    • взаимодействие узлов с установлением соединения (TCP) и без него (UDP);
    • как работает фильтрация пакетов.
  2. Прочитайте документацию к следующим утилитам:
    • tcpdump
    • nmap
    • iptables
    • ssh
    • ping
    • telnet

Задание на лабораторную работу

  1. Проверьте установлены ли на узлах пакеты tcpdupm, iptables, nmap.
  2. С использованием утилиты iptables определите какие правила определены на каждом из узлов во всех таблицах (mangle, nat, filter)? Какие политики "по умолчанию" определены для цепочек?
  3. На узле 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).
  4. Использованием утилиты ping проверьте связь в следующих направлениях. В каждом случае запишите, какие цепочки были использованы при обработке запросов. Поясните полученный результат.
    • host1 -> host2;
    • host1 -> host3;
    • host1 -> host2 в сети соседней группы;
    • host2 -> host1.
  5. На узле host2 измените политику для цепочек INPUT, FORWARD, OUTPUT таблицы filter на DROP. Повторите п. 4. Изменился ли результат? Поясните полученный результат.
  6. В пакетном фильтре узла host2 создайте правило, разрешающее принимать ECHO-запросы (протокол icmp, тип запроса echo-request) от узла host1. На узле host1 запустите утилиту ping и проверте связь до узла host2. Поясните полученный результат. Доработайте правило на узле host2 так, чтобы он мог корректно обрабатывать ECHO-запросы от узлов своей сети (добавьте правило, разрешающее ECHO-ответы, протокол icmp, тип запроса echo-reply, измените созданное правило, разрешающее запросы не только от host1).
  7. На узле host2:
    1. запустите сервис sshd.
    2. В таблице filter создайте цепочки для обработки пакетов, приходящих от и уходящих в сети групп [N-1] и [N+1]. Пакеты могут предназначаться и генерироваться всеми узлами сети, включая host2 (цепочки INPUT, FORWARD, OUTPUT).
    3. Разработайте систему правил, допускающую следующий трафик:
      • для сетей групп N+1 и N-1 echo-запросы и echo-ответы для всех узлов Вашей сети;
      • для Вашей сети доступ на узлел host2 через внутренний интерфейс по протоколу SSH (тип протокола tcp, порт 22).
  8. Попробуйте с узла host1 соединиться по ssh с узлом host2.
  9. На узле host1 запустите утилиту nmap и "просканируйте" host2. Какие службы работают на узле host2?
  10. На узле host3 запустите сервис sshd.
  11. Дополните настройки пакетного фильтра на узле host2 таким образом, чтобы при соединении "извне" по протоколу tcp и порту 2222, соединение былор перенаправлено на узел host3 (таблица nat, цепочка PREROUTING, правило DNAT). Доработайте правила так, чтобы подобный трафик был разрешен через узел host2.
  12. Попросите администраторов сетей групп N+1 и N-1 соединиться по протоколу ssh и порту 2222 с Вашим узлом host2. На узле host1 запустите ssh и попробуйте соединиться с узлом host2 по порту 2222. Поясните результат.
  13. Сконфигурируйте фильтр на узле host3 так, чтобы он производил трансляцию адресов Вашей локальной сети во внешний адрес, предоставленный провайдером ISP2.
  14. С использованием утилиты ping проверте наличие связи узла host1 с узлом 192.168.1.11. Поясните результат.
  15. Сохраните настройки сетевого фильтра в файле /etc/sysconfig/iptables. Настройте сервис iptables так, чтобы он автоматически запускался при загрузке системы на 3 уровень.

Контрольные вопросы

  1. Зачем нужен пакетный фильтр?
  2. На каком уровне модели OSI/ISO работает фильтр?
  3. Сколько пакетов передаётся при установлении соединения по протоколу TCP?
  4. Что такое трансляция адресов (NAT)? Зачем она используется?

Полезные ссылки