Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения

Оценка производительности каналов и мониторинг корпоративной сети

Работа из раздела: «Коммуникации, связь, цифровые приборы и радиоэлектроника»

/

/

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

В последнее время всё чаще документооборот и передача корпоративной информации совершается в электронном виде тем или иным способом. Для этого уже существует множество протоколов и методов передачи данных. Так, например, электронный документооборот предприятия производится средствами платформы 1С, имеющей множество различных конфигураций под любые нужды бизнеса; пересылка документов по электронной почте с использованием почтовых протоколов POP, IMAP, SMTP; передача больших объемов информации с помощью FTP протокола; организация корпоративного сайта, используя веб-технологии.

Информационные технологии 21 века предоставляют большие возможности по совершенствованию работы предприятий, заменяя человеческий труд машинным, повышая рост производительности труда и снижая затраты на персонал. Создаются новые и модернизируются действующие предприятия, территориально рассредоточенные в пределах населенного пункта, города или даже страны, так как теперь средства связи гораздо доступнее и дешевле.

Всё это стало возможным, благодаря компьютеризации и использованию сетевых технологий на предприятии. Но есть вещи, о которых нельзя забывать: сложность внедрения, безопасность, производительность, защищенность, надежность системы. Главными проблемами на сегодняшний день стали безопасность и жизнеспособность компьютерных систем.

Корпоративная информация, передаваемая через открытую сеть Интернет, легко может быть перехвачена при помощи специальных программ - снифферов - злоумышленниками и использоваться в корыстных целях. Сюда относятся важнейшая информация, содержащаяся в конфиденциальных документах. Помимо этого могут быть перехвачены логины и пароли от корпоративной почты или иных сервисов. Конфиденциальность передаваемой информации выходит на первый план при создании корпоративной сети.

Защита информации, передаваемой по каналам связи, используя паролирование документов или их шифрование, не предоставляет нужного уровня безопасности, так как любой пароль может быть взломан и это лишь вопрос времени (всё зависит от его сложности), а с помощью криптоанализа, можно выявить и шифрующий ключ. Конечно, можно использовать большие и сложные пароли, современные большие ключи шифрования, но всё это понизит производительность, превратив простой механизм операции отправки в весьма затратный по временным параметрам. Время будет затрачено на то, чтобы защитить несколько файлов. А если это надо делать постоянно и в больших количествах?

Как раз для разрешения указанных противоречий в корпоративных сетях используются различные протоколы Virtual Private Network. С их помощью создаются виртуальные каналы связи поверх сети Интернет. Они дают возможность соединять локальные сети различных технологий и их сегменты в одну корпоративную сеть. Но самое главное достоинство, собственно ради чего они и нужны, это шифрование всего трафика, проходящего по туннелю на канальном уровне модели OSI. Шифрование обеспечивает защиту от доступа к передаваемой информации, а инкапсуляция не позволяет злоумышленнику выяснить адресат передаваемой информации.

Всё это дает большие возможности для построения защищенной сети. Но если что-то выходит из строя, программа или оборудование серверов, то и защищенный канал перестает работать. За состоянием компьютерного парка постоянно требуется вести мониторинг, чтобы время простоя в случае падения одного участка сети был минимальным. Имея множество серверов и сервисов, не так просто узнать, где и что случилось. Средствами мониторинга можно следить за этим, не обходя каждый сервер по одному. С помощью удобных таблиц и почтовых уведомлений это не составит большого труда, и администратор всегда будет в курсе состояния сети, сервисов и серверов, входящих в эту корпоративную сеть.

Указанные проблемы при построении корпоративных сетей для конкретных предприятий показывают, что процесс их создания не является тривиальным. Поэтому в рамках работы ставятся и решаются задачи выбора и реализации протоколов VPN, оценки производительности полученных каналов и способы мониторинга за состоянием корпоративной сети в режиме реального времени конкретного предприятия.

ГЛАВА 1. ПРЕДМЕТНАЯ ОБЛАСТЬ И ПОСТАНОВКА ЗАДАЧИ

1.1 Основные сведения о корпоративных сетях

1.1.1 Организация связи

Прежде чем говорить о корпоративной (частной) сети, нужно определить, что эти слова означают. В последнее время это словосочетание стало настолько распространенным и модным, что начало терять смысл. В нашем понимании корпоративная сеть - система, обеспечивающая передачу информации между различными приложениями, используемыми в системе корпорации. Исходя из этого вполне абстрактного определения, рассмотрим различные подходы к созданию таких систем и постараемся наполнить понятие корпоративной сети конкретным содержанием. При этом будем считать, что сеть должна быть максимально универсальной, то есть допускать интеграцию уже существующих и будущих приложений с минимально возможными затратами и ограничениями.

Корпоративная сеть, как правило, является территориально распределенной, т.е. объединяющей офисы, подразделения и другие структуры, находящиеся на значительном удалении друг от друга. Часто узлы корпоративной сети оказываются расположенными в различных городах, а иногда и странах. Принципы, по которым строится такая сеть, достаточно сильно отличаются от тех, что используются при создании локальной сети, даже охватывающей несколько зданий. Основное отличие состоит в том, что территориально распределенные сети используют достаточно медленные арендованные линии связи. Если при создании локальной сети основные затраты приходятся на закупку оборудования и прокладку кабеля, то в территориально-распределенных сетях наиболее существенным элементом стоимости оказывается арендная плата за использование каналов, которая быстро растет с увеличением качества и скорости передачи данных. Это ограничение является принципиальным, и при проектировании корпоративной сети следует предпринимать все меры для минимизации объемов передаваемых данных. В остальном же корпоративная сеть не должна вносить ограничений на то, какие именно приложения и каким образом обрабатывают переносимую по ней информацию.

Под приложениями здесь следует понимать системное программное обеспечение - системы управления базами данных, почтовые системы, вычислительные ресурсы, файловый сервис и прочee, так и средства, с которыми работает конечный пользователь. Основными задачами корпоративной сети оказываются взаимодействие системных приложений, расположенных в различных узлах, и доступ к ним удаленных пользователей.

Первая проблема, которую приходится решать при создании корпоративной сети - организация каналов связи. Если в пределах одного города можно рассчитывать на аренду выделенных линий, в том числе высокоскоростных, то при переходе к географически удаленным узлам стоимость аренды каналов становится просто астрономической, а качество и надежность их часто оказывается весьма невысокими. Естественным решением этой проблемы является использование уже существующих глобальных сетей. В этом случае достаточно обеспечить каналы от офисов до ближайших узлов сети. Задачу доставки информации между узлами глобальная сеть при этом возьмет на себя. Даже при создании небольшой сети в пределах одного города следует иметь в виду возможность дальнейшего расширения и использовать технологии, совместимые с существующими глобальными сетями.

Часто первой, а то и единственной такой сетью, мысль о которой приходит в голову, оказывается Интернет. При использовании сети Интернет в качестве основы для корпоративной сети передачи данных выясняется очень интересная вещь. Оказывается, Интернет сетью-то как раз и не является. Это именно Интернет - междусетие. Если заглянуть внутрь Интернета, можно увидеть, что информация проходит через множество абсолютно независимых и по большей части некоммерческих узлов, связанных через самые разнородные каналы и сети передачи данных.

Еще одна проблема Интернет, широко обсуждаемая в последнее время - безопасность. Если говорить о частной сети, вполне естественным представляется защитить передаваемую информацию от чужого взгляда. Непредсказуемость путей информации между множеством независимых узлов Интернет не только повышает риск того, что какой-либо не в меру любопытный оператор сети может сложить ваши данные себе на диск (технически это не так сложно), но и делает невозможным определение места утечки информации. Существует средства шифрования передаваемой информации, что позволяет частично решить эту проблему. Другой аспект проблемы безопасности опять же связан с децентрализованностью Интернет - нет никого, кто мог бы ограничить доступ к ресурсам вашей частной сети. Поскольку это открытая система, где все видят всех, то любой желающий может попробовать попасть в вашу офисную сеть и получить доступ к данным или программам. Есть, конечно, средства защиты (для них принято название Firewall - по-русски, точнее по-немецки 'брандмауэр' - противопожарная стена). Однако считать их панацеей не стоит. Любую защиту можно сломать, лишь бы это окупало стоимость взлома. Необходимо также отметить, что сделать подключенную к Интернету систему неработоспособной можно и, не вторгаясь в вашу сеть. Известны случаи несанкционированного доступа к управлению узлами сети, или просто использования особенностей архитектуры Интернета для нарушения доступа к тому или иному серверу. Таким образом, рекомендовать Интернет как основу для систем, в которых требуется надежность и закрытость, никак нельзя. Подключение к Интернету в рамках корпоративной сети имеет смысл, если вам нужен доступ к тому громадному информационному пространству, которое собственно и называют Сетью.

1.1.2 Понятие «Корпоративная сеть»

Корпоративная сеть - это сложная система, включающая тысячи самых разнообразных компонентов: компьютеры разных типов, начиная с настольных и кончая целыми серверными стойками, системное и прикладное программное обеспечение, сетевые адаптеры, коммутаторы и маршрутизаторы, кабельную систему.

Успешная деятельность промышленной, финансовой или иной организации во многом определяется наличием единого информационного пространства. Развитая информационная система позволяет эффективно справляться с обработкой потоков информации, циркулирующих между сотрудниками предприятия и принимать им своевременные и рациональные решения, обеспечивающие выживание предприятия в жесткой конкурентной борьбе.

Корпоративная сеть - это сложная система, обеспечивающая передачу данных широкого спектра между различными приложениями, используемыми в единой информационной системе организации.

Корпоративная сеть позволяет создать единую для всех подразделений базу данных, вести электронный документооборот, организовать селекторные совещания и проводить видеоконференции с отдаленными подразделениями, обеспечить все потребности организации в высококачественной телефонной и факсимильной местной, международной и междугородной связи, доступе в Интернет и другие интерактивные сети. Все это уменьшает время реакции на изменения, происходящие в компании, и обеспечивает оптимальное управление всеми процессами в реальном масштабе времени. При этом, снижается зависимость организации от операторов фиксированной и мобильной связи. Частичный отказ от услуг этих операторов позволяет существенно сократит расходы организации. Появляется возможность передавать любую конфиденциальную информацию производственного и финансового характера с уверенностью, что никто, кроме уполномоченных сотрудников компании, не имеет к ней доступа. Обобщенная схема корпоративной сети представлена на Рис. 1.1.2.1.

Рис.1.1.2.1. Общая схема корпоративной сети

Основная задача системных интеграторов и администраторов состоит в том, чтобы эта громоздкая и весьма дорогостоящая система как можно лучше справлялась с обработкой потоков информации, циркулирующих между сотрудниками предприятия и позволяла принимать им своевременные и рациональные решения, обеспечивающие выживание предприятия в жесткой конкурентной борьбе. А так как жизнь не стоит на месте, то и содержание корпоративной информации, интенсивность ее потоков и способы ее обработки постоянно меняются. Транспорт Интернет - недорогой и доступный практически всем предприятиям - существенно облегчил задачу построения территориальной корпоративной сети, одновременно выдвинув на первый план задачу защиты корпоративных данных при передаче их через в высшей степени общедоступную, публичную сеть с многомиллионным 'населением'.

1.1.3 Структура корпоративной сети

На Рис. 1.1.3.1 представлена возможная схема структуры корпоративной сети.

Рис.1.1.3.1 Пример структуры корпоративной сети

Выделим основные устройства:

1. Компьютер. Под ним подразумевается стандартное рабочее место, чаще всего подключенное к локальной сети через кабель типа витая пара. На компьютере установлено ПО, необходимое для работы персонала (офисные приложения, 1С, почтовые агенты и т.п.), а также средства для удаленного администрирования данного компьютера.

2. Переносное устройство. Это может быть ноутбук, планшет, мобильное устройство. Чаще всего подключение таких устройств к сети производится с помощью беспроводной связи. Несет те же функции, что и компьютер, но имеет главное отличие от стационарного компьютера - мобильность.

3. Сетевое МФУ. МФУ - многофункциональное устройство, выполняющее функции принтера, сканера, копира. Подключение к сети осуществляется путем сетевого кабеля. Если МФУ не имеет сетевого порта, то оно подключается к компьютеру и с помощью средств операционной системы открывается на доступ по сети другим пользователям.

4. Wi-Fi точка доступа. Устройство, с помощью которого создаются беспроводные сети. Используется для подключения ноутбуков и других портативных устройств, имеющих модуль Wi-Fi. Преимущество перед кабельной системой заключается в мобильности и ненужности протягивать кабель и портить интерьер. Скорость доступа в зависимости от используемого стандарта может быть от 50 до 125 мбит/сек. Для защиты доступа к сети есть несколько стандартов обеспечения безопасности: WEP, WPA, WPA2 и т.д.

5. IP-телефония. Система связи, обеспечивающая передачу речевого сигнала по сети Интернет или по любым другим IP-сетям. Сигнал по каналу связи передаётся в цифровом виде и, как правило, перед передачей преобразовывается (сжимается) с тем, чтобы удалить избыточность.

6. Коммутатор. Устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутатор передаёт данные только непосредственно получателю, исключение составляет широковещательный трафик (на MAC-адрес FF:FF:FF:FF:FF:FF) всем узлам сети. Это повышает производительность и безопасность сети, избавляя остальные сегменты сети от необходимости (и возможности) обрабатывать данные, которые им не предназначались.

7. Маршрутизатор. Сетевое устройство, на основании информации о топологии сети и определённых правил принимающее решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети. Проще говоря, это устройство, которое связывает 2 и более разные сети (в нашем случае это локальная сеть офиса и Интернет).

Маршрутизатор может быть типа hardware и software. Hardware маршрутизатор - это готовое устройство, в программную оболочку которого вшиты базовые функции маршрутизатора. Software маршрутизатор - это отдельный сервер, обычно с linux/unix операционной системой, на базе которой с помощью средств firewall'а настраивается маршрутизация и правила обмена трафиком. При выборе того или иного типа маршрутизатора обычно руководствуются количеством конечных пользователей, сложностью правил и требуемой надежностью.

8. Терминальный сервер (сервер терминалов). Сервер, предоставляющий клиентам вычислительные ресурсы (процессорное время, память, дисковое пространство) для решения задач. Технически терминальный сервер представляет собой очень мощный компьютер (либо кластер), соединенный по сети с терминальными клиентами, которые, как правило, представляют собой маломощные или устаревшие рабочие станции или специализированные решения для доступа к терминальному серверу. Терминал сервер служит для удалённого обслуживания пользователя с предоставлением рабочего стола.

Преимущества терминального сервера

· Снижение временных расходов на администрирование;

· Повышение безопасности -- снижение риска взломов;

· Снижение затрат на программное и аппаратное обеспечение;

Чаще всего в роли операционной системы выступает Microsoft Windows Server.

9. Файловый сервер. Это выделенный сервер, оптимизированный для выполнения файловых операций ввода-вывода. Предназначен для хранения файлов любого типа. Как правило, обладает большим объемом дискового пространства, и, как правило, файл-сервер оборудован RAID контроллером для обеспечения быстрой записи и чтения данных.

10. Web-сервер. Это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. На нем может быть расположен корпоративный сайт или любой другой веб-сервис.

Чаще всего используется операционная система семейства linux/unix, так как они по сравнению с другими более надежны и более производительны. В роли самого веб-сервера выступает специальное программное обеспечение, например Apache или nginx.

11. Сервер приложений. Это программная платформа, предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов) которые поддерживают построение приложений. Сервер приложений действует как набор компонент доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования) определенный самой платформой.

На предприятии, очень часто используется приложение 1С. У этой программы есть несколько вариантов работы с базой данных: файловый режим - вся база находится в одном файле (имеет смысл, когда работающих с базой клиентов не больше 10-15 человек), клиент-серверный режим - база данных находится на sql сервере. В клиент-серверном режиме пользователи не напрямую работают с базой данных, а через 1С сервер, который обрабатывает запросы в понимаемую форму для sql сервера.

Этот режим повышает производительность, надежность, и улучшает процессы администрирования базы данных.

Как раз для таких целей и существует сервер приложений.

12. Сервер БД. Сервер БД обслуживает базу данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации. Большинство СУБД используют язык SQL (Structured Query Language -- язык структурированных запросов), так как он удобен для описания логических подмножеств БД.

Назначение SQL:

- создание БД и таблицы с полным описанием их структуры;

- выполнение основных операций манипулирования данными (такие как вставка, модификация и удаление данных из таблиц);

- выполнение простых и сложных запросов.

Одна из ключевых особенностей языка SQL заключается в том, что с его помощью формируются запросы, описывающие какую информацию из базы данных необходимо получить, а пути решения этой задачи программа определяет сама.

1.2 Виртуальные частные сети

1.2.1 Организация VPN

В современных условиях развития информационных технологий, преимущества создания виртуальных частных сетей неоспоримы. Прежде чем перечислить наиболее очевидные и полезные способы организации виртуальных частных сетей, необходимо привести само понятие.

Виртуальная частная сеть или просто VPN (Virtual Private Network) - это технология, при которой происходит обмен информацией с удаленной локальной сетью по виртуальному каналу через сеть общего пользования с имитацией частного подключения «точка-точка». Под сетью общего пользования можно подразумевать как Интернет, так и другую интрасеть.

Виртуальные частные сети позволяют удаленному пользователю, прошедшему аутентификацию, воспользоваться корпоративной сетью наравне с клиентами центральной корпоративной сети.

Центральная сеть любой организации может аутентифицировать пользователей несмотря на то, что они получают доступ через публичную сеть.

Удачно спроектированная VPN может принести организации немало выгод. Ее внедрение позволяет:

· расширить географию доступа сотрудников к инфраструктуре организации;

· повысить безопасность передачи информации;

· уменьшить эксплуатационные затраты по сравнению с традиционными глобальными сетями;

· сократить время передачи информации и снизить командировочные расходы;

· повысить производительность труда;

· упростить топологию сети;

· увеличить мобильность пользователей и дать им более гибкий график работы.

Основные свойства VPN:

· безопасность;

· надежность;

· масштабируемость;

· управляемость.

Рассмотрим вариант организации сети учреждения с филиалами с использованием виртуальных частных сетей (рис. 1.2.1.1).

Рисунок 1.2.1.1 Организация сети учреждения с филиалами с использованием VPN

Особенности такой организации:

· Cкорость передачи данных. Провайдеры могут обеспечить достаточно высокоскоростной доступ в Интернет, однако с локальной, проверенной временем 100 Мбит сетью он все равно не сравнится. Но так ли важно каждый день перекачивать сотни мегабайт информации через организованную сеть? Для доступа к локальному сайту предприятия, пересылки электронного письма с документом вполне достаточно скорости, которой могут обеспечить Интернет-провайдеры;

· Безопасность передаваемых данных. При организации VPN передаваемая информация попадает во внешнюю сеть, поэтому об организации безопасности придется позаботиться заранее. Но уже сегодня существуют достаточно стойкие к атакам алгоритмы шифрования информации, которые позволяют владельцам передаваемых данных не беспокоиться за безопасность;

· За организованную сеть никому не надо платить. Плата за использование Интернета в наши дни сама по себе достаточно демократичная, а гибкие тарифы позволяю выбрать каждому оптимальный пакет;

· Масштабируемость системы. При открытии нового филиала или добавления сотрудника, которому позволено пользоваться удаленным доступом не нужно никаких дополнительных затрат на коммуникации.

· Гибкость системы. Для VPN не важно, откуда вы осуществляете доступ. Отдельно взятый сотрудник может работать из дома, а может во время чтения почты из корпоративного почтового ящика фирмы пребывать в командировке в абсолютно другом государстве.

Способы реализации VPN:

1. В виде специального программно-аппаратного обеспечения

Реализация VPN сети осуществляется при помощи специального комплекса программно-аппаратных средств. Такая реализация обеспечивает высокую производительность и, как правило, высокую степень защищённости.

2. В виде программного решения

Используют персональный компьютер со специальным программным обеспечением, обеспечивающим функциональность VPN.

3. Интегрированное решение

Функциональность VPN обеспечивает комплекс, решающий также задачи фильтрации сетевого трафика, организации сетевого экрана и обеспечения качества обслуживания.

Способы организации VPN:

В VPN наиболее целесообразно выделить следующие три основных способа:

1. Удаленный доступ отдельно взятых сотрудников к корпоративной сети организации через модем либо общедоступную сеть

Организация такой модели виртуальной частной сети предполагает наличие VPN-сервера в центральном офисе, к которому подключаются удаленные клиенты. Удаленные клиенты могут работать на дому, либо, используя переносной компьютер, из любого места планеты, где есть доступ к всемирной паутине.

Данный способ организации виртуальной частной сети целесообразно применять в случае географически не привязанного доступа сотрудников к корпоративной сети организации.

2. Связь в одну общую сеть территориально распределенных филиалов фирмы. Этот способ называется Intranet VPN.

При организации такой схемы подключения требуется наличие VPN серверов равное количеству связываемых офисов.

Данный способ целесообразно использовать как для обыкновенных филиалов, так и для мобильных офисов, которые будут иметь доступ к ресурсам головного офиса, а также без проблем обмениваться данными между собой.

3. Так называемый Extranet VPN, когда через безопасные каналы доступа предоставляется доступ для клиентов организации. Набирает широкое распространение в связи с популярностью электронной коммерции. В этом случае для удаленных клиентов будут очень урезаны возможности по использованию корпоративной сети, фактически они будут ограничены доступом к тем ресурсам компании, которые необходимы при работе со своими клиентами, например, сайта с коммерческими предложениями, а VPN используется в этом случае для безопасной пересылки конфиденциальных данных. Средства защиты информации - протоколы шифрования.

4. Client/Server VPN. Он обеспечивает защиту передаваемых данных между двумя узлами (не сетями) корпоративной сети. Особенность данного варианта в том, что VPN строится между узлами, находящимися, как правило, в одном сегменте сети, например, между рабочей станцией и сервером. Такая необходимость очень часто возникает в тех случаях, когда в одной физической сети необходимо создать несколько логических сетей. Например, когда надо разделить трафик между финансовым департаментом и отделом кадров, обращающихся к серверам, находящимся в одном физическом сегменте. Этот вариант похож на технологию VLAN, но вместо разделения трафика, используется его шифрование.

1.2.2 OpenVPN

Поскольку данные в виртуальных частных сетях передаются через общедоступную сеть, следовательно, они должны быть надежно защищены от посторонних глаз.

Для реализации защиты передаваемой информации существует множество протоколов, которые защищают VPN, но все они подразделяются на два вида и работают в паре:

· протоколы, инкапсулирующие данные и формирующие VPN соединение;

· протоколы, шифрующие данные внутри созданного туннеля.

Первый тип протоколов устанавливает туннелированное соединение, а второй тип отвечает непосредственно за шифрование данных. Сравним две реализации создания VPN на основе стандарта IPsec и OpenVpn.

Для объединения в сеть нескольких филиалов сегодня наиболее часто используется стандарт IPSec. Слабые места IPSec общеизвестны. Сложная структура с довольно непростой при определенных обстоятельствах конфигурацией, разные (в зависимости от производителя) реализации и «бреши» в системе безопасности, проблемы с firewall'ом -- вот лишь немногие недостатки, постоянно подстегивающие разработку современных технологий виртуальных частных сетей (Virtual Private Network, VPN). Результатом стало появление проекта открытого программного обеспечения OpenVPN. Последняя его версия -- 2.0 -- предлагает гораздо более широкий спектр возможностей, во многом превосходящих функциональность классических VPN.

Технология OpenVPN превратилась в серьезную альтернативу IPSec. Организации, где не требуется в обязательном порядке применять IPSec, могут благодаря OpenVPN без больших затрат получить многочисленные преимущества, ранее недоступные. Опции повсеместной защиты ноутбуков посредством центрального корпоративного firewall'а, туннелирования firewall'ов и посредников WWW, а также ретрансляции широковещательного трафика заметно превышают функциональный охват IPSec, причем используемые технологии (SSL, устройства Tap/Tun) представляют собой испытанные и проверенные стандарты. OpenVPN стала самой современной и надежной технологией VPN из доступных, при этом бесплатной и очень простой в конфигурировании.

Остановимся на технологии OpenVPN, чтобы познакомиться с ней поближе.

Созданный в 2002 году, OpenVPN - это инструмент с открытым исходным кодом, используемый для построения site-to-site VPN сетей с использованием SSL/TLS протокола или с разделяемыми ключами. Он исполняет роль безопасного туннеля для передачи данных через один TCP/UDP порт в небезопасной сети как Интернет.

Преимущество OpenVPN заключается в легкости инсталляции и настройки, что является редким случаем для таких инструментов.

OpenVPN может быть установлен практически на любую платформу включая: Linux, Windows 2000/XP/Vista, OpenBSD, FreeBSD, NetBSD, Mac OS X и Solaris.

Linux системы должны работать на ядре 2.4 или выше. Принципы конфигурирования одинаковы для всех платформ.

OpenVPN использует клиент/сервер архитектуру. Он должен быть установлен на все узлы VPN сети, где один узел должен быть сервером, а остальные клиентами.

OpenVPN создает TCP или UDP туннель, при этом данные проходящие через этот туннель шифруются. Стандартный порт для OpenVPN - UDP 1194, но можно использовать любой другой TCP или UDP порт. С версии 2.0 один и тот же порт можно использовать для нескольких туннелей на OpenVPN сервере.

Можно создать Ethernet (Мост) или IP (Маршрутизация) VPN сеть используя соответствующие сетевые драйвера TAP или TUN. TAP/TUN доступны на всех платформах и включены в ядро Linux начиная с версии 2.4.

