Досвід роботи зі зламаним сервером

Досвід роботи зі зламаним сервером

Хочу поділитися своїм досвідом системного адміністратора-початківця. Так вже сталося, що мій перший млинець грудкою - це була пропозиція зайнятися інфраструктурою в одній маленькій компанії. Ситуація складна. Ніякої автоматизації, все вручну і за принципом: працює - не чіпай, а якщо не працює і ніхто не помітив, то вважай, що працює. Попередній співробітник не залишив майже жодної документації. Ось доступ до серверів, кавомашина - там, начебто все...

Досвід перший: маленькі симптоми великої проблеми

Було вирішено почати з інвентарю. Все розміщено у великого публічного оператора: по кілька віртуальних машин на орендований сервер з попередньо встановленим гіпервізором Xen:

Експерти можуть зі мною не погодиться, але я знаходжу KVM набагато зручніше Xen для елементарної віртуалізації інфраструктури маленьких підприємств. Xen може залучити тих, хто віддає перевагу графічному інтерфейсу управління. Але, на жаль, можливості даного графічного інтерфейсу досить обмежені, а інтерфейс управління командного рядка Xen сильно поступається за своєю простотою KVM/QEMU у разі, якщо треба зайти за рамки стандартних маніпуляцій віртуальних машин. Але схоже, що дане питання не особливо хвилювало мого попередника, який керував системами з найменшим докладанням зусиль. Як виявилося, все було встановлено за замовчуванням, а саме: сервери працювали на застарілій Ubuntu 12.4 LTS, замість звичних для таких цілей Debian.

У наставники мені визначили програміста, який заміняв звільненого сисадміна. Разом ми полізли розбиратися з діаграмою розгортання господарства на серверах підприємства.

Тут слід сказати, що будь-який сисадмін, в душі, повинен бути трохи детектив. Потрібно вміти помічати найменші аномалії, за якими можуть ховатися великі проблеми. У даному випадку мою увагу привернули дивні файли з привілеєм root. «Напевно нас хакнули», знизав плечима колега, не прийнявши моє занепокоєння всерйоз. Простих підозр було недостатньо, і ми вирішили поки нічого особливого не робити. Архівуємо підозрілі файли, змінюємо пароль користувача і продовжуємо інвентар.

Досвід другий: не зліть злих хакерів

А якщо розлютили, то готуйтеся до наслідків.

«Щось з сервером»..., напевно одне з найбільш неприємних повідомлень, яке може отримати системний адміністратор по дорозі на роботу. Особливо, якщо мова йде про нову роботу. Прискорюючи крок, перевіряємо ситуацію з телефону:

Прийшовши на роботу, натикаємося на комітет із схвильованих співробітників. Ситуація критична. Сервер недоступний, але доступний його гіпервізор через Xen. Стає ясно, що сервер працює, але повністю втрачено зв'язок з Інтернет:

Значить, проблема в маршрутизації. Ліземо до оператора:

Заодно знаходимо саму проблему:

Ну, тепер вже точно: сумнівів немає - нас зламали! І схоже, що зломщик, засмучений нашою попередньою інтервенцією, вирішив, якщо його виявили - втрачати вже нічого і використовував наш сервер для мережевої атаки. Гаразд, зате тепер мені дозволять налаштувати все по-своєму.

Першим ділом - файрвол:

Далі, змінюємо всім паролі:

Зберігаємо і трьом ключам ssh. Пізніше попросимо всіх користувачів генерувати нові. Зберігаємо, для порівняння: щоб особливо ледачі користувачі не могли використовувати старий, можливо скомпрометований доступ:

І, до речі, більше ніякого доступу з паролем: тільки ключі ssh!

Тепер нас ніхто не застане зненацька. Встановлюємо стеження за тими, хто входить в систему. Для цього додаємо до/etc/pam.d/sshd виконання простого скрипту нотифікації (loginlog):

А також підглядаємо за ключами:

Ну і під кінець, можна встановити auditd - це демон, здатний відстежувати все, що відбувається на сервері. Для цього достатньо двох рядків в/etc/audit/audit.rules:

На сьогодні все. Пишемо співробітникам про те, що в місті новий шериф про зміни з міркувань безпеки. А завтра постараємося впровадити Nagios або навіть почати переїзд на Debian. Сподіваюся, зломщик більше не пройде. Або пройде?

Image