Чому корінь над SSH поганий
Там багато ботів, які намагаються увійти на свій комп’ютер через SSH. Ці боти працюють наступним чином.
Вони виконують щось на кшталт, ssh root@$IP
а потім намагаються стандартні паролі, такі як "root" або "password123". Вони роблять це до тих пір, поки можуть, поки не знайдуть потрібний пароль. На доступному в усьому світі сервері ви можете бачити безліч записів у ваших журнальних файлах. Я можу піти до 20 за хвилину і більше.
Коли зловмисникам пощастить (або достатньо часу) і знайдуть пароль, вони отримають кореневий доступ, і це означатиме, що ви потрапили в біду.
Але коли ви забороняєте root входити через SSH, боту потрібно спочатку відгадати ім’я користувача, а потім відповідний пароль. Тож скажемо, що список правдоподібних паролів містить N
записи, а список правдоподібних користувачів - M
записи великі. У бота є набір N*M
записів для тестування, тому це робить його трохи складніше для бота порівняно з кореневим випадком, коли він є лише набором розміру N
.
Деякі люди скажуть, що ця додаткова M
робота не є реальною вигодою в безпеці, і я згоден, що це лише невелике підвищення безпеки. Але я думаю про це більше, як ці маленькі замки, які самі по собі не є надійними, але вони перешкоджають багатьом людям легкого доступу. Це, звичайно, справедливо лише в тому випадку, якщо на вашій машині немає інших стандартних імен користувачів, наприклад, tor або apache.
Краща причина заборонити root - це те, що root може нанести набагато більше шкоди машині, ніж звичайний користувач. Отже, якщо по глупому шансу вони знайдуть ваш пароль, вся система втрачається, тоді як зі звичайним обліковим записом користувача ви можете лише маніпулювати файлами цього користувача (що все ще дуже погано).
У коментарях зазначалося, що звичайний користувач може мати право користуватися, sudo
і якщо здогадатися, що пароль цього користувача, система теж повністю втрачена.
Підсумовуючи, я б сказав, що не має значення, який пароль користувача отримує нападник. Коли вони вгадають один пароль, ви більше не можете довіряти системі. Зловмисник може використовувати права цього користувача для виконання команд sudo
, зловмисник також може використати слабкість у вашій системі та отримати привілеї root. Якщо зловмисник мав доступ до вашої системи, ви більше не можете йому довіряти.
Тут слід пам’ятати, що кожен користувач у вашій системі, якому дозволяється входити через SSH, є додатковою слабкістю. Відключивши корінь, ви усунете одну очевидну слабкість.
Чому паролі через SSH погані
Причина відключення паролів дійсно проста.
- Користувачі вибирають неправильні паролі!
Вся ідея спробувати паролі працює лише тоді, коли паролі можна вгадати. Тож, коли у користувача є пароль "pw123", ваша система стає незахищеною. Ще одна проблема паролів, обраних людьми, полягає в тому, що їх паролі ніколи не бувають справді випадковими, тому що їх важко запам'ятати.
Крім того, у випадку, коли користувачі схильні повторно використовувати свої паролі, використовуючи їх для входу у Facebook або свої акаунти Gmail та для вашого сервера. Тому коли хакер отримує пароль цього облікового запису Facebook, він може потрапити на ваш сервер. Користувач може легко втратити його через фішинг, або сервер Facebook може зламатись.
Але коли ви використовуєте сертифікат для входу, користувач не вибирає свій пароль. Сертифікат ґрунтується на випадковій рядку, який є дуже довгим від 1024 Біт до 4096 Біт (~ 128 - 512 символьних пароля). Крім того, цей сертифікат існує лише для того, щоб увійти на ваш сервер і не використовується з будь-якими сторонніми службами.
Посилання
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
Ця стаття виходить із коментарів, і я хотів би надати їй трохи більш помітне становище, оскільки вона заглиблюється у справу ботнетів, які намагаються увійти через SSH, як вони це роблять, як виглядають файли журналів та що можна зробити, щоб зупинити їх. Це написав Пітер Ганстін.