Suricata is an intrusion detection and prevention system. This tool introduces itself as a complete ecosystem for security monitoring. One of the most important features of Suricata compared to other tools is that it works up to the application layer. This allows Suricata to identify risks that other tools may ignore because they are split into multiple packages. In this article, we are going to teach you How to Install Suricata on Windows 10 RDP. It should be noted that you can visit the packages available in Eldernode if you want to buy a Windows VPS server.
Suricata functionality is not limited to the application layer. It also works at lower levels and protocols such as TLS, ICMP, TCP, and UDP. Suricata also examines HTTP, FTP, and SMB protocols to find hidden intrusion attempts in the form of unusual requests. It should note that Suricata also uses the ability to extract files so that administrators can check for suspicious files.
Note that the Suricata is very cleverly designed and distributes its workload across multiple processor cores and chips to achieve the best performance. It also transfers some of its workloads to the graphics card, which is a great feature for servers.
In the rest of this article, join us to explain step by step how to Install Suricata on Windows 10 RDP.
Install Suricata on Windows 10 RDP Server
In this section, we will discuss how to Install Suricata on Windows 10 RDP. To do this, please follow the steps below in order. The first step is to download Suricata for Windows.
In the window that opens, click on Run.
Then click Next.
Check I accept… and click Next to accept the license agreement.
In the next step, you can choose the method you want to install. Then click Next.
Click Install.
*
Finally, you have to click on Finish.
Once you have successfully installed Suricata, you should now create a folder with your configurations, rules, and test captures. Note that this folder is C:Suricata. You need to create a folder log, rules, and projects in that folder.
In the Rules folder, you must copy the contents of the Rules folder to the Suricata program’s directory.
Threshold.config is an empty file.
suricata.yaml is a copy of suricata.yaml found in the Suricata application list.
Note: You can find the modifications I make to suricata.yaml on GitHub.
In the next step, for each project or test, you should create a folder in folder projects. Like this mimikatz folder:
Here, we use the following BAT file to start Suricata with our rules and capture file:
C:Program Files (x86)Suricatasuricata.exe” -c ....suricata.yaml -S mimikatz.rules -l logs -k none -v -r drsuapi-DsGetNCChanges.pcap pause
1. With option -S we can use our rule file mimikatz.rules (exclusively, no other rule file will be loaded).
2. Option -l logs uses our local logs directory to write the log files.
3. -k none disable checksum checks.
4. -v means verbose.
5. -r .pcap reads our capture file for processing by Suricata.
The important point is that if you encounter an error message like the one below, you should follow the steps below.
How to Install WinPcap on Windows 10
Visit the WinPcap website and download it. Then go to the place where you downloaded the file and double click on it.
In the window that opens, click Next.
Then click on I Agree to confirm the license agreement.
Click Install to start installing WinPcap.
Finally, click on Finish.
How to Run Suricata on Windows 10 Server
Note that you can download the rules from Emerging Threats. Then extract the files from the rules folder to the C:Suricatarules folder.
You can process your capture file without explicit rule such as the image below:
Conclusion
Suricata is an open-source intrusion detection engine developed by OISF. The Beta version was released in late 2009 and the standard version was released in mid-2010. This engine can be used as an intrusion detection system (IDS), intrusion prevention system (IPS), or as a network security monitor. Suricata monitors network traffic using an extensive set of rules and signature language. In this article, we tried to teach you to step by step how to Install Suricata on Windows 10 RDP.
NOTE —
2020-04-29 edit
—-
Before installing Suricata on windows, install this prerequisite. Newer npcap versions may not work.
https://nmap.org/npcap/dist/npcap-0.992.exe
—-
Suricata installation (and/or compilation from scratch) can be found here:
https://redmine.openinfosecfoundation.org/projects/suricata/files
also a windows binary — self extracting auto install package is available here:
http://www.openinfosecfoundation.org/index.php/download-suricata
2020-04-29 edit
—-
Note In order to avoid errors like this: «The logging directory C:\Program Files\Suricata/log supplied by suricata.yaml doesn’t exist. (note this orphan «/») Consider installing into this directory C:Suricata and not into C:Program FilesSuricata.
—-
Preparing the build environment¶
The instructions below should be followed in the order they appear. If your configuration requires unique actions to compile the package and/or you significantly modify the configure shell script, please e-mail the details of your requirements and/or solution to bugreports@openinfosecfoundation.org.
Set up MinGW environment from http://mingw.org/
Do not use the automatic installer, as it is deprecated. Instead, manually unpack the following packages to c:mingw (you may use newer versions if you prefer):
* binutils o binutils-2.20-1-mingw32-bin.tar.gz * mingw-runtime (dev and dll) o mingwrt-3.17-mingw32-dll.tar.gz o mingwrt-3.17-mingw32-dev.tar.gz * w32api o w32api-3.14-mingw32-dev.tar.gz * Required runtime libraries for GCC (gmp, libiconv, MPFR and pthreads) o gmp-4.2.4-mingw32-dll.tar.gz o libiconv-1.13.1-1-mingw32-dll-2.tar.lzma o mpfr-2.4.1-mingw32-dll.tar.gz o pthreads-w32-2.8.0-mingw32-dll.tar.gz * gcc-core (bin and dll) o gcc-core-4.4.0-mingw32-bin.tar.gz o gcc-core-4.4.0-mingw32-dll.tar.gz * make o make-3.81-20090914-mingw32-bin.tar.gz * zlib o libz-1.2.3-1-mingw32-dll-1.tar.gz + libz-1.2.3-1-mingw32-dev.tar.gz
Download MSYS¶
Get MSYS from http://sourceforge.net/projects/mingw/files/ and install
MSYS-1.0.11.exe (MSYS Base System) msysDTK-1.0.1.exe (MSYS Suplementary Tools) autoconf-2.63-1-msys-1.0.11-bin.tar.lzma automake-1.11-1-msys-1.0.11-bin.tar.lzma libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
MSYS will ask the following questions during installation.
Accept Post Install: [y] MinGW Installed? : [y] path to MinGW: [c:/MinGW]
Download pkg-config¶
Install pkg-config taken from http://wiki.videolan.org/Win32CompileMSYSNew#PKG-CONFIG
Download and extract the following into c:Msys1.0
http://ftp.gnome.org/pub/GNOME/binaries/win32/glib/2.18/glib_2.18.2-1_win32.zip ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip
Set PKG_CONFIG_PATH=/win32/lib/pkgconfig
(e.g. by adding the Windows environment variable PKG_CONFIG_PATH in «Control Panel»->»System»->»Advanced System Settings»->»Environment Variables» and setting the value to /win32/lib/pkgconfig)
Download Git sources¶
Get Git sources from http://code.google.com/p/msysgit/
Unpack to /msys/1.0
Remember to edit ~/.gitconfig to set your username
Download libpcre¶
Get libpcre from http://www.pcre.org/
./configure --enable-utf8 --disable-cpp --prefix=/mingw make make install
Download libyaml¶
Download libyaml from http://pyyaml.org/wiki/LibYAML
Though libyaml does not support mingw compilation, it does work in static mode.
./configure --prefix=/mingw CFLAGS="-DYAML_DECLARE_STATIC" make make install
Download libpcap¶
Download the developer pack from http://www.winpcap.org/devel.htm
To have the driver in the system, download and install a corresponding installer package from http://www.winpcap.org/install/default.htm
Copy includes to c:/mingw/include and libs (.a) to c:/mingw/lib
Rename libwpcap.a to libpcap.a
Get and compile Suricata¶
git clone git://phalanx.openinfosecfoundation.org/oisf.git cd oisf
Because of an autotools port bug, you will need to do the following:
dos2unix.exe libhtp/configure.ac dos2unix.exe libhtp/htp.pc.in dos2unix.exe libhtp/Makefile.am ./autogen.sh ./configure CFLAGS="-DYAML_DECLARE_STATIC"
Add —enable-nfqueue as a configurable parameter to enable inline mode.
make
If the full installation is successful, suricata.exe will be located in src/.lib. To test your build, you will need libpcre-0.dll, libz-1.dll, and pthreadGC2.dll, all of which should already be installed under c:/mingw or c:/msys.
preparing the runtime environment.
To prepare the runtime environment, you must copy the executable and DLLs to a dedicated directory. Get the classification.config and suricata.yaml, and then edit suricata.yaml to ensure the directories are correctly identified.
pcap mode
If you have not already done so, install winpcap runtime and its driver. Then, determine your eth device UUID in the registry:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces suricata.exe -c suricata.yaml -i device
In the example above, device should be replaced with your device uuid.
Inline mode¶
To operate in inline mode, you must download, compile and install netfilterforwin, which is the netfilter.sys driver and Windows port of the libnetfilter_queue library.
Download and install the Windows Driver Kit from Microsoft
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff
Download netfilterforwin from http://sourceforge.net/projects/netfilterforwin/
Unpack it so the netfilterforwin directory is beside the oisf directory. You must omit the version from its name.
Compile the driver
Open the correct build environment from your Start menu
Start > All Programs > Windows Driver Kits > WDK xxxx.yyyy.z > Build Environments > Windows Server 2003 > x86 Free Build Environment
At your command line prompt, enter the following:
cd netfilterforwin/netfilter nmake
Install the driver
Copy inf/* files and the freshly built netfilter.sys to a separate directory, and then open the network connections.
Right-click an interface, then select Properties
Click install…
Select Service
Click Add
Click Have disk…
Browse to the directory with the inf files and netfilter.sys, select netfilter.inf, and then click Ok.
Confirm everything
The driver is now installed.
Run Suricata in inline mode
suricata.exe -c suricata.yaml -q 0
Если верить статистике, объем сетевого трафика увеличивается примерно на 50% каждый год. Это приводит к росту нагрузки на оборудование и, в частности, повышает требования к производительности IDS/IPS. Можно покупать дорогостоящее специализированное железо, но есть вариант подешевле — внедрение одной из систем с открытым исходным кодом. Многие начинающие администраторы считают, будто установить и сконфигурировать бесплатную IPS довольно сложно. В случае с Suricata это не совсем верно — поставить и ее и начать отражать типовые атаки с набором бесплатных правил можно за несколько минут.
Snort или Suricata. Часть 1: выбираем бесплатную IDS/IPS для защиты корпоративной сети
Зачем нужна еще одна открытая IPS?
Долгое время считавшаяся стандартом система Snort разрабатывается с конца девяностых, поэтому изначально она была однопоточной. За долгие годы в ней появились все современные фишки, вроде поддержки IPv6, возможности анализа протоколов прикладного уровня или универсальный модуль доступа к данным.
Базовый движок Snort 2.X научился работать с несколькими ядрами, но так и остался однопоточным и потому не может оптимально использовать преимущества современных аппаратных платформ.
Проблема была решена в третьей версии системы, но ее готовили так долго, что на рынке успела появиться написанная с нуля Suricata. В 2009 году ее начали разрабатывать именно как многопоточную альтернативу Snort, обладающую из коробки функциями IPS. Код распространяется под лицензией GPLv2, но финансовые партнеры проекта имеют доступ к закрытой версии движка. Некоторые проблемы с масштабируемостью в первых версиях системы возникали, но они довольно быстро были решены.
Почему Suricata?
В Suricata есть нескольких модулей (как и в Snort): захвата, сбора, декодирования, обнаружения и вывода. По умолчанию захваченный трафик идет до декодирования одним потоком, хотя это больше нагружает систему. При необходимости потоки можно разделить в настройках и распределить по процессорам — Suricata очень хорошо оптимизируется под конкретное железо, хотя это уже не уровень HOWTO для начинающих. Стоит также отметить наличие в Suricata основанных на библиотеке HTP продвинутых средств инспектирования HTTP. Они же могут быть использованы для протоколирование трафика без детектирования. Система также поддерживает декодирование IPv6, включая туннели IPv4-in-IPv6, IPv6-in-IPv6 и другие.
Для перехвата трафика могут использоваться разные интерфейсы (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), а в режиме Unix Socket можно автоматически анализировать захваченные другим сниффером файлы PCAP. Кроме того, модульная архитектура Suricata упрощает подключение новых элементов для захвата, декодирования, анализа и обработки сетевых пакетов. Важно также отметить, что в Suricata блокировка трафика осуществляется средствами штатного фильтра операционной системы. В GNU/Linux доступно два варианта работы IPS: через очередь NFQUEUE (режим NFQ) и через zero copy (режим AF_PACKET). В случае первом случае попадающий в iptables пакет направляется в очередь NFQUEUE, где может обрабатываться на пользовательском уровне. Suricata прогоняет его по своим правилам и выносит один из трех вердиктов: NF_ACCEPT, NF_DROP и NF_REPEAT. Первые два пояснений не требуют, а последний позволяет промаркировать пакеты и отправить их в начало текущей таблицы iptables. Режим AF_PACKET отличается более высоким быстродействием, но накладывает на систему ряд ограничений: она должна иметь два сетевых интерфейса и работать в качестве шлюза. Заблокированный пакет просто не пересылается на второй интерфейс.
Важная фишка Suricata — возможность использования наработок для Snort. Администратору доступны, в частности, наборы правил Sourcefire VRT и OpenSource Emerging Threats, а также коммерческие Emerging Threats Pro. Унифицированный вывод можно анализировать с помощью популярных бэкендов, также поддерживается вывод в PCAP и Syslog. Настройки системы и правила хранятся в файлах формата YAML, который легко читается и может обрабатываться автоматически. Движок Suricata распознает множество протоколов, поэтому в правилах нет необходимости привязываться к номеру порта. Кроме того в правилах Suricata активно практикуется концепция flowbits. Для отслеживания срабатывания используются переменные сессии, позволяющие создавать и применять различные счетчики и флаги. Многие IDS рассматривают разные TCP-соединения как отдельные сущности и могут не увидеть связи между ними, свидетельствующей о начале атаки. Suricata старается видеть картину целиком и во многих случаях распознает распределенный по разным соединениям вредоносный трафик. О ее преимуществах можно рассуждать долго, мы лучше перейдем к установке и настройке.
Как установить?
Мы будем устанавливать Suricata на виртуальный сервер, работающий под управлением Ubuntu 18.04 LTS. Все команды необходимо выполнять от имени суперпользователя (root). Наиболее безопасный вариант — подключиться к серверу по SSH с правами обычного пользователя, а затем применить утилиту sudo для повышения привилегий. Для начала необходимо установить пакеты, которые нам понадобятся:
sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https
Подключаем внешний репозиторий:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
Устанавливаем последнюю стабильную версию Suricata:
sudo apt-get install suricata
При необходимости правим конфигурационные файлы имя, заменив использующийся по умолчанию eth0 на фактическое имя внешнего интерфейса сервера. Настройки по умолчанию хранятся в файле /etc/default/suricata, а пользовательские — в /etc/suricata/suricata.yaml. Настройка IDS по большей части ограничивается правкой этого конфигурационного файла. В нем множество параметров, которые по названию и назначению совпадают с аналогами из Snort. Синтаксис тем не менее совершенно другой, но файл читать намного проще чем конфиги Snort, к тому же он хорошо прокомментирован.
sudo nano /etc/default/suricata
и
sudo nano /etc/suricata/suricata.yaml
Внимание! Перед запуском стоит проверить значения переменных из раздела vars.
Чтобы завершить настройку потребуется установить suricata-update для обновления и загрузки правил. Сделать это довольно просто:
sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update
Дальше нам нужно запустить команду suricata-update для установки набора правил Emerging Threats Open:
sudo suricata-update
Для просмотра списка источников правил выполняем следующую команду:
sudo suricata-update list-sources
Обновляем источники правил:
sudo suricata-update update-sources
Повторно просматриваем обновленные источники:
sudo suricata-update list-sources
При необходимости можно включить доступные бесплатные источники:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist
После этого необходимо еще раз обновить правила:
sudo suricata-update
На этом установку и первичную настройку Suricata в Ubuntu 18.04 LTS можно считать законченной. Дальше начинается самое интересное: в следующей статье мы подключим виртуальный сервер к офисной сети через VPN и начнем анализировать весь входящий и исходящий трафик. Особое внимание уделим блокированию атак DDoS, активности вредоносного ПО и попыткам эксплуатации уязвимостей в доступных из сетей общего пользования сервисов. Для наглядности будут смоделированы атаки наиболее распространенных типов.
Содержание
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Курс по сетям
- Зачем нужен Shodan, когда есть Google?
- Что такое IPS, IDS, UTM?
- Как установить все устройства для этичного хакинга в Kali Linux
- Программные средства для построения межсетевого экрана
- Интересное про Private VLAN
- Phishing. Способы защиты от мошенников
- Криптография | Обмен ключами
- Установка и настройка утилиты для обнаружения вторжений в сети – Snort
- Пошаговая инструкция для Windows
- Установка вспомогательных утилит
- Краткое содержание данной инструкции:
- Установка Snort на Linux дистрибутивах
- Мониторинг с помощью Snort
- Сниффер пакетов
- Сниффер с записью
- Snort или Suricata. Часть 2: установка и первичная настройка Suricata
- Зачем нужна еще одна открытая IPS?
- Почему Suricata?
- Как установить?
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Курс по сетям
Зачем нужен Shodan, когда есть Google?
Что такое IPS, IDS, UTM?
Как установить все устройства для этичного хакинга в Kali Linux
Программные средства для построения межсетевого экрана
Интересное про Private VLAN
Phishing. Способы защиты от мошенников
Криптография | Обмен ключами
Еженедельный дайджест
Установка и настройка утилиты для обнаружения вторжений в сети – 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:snortrules. Она совпадает с расположением файла на нашей машине. Если у вас путь другой, то припишите именно его. Там, где надо редактировать пути, разработчик ставит две точки.
Теперь нам надо указать путь для папки Log-файлов, куда наш Snort будет записывать все логи, доступные для просмотра и изучения. Редактируем пути к лог-файлам.
В папке C:/snort уже есть папка log, для этого предназначенная, поэтому мы прописываем путь C:snortlog.
На строчке 182 прописываем в config logdir: c:snortlog, причем первая часть config logdir уже есть и строку можно найти по ней. Незабываем удалить символ «#», который выбрасывает строки из исполняемого файла, превращая их в комментарий. Результат:
Дальнейшее редактирование файла конфигурации проводим по списку по ссылке. Ищем по первой части строк и прописываем правильные пути. Я просто заменил строки 242-249 на этот блок.
Продолжаем редактирование. Теперь комментируем, добавляя знаки комментария «#» к строкам 259-265. В отредактированном варианте это выглядит так:
1.Редактирум пути к правилам правил Snort
# such as: c:snortrules
var RULE_PATH c:Snortrules
var SO_RULE_PATH c:Snortso_rules
var PREPROC_RULE_PATH c:Snortpreproc_rules
# If you are using reputation preprocessor set these
var WHITE_LIST_PATH c:Snortrules
var BLACK_LIST_PATH c:Snortrules
2.Прописываем путь к папке лог
config logdir: c:Snortlog
3. Редактируем пути для libraries
5. Иправляем пути правил
6.Определяем сетевую карту snort -W
7. Тестируем конфиг snort -T -c c:snortetcsnort.conf -l c:snortlog -i 2
- ключ -T указывает, что нужно протестировать текущую конфигурацию Snort
- ключ -с означает, что включен режим IDS
- далее следует путь к конфигурационному файлу snort.conf
- ключ -l включает режим записи на жесткий диск с указанием пути к файлу
- ключ -A показывает что все предупрежления(alerts) будут дублтроваться выводом на консоль
- ключ -i указывает на порядковый номер(index) интересующего нас интерфейса
7. Чтобы узнать поддерживаемые интерфейсы необходимо выполнить команду:
8. Добавляем нужные вам правила
9. Запускаем Режим IDS: snort -A console -c c:snortetcsnort.conf -l c:snortlog -i 2
Краткое содержание данной инструкции:
- исправление ошибок в файле конфигурации (в новых версиях почти не требуется, см инструкцию на сайте разработчика);
- указание пути правил (rules);
- указание нужных правил из каталога;
- добавление корректных данных сетевой карты;
- указание Log-папки на жестком диске;
Указание правил идет на собственном простом языке. Выучивать его не нужно, так как правила берутся из списка правил. Завершающий этап настройки — определение сетевой карты из командной строки. После этого Snort запустится (из папки Bin файл с расширением .exe). Пример запуска (выдается ошибка — не задан препроцессор):
- Внимание, данная часть руководства не является обязательной для повторения. Разработчик уже выпустил несколько вариантов новых правил Snort, где исправлены многие ошибки. В этом случае редактирование файла конфигурации исключает этап самостоятельного их исправления.
Нормально установленный и запущенный Snort (IDS консоль) на Windows выглядит вот так (открыт с помощью Internet Explorer, но для примера указана очень старая версия 2004 года):
Установка Snort на Linux дистрибутивах
Поскольку, Snort изначально разрабатывался на Linux его установка там значительно проще, так как он изначально предназначен для этого семейства ОС. Открываем терминал, и набираем первую команду, которая начнет загрузку файлов Snort с официального сервера:
Поскольку файлы скачиваются в заархивированном виде, то используем команду «tar», чтобы запустить встроенный архиватор и разархивировать только что скаченные файлы с его помощью.
На этом этапе все необходимые файлы скачаны, теперь можно приступить к настройке программы. Snort имеет тонкие настройки, позволяющие осуществлять мониторинг с минимальным потреблением сетевых ресурсов. На практике это означает значительную экономию энергии и стоимости железа при круглосуточной работе.
Проверяем, где установился Snort командой:
Для управления Snort используются нетипичные символы в командах, но не стоит этого пугаться, так как самих команд немного. Сам Snort состоит из трех основных программных модулей.
- Дешифратор сетевых пакетов: после перевода сетевой карты в мониторный режим из общего трафика, который имеет весьма значительный объем, необходимо выкачать «транспортные» данные, то есть сведения об адресах. Именно за счет этих данных легко обнаруживаются вторжения.
- Система обнаружения вторжения: на основе дешифрованных пакетов в соответствии с rules (правилами).
- Logger/Alerter: конвертирует информацию с дешифрованных транспортных пакетов в удобный вид, для него указывается папка для хранения фалов регистрации :/var/log/Snort (логи сервера).
Мониторинг с помощью Snort
Итак, на Windows или на Linux сначала открываем окно (через терминал, или exe файл из папки GUI). Введем первую команду, чтобы получить справку, отобразить список всех основных команд (имя компьютера, Someone, замените на ваше):
На экране отобразится список:
С помощью команд из этого списка программу можно перевести в один из трех режимов работы, рассмотренных ниже.
Сниффер пакетов
Функция аналогичная многим известным снифферам, например WireShark. Пакеты дешифруются и выводятся на экран (заголовки пакетов). Режим очень удобно использовать для проверки правильности указания IP-адресов и всех настроек программы. Для запуска сниффера введите:
Сниффер с записью
На экране отображаются не только заголовки пакетов, но и происходит запись содержимого на диск. Для сетей со значительным трафиком такой режим использовать невозможно ввиду огромного объема данных. Пакеты сохраняются на диске в ASCII формате. Путь папки для записи прописывается в команде.
Snort или Suricata. Часть 2: установка и первичная настройка Suricata
Если верить статистике, объем сетевого трафика увеличивается примерно на 50% каждый год. Это приводит к росту нагрузки на оборудование и, в частности, повышает требования к производительности IDS/IPS. Можно покупать дорогостоящее специализированное железо, но есть вариант подешевле — внедрение одной из систем с открытым исходным кодом. Многие начинающие администраторы считают, будто установить и сконфигурировать бесплатную IPS довольно сложно. В случае с Suricata это не совсем верно — поставить и ее и начать отражать типовые атаки с набором бесплатных правил можно за несколько минут.
Зачем нужна еще одна открытая IPS?
Долгое время считавшаяся стандартом система Snort разрабатывается с конца девяностых, поэтому изначально она была однопоточной. За долгие годы в ней появились все современные фишки, вроде поддержки IPv6, возможности анализа протоколов прикладного уровня или универсальный модуль доступа к данным.
Базовый движок Snort 2.X научился работать с несколькими ядрами, но так и остался однопоточным и потому не может оптимально использовать преимущества современных аппаратных платформ.
Проблема была решена в третьей версии системы, но ее готовили так долго, что на рынке успела появиться написанная с нуля Suricata. В 2009 году ее начали разрабатывать именно как многопоточную альтернативу Snort, обладающую из коробки функциями IPS. Код распространяется под лицензией GPLv2, но финансовые партнеры проекта имеют доступ к закрытой версии движка. Некоторые проблемы с масштабируемостью в первых версиях системы возникали, но они довольно быстро были решены.
Почему Suricata?
В Suricata есть нескольких модулей (как и в Snort): захвата, сбора, декодирования, обнаружения и вывода. По умолчанию захваченный трафик идет до декодирования одним потоком, хотя это больше нагружает систему. При необходимости потоки можно разделить в настройках и распределить по процессорам — Suricata очень хорошо оптимизируется под конкретное железо, хотя это уже не уровень HOWTO для начинающих. Стоит также отметить наличие в Suricata основанных на библиотеке HTP продвинутых средств инспектирования HTTP. Они же могут быть использованы для протоколирование трафика без детектирования. Система также поддерживает декодирование IPv6, включая туннели IPv4-in-IPv6, IPv6-in-IPv6 и другие.
Для перехвата трафика могут использоваться разные интерфейсы (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), а в режиме Unix Socket можно автоматически анализировать захваченные другим сниффером файлы PCAP. Кроме того, модульная архитектура Suricata упрощает подключение новых элементов для захвата, декодирования, анализа и обработки сетевых пакетов. Важно также отметить, что в Suricata блокировка трафика осуществляется средствами штатного фильтра операционной системы. В GNU/Linux доступно два варианта работы IPS: через очередь NFQUEUE (режим NFQ) и через zero copy (режим AF_PACKET). В случае первом случае попадающий в iptables пакет направляется в очередь NFQUEUE, где может обрабатываться на пользовательском уровне. Suricata прогоняет его по своим правилам и выносит один из трех вердиктов: NF_ACCEPT, NF_DROP и NF_REPEAT. Первые два пояснений не требуют, а последний позволяет промаркировать пакеты и отправить их в начало текущей таблицы iptables. Режим AF_PACKET отличается более высоким быстродействием, но накладывает на систему ряд ограничений: она должна иметь два сетевых интерфейса и работать в качестве шлюза. Заблокированный пакет просто не пересылается на второй интерфейс.
Важная фишка Suricata — возможность использования наработок для Snort. Администратору доступны, в частности, наборы правил Sourcefire VRT и OpenSource Emerging Threats, а также коммерческие Emerging Threats Pro. Унифицированный вывод можно анализировать с помощью популярных бэкендов, также поддерживается вывод в PCAP и Syslog. Настройки системы и правила хранятся в файлах формата YAML, который легко читается и может обрабатываться автоматически. Движок Suricata распознает множество протоколов, поэтому в правилах нет необходимости привязываться к номеру порта. Кроме того в правилах Suricata активно практикуется концепция flowbits. Для отслеживания срабатывания используются переменные сессии, позволяющие создавать и применять различные счетчики и флаги. Многие IDS рассматривают разные TCP-соединения как отдельные сущности и могут не увидеть связи между ними, свидетельствующей о начале атаки. Suricata старается видеть картину целиком и во многих случаях распознает распределенный по разным соединениям вредоносный трафик. О ее преимуществах можно рассуждать долго, мы лучше перейдем к установке и настройке.
Как установить?
Мы будем устанавливать Suricata на виртуальный сервер, работающий под управлением Ubuntu 18.04 LTS. Все команды необходимо выполнять от имени суперпользователя (root). Наиболее безопасный вариант — подключиться к серверу по SSH с правами обычного пользователя, а затем применить утилиту sudo для повышения привилегий. Для начала необходимо установить пакеты, которые нам понадобятся:
Подключаем внешний репозиторий:
Устанавливаем последнюю стабильную версию Suricata:
При необходимости правим конфигурационные файлы имя, заменив использующийся по умолчанию eth0 на фактическое имя внешнего интерфейса сервера. Настройки по умолчанию хранятся в файле /etc/default/suricata, а пользовательские — в /etc/suricata/suricata.yaml. Настройка IDS по большей части ограничивается правкой этого конфигурационного файла. В нем множество параметров, которые по названию и назначению совпадают с аналогами из Snort. Синтаксис тем не менее совершенно другой, но файл читать намного проще чем конфиги Snort, к тому же он хорошо прокомментирован.
Внимание! Перед запуском стоит проверить значения переменных из раздела vars.
Чтобы завершить настройку потребуется установить suricata-update для обновления и загрузки правил. Сделать это довольно просто:
Дальше нам нужно запустить команду suricata-update для установки набора правил Emerging Threats Open:
Для просмотра списка источников правил выполняем следующую команду:
Обновляем источники правил:
Повторно просматриваем обновленные источники:
При необходимости можно включить доступные бесплатные источники:
После этого необходимо еще раз обновить правила:
На этом установку и первичную настройку Suricata в Ubuntu 18.04 LTS можно считать законченной. Дальше начинается самое интересное: в следующей статье мы подключим виртуальный сервер к офисной сети через VPN и начнем анализировать весь входящий и исходящий трафик. Особое внимание уделим блокированию атак DDoS, активности вредоносного ПО и попыткам эксплуатации уязвимостей в доступных из сетей общего пользования сервисов. Для наглядности будут смоделированы атаки наиболее распространенных типов.