Конфигурирование Snort для достижения максимальной производительности
Теперь, когда система Snort установлена, а вы ознакомились с основными командами, следует отредактировать конфигурационный файл, чтобы сделать ее надежной системой обнаружения вторжений и получать требуемые результаты. Подразумеваемым конфигурационным файлом служит snort.conf, который по умолчанию помещается в /etc/snort.conf. В этом файле задаются все настройки Snort. Имя этого файла можно изменить, если при запуске Snort после ключа -c указать новое маршрутное имя. Данный файл можно редактировать с помощью vi, EMACS или другого текстового редактора. Многие строки в этом файле начинаются со знака #, за которым следуют различные комментарии. Знак # служит стандартным началом строк комментариев, которые многие интерпретаторы, командные или такие как Perl, игнорируют. Строки комментариев применяются для документирования программ или для отключения старого кода. Вы будете использовать их позже при тонкой настройке набора правил. Но пока единственными строками, реально воздействующими на конфигурацию, являются строки без знака # в начале. Остальные присутствуют только для информационных целей. Конфигурационный файл настраивается в несколько шагов.
- Задание домашней сети.
Необходимо сообщить Snort адреса, которые представляют домашнюю сеть, чтобы он мог правильно интерпретировать внешние атаки. Это делается с помощью инструкции
var HOME_NET адреса
где адреса следует заменить на адресное пространство вашей локальной сети. Если имеется несколько сетей, то можно ввести их все, разделяя запятыми. Можно также ввести имя интерфейса, чтобы IP-адрес и маска сети, присвоенные этому интерфейсу, использовались как HOME_NET. Для этого служит следующий формат:
var HOME_NET $ имя_интерфейса
где имя_интерфейса заменяется интерфейсом, на котором слушает Snort (например, eth0 или eth1).
С помощью аналогичной инструкции можно определить внешние сети, заменяя HOME_NET на EXTERNAL_NET. Подразумеваемым значением обеих переменных служит any. Можно оставить их в таком виде или определить одну или обе.
Я рекомендую определить внутреннюю сеть, но оставить внешние сети заданными как any. - Задание внутренних серверов.
В конфигурационном файле можно определить ряд серверов, включая Web, mail, DNS, SQL и Telnet. Это уменьшит число ложных срабатываний для этих сервисов на этих машинах.
Можно также задать номера портов для этих сервисов, чтобы регистрировались только атаки на указанные порты. Все эти опции конфигурации позволяют сократить число ложных срабатываний, чтобы до вас доводилась только информация, обладающая реальной ценностью. Имеется также раздел для добавления серверов AIM, чтобы отслеживать применение AOL Instant Messenger. Это имеет смысл только в том случае, если включен класс правил Chat. - Конфигурирование декодировщиков и препроцессоров Snort.
Ряд ключей и настроек в конфигурационном файле управляют декодировщиками и препроцессорами Snort. Эти процедуры применяются к трафику, прежде чем он пройдет через какой-либо набор правил, обычно с целью правильного форматирования или для обработки определенного вида трафика, который проще препроцессировать, чем применять наборы правил. Примером подобного типа трафика служат фрагментированные пакеты. В Snort присутствует декодировщик, собирающий фрагментированные пакеты. Многие атаки пытаются скрыть свою истинную природу, фрагментируя пакеты, так что описываемые возможности Snort являются весьма ценными.
Другой декодировщик предназначен для пакетов сканирования портов. Так как они имеют склонность приходить группами и в большом количестве, лучше обрабатывать их заранее общей массой, чем пытаться сравнивать каждый пакет с сигнатурой. Это также делает систему обнаружения вторжений более защищенной от атак на доступность. Подразумеваемые настройки для этих подсистем должны работать хорошо, однако, получив некоторый опыт работы со Snort, вы можете попытаться изменить их, чтобы повысить производительность и достичь лучших результатов. - Конфигурирование модулей вывода.
Это важный шаг, если вы хотите использовать базу данных при обработке вывода Snort.
Здесь вы указываете программе, как обрабатывать данные сигналов тревоги. Имеется несколько модулей вывода, которые можно применять в зависимости от требуемого формата данных: Syslog, Database и новый модуль Unified, который поддерживает универсальный бинарный формат, полезный для импорта данных другими программами. Общий формат для конфигурирования модулей вывода таков:
output имя_модуля: конфигурация опции
где имя_модуля следует заменить на alert_syslog, database или alert_unified в зависимости от используемого модуля.
Опциями конфигурации для различных модулей вывода служат:
- Syslog
Для систем UNIX/Linux нужно использовать следующую директиву:
output alert_syslog: LOG_AUTH LOG_ALERT
Для Windows-систем можно использовать любой из следующих форматов:
output alert_syslog: LOG_AUTH LOG_ALERT output alert_syslog: host=имя_хоста, LOG_AUTH LOG_ALERT output alert_syslog: host=имя_хоста:порт, LOG_AUTH LOG_ALERT
где имя_хоста и порт нужно заменить, соответственно, на IP-адрес и порт сервера Syslog. - Database
Общий формат для настройки вывода в базу данных таков:
output database: log, тип_базы_данных, user=имя_пользователя password=пароль dbname=имя_базы_данных host=адрес_базы_данных
где тип_базы_данных заменяется одной из допустимых для Snort разновидностей баз данных (MySQL, postgresql, unixodbc или mssql), имя_пользователя - допустимым именем пользователя машины базы данных, а пароль - его паролем. Переменная dbname задает имя базы данных для протоколирования. Наконец, адрес_базы_данных является IP-адресом сервера базы данных. Не рекомендуется устанавливать Snort и базу данных на один сервер. Помимо того, что безопаснее держать данные сигналов тревоги на другом компьютере, работа Snort и базы данных на одной машине будет существенно снижать производительность. Хотя настройка баз данных не является темой книги, базовая конфигурация базы данных MySQL для Snort и других программ обсуждается в лекции 8. - Unified
Это основной бинарный формат быстрого протоколирования и сохранения для будущего использования.
Поддерживаются два аргумента - filename и limit, а вся директива может выглядеть примерно так:
output alert_unified: filename snort.alert, limit 128
- Syslog
- Индивидуализация наборов правил.
Можно выполнить тонкую настройку Snort, добавляя или удаляя наборы правил. Файл snort.conf позволяет добавлять или удалять целые классы правил. В конце файла перечислены все наборы правил генерации сигналов тревоги. Можно отключить целые категории правил, закомментировав строки с помощью знака # в начале. Например, можно отключить все правила icmp-info для снижения числа ложных срабатываний на трафике ping или все правила NetBIOS, если в сети нет машин Windows. Имеются также общедоступные наборы правил, уже настроенные для определенных сред.
Закончив внесение изменений в конфигурационный файл, сохраните его, и тогда все будет готово для запуска Snort.
Правильное размещение сетевой системы обнаружения вторжений Решая, где разместить сетевую систему обнаружения вторжений, следует принять во внимание, что именно вы пытаетесь защитить и как можно максимизировать эффективность и взаимную поддержку средств сетевой безопасности. Имеется несколько вариантов размещения сетевой системы обнаружения вторжений, у каждого из которых есть свои достоинства и недостатки.
Мы перечислили все разумные варианты размещения системы обнаружения вторжений. Разумеется, ничто не мешает использовать их все, если у вас достаточно оборудования и времени для управления. |