Продолжаю серию заметок о хостинге. Сегодня речь пойдет о cPHulkd (аддон для панели управления хостингом cPanel).

Рано или поздно любой вебмастер сталкивается с тем, что на его сервер начинают кидаться всякие уроды, которым очень хочется получить к нему доступ. Как правило, к серверу подключаются по SSH, пытаются брутфорсить рутовский аккаунт, реже pop3 аккаунты, аккаунты других юзеров и т.д.

Буквально несколько дней назад, сам столкнулся с такой проблемой: более 8 тысяч неудачных подключений в день, попытки брутфорсить root-а. Хорошо, что cPanel ведет логи и раз в сутки оповещает о всех попытках неверных подключений. Разумеется, поднялся вопрос о том, как обезопасить сервер и как бороться с брутфорсом.

Как оказалось, в cPanel-и, начиная с 10ой версии уже встроен модуль защиты, называется cPHulkd.
cphulkd
Суть модуля такова: выбирается допустимое кол-во неверных логинов и штрафное время для тех ip адресов и юзеров, которые неверно подключаются. Спалившийся логин/ip отключается на указанное время. Кроме того есть возможность получать оповещения о нарушениях по мылу.

Воспользовавшись этим модулем, кол-во новых попыток подключений снизилось с 8 тысяч до сотни. Что есть большой плюс.

Но у cPHulkd есть и два минуса, о которых я хочу рассказать. Рассмотрим по порядку обе проблемы и методы их решения.
Минус №1.
К большому сожалению, этот модуль не умеет добавлять запрещенные IP адреса в системный фаирволл iptables, таким образом, через указанное в настройках время, злоумышленники снова смогут брутфорсить с этих IP адресов. Разработчики обещают, что в следующих версиях эта возможность будет реализована.

Решить эту проблему можно несколькими способами:

Во-первых, можно изменить порт SSH соединения со стандартного 22го на какой то другой, т.е. подойдет любой порт от 1024 и до 65537 неиспользуемый системой.

Чтобы изменить порт SSH, надо отредактировать конфигурационный файл. Как правило он находится в / etc/ ssh или / usr/ local/ etc/ ssh, ну или типа в похожей директории. Все что нужно сделать, это найти строчку, в которой написано #Port 22, раскомментить ее и изменить номер порта, на желаемый. После этого нужно перезапустить демона SSH.

Во-вторых, у нас есть возможность самим банить IP адреса злоумышленников. Делается это достаточно просто: заходим рутом на сервер, и пишем в командной строке

iptables -A INPUT -s блокируемый адрес -j DROP

после это надо сохранить изменения

service iptables save

И, наконец, третий способ, на мой взгляд лучший, это программка CFS (Config Server Security). Она работает напрямую с iptables, и что самое привлекательное для пользователей cPanel-и – имеет с ней интеграцию. Работает на большинстве x-системах, поддерживает виртуальные сервера.

Минус №2.
В процессе тестирования cPHulkd, я уменьшил кол-во неверных логинов до 3х и увеличил штрафное время на IP и на юзера до 2000 минут. Разумеется, cPHulkd запретил логин в рута на это время, причем запретил логин именно в cPanel, но законнектиться рутом через SSH – возможность осталась.

Решение.

Заходим рутом на сервер и пишем в командной строке

/usr/local/cpanel/bin/cphulk_pam_ctl --disable

по идее, эта строчка должна отключить cPHulkd. Затем заходим в cPanel и проверяем настройки cPHulkd еще раз.

у меня, правда, не получилось ;) поэтому пришлось хитрить и действовать иначе:

mysql> use cphulkd;
mysql> DELETE FROM brutes WHERE IP='Ваш IP адрес';
mysql> DELETE FROM logins WHERE user='root';
mysql> quit

т.е. заходим в mysql, выбираем базу cphulkd и удаляем из штрафной базы свой IP адрес и юзернейм root, после этого уже точно можем зайти в cPanel и продолжить играть с настройками ;)

Надеюсь эти знания пригодятся, если возникли вопросы – обращайтесь.

Оставить комментарий