Pull to refresh

Hetzner может неожиданно отключить ваш сервер

Reading time5 min
Views56K
Мы — небольшая группа разработчиков web, пишем сайты на заказ, хостим или у себя или у разных провайдеров по миру. У нас небольшой отдел тех. поддержки, стараемся в меру своих сил реагировать вовремя на возникающие проблемы. Статья написана тем, у кого есть свои сервера на Hetzner, чтобы были готовы к определённым особенностям поддержки.


Бывают и такие случаи, как описанный далее. Мы к нему оказались не готовы, как морально, так и технически. А столкнулись мы с тем что сервер может быть отключён, и понять либо устранить причину отключения оперативно невозможно.

10.36 GMT +2



Сайт перестал пинговаться. Наша команда поддержки немедленно попыталась разобраться в чём причина.

Заказчик этого сайта — находится в US (ночью он спит), команда поддержки — в Украине, Hetzner — в Германии. Сайт лёг в самое удачное время, когда в США ночь, а в Украине и в Германии нормальное рабочее время, которое по идее должно дать нам возможность восстановить работу сайта. Эх,…

При попытке зайти в Rescue Mode мы наткнулись на странное сообщение:

«The Ip is locked» со ссылкой на: «wiki.hetzner.de/index.php/Leitfaden_bei_Serversperrung/en»

Читаем… Советы типа: «First of all, please examine the log files of the server» меня несколько озадачили.

Q: Как проверить Log files если доступ отключён?

Далее, ещё интереснее:

«Before the server can go back online, the problem has to be solved. We require a signed statement
from you via email or fax about the cause of the problem, explaining how you have solved the problem
and what you have done to avoid the same problem in future.»


Q: Доступа нет, сервер отключён, включить можно только если починим, но чтобы починить надо зайти ведь?..

Выяснилось что этот тип проблем должен (по правилам Hetzner) решаться через KVM. Запросили KVM, но непонятно что чинить. В админке нет никакого упоминания о конкретике, есть только ссылка на общий документ о возможных проблемах.

Ну логично, если ничего непонятно, надо спрашивать у саппорта:

Вопрос к Hetzner 11:36> I can not ping and login to the server
Ответ от Hetzner 12:25> please check your mails, you should have received a mail why the IP is locked.


Саппорт работает, но ситуация мне напоминает анекдот про программистов на воздушном шаре, когда ответ оказался правильным и абсолюно бесполезным, а время то идёт. Каждый вопрос / ответ — около часа задержки.

Срочно звоню нашему клиенту в США, с просьбой проверить и форварднуть всю почту от hetzner. Наконец то получаю более менее понятное объяснение:

Dear Sir or Madam

We have noticed that you have been using other IPs from the same sub net in
addition to the main IP mentioned in the above subject line.

As this is not permitted, we regret to inform you that your server has been
deactivated.

Guidelines regarding further course of action may be found at
http://wiki.hetzner.de/index.php/Leitfaden_bei_Serversperrung/en.

Yours faithfully

Your Hetzner Support Team

09:29:55.027863 a8:be:dd:56:e7:15 > cf:40:04:22:32:1f, ethertype IPv4(0x0800), 
length 66: 188.40.25.34.42709 > 5.9.xx.xx.80: Flags [.], ack16154, win 661, 
options [nop,nop,TS val 1003012 ecr 2687744519], length 0


13:21



KVM (LARA) дали (+1 h), 3 часа спустя после downtime, наконец то начинаем что то делать и появляется надежда разобраться с проблемой. Получаем доступ к серверу через Lara.

Учитывая то, что сети нет никакой, поставить проверку root kit не получиться. Проверяем что можем проверить, но даже tcpdump запустить не получается — port в down и пакеты слать отказывается.

Архитектура системы у нас:



На страже границ находится хост система с KVM, ядро 3.5.2, регулярные апдейты GLSA, порт только SSH (вру, был ещё nrpe, проверили, вроде нет ссылок на то что nagios-nrpe ломали).

Понимая что на Web части проекта установлена «солянка» разных технологий, в т ч PHP код, потому виртуальне машины физически отделены от внешнего мира, и захватить чужой IP адрес уж точно не могут никаким образом.

Исследование базовой host системы Gentoo не показало никаких изменений. В файле messages, dmesg, last тоже всё нормально.

В целом, после ряда исследований написали им в поддержку что мы ничего сами найти не можем и нам требуется помощь с их стороны чтобы идентифицировать проблему. Также попросили убедиться что непонятный траффик идёт конкретно с нашего VLAN.

15:40



Получили ответ:
Hetzner> Please complete and sign the following statement and return it to us via fax or email:
Hetzner> www.hetzner.de/pdf/en/Comment_Serversuspension.pdf

Хм… Тут меня начинает немного типать. Прошло 4 часа, мы не продвинулись ни на йоту, скоро утро в US, адекватной (на мой взгляд) помощи со стороны Hetzner не последовало, и вместо того чтобы помочь, они просят выслать им факс. Чё то невесело…

Q: о чём подписываться в форме «об устранении проблемы», если мы проблему обнаружить не смогли, и соответственно ничего не чинили (и сказали об этом)?.. Задал вопрос. На что получил ответ, что они не имеют права включать сервер для любых разбирательств пока не получат факс/скан c подписью.

Учитывая то, что мы уже приняли решение восстанавливаться из бекапов на этот момент (уж очень много времени заняли вопросы/ответы и попытки понять в чём проблема), более спешки не было, мы спокойно заполнили форму и стали ожидать результатов.

Через некоторое время получаем ответ:

> Dear Client,
>
> as requested we've let this issue checked by our network department and it seems
> that you server answers on each requests even for another MAC's. So please check
> your server again and solve this issue.


Ok… Учитывая то что сервер включали на период около минуты, мы ничего не успели посмотреть.

После этого мы задали вопрос что же теперь можно сделать с сервером, не имея сетевого доступа к нему, нам посоветовали отформатировать сервер и установить новую систему путём монтирования удалённого ISO образа.

Мы попытались это сделать, но были не готовы технически (под рукой не оказалось маленького ISO, все большие были для desktop, пытались грузить X, и вообще не очень подходили для инсталляции через KVM). История закончилась около 10 вечера, когда у нас отрубили KVM в процессе инсталляции системы (правило в Hetzner — бесплатный KVM даётся не более чем на 2 часа).

Через несколько дней





В спокойной обстановке, в понедельник с утра, дали заявку на KVM, получили доступ, установили небольшую систему на sda1 (развалили raid) через Lara/ISO mount image, отправили скан факса о решении проблем, и получили ответ что сервер активирован. Но он почему то не пинговался…

После повторной заявки на активацию сайт наконец то запингался, мы зашли с сети, и первое что я сделал — это полный tar cjvpf бекап старой основной системы, скачал её к себе для экспериментов и развернул локально.

Локально тоже не смог найти проблему. Поднял отдельную машину как default router, включил её в ту, на которой была запущена копия, посмотрел на траффик tcpdump на обоих концах, подняли NAT с gw адреса для сетки. Каких либо странных пакетов не обнаружено.

Проверили на root kit, проверили все пакеты и файлы — нет ни одного изменённого MD5, нет никаких лишних процессов и т п.

В чём же была проблема? Можно только гадать. Возможно у них в сети появились одинаковые MAC адреса, возможно что то ещё… Кто что ещё может подсказать?

В общем, даже если и были проблемы именно у нас (в чём я сомневаюсь), выяснить это невозможно. А они со своей стороны вряд ли признаются или смогут выделить специалиста для помощи.

Выводы (а у нас кстати много других клиентов уже/ещё хоститься на Hetzner).



1) Всегда имейте небольшой ISO образ вашей системы под рукой, чтобы по просьбе hetzner вы смогли оперативно отформатировать ваш сервер. Желательно чтобы основной раздел и сервисы/данные были разделены.

2) Очень желательно организвать стриминг netflow за пределы Hetzner, чтобы потом была возможность проверить обвинения.

3) Всегда быть готовыми к тому что сервер может исчезнуть насовсем (что впрочем и так правильная стратегия).

P.S. Мне админы говорят что это нормально: вначале отрубаем проблему, потом разбираемся в чём она. Но если первое происходит оперативно, то и разбирательство должно следовать.
Tags:
Hubs:
Total votes 64: ↑51 and ↓13+38
Comments114

Articles