Защитить сетевые сервисы от спама, перебора паролей и DDOS.
Хочу разобраться какие меры и средства могут быть предприняты против:
* спама (как осмысленного, понимающие API сервиса так и бессмысленного,
например прощупывающего URL вида /admin, ~root, ...)
* перебора паролей
* DDOS
Естественно решение в рамках пакетов Debian и возможно рекомендаций с чем
обращатся к хостеру если есть легко доступные аппаратные решения.
Порылся в офиц. руководстве:
$ zgrep 'intrusion\|detection' /usr/share/debian-reference/debian-reference.en.txt.gz
| | | | |monitoring and |
| | | | |management |
|nagios3 |V:1, |1 |, , |system for |
| |I:12 | | |hosts, services|
| | | | |and networks |
| | | | |(Nagios) |
| | | | |flexible |
| |V:2, | | |network |
|snort |I:3 |1707 |, , |intrusion |
| | | | |detection |
| | | | |system (Snort) |
Я про эти комплексы знаю не больше чем по Wikipedia или обложке книг.
Может они неактуальны (их давно вписали в руководство, но обновлять
руководство нету желающих?).
По идее относительно полный список есть тут:
https://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems
https://en.wikipedia.org/wiki/Category:Intrusion_detection_systems
и еще такие класные ключевые слова (по которым напрямую полезную информацию я
не вижу):
https://en.wikipedia.org/wiki/Intrusion_prevention_system
https://en.wikipedia.org/wiki/Real-time_adaptive_security
Задача - уведомлять об атаках на VPS + улучшить жизнеспособность VPS.
VPS/VDS - это 256/1024/2048 MiB RAM + 1-2 CPU + 2.0-20.0 GiB STORAGE и там
сервисы для мелкого бизнеса или персональный хостинг (CV/blog/git).
================================================================
Как мониторить CPU / MEM / IO?
И сообщать на email при превышении порога в течении промежутка времени?
Также интересно чем мониторить размер доступного места в хранилище. Неприятно
будет если логи забьют все пространство.
Я так понимаю nagios3 охватывает эти вопросы. Имеет смысл искать на
альтернативы?
================================================================
nagios3 - глуп? Т.е. например есть 100% CPU - он скажет какие процесы в top?
Или DOS с определенного хоста - мне дадут IP?
================================================================
Есть ощущение что с помощью nagios3 не лазят по accesslog и прикладным логам
что бы определить аномальную активность пользователей?
Для этого snort? Есть ли смысл искать / сравнивать с альтернативами?
С помощью snort можно определять фейковые регистрации на форуме или спам в
коментариях к блогозаписи? Или только пороговая статистика - что то поисходит
чаще чем нужно?
================================================================
Далее допустим идентифицирован процес, сжирающий 100% CPU в течении 20 мин или
IP адрес бомблящий или перебирающий URL на :80.
Кто будет прибивать автоматом прожорливый процес или добавлять временное
правило в файервол?
Я за структурированый способ оформления правил реагирования, потому как
костыли на cron, клее и резине в состоянии накропать...
================================================================
Глупый DDOS забивает канал. Будет ли уходить исходящие пакеты с сервера?
Например - отправка письма с алертом?
================================================================
Как бороться с подбором паролей? Я знаком с одним живым примером - Tomcat 8 в
Debian идет с включеным:
/etc/tomcat8/Catalina/localhost/manager.xml
В manager.log периодически пишет что кто пытался авторизоваться...
Выходит что злоумышленник знает об устройстве сервисов, формате данных (пусть
и scriptkid'ер).
Я узнал о проблеме просматривая лог. Формат записи не думаю что
документирован. Мне нужно регвырами по логам самостоятельно узнавать проблемы?
Выходит что сервис, которого ты не понимаешь (не задоукментированы сообщения о
проблемах) - нужно закрывать.
================================================================
Пускай наоборот мы собственно писаном сервисе. Как сообщать о подборе паролей
- через лог? Или комплексы на подобии snort умеют слушать через сокет?
Интересно конечно что бы сервис ничего не знал об IDS. Я бы общался через
*внешнюю* настройку в системе логирования.
Сейчан начинаю понимать нафик нужен (для Java-приложений):
http://www.slf4j.org/api/org/slf4j/MDC.html
- что бы структурировано отдавать диагностические данные.
Конешно можно придумать свой формат для printf и парсить его...
А как обстоят дела с логерами для C/C++/Python приложений? Таковые есть
вообще? Я подразумеваю что возможна конфигурация в момент деплоя, а не сборки.
При чем активными компонентами, например, через интерфейс плагинов. Например
что бы определенные сообщения еще и на почту или в IRC канал бросало, а не
толко в файл писать?
syslog - это только в файл писать? Или что то большее?
--
http://defun.work/
Reply to: