Установка snort для windows

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Курс по сетям

Зачем нужен Shodan, когда есть Google?

Что такое IPS, IDS, UTM?

Как установить все устройства для этичного хакинга в Kali Linux

Обеспечение безопасности доменной инфраструктуры

Способы защиты персональных данных

Интересное про Private VLAN

Зачем нужен Shodan, когда есть Google?

Еженедельный дайджест

Установка и настройка утилиты для обнаружения вторжений в сети – Snort

Хрюн в поисках вторжений

10 минут чтения

Snort — утилита для обнаружения вторжений в сети (IDS — Intrusion Detection System). Она совместима с ОС Windows и Linux. Все выявленные угрозы (список параметров подачи тревоги имеет тонкие настройки), записываются в лог-файл. Snort работает по принципу анализа пакетов транспортного уровня, поэтому для его использования, требуется перевод сетевой карты в специальный мониторный режим. Разработчики учитывали проблему потребления системных ресурсов системами класса IDS, поэтому Snort нетребовательна к железу и работает в фоновом режиме.

Обучайся в Merion Academy

Пройди курс по сетевым технологиям

Начать

Snort не имеет графической оболочки (GUI), в связи с чем любая работа с программой возможна только посредством командной строки. Ничего сложного здесь нет, и в этой статье мы подробно рассмотрим процесс установки и настройки Snort на Windows и на Linux. На различных дистрибутивах она устанавливается примерно одинаково за небольшой разницей в указании путей папок в командах и других мелочах.

Пошаговая инструкция для Windows

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

Нажимаем Get Started.

Открывается окно с текстовыми командами, там выбираем в верхних вкладках нашу операционную систему (в данном случае Windows) и загружаем файл загрузчика (Installer.exe).

Устанавливаем его в режиме «прощелкивания», то есть, ни снимая никакие флажки, поставленные разработчиком по умолчанию.

Установка вспомогательных утилит

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

В завершающем окне Snort для Windows попросит вас установить хорошо известную сетевым администраторам утилиту Winpcap. Это драйвер, который позволит вашей сетевой карте перейти в мониторный режим, то есть передавать и получать пакеты, обходя стеки протоколов. Данная утилита тоже бесплатная, поэтому ее скачиваем с сайта разработчика www.winpcap.org и также устанавливаем в режиме «прощелкивания».

Вторая вспомогательная утилита — специальный архиватор с высокой степенью сжатия, который нужен, чтобы распаковать файлы. Скачиваем и устанавливаем архиватор 7-Zip с официального сайта 7-zip.org.

Итак, установщик загружен и установлен, вспомогательные утилиты тоже поставлены. Но поскольку, графической оболочки нет, нам надо загрузить специальные правила, по которым Snort будет работать. Возвращаемся на официальный сайт Snort.org и нажимаем на кнопку «Rules» (правила). Из открывшегося списка берем файл, список правил (rules), соответствующий нашей версии (они рассортированы по версиям Snort, а не по операционным системам). На начало 2020 г. для Windows актуальна версия 2.9.15.1, которую мы инсталлируем и настроим в качестве примера.

Для Linux есть и более новая версия Snort 3.0.

Скачанный файл правил (называется community-rules.tar.gz) находим в папке и открываем с помощью только что установленного архиватора 7-zip. Интерфейс этого архиватора очень похож на WinRar или WinZip.

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

Теперь находим и открываем файл snort.conf (параметры конфигурации для запуска приложения) в NotePad++ или другом текстовом редакторе.

Где-то на 103 строчке (она может немного отличаться по мере того, как разработчик вносит изменения в обновления) находим, установленную разработчиком по умолчанию строчку, указатель пути: c:\snort\rules. Она совпадает с расположением файла на нашей машине. Если у вас путь другой, то припишите именно его. Там, где надо редактировать пути, разработчик ставит две точки.

Читайте также:  Ubuntu оформление под mac os

Теперь нам надо указать путь для папки Log-файлов, куда наш Snort будет записывать все логи, доступные для просмотра и изучения. Редактируем пути к лог-файлам.

В папке C:/snort уже есть папка log, для этого предназначенная, поэтому мы прописываем путь C:\snort\log.

На строчке 182 прописываем в config logdir: c:\snort\log, причем первая часть config logdir уже есть и строку можно найти по ней. Незабываем удалить символ «#», который выбрасывает строки из исполняемого файла, превращая их в комментарий. Результат:

Дальнейшее редактирование файла конфигурации проводим по списку по ссылке. Ищем по первой части строк и прописываем правильные пути. Я просто заменил строки 242-249 на этот блок.

Продолжаем редактирование. Теперь комментируем, добавляя знаки комментария «#» к строкам 259-265. В отредактированном варианте это выглядит так:

1.Редактирум пути к правилам правил Snort

# such as: c:\snort\rules

var RULE_PATH c:\Snort\rules

var SO_RULE_PATH c:\Snort\so_rules

var PREPROC_RULE_PATH c:\Snort\preproc_rules

# If you are using reputation preprocessor set these

var WHITE_LIST_PATH c:\Snort\rules

var BLACK_LIST_PATH c:\Snort\rules

2.Прописываем путь к папке лог

config logdir: c:\Snort\log

3. Редактируем пути для libraries

5. Иправляем пути правил

6.Определяем сетевую карту snort -W

7. Тестируем конфиг snort -T -c c:\snort\etc\snort.conf -l c:\snort\log -i 2

  • ключ -T указывает, что нужно протестировать текущую конфигурацию Snort
  • ключ означает, что включен режим IDS
  • далее следует путь к конфигурационному файлу snort.conf
  • ключ -l включает режим записи на жесткий диск с указанием пути к файлу
  • ключ -A показывает что все предупрежления(alerts) будут дублтроваться выводом на консоль
  • ключ -i указывает на порядковый номер(index) интересующего нас интерфейса

7. Чтобы узнать поддерживаемые интерфейсы необходимо выполнить команду:

8. Добавляем нужные вам правила

9. Запускаем Режим IDS: snort -A console -c c:\snort\etc\snort.conf -l c:\snort\log -i 2

Краткое содержание данной инструкции:

  • исправление ошибок в файле конфигурации (в новых версиях почти не требуется, см инструкцию на сайте разработчика);
  • указание пути правил (rules);
  • указание нужных правил из каталога;
  • добавление корректных данных сетевой карты;
  • указание Log-папки на жестком диске;

Указание правил идет на собственном простом языке. Выучивать его не нужно, так как правила берутся из списка правил. Завершающий этап настройки — определение сетевой карты из командной строки. После этого Snort запустится (из папки Bin файл с расширением .exe). Пример запуска (выдается ошибка — не задан препроцессор):

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

Нормально установленный и запущенный Snort (IDS консоль) на Windows выглядит вот так (открыт с помощью Internet Explorer, но для примера указана очень старая версия 2004 года):

Установка Snort на Linux дистрибутивах

Поскольку, Snort изначально разрабатывался на Linux его установка там значительно проще, так как он изначально предназначен для этого семейства ОС. Открываем терминал, и набираем первую команду, которая начнет загрузку файлов Snort с официального сервера:

Поскольку файлы скачиваются в заархивированном виде, то используем команду «tar», чтобы запустить встроенный архиватор и разархивировать только что скаченные файлы с его помощью.

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

Проверяем, где установился Snort командой:

Для управления Snort используются нетипичные символы в командах, но не стоит этого пугаться, так как самих команд немного. Сам Snort состоит из трех основных программных модулей.

  1. Дешифратор сетевых пакетов: после перевода сетевой карты в мониторный режим из общего трафика, который имеет весьма значительный объем, необходимо выкачать «транспортные» данные, то есть сведения об адресах. Именно за счет этих данных легко обнаруживаются вторжения.
  2. Система обнаружения вторжения: на основе дешифрованных пакетов в соответствии с rules (правилами).
  3. Logger/Alerter: конвертирует информацию с дешифрованных транспортных пакетов в удобный вид, для него указывается папка для хранения фалов регистрации :/var/log/Snort (логи сервера).

Мониторинг с помощью Snort

Итак, на Windows или на Linux сначала открываем окно (через терминал, или exe файл из папки GUI). Введем первую команду, чтобы получить справку, отобразить список всех основных команд (имя компьютера, Someone, замените на ваше):

На экране отобразится список:

С помощью команд из этого списка программу можно перевести в один из трех режимов работы, рассмотренных ниже.

Сниффер пакетов

Функция аналогичная многим известным снифферам, например WireShark. Пакеты дешифруются и выводятся на экран (заголовки пакетов). Режим очень удобно использовать для проверки правильности указания IP-адресов и всех настроек программы. Для запуска сниффера введите:

Сниффер с записью

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

Читайте также:  Внешний gps для windows

Системы обнаружения вторжений

Требования для использования Snort в Windows

Snort для Windows требует Windows 2000 или XP; на NT, 98 или 95 выполнение невозможно. Необходимы также установленные библиотеки WinPcap. Если они были установлены для программ, описанных ранее в этой книге, таких как Ethereal или WinDump, тогда все готово. В противном случае можно взять их по адресу

Вам может также потребоваться база данных MySQL , если вы планируете импортировать результаты в базу данных. Конкретная конфигурация MySQL для этой цели описана в «Средства анализа и управления» .

Для того чтобы Snort для Windows демонстрировал ту же производительность, что и UNIX-версия, понадобится более мощная аппаратура,. Машина с процессором 700 МГц — это минимум, но лучше использовать процессор с частотой 1 ГГц и выше. Необходимо также убедиться, что сервер Windows хорошо защищен, на нем выполняется минимум сервисов и удалены программы, активно использующие процессор, такие как IIS. Воспользуйтесь окном Services из Administrative tools Панели управления, чтобы проверить, не запускается ли что-нибудь лишнее.

Установка Snort для Windows

Чтобы установить Snort для Windows, возьмите бинарный файл с прилагаемого к книге компакт-диска или с сайта http://www.snort.org. Сделайте на нем двойной щелчок мышью, и он автоматически установится. Вас спросят, нужна ли вам определенная база данных или дополнительные модули, такие как модуль гибкого реагирования.

Настройка Snort для Windows

Процесс настройки версии Snort для Windows весьма схож с настройкой для UNIX. Все файлы конфигурации и правил находятся в тех же относительных подкаталогах. Войдите в файл snort.conf в подкаталоге etc установки Snort. Измените и отредактируйте его, как предложено в разделе о UNIX-версии. Затем перейдите в файлы правил и произведите изменения там. После этого все будет готово к запуску Snort. Обратитесь к разделу «Запуск Snort» для UNIX, чтобы получить дополнительную информацию о применении Snort для Windows, так как все команды такие же. Дополнительные настройки и рекомендации по размещению — те же, что и для исходной UNIX-версии.

Уголок кодировщиков Флэми Теха

Написание индивидуальных правил Snort

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

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

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

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

Заголовок является частью перед первой скобкой. Данная инструкция содержит действие (в нашем случае — alert), протокол, а также адреса и порты отправителя и получателя. Действие будет выполняться, если заданное правилом условие истинно. В данном случае будет порождаться сигнал тревоги (alert). Другими вариантами действий служат Log, Pass , Activate и Dynamic.

Log Просто протоколирует пакеты
Pass Игнорирует пакет. Это подразумеваемое действие для пакетов, не соответствующих правилу.
Activate Сигнал тревоги, затем активация динамического правила.
Dynamic Остается пассивным, пока не активируется динамическим правилом, затем действует как log.

Протоколами могут быть tcp, udp , icmp или ip, что означает любой IP-протокол. (В будущем могут поддерживаться протоколы не на основе IP, такие как IPX ). Исходный и целевой порты самоочевидны. Исходный адрес идет первым и задается в стандартной нотации с косой чертой для IP-диапазона. Можно также перечислить несколько индивидуальных адресов и сетей, разделяя их запятой без пробелов и заключая в квадратные скобки, например: alert tcp any msg : «Test Alert»;)

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

Второй частью правила Snort служат опции, задающие дополнительные детали выявляемого трафика. Можно искать по набору полей в заголовке TCP/IP (см. описания в «Сетевые анализаторы» ) или по полезной нагрузке пакета. За каждой опцией должны следовать кавычки и разыскиваемое значение. Можно добавить несколько опций, разделяя их с помощью точки с запятой. Ниже приведены допустимые опции.

