Сисадмин-любитель (ulrith) wrote,
Сисадмин-любитель
ulrith

победа над злом

Как я уже писал, ещё на Мастерхосте у меня были неприятности с сервером, которые выражались в периодическом возрастании очереди почтовых сообщений до десятков тысяч штук. Специалисты справедливо пеняли мне, что через меня, верно, шлют спам. Но я, по причине атрофии сисадминских навыков и утраты веры в себя (после стольких лет, проведённых под крылышком всемогущего goodwin-а), всё откладывал решение этого вопроса, надеясь что "авось оно как-нибудь само рассосётся".

Не рассосалось. Ранним утром 6 октября (часов в 11) я обнаруживаю, что мой новенький виртуальный сервер заблокирован по причине причинения нагрузки, несовместимой с жизнью своему материальному серверу, а также за рассылку спама. Вот как это выглядело, по данным модуля watchdog (а ещё недавно я о таком и не знал!) в панели Plesk:



Разрыв на графике RAM Usage - это период блокировки, также можно видеть что после разблокировки сервер ещё потрепыхался какое-то время в нештатном режиме, и успокоился. А я - нет... Посыпая голову пеплом, и рвя на себе последнюю майку, я пребывал в бессилии и страхе, ожидая повторения безобразия и суровых санкций со стороны хостера. Но как-то удалось взять себя в руки...

Посмотрев данные watchdog за месяц, я ужаснулся тому, что это безобразие случилось далеко не в первый раз, так что McHost наверное святые, что приняли меры только на четвёртый:



В общем, почти весь день я потратил на курение мануалов апача, что привело к исправлению ошибок в конфиге и сервер, как можно видеть на графике, заработал со средней нагрузкой в районе 1%, что, собственно, соответствует реальной посещаемости моих скромных проектов. А ведь техподдержка McHost предлагала мне поставить nginx чтобы закэшировать якобы дикие нагрузки! :-)

Но главное, что я понимал, это то, что я так и не знаю источник проблемы - дыру в безопасности - через которую плохие парни загружают сервер и рассылают спам, и что спаммеры обязательно вернутся... Короче, я сел в засаду и стал ждать - благо как раз в эти дни удачно простудился. :-) По опыту прошлых атак ждать нужно было сутки-двое...

Я держал постоянно запущенной на сервере утилиту top, показывающую нагрузку сервера, а также поставил закладку на почту, отправляемую из php-скриптов. В её сети ничего не попадалось. Правда, наткнулся в паническом серфинге на полезную статейку и выловил парочку seo-спаммеров, которые хитрыми get-запросами ставили на моём сайте без моего ведома ссылки. :-)

И вот, вчера ночью, они пришли:



Я достаточно быстро заметил начало атаки. Первым делом полез в закладку - нет, легальным способом через php-скрипты ничего не шлют... Апачевский server-status, как и в прошлый раз, показывал вроде бы невинные запросы - в основном это были запросы кнопки из рейтинга eduabroad.ru и запросы ical-календаря edumarket.ru.

Решил искать дыру методом исключения. Сначала отключил скрипт кнопки. Ничего. Потом отключил календарь. Бинго! Нагрузка начала стремительно падать и вскоре упала до 1 процента! Вот, смотрите сами как плохие парни мучали мой бедный серверок (это утилита apachetop - она показывает загрузку апача по его логам для конкретного сайта):



Херачат по два запроса в секунду, да не просто херачат, а, как выяснилось после гугления, выполняют на моём дорогом сервере страшный "произвольный код". Т.е., эти суки шлют через меня спам. Чем и загружают процессор "по самое не могу". В общем, посеял я старую версию дырявого phpicalendar, вот и пожал спам. А всего-то надо было не полениться и проверить.

Ещё какое-то время я потратил на показ жене, как я могу выключать/включать краник, а потом перекрыл дырку патчами от разработчика-разгильдяя. В частности, запретил куки, через которые и выполнялся спам-код. А ведь раньше я бы счёл атаку через COOKIE гипотетической страшилкой антивирусных компаний, не имеющей реальной опасности. И вот те на, сам же и попал...

В общем бесконечная битва со злом закончилась маленькой временной победой. Теперь надо думать как поддерживать это состояние покоя постоянно. В ближайших задачах забабахать на сервере e-mail или даже sms-уведомления в случае возрастания загрузки процессора выше 50%. Теперь, когда первый раунд противостояния выигран, можно этим спокойно заняться. :-)
Tags: hosting, unixway
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments