3 способи захистити сервер SSH на Linux

SSH є надзвичайно корисним інструментом, оскільки надає можливість віддаленого доступу до терміналу інших комп’ютерів і серверів Linux через мережу, включно з інтернетом. Проте, незважаючи на його корисність, існують певні вразливості, які можуть зробити його використання небезпечним. Якщо ви звичайний користувач, вам не потрібно вдаватися до складних заходів безпеки SSH. Натомість, розгляньте ці основні кроки для захисту вашого SSH-сервера на Linux.

Зміна стандартного порту підключення

Найпростішим та швидким способом підвищити безпеку SSH-сервера є зміна порту, який він використовує. За замовчуванням SSH працює на порту 22. Щоб змінити це, відкрийте термінал і підключіться через SSH до віддаленого комп’ютера, де знаходиться SSH-сервер.

ssh [email protected]

Після успішного входу, перейдіть від звичайного користувача до адміністратора. Якщо на вашому сервері ввімкнений обліковий запис root, вхід через команду su є оптимальним варіантом. В іншому випадку, вам знадобиться доступ через sudo.

su -

або

sudo -s

Тепер, маючи права адміністратора, відкрийте файл конфігурації SSH за допомогою текстового редактора Nano.

nano /etc/ssh/sshd_config

Знайдіть у файлі рядок “Port 22”. Якщо перед ним є символ #, видаліть його. Потім змініть “22” на інший номер порту, бажано більший за 100, або навіть у діапазоні 1000 і більше. Збережіть зміни натисканням комбінації клавіш Ctrl + O, а потім вийдіть з редактора, натиснувши Ctrl + X.

Редагування файлу конфігурації не змусить ваш SSH-сервер негайно використовувати новий порт. Для цього потрібно вручну перезапустити службу.

systemctl restart sshd

Ця команда перезавантажить демон SSH і застосує нові налаштування. Якщо перезапуск не вдається, можна перезавантажити весь сервер:

reboot

Після перезапуску, SSH буде недоступним через порт 22. Тепер для підключення через SSH вам потрібно буде вручну вказувати новий порт.

Увага: Не забудьте замінити “1234” на фактичний порт, який ви встановили у файлі конфігурації SSH.

ssh -p 1234 [email protected]

Відключення входу через пароль

Інший ефективний спосіб захистити SSH-сервер – відмовитися від входу за паролем і перейти до використання SSH-ключів. Цей підхід створює довіру між сервером та віддаленими машинами, які мають відповідний ключ. Ключ SSH – це зашифрований файл, який важко зламати.

Спершу потрібно налаштувати ключі SSH на вашому сервері. Після цього, знову відкрийте термінал і файл конфігурації SSH.

su -

або

sudo -s

Потім, відкрийте конфігурацію за допомогою Nano:

nano /etc/ssh/sshd_config

За замовчуванням, сервери SSH використовують аутентифікацію за допомогою пароля. Хоча це і прийнятно при наявності надійного пароля, використання зашифрованих SSH-ключів на довірених машинах є швидшим, зручнішим та безпечнішим варіантом. Щоб здійснити перехід до входу без пароля, знайдіть у файлі конфігурації рядок “PasswordAuthentication”.

Видаліть символ # перед “PasswordAuthentication” і переконайтеся, що значення цього параметра встановлено на “no”. Збережіть зміни натисканням Ctrl + O.

Після збереження конфігурації, закрийте Nano за допомогою Ctrl + X та перезапустіть SSHD, щоб зміни вступили в дію.

systemctl restart sshd

Якщо ви не використовуєте systemd, спробуйте перезапустити SSH за допомогою цієї команди:

service ssh restart

При наступній спробі віддаленого підключення до цього SSH-сервера, система перевірить наявність правильного ключа і дозволить вхід без запиту пароля.

Деактивація облікового запису Root

Вимкнення облікового запису root на вашому SSH-сервері – це спосіб зменшити потенційний збиток, якщо зловмисник отримає доступ через SSH. Для цього необхідно, щоб хоча б один користувач мав можливість отримати права root через команду sudo. Це дозволить вам мати доступ на системному рівні, якщо це необхідно, без використання пароля root.

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

Щоб вимкнути root, отримайте права суперкористувача у терміналі:

sudo -s

Використання sudo -s надає root-доступ через файл sudoers. Тепер, коли оболонка має root-права, виконайте команду passwd та заблокуйте обліковий запис root за допомогою параметра --lock.

passwd --lock root

Ця команда зашифрує пароль облікового запису root, унеможливлюючи вхід через su. Відтепер користувачі зможуть використовувати SSH як звичайні користувачі, а потім отримувати root-права за допомогою sudo.