Читайте также:  Базовые знания по линукс
msg Предоставляет текстовое описание сигнала тревоги
logto Записывает пакет в заданный пользователем файл вместо стандартного выходного файла
ttl Проверяет значение поля TTL в заголовке IP
tos Проверяет значение поля TOS в заголовке IP
id Сравнивает значение поля идентификатора фрагмента в заголовке IP с указанной величиной
ipoption Ищет поля опций IP с определенными кодами
fragbits Проверяет биты фрагментации в заголовке IP
dsize Сравнивает размер полезной нагрузки пакета с указанным значением
flags Проверяет флаги TCP на соответствие определенным значениям
seq Сравнивает поле порядкового номера TCP с определенным значением
ack Проверяет поле подтверждения TCP на соответствие определенному значению
itype Проверяет поле типа ICMP на соответствие определенному значению
icode Проверяет поле кода ICMP на соответствие определенному значению
icmp_id Проверяет поле ECHO ID ICMP на соответствие определенному значению.
icmp_seq Проверяет порядковый номер ECHO ICMP на соответствие определенному значению
content Ищет определенный шаблон в полезной нагрузке пакета
content-list Ищет определенный набор шаблонов в полезной нагрузке пакета
offset Модификатор для опции содержимого. Задает смещение для начала сопоставления с образцом
depth Модификатор для опции содержимого. Устанавливает максимальную глубину поиска при сопоставлении с образцом
nocase Сравнивает предыдущую цепочку содержимого без учета регистра символов
session Вывод информации прикладного уровня для данного сеанса
rpc Следит за сервисами RPC для выявления определенных вызовов приложений/процедур
resp Активный ответ. Закрывает соединение (например, разрывая его)
react Активный ответ. Отвечает запрограммированным поведением (например, блокированием определенных Web-сайтов)
reference Идентификаторы ссылок на внешние атаки
sid Идентификатор правила Snort
rev Номер версии правила
classtype Классификационный идентификатор правила
priority Идентификатор уровня серьезности правила
uricontent Сопоставление с образцом в части URI пакета
tag Дополнительные действия по протоколированию для правил
ip_proto Значение протокола в заголовке IP
sameip Определяет, не равны ли исходный и целевой IP-адреса
stateless Применимо независимо от состояния потока
regex Сопоставление с образцом с применением метасимволов
byte_test Числовое сравнение
distance Заставляет при относительном сопоставлении с образцом пропустить в пакете определенное число байт
byte_test Числовое сопоставление с образцом
byte_jump Числовое сопоставление с образцом и корректировка смещения

Более подробную информацию о каждой из опций правил можно получить в оперативной справке. Ниже представлены несколько примеров применения этих опций для создания индивидуальных правил Snort

Пример 1 индивидуального правила

Предположим, имеется набор бухгалтерских серверов, доступ к которым может осуществляться только из внутренней сети . Можно написать правило Snort, реагирующее на трафик, идущий с любого не принадлежащего вашей сети IP-адреса и направленный на эти серверы. Пусть бухгалтерские серверы имеют IP-адреса 192.168.1.10, 192.168.1.11 и 192.168.1.12, а ваша внутренняя сеть — адреса 192.168.2.0/24. Тогда правило будет выглядеть примерно так:

Знак операции ! (восклицательный знак) обозначает логическое отрицание . Смысл правила в том, чтобы выдать сигнал тревоги при обнаружении TCP-трафика, идущего не из сети 192.168.1.0/24 и направленного на указанные серверы. Не задается никаких опций, кроме msg — метки, появляющейся в журналах сигналов. Дело в том, что нас интересует любой трафик на любой порт. Будет отмечено любое обращение к бухгалтерским серверам, исходящее из внешнего мира, так как предполагается, что любой внешний трафик к этим серверам должен считаться вредоносным.

Пример 2 индивидуального правила

Опираясь на сценарий из примера 1, предположим, что следует разрешить некоторый внешний доступ к бухгалтерским серверам, но, тем не менее, гарантировать, что никто не скопирует определенные файлы. Предположим, что имеется файл с именем payroll.xls, который содержит все данные о зарплате (совершенно секретный файл, как внутри, так и вне организации). Можно написать правило, которое проследит за любым трафиком, внутренним или внешним, направленным на эти серверы и содержащим имя секретного файла. Это можно сделать с помощью опции content, осуществляющей поиск в реальном содержимом пакетов. Правило будет выглядеть примерно так:

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

С помощью других опций можно писать правила для выявления трафика практически любого вида. Если ваши правила могут представлять интерес для других организаций, стоит послать их разработчикам Snort для вставки в официальный набор распространяемых правил. Если вы решите это сделать, постарайтесь использовать все средства документирования , такие как msg , sid , rev , classtype и priority . Также тщательно протестируйте свои правила, чтобы гарантировать, что они действительно охватывают все виды активности, которую вы пытаетесь поймать, и не дают ложных срабатываний.

Оцените статью