Опции подробно описаны в страницах справочного руководства (man pages).

При использовании статических ключей, VPN шлюзы используют один и тот же ключ для шифрования и дешифрования данных. В этом случае настройка будет довольно простой, но при этом возникает проблема передачи и безопасности ключа. Если кто-то завладеет этим ключом, то он может дешифровать данные.

Для того чтобы избежать этой проблемы, необходимо использовать Инфраструктуру Открытых Ключей (PKI). При этом каждый узел владеет двумя ключами: открытый ключ, известный всем и закрытый ключ, доступный только его владельцу. Такую структуру использует OpenSSL, интегрированный в OpenVPN, для аутентификации VPN узлов перед тем как начать передавать зашифрованные данные. Этот режим считается более предпочтительным.

Обратим внимание на структуру сети и концепцию безопасных ключей для лучшего понимания OpenVPN.

В течение многих лет IPSec был единственным протоколом, который мог обеспечить шифрование данных в site-to-site и клиент/сервер VPN сетях. К счастью ситуация изменилась с появлением SSL протокола. Предназначенный для обеспечения безопасности таких протоколов как HTTP, SSL позволяет сейчас обеспечить безопасность для любого приложения и шифровать TCP или UDP туннели в site-to-site и клиент/сервер VPN сетях.

SSL (Secure Sockets Layers) был создан Netscape в 90-х. Было выпущено две версии v2 (1994) и v3 (1995). В 2001 IETF купила и обновила патент. В это же время SSL был переименован в TLS (Transport Layer Security).

SSL выполняет две основные задачи:

- Аутентификация сервера и клиента по средством Инфраструктуры Открытых Ключей (PKI).

- Создает шифрованное соединение между клиентом и сервером для обмена сообщениями.

Стандартная модель OSI состоит из семи уровней, в то время как четырех уровневая модель наиболее подходит для TCP/IP (уровень приложений, транспортный, сетевой, канальный, физический), который используется огромным количеством приложений.

SSL разположен между транспортным уровнем и уровнем приложения и будет шифровать уровень приложения.

Работа SSL проходит в 4 этапа:

1. SSL Handshake: Определяется метод шифрования для передачи данных;

2. SSL Change Cipher Spec: Создание и передача ключа между клиентом и сервером на эту сессию;

3. SSL Alert: Доставка сообщений SSL об ошибках между клиентом и сервером;

4. SSL Record: Передача данных.

Для шифрования и аутентификации OpenVPN использует OpenSSL, который является бесплатным и распространяется с открытым исходным кодом.

Выделим основные плюсы и минусы этой технологии:

Зрелые криптографические алгоритмы (SSL/TLS);

SSL/TLS являются отраслевыми стандартами и входят в сферу ответственности IETF (Internet Engineering Task Force);

Простая технология, простая инсталляция, простое конфигурирование;

TCP/UDP, для множества внешних сотрудников нужен лишь один порт;

Индивидуальная конфигурация для клиентов;

Гибкость вследствие использования устройств Tun/Tap;

Никаких проблем с технологией NAT;

Быстрое повторное подключение, прозрачность для DynDNS, сеансы сохраняются;

Сжатие;

Высокая совместимость с firewall'ми и посредниками WWW;

Производительность (достаточно маломощных процессоров);

Модульная расширяемая архитектура;

Выполнение в пользовательском пространстве -- в Linux не нужны привилегии администратора;

Высокая производительность даже на старых машинах;

Формирование трафика уже включено;

- Нет специализированных устройств;

- Дефицит обученного персонала;

- Отсутствие интерфейсов Web или интерфейсов для администрирования.

1.2.3 SSH

Еще один протокол, с помощью которого можно создавать VPN - это SSH.

SSH (Secure SHell -- «безопасная оболочка») -- сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet, но, в отличие от него, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

SSH позволяет безопасно передавать в незащищенной среде практически любой другой сетевой протокол. Таким образом, можно не только удаленно работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования.

Поддержка SSH реализована во всех UNIX?подобных системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер SSH. Существует множество реализаций SSH-клиентов и для не-UNIX ОС.

SSH -- это протокол сеансового уровня. SSH-сервер обычно прослушивает соединения на TCP-порту 22. Для аутентификации сервера в SSH используется протокол аутентификации сторон на основе алгоритмов электронно-цифровой подписи RSA или DSA. Для аутентификации клиента также может использоваться ЭЦП RSA или DSA, но допускается также аутентификация при помощи пароля и даже IP-адреса хоста. Аутентификация по паролю наиболее распространена; она безопасна, так как пароль передается по зашифрованному виртуальному каналу. Аутентификация по ip-адресу небезопасна, эту возможность чаще всего отключают. Для создания общего секрета (сеансового ключа) используется алгоритм Диффи -- Хеллмана (DH). Для шифрования передаваемых данных используется симметричное шифрование, алгоритмы AES, Blowfish или 3DES. Целостность переданных данных проверяется с помощью HMAC-SHA1/HMAC-MD5.

Для сжатия шифруемых данных может использоваться алгоритм LempelZiv (LZ77), который обеспечивает такой же уровень сжатия, что и архиватор ZIP. Сжатие SSH включается опционально.

Для создания VPN сетей используется так называемая технология ssh туннелирования. SSH-туннель -- это туннель, создаваемый посредством SSH-соединения и используемый для шифрования туннелированных данных. Используется для того, чтобы обезопасить передачу данных в Интернете. Особенность состоит в том, что незашифрованный трафик какого-либо протокола шифруется на одном конце SSH-соединения и расшифровывается на другом.

Практическая реализация может выполняться несколькими способами:

· Использованием приложений, умеющих работать через SSH-туннель;

· Созданием VPN-туннеля, подходит практически для любых приложений;

· Если приложение работает с одним определённым сервером, можно настроить SSH-клиент таким образом, чтобы он пропускал через SSH-туннель TCP-соединения, приходящие на определённый TCP-порт машины, на которой запущен SSH-клиент. Например, клиенты терминального сервера подключаются по умолчанию на порт 3389. Тогда, чтобы настроить подключение к серверу через SSH-туннель, SSH-клиент настраивается на перенаправление подключений с любого порта локальной машины (например порт 5000) на удалённый сервер (например, server.com и порт 3389). В данном случае клиент настраивается на подключение к серверу localhost (если SSH-клиент запущен на той же машине что и терминальный клиент) и порт 5000.

Плюсы этой технологии создания vpn сетей в том, что для реализации не нужно устанавливать и настраивать дополнительный софт. Серверная и клиентская часть обычно ставятся вместе с unix/linux системой по умолчанию. Так же стоит отметить, что настройка проходит гораздо легче, чем у любой другой технологии. Эта технология, хотя немного и уступает по производительности, но для создания защищенных сетей подходит больше чем протокол IPsec, так как по масштабируемости и легкости настраивания каналов он в разы превосходит его.

1.3 Мониторинг корпоративных сетей

Для повышения надежности работы корпоративной сети, необходимо решить вопросы её мониторинга.

Термином мониторинг сети называют работу системы, которая выполняет постоянное наблюдение за компьютерной сетью в поисках медленных или неисправных систем и которая при обнаружении сбоев сообщает о них сетевому администратору с помощью почты, пейджера или других средств оповещения. Эти задачи являются подмножеством задач управления сетью.

В то время как система обнаружения вторжений следит за появлением угроз извне, система мониторинга сети выполняет наблюдение за сетью в поисках проблем, вызванных перегруженными и/или отказавшими серверами, другими устройствами или сетевыми соединениями.

Например, для того, чтобы определить состояние веб-сервера, программа, выполняющая мониторинг, может периодически отправлять запрос HTTP на получение страницы; для почтовых серверов можно отправить тестовое сообщение по SMTP и получить по IMAP или POP3.

Неудавшиеся запросы (например, в том случае, когда соединение не может быть установлено, оно завершается по тайм-ауту, или когда сообщение не было доставлено) обычно вызывают реакцию со стороны системы мониторинга. В качестве реакции может быть:

· отправлен сигнал тревоги системному администратору;

· автоматически активирована система защиты от сбоев, которая временно выведет проблемный сервер из эксплуатации, заменив его резервным, до тех пор, пока проблема не будет решена.

Кроме отказов систем, процессов, оборудования, также следят и за их состоянием в целом.

Зная, какой поток информации проходит через сетевой интерфейс, можно будет выбрать оптимальный пакет Интернета у поставщика, сэкономив при этом не малые деньги. Сейчас это довольно актуальная проблема, так как часто в бизнес-центрах существует договоренность с провайдером о том, что только они имеют право давать доступ в Интернет. Следовательно, и ценовая политика полностью устанавливается провайдером. Цены совершенно несопоставимы с теми, что устанавливаются в процессе жесткой конкуренции.

По графикам нагрузки на процессор, объему занимаемой оперативной памяти, можно судить о достаточности ресурсов сервера для задач, исполняемых на нем. Это дает обоснование для обновления сервера.

Практически во всех фирмах есть большие объемы информации, которые включают в себя важные документы, базы данных, архивы и т.д. Потеря этих документов принесет фирме большие убытки. Для того чтобы всегда иметь резервную копию этих файлов, настраиваются планы резервного копирования данных. Создаются образы данных и складываются на файл-сервере. За свободным местом на файл-сервере и за созданием образов тоже необходимо настраивать слежение.

Слежение чаще всего производится за состоянием серверов, маршрутизаторов и другого сетевого оборудования. Грамотно настроенная система мониторинга может снизить кол-во отказов сети и увеличить её отказоустойчивость. В то же время, администраторы сети будут быстро и вовремя оповещены о неполадках.

Единственным недостатком таких систем является сложность создания и настройки. Существует множество готовых комплексных решений, но не всегда по тем или иным причинам они подходят под уже настроенную и отлаженную корпоративную сеть. Поэтому приходиться выбирать и комбинировать эти системы для достижения желаемого результата

1.4 Постановка задачи

Одно из основных требований, предъявляемых к постановке и реализации задач дипломного проектирования, состоит в том, что все результаты и на их основе выводы должны быть получены в реальных условиях на реальном предприятии. Это дает возможность придать результатам дипломной работы практическую значимость. Проведя работу в реальных условиях, можно реально оценить эффективность используемых сетевых технологий на основе количественной оценки производительности сетевых каналов.

Кратко опишем предметную область. Фирма занимается продажей саун, бань и сопутствующих этому материалов. Состоит из офиса, склада и магазинов, территориально разнесенных по всему городу. Все сервера расположены у провайдера (коллокация), а именно: сервера терминалов, сервер платформы 1С, сервер базы данных MS SQL и маршрутизатор под управлением операционной системы CentOs 5.5 с цепочками NAT в правилах iPtables.

В основном работа персонала происходит на серверах терминалов, что обеспечивает некоторую централизованность, простоту администрирования (всегда легче администрировать 3 сервера, чем 50 компьютеров) и, за счет настроек iPtables на маршрутизаторе, безопасность. Подключение идет по протоколу RDP (Remote Desctop Protokol). Так же для работы постоянно требуется обмен информацией между офисами. Предприятие работает с конфиденциальной информацией, поэтому важна безопасность передачи данных. Магазины работаю только с серверами, находящимися у провайдера.

В офисе и на складе в качестве маршрутизаторов выступает сервер под операционной системой Centos 5.5 с настроенными цепочками nat в iptables. В магазинах стоят обычные hardware маршрутизаторы. На сервера терминалов, 1С сервер, сервер MS SQL 2008 установлена операционная система MS Windows 2003 R2.

Для построения системы, обладающей требуемыми потребительскими свойствами и функционирующей в условиях реальных ограничений необходимо решить следующие задачи:

1. Создать защищенную корпоративную сеть для предприятия;

2. Подключить по защищенным каналам магазины к серверам;

3. Оценить производительность созданных каналов;

4. Создать систему мониторинга и оповещения о проблемах с оборудованием корпоративной сети.

Представим структуру проектируемой корпоративной сети предприятия в виде, как это показано на рис. 1.4.1.

Рис. 1.4.1 Проектируемая корпоративная сеть

ГЛАВА 2. ВНЕДРЕНИЕ ТЕХНОЛОГИЙ VPN В КОРПОРАТИВНУЮ СЕТЬ И ИХ СРАВНИТЕЛЬНАЯ ОЦЕНКА

2.1 Реализация на основе технологии OpenVPN

Сначала объединим в одну корпоративную сеть офис, склад и наши сервера у провайдера. Для этого нам нужно построить защищенные каналы - туннели только между маршрутизаторами, так как нет необходимости подключать каждый компьютер в отдельности.

Итак: есть 3 маршрутизатора под управлением ОС CentOs. Переброс пакетов из Интернета в сеть и обратно производится с помощью технологии NAT и правил iptables.

Дадим для удобства маршрутизаторам имена:

· В офисе: Office;

· На складе: Sklad;

· Колокация (сервера у провайдера): Colo;

· Магазин №1: mag1

· Магазин №2: mag2

Сетевые настройки маршрутизаторов:

Office:

Сеть

Интерфейс

Ip адрес

Маска

Шлюз

Интернет

eth2

213.182.175.230

255.255.255.252

213.182.175.229

Локальная

eth1

192.168.53.250

255.255.255.0

-

Sklad:

Сеть

Интерфейс

Ip адрес

Маска

Шлюз

Интернет

eth2

79.142.87.206

255.255.255.252

79.142.87.211

Локальная

eth1

192.168.0.1

255.255.255.0

-

Colo:

Сеть

Интерфейс

Ip адрес

Маска

Шлюз

Интернет

eth2

195.2.240.68

255.255.255.252

195.2.240.60

Локальная

eth1

172.16.100.8

255.255.255.0

-

Настройки hardware маршрутизаторов в магазинах не играют роли, поэтому их пропустим.

Приступим к установке и настройке.

CentOS (Community ENTerprise Operating System) -- дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. CentOS использует программу yum для скачивания и установки обновлений с репозиториев. Вся работа по настройке и установке производится удаленно, используя OpenSSH сервер на маршрутизаторах и клиент putty.

Настроим первым маршрутизатор Colo. Этот маршрутизатор будет выступать в роли OpenVPN сервера.

Пакет OpenVPN не доступен в стандартном репозитории, поэтому подключаем дополнительный репозиторий rpmforge:

colo> rpm -Uhv

http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-

0.3.6-1.el5.rf.x86_64.rpm

Эта команда скачивает rpm пакет репозитория и устанавливает его.

Теперь нам стал доступен пакет OpenVPN, устанавливаем его:

colo> yum install openvpn

OpenVPN установлен. Далее требуется сгенерировать корневой сертификат сервера, сертификаты и ключи клиентов, сертификат и ключ сервера, tls ключ.

Для этого переходим в конфигурационный каталог OpenVPN и создаем каталог под наши будущие ключи и каталог под конфигурационные файлы клиентов:

colo> cd /etc/openvpn

colo> mkdir keys

colo> mkdir ccd

Загружаем переменные для генерации ключей в память и начинаем генерировать сертификат авторизации:

colo>./vars

colo>./build-ca

Generating a 1024 bit RSA private key

.....................++++++

..++++++

writing new private key to 'ca.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

# Страна

Country Name (2 letter code) [US]:RU

# Провинция

State or Province Name (full name) [CA]:SPB

# Город

Locality Name (eg, city) [SanFrancisco]:SPB

# Название фирмы

Oganization Name (eg, company) [Fort-Funston]:server

# Отделение фирмы

Organizational Unit Name (eg, section) []:server

# Имя сервера OpenVPN

Common Name (eg, your name or your server's hostname) [Fort-Funston

CA]:server

Name []:server

Email Address [me@myhost.mydomain]:

Создаем сертификат X.509 для сервера:

colo> ./build-key-server server

# Страна

Country Name (2 letter code) [US]: RU

# Провинция

State or Province Name (full name) [CA]:SPB

# Город

Locality Name (eg, city) [SanFrancisco]: SPB

# Название компании

Organization Name (eg, company) [x]:server

# Отделение компании

Organizational Unit Name (eg, section) []:server

# Имя сервера OpenVPN

