МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра Автоматики Лабораторная работа №1 по курсу «Безопасность информационных ресурсов» «Установка и конфигурирование серверной операционной системы» Факультет: АВТ Группа: АА-26 Студент: Вотрина О.А. Преподаватель: к.т.н., Басыня Е.А. Новосибирск 2015 1. Цель работы: Необходимо спроектировать корпоративную вычислительную сеть, состоящую из 100 хостов. Установить и сконфигурировать головной шлюз на базе серверной операционной системы Windows или Unix/Linux. 2. Выбор решений для реализации корпоративной сети: Для начала определимся с моделью сети. Выбираем иерархическую модель, т.к. она имеет ряд преимуществ перед так называемой «плоской сетью»: упрощается понимание организации сети модель подразумевает модульность, что означает простоту наращивания мощностей именно там, где необходимо легче найти и изолировать проблему повышенная отказоустойчивость за счет дублирования устройств и/или соединений распределение функций по обеспечению работоспособности сети по различным устройствам. Т.е. в нашей сети имеем три уровня: уровень ядра уровень распространения уровень доступа Составим примерную схему нашей корпоративной сети: Рис.1. Модель корпоративной компьютерной сети предприятия Для построения корпоративной сети будем использовать технологию VPN, т.к. это самая распространенная и защищенная технология, использующая средства криптографии (шифрование, аутентификацию, инфраструктуры открытых ключей, средства для защиты от повторов и изменений передаваемых по логической сети сообщений). Для организации шифрованного VPN –канала буде использовать стандарт IPSec, включающий в себя три протокола: ESP (Encapsulating Security Payload - безопасная инкапсуляция полезной нагрузки) –занимается непосредственно шифрованием данных, а также может обеспечивать аутентификацию источника и проверку целостности данных; AH (Authentication Header – заголовок аутентификации) отвечает за аутентификацию источника и проверку целостности данных; IKE (Internet Key Exchange protocol – протокол обмена ключами) согласование работы участников защищенного соединения. Используя этот протокол, участники договариваются, какой алгоритм шифрования будет использоваться, по какому алгоритму будет производиться (и будет ли вообще) проверка целостности, как аутентифицировать друг друга. Здесь на уровне ядра будет располагаться сервер с ОС Linux Ubuntu. На уровне распространения будут агрегироваться все VLAN в общий TRUNK, поэтому здесь поставим коммутатор Cisco2960. Для уровня доступа возьмем коммутаторы Cisco 2950 (к ним будут подключаться конечные пользователи, офисная техника и сервера), т.к. они удовлетворяют всем требованиям, предъявляемым предприятиями среднего размера или небольших филиалов крупных компаний, каковой и является наша компания. Для защиты от угроз возьмем межсетевой экран нового поколения Сisco ASA 5510. Отметим, что для дальнейшего применения версии PVST+ протокола STP для устранения узлов в топологии сети будем использовать дополнительный стандарт IEEE 802.1Q для TRUNK, который описывает процедуру тегирования трафика для передачи информации о принадлежности к VLAN, не изменяя при этом заголовков фрейма. Т.к. в нашей фирме однозначно существует несколько отделов, выделим каждую группу в отдельный VLAN. Т. о. мы ограничим широковещательные домены. Также для удобства введем специальный VLAN для управления устройствами. Настроим удаленный доступ по OpenSSH. Почему OpenSSH, а не, допустим, TELNET? Т.к. в отличие от TELNET, здесь шифруется весь трафик, включая передаваемые пароли. Чтобы сделать подключение более защищенным, применим авторизацию по ключу. В отличие от пароля, ключ нельзя «украсть», взломав сервер – он не передается с клиента на сервер, а во время авторизации клиент доказывает серверу, что владеет ключом (у сервера есть свой собственный ключ). Свой ключ можно сгенерировать с помощью команды ssh-keygen. Если не задать параметры, то он сохранит всё так, как надо. Ключ можно закрыть паролем. Этот пароль (в обычных графических интерфейсах) спрашивается один раз и сохраняется некоторое время. Если пароль указать пустым, он спрашиваться при использовании не будет. Восстановить забытый пароль невозможно. Сменить пароль на ключ можно с помощью команды ssh-keygen -p. Подключим технологию управления дисковым пространством, функционирующую поверх логических разделов (англ. logical volume manager, LVM). Это дает возможность более гибко использовать дисковое пространство. Настраивая данный инструмент, мы можем объединить физические носители информации в одну виртуальную логическую единицу, т.е. создаем один виртуальный диск суммарного объема. Затем произвольно разобьем его пространство. Настроим привязку IP-адреса к физическому MAC-адресу устройства. Существует 4 вида решения данной задачи: Access Control List IP-Binding ARP Привязка к порту Будем использовать ACL. При данной привязке на коммутаторе создаются правила вида: <IP клиента> — <порт клиента> — Разрешить <все остальное> — <порт клиента> — Запретить Данный способ удобен тем , что пользователь может сколько угодно сменять MAC -адрес и получать доступ в сеть, но при смене своего IP коммутатор его не пропустит, т. о. мы защищаем себя от подмены IP-адресов. Далее требуется внести ограничения на MAC-адреса. Для этой цели будем использовать технологию port security. При настройке мы можем выбрать максимальное количество MAC-адресов на порту и режим запоминания (динамический/статический). Таким образом, мы закрепили MAC-адреса на портах устройства. При несовпадении параметров будет происходить блокировка трафика. Для защиты от типичной атаки «человек посередине» будем использовать DHCP Snooping. Т.е. укажем коммутатору, на каком порту подключен настоящий DHCP-сервер, и разрешить DHCP-ответы только с этого порта, запретив для остальных. Включаем глобально командой ip dhcp snooping, потом говорим, в каких вланах должно работать ip dhcp snooping vlan номер(а). Затем на конкретном порту говорим, что он может пренаправлять DHCP-ответы (такой порт называется доверенным): ip dhcp snooping trust. После включения DHCP Snooping’а, ведется база соответствия MAC и IP-адресов устройств, которая обновляется и пополняется за счет прослушивания DHCP запросов и ответов. Эта база позволяет нам противостоять еще одному виду атак — подмене IPадреса (IP Spoofing). Также подключим функцию IP Source Guard. При включенном IP Source Guard, каждый приходящий пакет может проверяться на: соответствие IP-адреса источника адресу, полученному из базы DHCP Snooping (иными словами, IP закрепляется за портом коммутатора) соответствие MAC-адреса источника адресу, полученному из базы DHCP Snooping Включается IP Source Guard командой ip verify source на нужном интерфейсе. В таком виде проверяется только привязка IP-адреса, чтобы добавить проверку MAC, используем ip verify source port-security. Для работы IP Source Guard требуется включенный DHCP snooping, а для контроля MAC-адресов должен быть включен port security. Для защиты от атак типа ARP Spoofing включим функцию Dynamic ARP Inspection. Схема работы похожа на схему DHCP-Snooping’а: порты делятся на доверенные и недоверенные, на недоверенных каждый ARP-ответ подвергаются анализу: сверяется информация, содержащаяся в этом пакете, с той, которой swith доверяет (либо статически заданные соответствия MAC-IP, либо информация из базы DHCP Snooping). Если не сходится - пакет отбрасывается и генерируется сообщение в syslog. Включаем в нужном VLAN: ip arp inspection vlan номер(а). По умолчанию все порты недоверенные, для доверенных портов используем ip arp inspection trust. Защитимся от атаки Smurfing. Каждой машине сети постоянно посылаются ping-пакеты, в котором в качестве адреса отправителя указан адрес жертвы. Это можно сделать послав ICMP ECHO REQUEST по широковещательному адресу. Чтобы противодействовать таким атакам, нужно запретить широковещательную рассылку на всех граничных маршрутизаторах сети. Это поможет предотвратить эффект усиления потока ICMP – пакетов. Также рекомендуется установить на операционных системах компьютеров сети режим отброса широковещательных ICMP –пакетов. Для защиты от TCP Hijacking (разновидность атаки «Человек посередине», когда атакующий способен просматривать пакеты участников сети и посылать свои собственные пакеты в сеть) будем использовать IPSec, описанный выше. Также защитимся от SYN-flood. Принцип атаки заключается в том, что злоумышленник, посылая SYN-запросы, переполняет на сервере (цели атаки) очередь на подключения. При этом он игнорирует SYN+ACK пакеты цели, не высылая ответные пакеты, либо подделывает заголовок пакета таким образом, что ответный SYN+ACK отправляется на несуществующий адрес. Задача злоумышленника заключается в том, чтобы поддерживать очередь заполненной таким образом, чтобы не допустить новых подключений. Для защиты от данного вида атаки пропишем правило в iptables (см. ниже). Т.к. мы используем коммутаторы компании Cisco, будем применять версию PVST+ STP протокола, которая по дефолту стоит в используемых нами коммутаторах (решает задачу устранения петель в сети). Такая версия протокола удобна для работы в сети с несколькими VLAN. В PVST+ для каждого VLAN существует свой процесс STP, что позволяет независимую и гибкую настройку под потребности каждого VLAN, но самое главное, позволяет использовать балансировку нагрузки за счет того, что конкретный физический линк может быть заблокирован в одном VLAN, но работать в другом. Версия PVST+ позволяет работать со стандартом IEEE 802.1Q, описанным выше. Для удобства управления устройствами в сети применим протокол SNMP. При использовании SNMP один или более административных компьютеров (где функционируют программные средства, называемые менеджерами) выполняют отслеживание или управление группой хостов или устройств в компьютерной сети. На каждой управляемой системе есть постоянно запущенная программа, называемая агент, которая через SNMP передаёт информацию менеджеру. Для корпоративной почты установим почтовый сервер. Для корректной работы сервера и клиента понадобится протокол SMTP для отправки сообщений. Также для приема сообщений могут быть использованы протоколы POP3 и IMAP. Выбираем IMAP, т.к. при использовании протокола IMAP электронные письма всегда находятся на сервере и синхронизируются с локальными клиентами. Это очень удобно, когда необходим доступ к почтовому ящику с нескольких устройств (компьютер, ноутбук, телефон, планшет), или когда доступ должны иметь несколько человек — все операции с письмами, которые произведены на одном устройстве (пометка письма как прочтенное, перемещение писем между папками, удаление и т. п.) отобразятся на остальных. В следующей лабораторной работе мы планируем наряду с почтовым клиентом использовать и веб-интерфейс, в этом случае почтовый клиент надо также настраивать через IMAP. Недостатком IMAP можно назвать чуть большее количество потребляемого интернеттрафика, но, т.к. бюджет неограничен, не будем брать его во внимание. При использовании архитектуры DNS в дальнейшем можно настроить так называемые списки хостов «Black list» для борьбы со спамом. При использовании таких списков почтовый сервер обращается к DNSBL и проверяет в нем наличие IP-адреса клиента, с которого он принимает сообщения. При положительном ответе считается, что происходит попытка приема спам-сообщения. Серверу отправителя сообщается ошибка 5xx (неустранимая ошибка) и сообщение не принимается. Почтовый сервер отправителя создает «отказную квитанцию» отправителю о недостатке почты. Также установим WEB-сервер. Разрешим доступ всем по порту TCP 80 (протокол HTTP). Для того устройства, с которого будет производиться управление (для админа), дадим полный доступ. Всем остальным отбой. Настройка производится с помощью команд #pernit <…> В сети будет присутствовать и FTP-сервер. Разрешим доступ к нему по аналогии с WEBсервером посредством команды #permit<…>. Админ опять же получает права полного доступа. 3. Установка и конфигурирование серверного решения: Выберем для сервера дистрибутив Linux Ubuntu. Выбирая решение от Linux, мы, вопервых, экономим бюджет, т.к. оно бесплатное, а, во-вторых, думаем о том, что впоследствии, имея веб-сервер Linux, сможем перенести его на Windows при необходимости. Обратное же преобразование невозможно. Дистрибутив Ubuntu выбираем, исходя из того, что он является широко распространенным. Настройка брандмауэра посредством iptables: #Разрешаем только выходящие пакеты iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Удаление всех правил iptables –F #Разрешаем трафик, принадлежащий установленным соединениям iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT #Разрешаем трафик с внутреннего интерфейса iptables -A INPUT -i lo -j ACCEPT #Создадим дополнительные таблицы iptables -N bad_tcp_packets iptables -N icmp_packets #Защита от SYN-flood iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "fp=bad_tcp_packets:1 a=DROP " iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP # Если все хорошо, делаем RETURN iptables -A bad_tcp_packets -p tcp -j RETURN #Защита от ICMP наводнения (ping flood) iptables -A icmp_packets --fragment -p ICMP -j LOG --log-prefix "fp=icmp_packets:1 a=DROP " iptables -A icmp_packets --fragment -p ICMP -j DROP 4. Заключение: Таким образом в данной лабораторной работе мною была создана корпоративная вычислительная сеть на 100 хостов с серверной ОС Linux головного шлюза. Была реализована защита сети от атак злоумышленников, шифрование трафика и использованы современные технологии защиты данных.