5 найкращих методів захисту SSH в Ubuntu
12:14, 28.07.2026
Забезпечення безпеки доступу через SSH (Secure Shell) на серверах з різними операційними системами, зокрема Ubuntu, має вирішальне значення для запобігання несанкціонованому доступу та мінімізації ризиків безпеки. Без необхідних заходів безпеки SSH може стати вразливою точкою входу.
У цій статті ми розглянемо п’ять найкращих методів забезпечення безпеки SSH в Ubuntu, зокрема впровадження багатофакторної автентифікації, зміну стандартних налаштувань безпеки та посилення захисту за допомогою брандмауерів.
1. Налаштування двофакторної автентифікації
Одним із найпростіших способів підвищити безпеку SSH є додавання додаткового рівня автентифікації за допомогою двофакторної автентифікації (2FA). Завдяки 2FA навіть якщо зловмисник вгадає або отримає пароль, йому все одно знадобиться другий спосіб аутентифікації, щоб отримати доступ. Зазвичай використовується комбінація одноразового пароля, надісланого на пристрої користувача, та парольної фрази.
Додавши другий рівень до аутентифікації, користувачі можуть бути впевнені, що будь-яка спроба отримати віддалений доступ через SSH буде піддана перевірці за допомогою більше ніж одного облікового запису.
Популярні інструменти, такі як Google Authenticator або Authy, можна інтегрувати у ваш процес входу в SSH. Увімкнення 2FA в SSH може значно знизити ризик несанкціонованого доступу, особливо на серверах із загальним доступом. Адже два рівні захисту кращі за один.
2. Зміна стандартних налаштувань безпеки
Зміна стандартних налаштувань SSH дозволяє закрити типові вектори атак, які використовують зловмисники.
Параметри SSH за замовчуванням знаходяться у файлі конфігурації за адресою /etc/ssh/sshd_config. Ось кілька ключових налаштувань, які слід змінити для підвищення безпеки.
Зміна порту за замовчуванням
За замовчуванням SSH працює на порту 22. Зміна цього порту на менш поширений (наприклад, 2222) зменшує вразливість до автоматичного сканування та атак методом грубої сили, оскільки зловмисники в першу чергу перевіряють стандартні порти.
Щоб змінити стандартний порт, відредагуйте файл конфігурації SSH /etc/ssh/sshd_config та вкажіть у директиві Port вибраний вами порт. Не забудьте оновити відповідні правила брандмауера, щоб врахувати цю зміну.
Вимкнення входу користувача root
Дозвіл на вхід користувача root через SSH може бути ризикованим, оскільки це надає прямий доступ до користувача root. Привілеї root надають повний доступ до всієї системи. Отже, вимкнувши вхід користувача root, ви зможете перевіряти та контролювати рівень доступу кожного користувача до сервера.
Вимкнення входу користувача root гарантує, що зловмисники повинні знати конкретне ім’я користувача, що додає додатковий рівень безпеки. Щоб вимкнути вхід користувача root, відкрийте /etc/ssh/sshd_config та встановіть PermitRootLogin на no.
Ви можете налаштувати користувачів із правами sudo , якщо системним адміністраторам потрібні привілеї для виконання певних завдань.
Вимкнення автентифікації на основі пароля
Автентифікація на основі пароля за замовчуванням, хоч і зручна, часто є причиною успіху атак методом грубої сили.
З нашого досвіду, перехід на аутентифікацію за допомогою ключів є оптимальним рішенням, оскільки вона вимагає пари SSH-ключів, що дозволяє усунути ризик, пов’язаний із слабкими паролями.
Щоб вимкнути автентифікацію за паролем за замовчуванням, у файлі /etc/ssh/sshd_config встановіть PasswordAuthentication на no, що обмежує доступ лише для тих, хто має дійсний ключ SSH.
Це має виглядати так:
PasswordAuthenticationno
Обмеження доступу за допомогою «AllowUsers»
Усі користувачі системи можуть входити через SSH за допомогою своїх паролів або відкритих ключів, але не всі з них повинні мати таку можливість. Директива AllowUsers дозволяє визначити, яким користувачам дозволено підключатися до сервера через SSH. Це простий спосіб обмежити доступ до певних користувачів та запобігти несанкціонованим входам.
У файлі /etc/ssh/sshd_config додайте AllowUsers , а потім вкажіть імена користувачів, яким дозволено доступ до SSH, що ще більше посилить безпеку.
3. Використання SSH-сертифікатів для автентифікації клієнтів
SSH-сертифікати є альтернативою традиційним SSH-ключам і забезпечують вищий рівень безпеки. SSH-ключі — це, по суті, слова, які можна скопіювати, тому вони не забезпечують достатнього захисту.
Аутентифікація на основі SSH-сертифікатів є кращою альтернативою. SSH-сертифікати перевіряють ідентичність кожного ключа під час його використання для входу. За допомогою SSH-сертифікатів можна легше керувати доступом та термінами дії, що ідеально підходить для великих середовищ або тимчасового доступу. Налаштувавши свій SSH-сервер так, щоб він довіряв центру сертифікації (CA), який видає сертифікати користувачам, ви отримуєте більший контроль над тим, хто має доступ до сервера, без необхідності вручну керувати окремими ключами.
Ви можете генерувати сертифікати за допомогою OpenSSH, використовуючи ssh-keygen.
4. Захист доступу за допомогою бастіонного хосту
Бастіонний хост виступає в ролі безпечного посередника між вашими приватними серверами та зовнішнім доступом. Розмістивши доступ SSH до внутрішніх серверів за бастіонним хостом, ви створюєте єдину, захищену точку входу, яку легше контролювати та захищати. Бастіонний хост розташований безпосередньо перед брандмауером, тому є першою точкою захисту системи.
Щоб налаштувати бастіонний хост, обмежте доступ через SSH до приватних серверів так, щоб до них міг отримати доступ лише бастіонний хост, тим самим зменшивши вразливість до зовнішніх загроз.
5. Забезпечення безпеки за допомогою брандмауерів
Брандмауери додають важливий рівень безпеки, контролюючи вхідний та вихідний трафік; залежно від налаштувань, брандмауери також можуть захищати трафік усередині приватної мережі. У Ubuntu UFW (Uncomplicated Firewall) є простим у використанні інструментом для управління правилами брандмауера.
Почніть із того, щоб дозволити лише вибраний порт SSH і заблокувати інші неавторизовані порти. Крім того, обмеження частоти SSH-з’єднань може пом’якшити наслідки атак методом грубої сили, блокуючи повторювані спроби підключення з однієї IP-адреси.
Щоб посилити безпеку за допомогою брандмауерів:
- Встановіть UFW: sudo apt install ufw
- Дозвольте лише обраний вами порт SSH (наприклад, 2222): sudo ufw allow 2222/tcp
- Увімкніть обмеження частоти: sudo ufw limit 2222/tcp
- Увімкніть брандмауер: sudo ufw enable
Налаштування брандмауера таким чином зменшує площу атаки та мінімізує ризик несанкціонованого доступу.
Користувачі, які працюють у середовищі Linux, можуть використовувати iptables, де можна визначити правила, що регулюють вхідний трафік SSH, та сортувати його за портом, IP-адресою або протоколом. Система iptables є інтерфейсом до брандмауера netfilter, тому зміна її налаштувань призводить до зміни налаштувань брандмауера.
Підсумкові думки
Забезпечення безпеки SSH в Ubuntu вимагає комплексу заходів — від налаштування стандартних параметрів до впровадження більш просунутих методів, таких як SSH-сертифікати та бастіонні хости. Кожен описаний тут метод відіграє важливу роль у захисті доступу через SSH та посиленні безпеки сервера. Вжиття цих заходів може значно зменшити вразливості та покращити загальний рівень безпеки вашого сервера на базі Ubuntu.