Common Name (eg, your name or your server's hostname) []:server

# Почтовый адрес

Email Address [root@localhost]:

Please enter the following 'extra' attributes

to be sent with your certificate request

# Пароль

A challenge password []:123456789

# Название организации

An optional company name []:server

Далее появится вопрос о подписывании сертификата, соглашаемся.

Создаём ключ для office:

colo> ./build-key-server office

Generating a 1024 bit RSA private key

.........++++++

.......++++++

writing new private key to 'client.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [US]: RU

State or Province Name (full name) [CA]: SPB

Locality Name (eg, city) [SanFrancisco]: SPB

Organization Name (eg, company) [server]:company

Organizational Unit Name (eg, section) []:office

Common Name (eg, your name or your server's hostname) []:office

Email Address [root@localhost]:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:123456789

An optional company name []:office

Таким же способом, создаём ключи для склада и двух магазинов.

Создаем ключ Диффи Хельман для обмена ключами по незащищенному каналу:

colo> ./build-dh

Создаем ключ для tls-аутентификации:

colo> openvpn --genkey --secret keys/ta.key

После всех этих манипуляций в каталоге keys/ появляются следующие файлы:

· ca.crt - Главный CA сертификат, этот файл нужен и клиенту и серверу;

· dh1024.pem - ключ Диффи Хельман, этот файл нужен только серверу;

· server.crt - Сертификат сервера, нужен только серверу;

· server.key - Ключ сервера, нужен только серверу (секретный файл);

· office.crt, sklad.crt, mag1.crt, mag2.crt - Сертификаты клиентов, нужны только соответствующим клиентам;

· office.key, sklad.key, mag1.key, mag2.key - Ключи клиентов, нужны только соответствующим клиентам (секретные файлы);

· ta.key - TLS-ключ, нужен и клиентам и серверу.

Следовательно, на сервере остаются файлы ca.crt, dh1024.pem, server.crt, server.key, ta.key, а клиентам отдаются ca.crt, dh1024.pem и их ключи с сертификатами.

На этом операции с генерацией ключей и сертификатов закончены, переходим к настройке сервера и клиентов. Создаем конфигурационный файл server.conf следующего содержимого:

# Порт на котором работает сервер

port 5000

# Протокол udp

proto udp

# Используемый тип устройства и номер

dev tun0

# Указываем файл CA

ca /etc/openvpn/keys/ca.crt

# Указываем файл с сертификатом сервера

cert /etc/openvpn/keys/server.crt

# Указываем файл с ключем сервера

key /usr/local/etc/openvpn/keys/server.key

# Указываем файл Диффи Хельман

dh /usr/local/etc/openvpn/keys/dh1024.pem

# Задаем IP-адрес сервера и маску подсети виртуальной сети

server 10.10.200.0 255.255.255.0

# Задаем маршруты, которые передаём клиентам, и маску подсети для

того, чтобы они видели сеть за OpenVPN сервером

# Colo

push 'route 172.16.100.0 255.255.255.0'

# Office

push 'route 192.168.53.0 255.255.255.0'

# Sklad

push 'route 192.168.0.0 255.255.255.0'

# Указываем, где хранятся файлы с настройками IP-адресов клиентов

client-config-dir ccd

# добавляем маршруты сервер-клиент

route 10.10.200.0 255.255.255.0

# Office

route 192.168.53.0 255.255.255.0

# Sklad

route 192.168.0.0 255.255.255.0

# Разрешает видеть клиентам друг друга (по виртуальным IP) по

умолчанию клиенты видят только сервер

client-to-client

# Включаем TLS аутификацию

tls-server

# Указываем tls-ключ

tls-auth keys/ta.key 0

# Таймаут до реконекта

tls-timeout 120

# Выбираем алгоритм хеширования

auth MD5

# Включаем шифрацию пакетов

cipher BF-CBC

# Проверяем активность подключения каждые 10 секунд, если в

течение 120 сек. нет ответа, подключение закрывается

keepalive 10 120

# Сжатие трафика

comp-lzo

# От какого пользователя и группы будет работать OpenVPN

user nobody

group nobody

# Не перечитывать ключи после получения SIGUSR1 или ping-restart

persist-key

# Не закрывать и переоткрывать TUNTAP устройство, после

получения SIGUSR1 или ping-restart

persist-tun

# Логгирование

status /var/log/openvpn/openvpn-status.log

log /var/log/openvpn/openvpn.log

# Уровень информации для отладки

verb 3

Создаем файлы с настройками для клиентов. В каталоге /etc/openvpn/ccd на сервере создаем файл office, sklad, mag1, mag2 (имя файла - имя которому выдан сертификат) следующего содержания:

office

ifconfig-push 10.10.200.2 10.10.200.1

iroute 192.168.53.0 255.255.255.0

sklad

ifconfig-push 10.10.200.3 10.10.200.1

iroute 192.168.53.0 255.255.255.0

mag1

ifconfig-push 10.10.200.4 10.10.200.1

mag2

ifconfig-push 10.10.200.5 10.10.200.1

Этими настройками выдали клиентам с соответствующими сертификатами виртуальные ip адреса, шлюз 10.10.200.1 и задали маршрут через туннель к сети за клиентами. Для магазинов маршрут не задаем, так как в нашу задачу не входит подключение этих сетей.

На этом настройка сервера заканчивается, запускаем OpenVPN:

colo> service openvpn start

Если все правильно, то должно появиться виртуальное tun устройство:

colo> ifconfig tun0

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-

00-00-00-00

inet addr:10.10.200.1 P-t-P:10.10.200.2 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500

Metric:1

RX packets:9 errors:0 dropped:0 overruns:0 frame:0

TX packets:24 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

Если устройство не появилось, значит есть ошибки в конфигурационных файлах. Смотрим лог и устраняем ошибку, далее опять стартуем.

Переходим к настройке клиентов. Все конфигурационные файлы одинаковые, поэтому рассмотрим один из них. На маршрутизаторах office и sklad устанавливаем OpenVPN, так же как и для сервера.

Создадим конфигурационный файл client.conf:

dev tun

proto udp

remote 195.2.240.68 #(реальный ip сервера)

port 5000

client

resolv-retry infinite

ca keys/ca.crt

cert keys/client.crt

key keys/client.key

tls-client

tls-auth keys/ta.key 1

auth MD5

cipher BF-CBC

ns-cert-type server

comp-lzo

persist-key

persist-tun

#добавление маршрута к сети за сервером. Эта строчка не нужна для

конфиг. файлов магазинов

up /etc/openvpn_up.sh

status /var/log/openvpn/openvpn-status.log

log /var/log/openvpn/openvpn.log

verb 3

Создадим скрипт openvpn_up.sh для автоматического добавления маршрута:

#!/bin/sh

/sbin/route add -net 172.16.100.0 netmask 255.255.255.0 gw 10.10.200.1

tun0

На этом настройка OpenVPN закончена. Копируем эти файлы на office и sklad. Далее запускаем OpenVPN. Если не запустился, смотрим логи.

Но на этом еще не все. Теперь нам надо включить трансляцию адресов (NAT) чтобы пакеты от клиентской машины, попадая на сервер могли уйти в Интернет и соответственно возвращались назад:

colo> iptables --t nat --A POSTROUTING --s 10.10.200.0/24 --o eth1 --

j MASQUERADE

Теперь 3 сети «видят» друг друга. Настроим подключение с магазинов к серверам. На компьютерах в магазинах, стоит операционная система Windows XP. Скачиваем с официального сайта дистрибутив OpenVPN и устанавливаем. Затем в установленном каталоге в папку config кладем наши ключи и конфигурационный файл mag1. После этого можно запускать.

На этом этапы настройки завершены. Имея защищенную корпоративную сеть, можно подключаться напрямую к серверам. Проверить шифрацию можно, прослушав трафик на одном из роутеров командой TCPDUMP.

Пример вывода нешифрованного трафика:

18:27:15.752295 IP cl230-175-182-213.cl.metrocom.ru.40887 >

195.2.240.68.ssh: . 2826496:2827944(1448) ack 1009 win 10080

<nop,nop,timestamp 2791385847 256970382>

18:27:15.752347 IP 195.2.240.68.ssh > cl230-175-182-

213.cl.metrocom.ru.40887: . ack 2783056 win 65535 <nop,nop,timestamp

256970382 2791385774,nop,nop,sack 1 {2785952:2827944}>

18:27:15.755042 IP cl230-175-182-213.cl.metrocom.ru.40887 >

195.2.240.68.ssh: 2827944:2829392(1448) ack 1009 win 10080

<nop,nop,timestamp 2791385850 256970382>

18:27:15.755096 IP 195.2.240.68.ssh > cl230-175-182-

213.cl.metrocom.ru.40887: . ack 2783056 win 65535 <nop,nop,timestamp

256970382 2791385774,nop,nop,sack 1 {2785952:2829392}>

Пример зашифрованного:

18:24:18.247960 IP 195.2.240.68.sieve > cl230-175-182-

213.cl.metrocom.ru.sieve: UDP, length 113

18:24:18.248040 IP 195.2.240.68.sieve > cl230-175-182-

213.cl.metrocom.ru.sieve: UDP, length 113

18:24:18.250915 IP cl230-175-182-213.cl.metrocom.ru.sieve >

195.2.240.68.sieve: UDP, length 1441

18:24:18.251291 IP 195.2.240.68.sieve > cl230-175-182-

213.cl.metrocom.ru.sieve: UDP, length 113

2.2 Реализация на основе технологии SSH

2.2.1 SSH-туннель

Предположим, что офис, склад и магазины (информация о сети в пункте 2.1) работают только на серверах в терминальном режиме. Тогда существует очень простой, а самое главное быстрый способ организации VPN туннеля. С помощью пакета OpenSSH на software маршрутизаторах можно делать шифрованный канал только по одному нужному порту. Для работы с терминальным сервером, клиенты используют протокол RDP, который использует 3389 порт (схема такой работы представлена на рисунке 2.2.2.1). Синим, отмечен ssh-туннель, по которому будет работать RDP протокол.

Рис.2.2.2.1 Использование ssh-туннелей

Реализация, как говорилось раньше, очень проста, только у OpenSSH есть недостаток: при большом простое канала он рвется. Но и для этой проблемы есть простое решение. Пакет autoSSH, по дополнительному порту при простое шлет heartbeat пакет и канал не падает. Создадим 2 канала до двух терминальных серверов:

colo> export AUTOSSH_DEBUG=1

colo> export AUTOSSH_GATETIME=0

colo> export AUTOSSH_PORT=20037

colo> autossh -f -N -g -l root -L 1002:172.16.100.33:3389 195.2.240.68

colo> export AUTOSSH_PORT=20040

colo> autossh -f -N -g -l root -L 1002:172.16.100.34:3389 195.2.240.68

Рассмотрим команды подробнее:

colo> autossh -f -N -g -c aes256 -l root -L 1002:172.6.100.33:3389

195.2.240.68

Параметры:

· -f: Работать в фоновом режиме, а не подключаться на хост;

· -N: Не исполнять удаленные команды;

· -g: Разрешает подключение удаленным хостам;

· -c: Включаем шифрацию;

· -l: Имя пользователя, от которого подключаемся к серверу;

· -L Прописываем, какой локальный порт используем для подключения и на какой сервер и порт подключаемся.

На этом настройка шифрованного туннеля закончена и можно работать! Если нам нужно добавить еще один туннель, то с помощью команды export AUTOSSH_PORT=20050 добавляем еще один порт для посылки heartbeat пакетов и прописываем ту же команду поднятия ssh туннеля, но уже с другим портом.

2.2.2 SSH VPN

Реализуем ту же схему корпоративной сети, которую создавали при помощи пакета OpenVPN, но уже с помощью встроенного в linux системы пакета OpenSSH. Нам хватит рассмотреть соединение 2-х сетей, так как для подключения еще одной сети нужно будет провести те же самые действия.

С версии 4.3, OpenSSH поддерживает устройства tun/tap, позволяющие создавать шифрованный туннель. Это очень похоже на OpenVPN, основанный на TLS.

Шифрованный туннель создается на основе одного TCP соединения, что весьма удобно, для быстрого поднятия простого VPN, на IP.

Сначала нужно дописать в конфигурационный файл OpenSSH строки, что он имеет право создавать устройства tun/tap и заходить с правами root. В конфигурационном файле /etc/ssh/sshd_config, должны стоять следующие опции:

PermitRootLogin yes

PermitTunnel yes

У нас есть две сети, сеть office с адресом 192.168.53.0/24 и сеть colo с адресом 172.16.100.0/24. Для создания защищенной VPN сети нужно проделать следующие действия:

1. Подключится с одного маршрутизатора через SSH на другой с опцией -w;

2. Настройка IP адреса SSH туннеля делается единожды на сервере и на клиенте.

3. Добавить маршрут для обеих сетей.

4. Если нужно, включить NAT на внутреннем интерфейсе шлюза.

Будем подключаться из сети office к сети colo. Соединение начинается с маршрутизатора office, а команды выполняются на маршрутизаторе сети colo, то есть, настраиваем маршрутизатор colo:

С помощью опции w c параметрами 0:0 говорим, что при подключении создать на клиенте и сервере виртуальные устройства tun0. Параметр -c включает шифрацию, параметр -C сжатие трафика.

office> ssh -c aes256 -C -w0:0 root@195.2.240.68

Следующие команды уже выполняются на маршрутизаторе сети colo. Задаем ip адрес и маску подсети

colo> ifconfig tun0 10.0.1.1 netmask 255.255.255.252

Добавляем маршрут до сети office

colo> route add -net 192.168.53.0 netmask 255.255.255.0 dev tun0

Включаем NAT, если не включен

colo> echo 1 > /proc/sys/net/ipv4/ip_forward

Прописываем правило с помощью средств iptables для переброса пакетов из VPN сети в реальную

colo> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Теперь настроим машрутизатор office:

office> ifconfig tun0 10.0.1.2 netmask 255.255.255.252

office> route add -net 172.16.100.0 netmask 255.255.255.0 dev tun0

office> echo 1 > /proc/sys/net/ipv4/ip_forward

office> iptables -t nat -A POSTROUTING -o eth1 -j

На этом настройка закончена, VPN сеть построена. Для подключения отдельных компьютеров с операционной системой Windows XP (магазины), используется клиент SSH Putty.

2.3 Оценка производительности каналов корпоративной сети

В разделах 2.1 и 2.2 рассмотрены две технологии (OpenVPN, SSH) создания защищенных корпоративных сетей, используя VPN. На сегодняшний день технология OpenVPN лидирует на рынке построения защищенных сетей, в то время как туннелирование при помощи SSH только начинает входить в повседневность. Для того чтобы понять какую технологию необходимо применить в реальных условиях при конкретных требованиях, предъявляемых корпоративной сети, нужно оценить их производительность и обосновать их достоинства и недостатки.

Начать следует с производительности защищенных каналов. На рис. 1.4.1 представлена построенная корпоративная сеть, производительность защищенных каналов которой, используя программу iPerf, необходимо оценить. С помощью клиентской части генерируется трафик и отправляется на серверную часть. При получении данных генерируется отчет о скорости передачи данных.

2.3.1 Оценка производительности при использовании технологии OpenVPN

Для построения графиков производительности канала созданного при помощи OpenVPN будем использовать данные, полученные при тестировании из приложения 1.

На рис. 2.3.1 представлены графики значений RTT. Из них видно, что разница между каналом без VPN и каналом с использованием VPN, не является существенной. Также включение опции сжатия не влияет на время отклика.

Рис. 2.3.1 Графики значений RTT

Рис. 2.3.2 Графики пропускной способности канала

На рис. 2.3.2 представлены графики пропускной способности канала, из которых можно сделать следующие выводы:

· При использовании созданного канала VPN с шифрацией с помощью ключа AES-256-CBC потеря в производительности 0,5 мбит/сек, что составило 5,1% от канала без использования VPN;

· При включении сжатия шифрованного трафика наблюдаем прирост скорости в 3 мбит/сек, что составило 32.9%.

На рис. 2.3.3 представлены графики загрузки ЦП на маршрутизаторах при использовании OpenVPN c шифрацией трафика, при включенном и отключенном сжатии.

Рис.2.3.3 Графики загрузки ЦП

По средним значениям загрузки, как и полагалось, самую высокую нагрузку дает шифрация трафика с использованием сжатия - 14.992%.

Основываясь на полученных графиках, произведём оценку производительности каналов VPN, построенных при помощи OpenVPN.

1. Критерий «Загрузка ЦП» при полученных значениях является несущественным, так как это маршрутизатор и других процессов требующих большое потребление ЦП нет;

2. Критерий «RTT» также является несущественным, так как разница от времени отклика при опытах без VPN оказалась меньше всего на 0,5 мс;

3. На графиках пропускной способности каналов можно наблюдать падение скорости при использовании средств VPN на 0,5 мбит/сек в среднем. В настоящее время это не является существенным, так как Интернет-провайдеры предоставляют свои услуги на больших скоростях, где такое падение не будет играть большой роли.

4. При использовании сжатия трафика виден заметный прирост к пропускной способности канала, на 3 мбит/сек. Конечно при этом сильно возрастает загрузка на ЦП, но как говорилось раньше, это не играет большой роли.

Подведем итоги. Создавая защищенную корпоративную сеть на основе технологии OpenVPN, получаем одну общую сеть на несколько офисов с шифрацией передаваемых данных и приростом скорости за счет сжатия трафика с удобством обмена информацией. Технология OpenVPN полностью оправдывает себя. Её использование ведет к росту производительности работы с информацией по сети. Из минусов выделяется некоторая сложность настройки и создания VPN сети. Из плюсов - кроссплатформенность.

2.3.2 Оценка производительности при использовании технологии SSH

Для построения графиков производительности канала созданного при помощи SSH будем использовать данные, полученные при тестировании из приложения 2.

Рис.2.3.4 Графики значений RTT

На рис. 2.3.4 представлены графики, по которым можно судить о времени отклика при работе ssh. В среднем время увеличилось на 0.8 мс. Это значение не является критичным даже для самых привередливых программ.

На рис. 2.3.5 представлены графики пропускной способности канала. Результаты получились приблизительно такими же, что и при использовании OpenVPN.

Рис.2.3.5 Графики пропускной способности канала

Рис.2.3.6 Графики загрузки ЦП

На рис. 2.3.6 представлены графики загрузки ЦП при использовании ssh с шифрацией с сжатием трафика и без. При включении шифрации виден большой скачок нагрузки на ЦП. Среднее значение - 37.9%. Это довольно много, но не является критичным.

Из полученных данных можно сделать следующий вывод: производительность при использовании сжатия трафика возросла примерно на 25%, но при этом значительно выросла нагрузка на ЦП. Из достоинств этой технологии хочется выделить возможность создания ssh-туннелей по отдельным портам, что при определенных условиях дает множество плюсов, например, возможность иметь автоматическое включение резервного канала, при отсутствии связи на одном из маршрутизаторов. Также нужно отметить простоту создания и настройки VPN сети, кроссплатформенность, высокая надежность, легкая масштабируемость.

2.3.3 Выбор между технологиями SSH и OpenVPN

Составим сравнительную таблицу, основываясь на полученных опытным путем данных.

OpenVPN

SSH

Сложность создания

Достаточно сложная настройка. Сложность настройки маршрутизации для нескольких сетей, возможны трудности с firewall.

Легкая настройка, не требующая особых знаний. На все создание уходит не больше 10 минут.

Масштабируемость

Подключение еще одной сети или клиента, влечет изменение конфигурационных файлов на сервере и добавление их на клиента.

За счет OpenVPN клиента под Windows имеет преимущество перед SSH. Не требует обучения персонала.

Для подключения еще одной сети нужно повторить те же действия, что и при объединении предыдущих. Для подключения Windows компьютеров, требуется однократное обучение персонала.

Производительность

За счет сжатия можно добиться отличных результатов, превышающих исходное соединение. Сжатие идет выборочно, т.е. что сжать нельзя - пропускается. Это уменьшает нагрузку на ЦП.

Производительность чуть ниже, чем у OpenVPN. Сжимается весь трафик - большие нагрузки на ЦП.

Загрузка ЦП

В среднем не больше 15%

В среднем не больше 38%

Кроссплатформенность

Да

Да

RTT

На 0,5 мс больше, чем у исходного соединения

На 0,8 мс больше, чем у исходного соединения

Документация

Масса документации на официальном сайте. Многочисленные форумы и обсуждения.

Документация есть в встроенном справочнике. Информации по настройке пока что мало.

Доп. возможности

-

Создание ssh-туннелей.

Внедрение в сущ. сеть

Могут быть проблемы с настройкой firewall'а.

Легкое внедрение.

Защищенность

Шифрация 256 битным AES ключом

Шифрация 256 битным AES ключом

Распространенность

Лидирующая технология создания VPN сетей.

Сам протокол ssh существует очень давно, но создание ssh VPN сетей на сегодняшний день встречается редко.

Рассмотрев все плюсы и минусы, предпочтительным решением будет использование обоих технологий вместе. От SSH взять SSH-туннели, а от OpenVPN создание VPN сетей.

корпоративный протокол сервер мониторинг

ГЛАВА 3. СОЗДАНИЕ КОМПЛЕКСА СИСТЕМ МОНИТОРИНГА КОРПОРАТИВНОЙ СЕТИ

3.1 Слежение за состоянием серверов и сетевого оборудования. Nagios

Nagios - гибкая система мониторинга работы серверов. В основном ее используют для мониторинга большого количества серверов. Nagios -- программа мониторинга компьютерных систем и сетей с открытым кодом. Предназначена для наблюдения, контроля состояния вычислительных узлов и служб, оповещает администратора в том случае, если какие-то из служб прекращают или возобновляют свою работу. В нашем случае, будем следить за маршрутизаторами, серверами и процессами, запущенными на них. Систему Nagios для удобства настройки поставим на маршрутизатор colo.

Nagios включает в себя средства слежения, а также web-интерфейс для управления и просмотра текущего состояния серверов. Поэтому кроме установки самой системы, нужно установить web-сервер. Начнем с установки необходимых компонентов:

Устанавливаем компилятор языка C, его библиотеки и графические инструменты

colo> yum install gcc glibc glibc-common gd gd-devel

Устанавливаем web-сервер Apache

colo> yum install httpd

Создаем юзера и группу с правами которых будет работать nagios

colo> useradd -m nagios

colo> groupadd nagcmd

Создаем пароль для юзера

colo> passwd nagios

Добавляем nagios и apache в одну группу, чтобы не было проблем с правами на запуск скриптов на web-сервере

colo> /usr/sbin/usermod -a -G nagcmd nagios

colo> /usr/sbin/usermod -a -G nagcmd apache

Ставим систему:

Скачиваем последнюю версию системы и модули к ней

colo> wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-

3.2.1.tar.gz

colo> wget

Распаковываем скаченный архив и переходим в каталог

colo> tar xzf nagios-3.2.1.tar.gz

colo> cd nagios-3.2.1

Конфигурируем установочный пакет и проверяем удовлетворение зависимостей

colo>./configure

Если все хорошо, прошло без ошибок, собираем пакет и устанавливаем

colo> make all

colo> make install

colo> make install-init

colo> make install-config

colo> make install-commandmode

Прописываем настройки в Apache

colo> make install-webconf

Проделываем те же действия для дополнительных модулей

colo> tar xzf nagios-plugins-1.4.11.tar.gz

colo> cd nagios-plugins-1.4.11

colo>./configure

colo> make

colo> make install

Ставим пароль на вход в web-интерфейс с помощью утилиты htpasswd

colo> htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Проверяем правильность конфигурационного файла

colo> /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Если ошибок и предупреждений нет, запускаем Nagios и Apache

colo> service nagios start

colo> service httpd restart

Проверить то, что система заработала, можно зайдя на web-интерфейс: http://ip.адрес.сервера/nagios. В нашем случае ip-адрес: 195.2.240.68. Если сервер Apache запущен и сайт системы nagios в конфигурационный файл прописан верно, то должны увидеть страницу авторизации. После ввода связки логин-пароль должна открыться страница приветствия Nagios (рис.3.1.1). Если по какой-то причине этого не произошло, смотрим ошибки в логах apache в каталоге /var/log/httpd.

Рис.3.1.1 Страница приветствия Nagios

Рассмотрим навигационное меню:

· Home - Страница приветствия. Можно узнать о возможных обновлениях системы;

· Documentation - Большое количество документации по настройке системы;

· Tactical Overview - Представляет собой сбор краткой информации об объектах, за которыми ведется мониторинг;

· Map - Отображает карту сети, отмечая зеленым цветом работающие сервера и красным отключенные (рис. 3.1.2);

· Hosts - Показывает состояние каждого наблюдаемого объекта в отдельности

· Services - Показывает состояние запущенных процессов на серверах, а также RTT, количество свободного места, загрузка процессора и памяти(рис. 3.1.3);

· Event log - Отчеты системы мониторинга.

Все остальные пункты меню являются разновидностями вышеперечисленных, добавляя удобства просмотра информации, например разбита по группам.

Рис. 3.1.2 Представление пункта меню Map

Рис. 3.1.2 Представление пункта меню Services

Система мониторинга Nagios работает на нескольких конфигурационных файлах, с помощью которых настраиваются методы слежения и объекты, за которыми следим. Расположены эти файлы в директории /usr/local/nagios/etc.

Рассмотрим их подробнее:

1. nagios.cfg - Главный конфигурационный файл. В нём описано, где лежат остальные файлы, объявлены переменные, настраивается система логов, под каким пользователем работать и т.д.;

2. commands.cfg - Файл, в котором описаны команды для опроса серверов о их работоспособности, запущенных процессов и т.д.;

3. contacts.cfg - Описаны контакты, которым надо посылать оповещения системы о сбоях на серверах;

4. groups.cfg - Описываются группы и сервера, которые в них входят;

5. hosts.cfg - Описывается шаблон для добавляемого оборудования. В нём указывается период опроса серверов, время отсылки предупреждений;

6. WindowsServer.cfg - Пример описания Windows сервера;

7. LinuxServer.cfg - Пример описания Linux сервера.

Опрос серверов идет по протолку SNMP (Simple Network Management Protocol -- протокол простого управления сетями). Для слежения за Windows серверами, нужно дополнительно поставить программу Nsclient++.

Рассмотрим пример конфигурационного файла Windows сервера:

define host

{

# Используем шаблон, созданный заранее

use generic-host ;

# Имя сервера

host_name sql-1c ;

Альяс на имя (псевдоним)

alias sql-1c ;

Указываем, есть ли перед этим сервером еще один сервер. Это нужно для древовидного представления сети

parents vh0.arscraft.ru ;

Ip адрес сервера

address 172.16.100.34 ; IP address of the host

Иконка для отображения в web-интерфейсе. Необязательный параметр

icon_image 1c.jpg

statusmap_image 1c.jpg

Дополнительную информацию о сервере можно записать здесь

notes_url http://vh0.arscraft.ru/nagios/notes/info-sql1c.txt

}

Объявляем сервисы, за которыми будем следить. Так как это 1С и sql сервер, будем следить за работоспособностью этих процессов, а также за нагрузкой на процессор.

Следим за 1С процессом

define service{

use generic-service

host_name sql-1c

service_description Ragent

check_command check_nt!PROCSTATE!-d SHOWALL -l ragent.exe

}

Следим за sql процессом

define service{

use generic-service

host_name sql-1c

service_description SQL-Server

check_command check_nt!PROCSTATE!-d SHOWALL -l sqlservr.exe

}

Следим за нагрузкой на процессор

define service{

use generic-service

host_name sql-1c

service_description CPU Load

check_command check_nt!CPULOAD!-l 5,80,90

}

Добавление Linux-сервера ничем не отличается от Windows. Дальше добавляем файлы серверов, за которыми будем следить, и проверяем все конфигурационные файлы на правильность командой:

colo> usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Если ошибок и предупреждений нет, перезагружаем Nagios:

colo> service nagios reload

Можно зайти на сайт и посмотреть что получилось.

На этом общая настройка заканчивается, но можно продолжать настраивать систему под свои нужды.

Систему оповещения можно настраивать для каждого сервера и процесса по-разному, в зависимости от задачи. При срабатывании условия на почту системного администратора приходит письмо следующего содержания:

***** Nagios *****

Notification Type: PROBLEM

Host: 1c-sql

State: DOWN

Address: 172.16.100.34

Info: (Host Check Timed Out)

Date/Time: Tue Apr 12 09:43:56 MSD 2011

В результате установки и настройки системы Nagios появляются следующие возможности мониторинга корпоративной сети:

· Мониторинг сетевых служб (SMTP, POP3, HTTP, NNTP, ICMP и т.д.);

· Мониторинг состояния хостов (загрузка процессора, использование диска, системные логи) в большинстве сетевых операционных систем;

· Простая архитектура модулей расширений (плагинов) позволяет, используя любой язык программирования по выбору (Shell, C++, Perl, Python, PHP, C# и другие), легко разрабатывать свои собственные способы проверки служб;

· Параллельная проверка служб;

· Возможность определять иерархии хостов сети с помощью «родительских» хостов, позволяет обнаруживать и различать хосты, которые вышли из строя, и те, которые недоступны;

· Отправка оповещений в случае возникновения проблем со службой или хостом (с помощью почты, смс или любым другим способом, определенным пользователем через модуль системы)

· Возможность определять обработчики событий произошедших со службами или хостами для проактивного разрешения проблем;

· Автоматическая ротация лог-файлов;

· Возможность организации совместной работы нескольких систем мониторинга с целью повышения надёжности и создания распределенной системы мониторинга;

· Включает в себя утилиту nagiostats, которая выводит общую сводку по всем хостам, по которым ведется мониторинг.

Преимущества использования системы Nagios для мониторинга за корпоративной сетью неоспоримы. Системный администратор всегда будет в курсе состояния серверов и в кротчайшие сроки сможет предупредить или устранить проблему. Установка и настройка для обслуживающего персонала не должна быть сложной.

3.2 Слежение за производительностью серверов. Cacti

Cacti -- open-source веб-приложение, система позволяет строить графики при помощи RRDtool. Cacti собирает статистические данные за определённые временные интервалы и позволяет отобразить их в графическом виде. Преимущественно используются стандартные шаблоны для отображения статистики по загрузке процессора, выделению оперативной памяти, количеству запущенных процессов, использованию дисковых ресурсов, использованию входящего/исходящего трафика.

Эта система поможет узнать, когда на серверах бывают пики нагрузки, использование ресурсов серверов в течение дня, недели, месяца. Проанализировав полученные графики, можно говорить о возможной необходимости upgrad'a сервера и оптимизации работ в пиковые часы для снижения нагрузки.

Устанавливать и настраивать систему будем на маршрутизатор colo. Система Cacti требует большого количества дополнительного ПО. Веб-сервер у нас уже установлен, поэтому этот пункт пропускаем и начинаем установку:

Устанавливаем дополнительное ПО: Mysql, php, perl и библиотеки для них

colo> yum install mysql mysql-server mysql-devel httpd httpd-devel php

php-mysql php-gd phpimap

php-ldap php-odbc php-pear php-xml php-xmlrpc php-mcrypt curl curl-

devel perl-lib libxml2 php-mbstring phpmyadmin

Запускаем mysql. Одновременно происходит его конфигурация

colo> service mysqld start

Переходим к установке Cacti:

Установим зависимости нужные Cacti

colo> yum install -y net-snmp net-snmp-utils rrdtool php-snmp

Добавляем в автозагрузку и запустим сервис SNMP

colo> chkconfig snmpd on

colo> service snmpd start

Скачиваем пакеты Cacti:

colo> wget www.cacti.net/downloads/cacti-0.8.7g.tar.gz

colo> wget www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.9.tar.gz

Разархивируем их

colo> tar -xzvf cacti-0.8.7g.tar.gz

colo> tar -xzvf cacti-plugin-0.8.7g-PA-v2.9.tar.gz

Создаём рабочую папку Cacti на сервере

colo> mkdir /var/www/cacti

Копируем содержимое распакованной папки Cacti в рабочую папку Cacti

colo> cp -rf cacti-0.8.7g/* /var/www/cacti/

Создаём в системе юзера для Cacti и дадим ему соответствующие права

colo> useradd -c CactiUser -d /var/www/cacti/ -s /sbin/nologin cactiuser

colo> chown -R cactiuser /var/www/cacti/log /var/www/cacti/rra

Создаём базу данных для Cacti с привилегиями для cactiuser:

colo> mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 55

Server version: 5.0.77 Source distribution

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> create database cacti;

mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY

'password';

mysql> flush privileges;

mysql> quit

Импортируем структуру Cacti в ее базу

colo> mysql -u cactiuser -p cacti < /var/www/cacti/cacti.sql

Enter password: (password)

Настраиваем доступ Cacti в ее базу данных

colo> nano /var/www/cacti/include/config.php

$database_type = 'mysql';

$database_default = 'cacti';

$database_hostname = 'localhost';

$database_username = 'cactiuser';

$database_password = 'password';

$database_port = '3306';

Переходим в рабочую директорию Cacti и устанавливаем фиксы официальными патчами

colo> cd /var/www/cacti

colo> wget

www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch

colo> wget www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch

colo> wget www.cacti.net/downloads/patches/0.8.7g/html_output.patch

colo> wget

www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch

colo> wget

www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_pars

e.patch

colo> wget www.cacti.net/downloads/patches/0.8.7g/ping.patch

colo> wget www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch

colo> patch -p1 -N < data_source_deactivate.patch

colo> patch -p1 -N < graph_list_view.patch

colo> patch -p1 -N < html_output.patch

colo> patch -p1 -N < ldap_group_authenication.patch

colo> patch -p1 -N < script_server_command_line_parse.patch

colo> patch -p1 -N < ping.patch

colo> patch -p1 -N < poller_interval.patch

Создаем cacti.conf с следующим содержанием, чтобы включить веб-доступ

colo> nano /etc/httpd/conf.d/cacti.conf

Alias /cacti /var/www/cacti

<Directory /var/www/cacti/>

DirectoryIndex index.php

Options -Indexes

AllowOverride all

order deny,allow

deny from all

allow from 192.168.1.0/24 (you can do it like 'allow from all')

AddType application/x-httpd-php .php

php_flag magic_quotes_gpc on

php_flag track_vars on

</Directory>

# Перезагружаем веб-сервер Апач

colo> service httpd restart

# Создаём задачу Cron для Cacti

colo> nano /etc/cron.d/cacti

*/5 * * * * cactiuser php /var/www/cacti/poller.php > /dev/null 2>&1

С этого момента можно начать использовать базовую инсталляцию Cacti. Добавление серверов, за которыми будем следить, осуществляется через веб-интерфейс, доступный по адресу: http://ip.адрес.сервера/cacti. Но сначала нужно поставить на отслеживаемые сервера пакет snmp и переписать конфигурационный файл доступа /etc/snmp/snmpd.conf:

syslocation Test.syscontact INF <sysadmin@arscraft.ru>

# sec.name source community (password)

com2sec Mybox localhost public

com2sec cacti ip.адрес.сервера public

com2sec Outside default public

# group.name sec.model sec.name

group RWGroup v2c Mybox

group ROGroup v1 cacti

group ROGroup v2c cacti

group Others v2c Outside

view all included .1 80

view system included system fe

# context sec.model sec.level prefix read write notif

access ROGroup '' any noauth exact all none none

access RWGroup '' v2c noauth exact all all all

access Others '' v2c noauth exact system none all

Примеры получившихся графиков представлены на рисунках 3.2.1, 3.2.2, 3.2.3, 3.2.4.

Рис.3.2.1 График использования Интернет-канала

Рис.3.2.2 График средней загрузки процессора

Рис.3.2.3 График использования дискового пространства

Рис.3.2.4 График отклика сервера(RTT)

3.3 Фильтрация и анализ трафика корпоративной сети

3.3.1 Proxy сервер

Часто в фирмах, на предприятиях, где рабочий персонал имеет доступ к сети Интернет, требуется фильтрация входящего трафика. Нужно это по двум простым причинам:

1. Наиболее распространенный способ попадания вредоносных программ на компьютер происходит при просмотре веб-страниц сомнительного контента, просмотре баннеров и скачивании различного софта;

2. Одно из самых частых требований руководства организации, является ограничение доступа на развлекательные сайты и социальные сети.

Чтобы осуществлять фильтрацию, нужно чтобы весь http трафик проходил через специальный proxy сервер.

Proxy сервер - служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к proxy-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем proxy-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если proxy имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён proxy-сервером в определённых целях. Также proxy-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак и помогает сохранять анонимность клиента.

Реализовать переброс запросов на proxy-сервер можно двумя путями:

1. Явно указать в браузере адрес proxy-сервера (не рекомендуется из-за неудобства переключения в случае падения сервера);

2. Пересылать весь трафик, пришедший на порты 80, 8080 маршрутизатора на proxy-сервер при помощи правил iPtables.

В дипломе я буду использовать второй метод. Proxy-сервер будем устанавливать на маршрутизатор colo. В качестве ПО установим proxy-сервер SQUID.

Squid - программный пакет, реализующий функцию кэширующего proxy-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода/вывода.

Установка производится из стандартного репозитория одной командой:

colo> yum install squid

После первой установки необходимо проинициализировать кеш:

colo> squid -z

Переходим к настройке. Нужно решить следующую задачу - закрыть доступ на развлекательные сайты и социальные сети, закрыть доступ на скачку *.exe, *.sys, *.bat, *.sys, *.mp3, *.avi, *.mp4, *.mov файлов.

Основная конфигурация proxy-сервера находится в файле /etc/squid/squid.conf. Отредактируем его под нашу задачу:

Указываем порт на котором будем слушать запросы, и указываем тип Proxy «прозрачный», т.к. пересылаем пакеты средствами маршрутизатора

http_port 3128 transparent

ACL (Access Control List -- список контроля доступа) -- определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом. С помощью acl описываем объекты, с которыми будем работать

Описываем объекты и создаем правила доступа к ним

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

Описываем нашу локальную сеть

acl localnet src 172.16.100.0/24

Описываем файл, в котором записаны расширения запрещенных типов файлов

acl banfiles urlpath_regex -i '/etc/squid/include/permblock.files.acl'

Описываем файл, в котором записан список сайтов, запрещенных к просмотру

acl banurl dstdomain -i '/etc/squid/include/permblock.url.acl'

Создаем список для аудио и видео контента с помощью mime типов

acl banvideo rep_mime_type content-type audio

acl banvideo rep_mime_type content-type video

Запрещаем доступ из сети к запрещенным типам файлов, сайтам и контенту.

http_access deny localnet banfiles

http_access deny localnet banurl

http_reply_access deny all banvideo

Разрешаем доступ сети для всего остального трафика

http_access allow localnet

Для всех остальных запрещаем всё

http_access deny all

Не забудем оставить права для администратора, добавив нужную acl запись. Рассмотрим файлы с запрещающими списками:

Permblock.files.acl:

.exe$

.msi$

.bat$

.sys$

Permblock.url.acl:

.vkontakte.ru

.odnoklassniki.ru

.durov.ru

.vk.ru

.youtube

.rutube

Осталось перенаправить запросы с 80, 8080 портов на 3128. Добавляем в цепочку iptables следующее правило:

$fw -t nat -A PREROUTING -p tcp -m multiport --dport 80,8080 -i eth1 -j DNAT --to 127.0.0.1:3128

Теперь трафик идет через proxy-сервер с фильтрацией. Также с помощью Proxy-сервера при необходимости можно создавать лимиты по потреблению трафика, работать по расписанию и заменять рекламные баннеры на web-страницах на свои.

3.3.2 Анализатор логов Proxy сервера

Ещё одной из частых задач является анализ трафика по двум причинам:

1. Слежение за деятельностью сотрудника. Предотвращение нарушения дисциплины и правил работы в компании;

2. Создание лимитов на трафик, для снижения расходов компании.

Proxy-сервер Squid при прохождении трафика записывает всю информацию (откуда запрос, что запрашивают, время, размер и т.д.) в log файл. Остается лишь проанализировать его и вывести информацию в удобном для человека виде. Пример лога proxy-сервера Squid:

1305189384.038 340 84.52.97.69 TCP_MISS/200 33232 GET

http://www.banius.ru/manager/zakaz/ shop6 DIRECT/77.222.42.202

text/html

1305189384.369 147 84.52.97.69 TCP_MISS/200 7306 GET

http://www.banius.ru/manager/modules/ms/images/li.gif shop6

DIRECT/77.222.42.202 text/html

1305189448.705 1001 195.239.137.178 TCP_MISS/200 1363 POST

http://mail.google.com/a/banius.ru/? shop7 DIRECT/74.125.79.18

text/javascript

1305189550.826 243750 195.239.137.178 TCP_MISS/200 638 GET

http://mail.google.com/a/banius.ru/channel/bind? shop7

DIRECT/74.125.79.18 text/plain

Анализировать трафик будем специальным бесплатным ПО LightSquid.

Все необходимые компоненты (Perl, Gd, httpd) уже были установлены раньше, поэтому переходим непосредственно к установка LightSquid:

Скачиваем с сайта http://lightsquid.sourceforge.net/ последнюю версию программы версии 1.8.

Разархивируем скаченный архив в каталог /var/www/html/

colo> tar -xzf lightsquid-1.8.tgz

colo> cd lightsquid-1.8

# Даем права на выполнение скриптов

colo> chmod +x *.cgi

colo> chmod +x *.pl

colo> chown -R apache:apache *

Вносим изменения в файл конфигурации Apache /etc/httpd/conf/httpd.conf

Alias /lightsquid '/usr/local/www/lightsquid-1.8'

<Directory '/var/www/html/lightsquid-1.8'>

AddHandler cgi-script .cgi

AllowOverride All

</Directory>

Перезагружаем web-сервер для применения изменений

colo> service httpd restart

Переходим в каталог с распакованным lightsquid

colo> cd /var/www/html/lightsquid-1.8

Проверяем на правильность файл конфигурации. Если выдает ошибки, скорее всего, неправильно написаны пути до нужных программе каталогов. Исправить это можно в файле lightsquid.cfg

colo> ./check-setup.pl

Если ошибок нет, то добавляем задачу анализа трафика каждые полчаса в cron

colo> crontab -e

*/55 * * * * /var/www/html/lightsquid-1.8/lightparser.pl

На этом установка закончена. При необходимости, есть возможность занести адреса, с которых идет трафик, в группы и дать им имена.

Проверить работу можно по адресу http://ip.адрес.сервера/lightsquid.

Пример работы анализатора трафика представлен на рисунках 3.3.2.1, 3.3.2.2, 3.3.2.3.

Рис.3.2.2.1 Пример отчета LightSquid

Рис.3.2.2.2 Посещенные сайты

Рис.3.2.2.3 График по использованию трафика по дням

3.4 Учет трафика корпоративной сети. Разработка web интерфейса

Если слежение за деятельностью сотрудника можно реализовать средствами анализа http трафика, то задача подсчета трафика решается только частично, так как считается только http трафик.

Часто провайдеры предоставляют частным лицам и организациям доступ в сеть Интернет не безлимитный, а трафиковый, т.е. накладывают ограничение на количество скаченных и отданных данных. За превышение трафика приходиться сильно переплачивать. Поэтому мониторинг за трафиком является важной задачей.

Есть множество биллинговых систем, которые включают в себя функцию подсчета трафика, но там слишком много не нужных нам возможностей и функций. Существует программа IPCad, которая может помочь решить задачу.

IPCad (Cisco IP accounting simulator) -- это программа для учета трафика, которая может вести подсчет несколькими механизмами, например через интерфейсы BPF, libpcap и iptables. Есть один недостаток: результаты выводятся прямо в консоль, без какой-либо фильтрации. Поэтому к пакету IPCad нужно доработать интерфейс.

Начнем с установки IPCad:

router> wget http://lionet.info/soft/ipcad-3.6.6.tar.gz

Распаковываем архив и переходим в каталог

router>tar -xvzf ipcad-3.6.6.tar.gz

router>cd ipcad-3.6.6

Конфигурируем пакет

router>./configure

Собираем и устанавливаем пакет

router>make

router>make install

Переделываем конфигурационный файл под свои нужды

router> nano /usr/local/etc/ipcad.conf

Указываем не разбирать трафик по портам. Эта опция сильно нагружает маршрутизатор

capture-ports disable;

Указываем, какой интерфейс слушать

interface eth1;

Настройки программы по умолчанию

netflow export version 5;

netflow export destination 127.0.0.1 9998;

pidfile = /var/run/ipcad.pid;

dumpfile = ipcad.dump;

buffers = 64k;

Разделять статистику по каждому IP-адресу для подсети 192.168.23.0/24.

«aggregate 192.168.0.0/24» указывает ipcad диапазон адресов сети.

«strip 32» означает, что в статистику необходимо заносить все 32 бита адреса, принадлежащего данному адресному диапазону

aggregate 192.168.23.0/24 strip 32;

Описываем политики доступа к статистике ipcad. root может полностью управлять (делать backup, просматривать и изменять таблицы подсчета). Все остальные могут лишь просматривать статистику.

rsh enable at 127.0.0.1;

rsh root@127.0.0.1 admin;

rsh root@127.0.0.1 backup;

rsh root@127.0.0.1;

rsh 127.0.0.1 view-only;

“Время жизни” и тайм-аут IP пакета.

rsh ttl = 3;

rsh timeout = 30;

Опция 'memory_limit задает количество памяти для хранения содержимого одного потока данных.

memory_limit = 10m;

Для получения статистики запускаем программу:

colo> /usr/local/bin/ipcad -rds

colo> rsh localhost show ip accounting

Получим вывод в консоль:

192.168.23.14 83.156.177.10 1 131

178.67.60.119 192.168.23.14 1 305

192.168.23.14 202.152.243.92 1 131

192.168.23.14 178.67.60.119 1 131

192.168.23.14 77.77.44.16 1 131

192.168.23.196 192.168.23.201 2873 186687

192.168.23.201 192.168.23.196 4274 3838143

Accounting data age is 4

Accounting data age exact 269

Accounting data saved 1305215070

Interface eth1: received 375320822, 5 m average 41518 bytes/sec, 60

pkts/sec

Flow entries made: 569

NetFlow cached flows: 27

Memory usage: 0% (63728 from 10485760)

Free slots for rsh clients: 9

IPCAD uptime is 49 days 51 minutes

Такой результат не всем будет понятен, да и запускать программу вручную не самый удобный способ подсчитывать трафик. Для решения этой проблемы нужно создать удобный веб-интерфейс. Всю информацию о трафике будем заносить в базу данных СУБД MySql. Создаем базу данных stat и нужные нам таблицы (users, download, upload, tmp), в которые будем записывать статистику.

Создадим скрипт “stat.sh”, который будет запускать команду получения статистики и записывать результат в файл, а затем запускать скрипт “collect.pl“, отвечающий за добавление информации в базу данных.

Скрипт stats.sh:

#!/bin/bash

rsh 127.0.0.1 clear ip accounting > /dev/null

rsh 127.0.0.1 show ip accounting checkpoint > /tmp/ipcad.stat

/usr/local/etc/collect.pl

rm /tmp/ipcad.stat

Часть скрипта collect.pl :

#!/usr/bin/perl

use DBI;

#Логин / пароль

$dbuser = 'root';

$dbpassword = 'password';

dbh = DBI->connect('DBI:mysql:stat:localhost',$dbuser,$dbpassword) or

die 'can't connect to database ', $dbh->errstr, __LINE__;

open(FIL, '/tmp/ipcad.stat') || die;

while($line=<FIL>) {

@mass = split(' ',$line);

$dbh -> do ('INSERT INTO `tmp` ( `id` , `date` , `time` , `src` , `srcp` , `dst`

, `dstp` , `bytes` , `proto`,`class` ) VALUES ('', CURDATE( ) , CURTIME(

)$

}

close(FIL);

Скрипт stat.sh нужно запускать каждые 20-25 минут, поэтому добавляем задачу в cron:

router> crontab -e

0,20,40,55 * * * * /usr/local/etc/stat

Теперь все нужные данные находятся в базе данных, осталось только вытащить их на сайт. Для этого разрабатываем несколько web-страниц. Код главной страницы index.php находится в приложении 3. В итоге получаем систему подсчета трафика в удобном табличном виде (рис. 3.4.1), со следующими возможностями:

· Учет любого трафика для каждого пользователя отдельно;

· Установка лимита трафика, при превышении которого на почту системному администратору приходит извещение.

Рис.3.4.1 Таблица использования Интернет трафика

ЗАКЛЮЧЕНИЕ

В результате выполнения дипломной работы получены следующие результаты:

1. Построена защищенная корпоративная сеть на основе VPN, используя технологии OpenVPN и SSH;

2. Рассмотрены методы организации VPN сетей: клиент-серверный, туннелирование, точка-точка;

3. Получены табличные значения пропускной способности защищенных интернет каналов для технологий OpenVPN и SSH. Дана практическая оценка производительности этих каналов созданной копроративной сети. Полученные результаты позволяют сделать общий вывод: при построении корпоративной сети целесообразно использовать обе технологии - с помощью OpenVPN создавать защищенные сети, с помощью SSH - ssh-туннели и создание подключений для администрирования;

4. Рассмотрены решения для мониторинга корпоративной сети: Nagios, Cacti, Ipcad, LightSquid. Сделан вывод об использовании этих решений в одном комплексе;

5. С целью фильтрации трафика и слежения за деятельностью персонала установлен, настроен и введен в работу proxy-сервер;

6. Введена в эксплуатацию система мониторинга, состоящая из рассмотренных в работе компонентов: Nagios, Cacti, Ipcad, LightSquid;

7. Разработан web-интерфейс для системы учета трафика.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. А.В. Соколов, В.Ф.Шаньгин. Защита информации в распределенных корпоративных сетях и системах. - М.:ДМК Пресс, 2002. - 656с.

2. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. - 2001 г. 668 с.

3. Олег Колесников, Брайан Хетч. LINUX. Создание виртуальных частных сетей (VPN). - Издательство 'КУДИЦ-ОБРАЗ' 2002 г. 464 с.

4. Свободная энциклопедия

5. Статьи о linux системах

6. Статьи об установке и настройке различных пакетов программ под Linux/Unix системы

7. Коллективный блог новостей, аналитических статей, связанных с высокими технологиями и Интернетом

ПРИЛОЖЕНИЕ 1

Таблица значений пропускной способности Интернет канала, используя OpenVPN

Без VPN

OpenVPN

AES-256-CBC

Шифрование с сжатием трафика

RTT

Скорость

RTT

Скорость

Цп №1

Цп №2

RTT

Скорость

Цп №1

Цп №2

1

1,438

9,57

2,016

9,10

7,7

6

1,856

12,10

10,7

8,3

2

1,551

9,51

1,925

9,10

4,7

8,3

2,119

12,10

17

8,7

3

1,532

9,58

1,990

9,10

6,6

6,3

2,245

12,10

10,7

8,3

4

1,474

9,59

2,246

9,09

6

8,7

2,236

12,10

25,6

11

5

1,481

9,59

2,258

9,10

5,7

8

2,191

12,10

10,3

8,7

6

1,471

9,59

2,344

9,10

7,7

6,3

2,212

12,10

10,3

8,7

7

1,694

9,50

2,360

9,10

8,3

8,7

2,262

12,10

7,3

7,7

8

1,519

9,58

2,285

9,10

3

8,7

2,304

12,10

30,1

11,7

9

1,470

9,59

2,336

9,09

7,6

6,3

2,208

12,10

12,7

8,7

10

1,470

9,60

2,317

9,09

6,3

8,3

2,212

12,10

11

8,7

11

1,575

9,58

2,282

9,09

6,3

8,7

2,258

12,10

23,3

11,7

12

1,475

9,59

2,319

9,10

6

6,7

2,203

12,10

14

8,3

13

1,686

9,60

2,224

9,09

4,7

8,7

2,267

12,10

10,7

7,7

14

1,725

9,59

2,258

9,10

4

8,3

2,238

12,10

10,3

11,3

15

1,706

9,58

1,941

9,09

7,7

6,7

2,312

12,10

29,3

8,7

16

1,744

9,60

2,155

9,10

6,7

8,7

2,187

12,10

11

8,3

17

1,551

9,60

2,313

9,09

7,3

6,3

2,224

12,10

9,7

11

18

1,529

9,60

2,226

9,10

7,3

8,7

2,190

12,00

8,3

9

19

1,449

9,58

2,240

9,09

8,7

8

2,288

12,00

31,3

9,3

20

1,467

9,62

2,218

9,10

8

8,3

2,176

12,10

11,3

9,7

21

1,499

9,59

2,200

9,10

7

8,7

2,196

12,10

11

9,3

22

1,399

9,60

2,283

9,09

9,7

6,3

2,150

12,10

21

8,7

23

1,545

9,59

2,264

9,10

7

8

1,825

12,10

16

7,3

24

1,530

9,59

2,278

9,09

6,6

8,7

2,226

12,10

11,6

12,7

25

1,374

9,58

2,244

9,09

8,7

8,3

2,273

12,10

10,3

8,3

Ср

1,534

9,584

2,221

9,096

6,772

7,788

2,194

12,092

14,992

9,272

В приложении 1 использованы следующие обозначения:

· № - номер опыта. Под опытом понимаем передачу файла из одной сети в другую в течение 10 секунд;

· Без VPN - опыты производились без использования технологии VPN;

· AES-256-CBC - производительность канала при шифрации передаваемых данных с помощью 256 битного ключа AES;

· Шифрование с сжатием трафика - производительность канала при использовании сжатия шифрованного трафика;

· RTT - время между отправкой запроса и получением ответа в миллисекундах (Round Trip Time);

· Скорость - пропускная способность канала, измеряемая в Мбит/сек;

· Цп1 - загрузка центрального процессора на передающем маршрутизаторе;

· Цп2 - загрузка центрального процессора на принимающем маршрутизаторе;

· Ср - среднее арифметическое значение.

ПРИЛОЖЕНИЕ 2

Таблица значений пропускной способности Интернет канала, используя SSH

Без VPN

SSH

AES-256-CBC

Шифрование с сжатием трафика

RTT

Скорость

RTT

Скорость

Цп №1

Цп №2

RTT

Скорость

Цп №1

Цп №2

1

1,438

9,57

2,068

8,85

1,3

10,3

2,224

11,60

33,8

13

2

1,551

9,51

2,374

8,85

1

9,7

2,258

10,40

36,7

11,3

3

1,532

9,58

2,379

8,84

1,7

10,7

2,360

11,40

25

16,6

4

1,474

9,59

2,354

8,84

0,7

8

2,285

11,50

25,3

12

5

1,481

9,59

2,348

8,85

2,3

10,3

2,282

11,50

71,3

13,7

6

1,471

9,59

2,133

8,83

2

10

2,319

11,50

24,9

10,3

7

1,694

9,50

2,451

8,83

2,3

10,7

2,224

11,50

35,7

17,30

8

1,519

9,58

2,411

8,86

2,7

7,7

2,524

11,40

35,9

12,7

9

1,470

9,59

2,390

8,84

2

10,3

2,326

11,40

57,7

13,3

10

1,470

9,60

2,423

8,85

1,3

10

2,232

11,60

24

14

11

1,575

9,58

2,524

8,86

2

10

1,864

11,70

36,3

12,7

12

1,475

9,59

2,354

8,84

3,3

8

2,235

11,40

54,3

11,3

13

1,686

9,60

2,423

8,85

5

10

2,120

11,50

37,3

18,6

14

1,725

9,59

2,354

8,85

1

10,3

2,221

11,40

23,6

12

15

1,706

9,58

2,294

8,86

1,3

7,3

2,228

11,50

26,6

13,7

16

1,744

9,60

2,133

8,84

3,3

10

2,423

11,30

77

11

17

1,551

9,60

2,187

8,84

0,7

10

2,354

11,50

22,6

16,7

18

1,529

9,60

2,374

8,83

2,7

10

2,423

11,60

31,7

14

19

1,449

9,58

2,258

8,84

2,3

7,7

2,354

10,40

34,1

13

20

1,467

9,62

2,235

8,85

1,7

10

2,294

11,60

55,4

10,3

21

1,499

9,59

2,133

8,85

1

10

2,133

11,20

24,7

15

22

1,399

9,60

2,212

8,83

3

9,7

2,374

11,20

35,6

12,7

23

1,545

9,59

2,305

8,85

2,3

8

2,258

11,30

59,1

12

24

1,530

9,59

2,336

8,84

1,7

10,7

2,190

11,40

34,3

12

25

1,374

9,58

2,273

8,86

1,3

10

2,288

11,40

25,3

18,3

Ср

1,534

9,584

2,309

8,845

1,704

8,140

2,272

11,368

37,928

13,500

В приложении 1 использованы следующие обозначения:

· № - номер опыта. Под опытом понимаем передачу файла из одной сети в другую в течение 10 секунд;

· Без VPN - опыты производились без использования технологии VPN;

· AES-256-CBC - производительность канала при шифрации передаваемых данных с помощью 256 битного ключа AES;

· Шифрование с сжатием трафика - производительность канала при использовании сжатия шифрованного трафика;

· RTT - время между отправкой запроса и получением ответа в миллисекундах (Round Trip Time);

· Скорость - пропускная способность канала, измеряемая в Мбит/сек;

· Цп1 - загрузка центрального процессора на передающем маршрутизаторе;

· Цп2 - загрузка центрального процессора на принимающем маршрутизаторе;

· Ср - среднее арифметическое значение.

ПРИЛОЖЕНИЕ 3

Код страницы web-интерфейса

Index.php:

<?php include 'check.php'; ?>

<html>

<head>

<?php

include ('global.php');

Global $funk, $yearmonth;

db_connect();

?>

<meta name='GENERATOR' content='Quanta Plus'>

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

<LINK rel='stylesheet' href='style.css' type='text/css'>

</head>

<body >

<table class=inv-head align=left>

<tr>

<td align=left valign=top>

<h3>Персональная статистика:<br>

<?php

//get checked ips

$query = 'SELECT checkedip,uname,INET_NTOA(checkedip) from users

order by checkedip';

$result = mysql_query ($query);

if ($result) {

echo '<form method=GET name=checkedips action=index.php>

IP: <select name=checkedip onChange=checkedips.submit()>

<option>--------

';

while ($b = mysql_fetch_array ($result))

{

if ($checkedip == $b[0]) {echo '<option value=$b[0]

selected=selected>$b[2] : $b[1]';}

else {echo '

<option value=$b[0]>$b[2] : $b[1]

';}}

echo '</select>

<input type=hidden name=funk value=$funk>

месяц <select name=month onChange=checkedips.submit()>

';

$i = 0;

foreach ($mm as $m_) {

$i++;

if ($month==$i) echo '<option value=$i selected=selected>$m_';

else echo ' <option value=$i>$m_';

}

}

?>

</select>

<select name=year onChange=checkedips.submit()>

<?php

foreach ($yy as $y_) {

if ($year==$y_) echo '<option value=$y_ selected=selected>$y_';

else echo ' <option value=$y_>$y_';

}

?>

</select>

год

</form></h3>

<ul><li><a href=index.php?ch=1>Statistic on all users</a></li></ul>

<ul><?php echo '

<li><a

href=index.php?checkedip=$checkedip&funk=print_month_inet&month=$

month&year=$year>Загрузка из Интернет за месяц</a>

<li><a

href=index.php?checkedip=$checkedip&funk=print_day_inet&month=$mo

nth&year=$year>Загрузка из Интернет по дням</a>

<li><a

href=index.php?checkedip=$checkedip&funk=print_day_inet_upload&mont

h=$month&year=$year>Отгрузка в Интернет по дням</a>

<li><a

href=index.php?checkedip=$checkedip&funk=print_inet&month=$month&

year=$year&lim=0>Посещения Интернет</a>

</ul>

<ul>

<li><a href=lans.php> Локальные сети</a>

<li><a href=users.php> Пользователи</a>

</ul>

<ul>

<li><a href=exit.php align=left>Выход</a></li>

</ul>

';

echo'<h3><font color=yellow>:: $now ::</font></form></h3>';

include ('calendar.php'); ?>

<td align=left valign=top>

<?php

if ($funk == 'print_time' || $funk == 'print_time_upload' ||

$funk=='print_inet' || $funk =='print_lan') {$funk ($year,$month,$lim);}

else

if ($_GET['ch']==1) all();

else $funk ($year,$month);

mysql_close ();

?>

</table>

</td>

</tr>

<tr><td colspan=2>

&nbsp;<br>

<p align='right'><font size='4'><?php echo '<b>Тех. поддержка:

sysadmin@arscraft.ru</b>';?>

</td>

</tr>

</table>

</body>

</html>

ref.by 2006—2025
contextus@mail.ru