Я уже давно пользуюсь Linux и всегда чувствую необходимость в пассивной настройке программного обеспечения / скриптов, которая может предупреждать меня о любых подозрительных действиях в сети, таких как сканирование, неудачные попытки входа в систему и т. Д. На лету через по электронной почте или с помощью визуальных / аудио уведомлений.
Я знаю, как просматривать журналы и прочее, но по большей части это ручной, трудоемкий процесс. Я ищу что-то полу / полностью автоматизированное с некоторыми хорошими возможностями анализа журналов.
Мне известны системы IDS для мониторинга сетей, таких как Snort и т. Д., Но они являются излишним для обычного домашнего пользователя и болезненным процессом настройки и запуска.
Что мне подойдет как домашнему пользователю?
Если в вашей сети недостаточно систем, настройка IDS, такой как Snort, вероятно, излишняя (особенно если на вашем компьютере нет сетевых служб). Я предлагаю начать с настройки logwatch, чтобы отправить себе отчет о том, что происходит в вашей системе. Как только вы это сделаете, настройте системный журнал так, чтобы вы получали как можно больше соответствующей информации.
Обнаружение вторжений обязательно необходимо при запуске служб (ftp, web, nfs, ssh и т. Д.) В сети. Это связано с тем, что они выставлены в Интернете и из-за:
им требуется ежедневный мониторинг опытной сетью администратор. Если вы используете эти сервисы, вы, вероятно, уже обладаете минимальными знаниями о том, как избежать этих проблем.
Если вы не запускаете ни одну из этих служб, то ваш брандмауэр интернет-маршрутизатора уже заблокировал любое входящее соединение через порты. Для сканирования маршрутизатора вашей сети
Если у вас все зеленые, значит, у вас все хорошо.
И последнее, но не менее важное: ваш маршрутизатор, вероятно, имеет встроенную систему обнаружения вторжений (поскольку 99% всех маршрутизаторов работают с полосатым Linux-сервером). Для этого вы должны проверить руководство производителя вашего маршрутизатора.
Простое и эффективное общее решение заключается в использовании logcheck .
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck периодически эффективно сканирует все журналы (начиная с того места, где он остановился в прошлый раз), фильтрует то, что видит, чтобы устранить все, что считается нормальным, и при необходимости отправляет оповещения по электронной почте с все, что не соответствует нормальным / обычным шаблонам.
Основная идея - следить за появлением каких-либо серьезных записей в ваших файлах журналов, все они, все время, поэтому вам не нужно. [одна тысяча сто пятьдесят четыре]
logcheck легко конфигурируется (man logcheck
). Вы можете настроить все, включая:
и более. Ваши шаблоны игнорирования (обычные / обычные) находятся в нескольких файлах в /etc/logcheck/ignore.d. * , и вы можете настроить их под свои нужды; в основном вы можете добавить свои собственные шаблоны, чтобы игнорировать. Пакет Ubuntu по умолчанию поставляется с обширным набором файлов с шаблонами игнорирования для многих сервисов, так что добавлять нечего, если ваша система не работает необычно. Существует 3 набора предварительно настроенных профилей игнорируемых файлов: ignore.d.workstation , ignore.d.server и ignore.d.paranoid , которые вы можно выбирать из.
Основная идея logcheck заключается в том, что различные службы, работающие в системе, уже регистрируют ненормальные события. Например. sshd или pam уже регистрируют ошибки аутентификации. Итак, основными недостающими компонентами являются:
Оба из них предоставлены logcheck в удобной упаковке. Вы можете комбинировать logcheck с любыми другими журналами. Например, iptables можно настроить на syslog любые попытки сетевого подключения, которые явно не разрешены путем добавления правил:
iptables -A input -j LOG
iptables -A input -j DROP
сразу после всех разрешающих правил.
Я считаю logcheck гораздо более полезным, чем logwatch (предлагается в других ответах), потому что он поставляется в комплекте с очень большое количество правил, чтобы игнорировать то, что считается нормальной деятельностью. Результатом является гораздо более высокое отношение сигнал / шум в оповещениях, которые отправляются по электронной почте. YMMV.
Другим преимуществом logcheck является то, что он ортогонален для любого сервиса, который регистрирует, поэтому нет дублирования функции. Всякий раз, когда вы добавляете новый сервис, который использует syslog
для записи событий, ненормальных или нет, в любой файл в /var/log
, вы начинаете получать уведомления об этом автоматически.
HOWTO:
Поскольку
logcheck
уже настроен предварительно, две строки в верхней части этого ответа по существу охватывают все, что вам нужно для начала , Просто установите его и перейдите в верхний конфигурационный файл:/etc/logcheck/logcheck.conf
, чтобы изменить свой адрес электронной почты, чтобыlogcheck
отправлял вам электронные уведомления.Вот дружественная ссылка , более подробно описывающая второй шаг . Поскольку Ubuntu основана на Debian, эти инструкции должны работать и на Ubuntu. Вот еще одна хорошая ссылка .
После установки начинается процесс непрерывного улучшения. Со временем вы дорабатываете свои правила, чтобы игнорировать все, что вы уже знаете и не чувствуете беспокойства. Этот процесс уточнения так же прост, как добавление текстовых строк в файл в вашем любимом текстовом редакторе.
Каждая строка в файле игнорирования является расширенным регулярным выражением (см.
man 7 regex
), но вы можете использовать простые строки, если они соответствуют строке журнала, которую вы хотите игнорировать. Просто помните, что такие символы, как*
,?
, '+',[]
,()
являются специальными в регулярном выражении, поэтому, если они действительно появляются в строках журнала, вы должны будете экранировать их обратной косой чертой\
в файлах игнорирования.Другими словами: если вы получаете предупреждение, которое не хотите получать, посмотрите на строку журнала, которая была отправлена вам по электронной почте, и добавьте соответствующий шаблон, как одну строку в любой файл игнорирования по вашему выбору. Я предлагаю использовать
blockquote>/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
в качестве личного файла игнорирования. Где<yourloglevel>
является одним изparanoid
,server
илиworkstation
(как вы уже выбрали в основном конфигурационном файле:/etc/logcheck/logcheck.conf
). Посмотрите на примеры в других файлах игнорирования, чтобы узнать, как учитывать текст, который постоянно меняется, например, идентификаторы процессов или метки времени. Есть много примеров, из которых можно извлечь уроки.Последний совет:
logcheck
поставляется с небольшой полезной утилитой под названиемlogcheck-test
, которая очень удобна для тестирования новых правил.man logcheck-test
для деталей.