SSH є чудовим, оскільки він дозволяє нам отримати термінальний доступ до інших ПК та серверів Linux через мережу або навіть Інтернет! Проте, незважаючи на дивовижну цю технологію, є деякі кричущі проблеми безпеки, які роблять її використання небезпечним. Якщо ви звичайний користувач, немає реальної необхідності встановлювати складні засоби безпеки SSH. Натомість подумайте про виконання цих основних кроків, щоб захистити сервер SSH в Linux.
Змінити порт підключення за замовчуванням
Найшвидший і найпростіший спосіб захистити SSH-сервер – це змінити порт, який він використовує. За замовчуванням сервер SSH працює на порту 22. Щоб змінити його, відкрийте вікно терміналу. Усередині вікна терміналу підключіть SSH до віддаленого ПК, на якому розміщено SSH-сервер.
ssh [email protected]
Після входу в систему перейдіть від звичайного користувача до Root. Якщо у вас увімкнено обліковий запис Root, вхід за допомогою su є хорошим вибором. В іншому випадку вам потрібно буде отримати доступ за допомогою sudo.
su -
або
sudo -s
Тепер, коли у вас є доступ адміністратора, відкрийте файл конфігурації SSH в Nano.
nano /etc/ssh/sshd_config
Прокрутіть файл конфігурації для «Порт 22». Видаліть #, якщо він є, а потім змініть «22» на інше число. Як правило, достатньо порту понад 100 або навіть одного в діапазоні 1000. Після зміни номера порту натисніть комбінацію клавіатури Ctrl + O, щоб зберегти зміни. Потім вийдіть з редактора, натиснувши Ctrl + X.
Редагування файлу конфігурації не призведе до негайного перемикання вашого SSH-сервера на використання правильного порту. Натомість вам потрібно буде вручну перезапустити службу.
systemctl restart sshd
Запуск команди systemctl повинен перезавантажити демон SSH і застосувати нові налаштування. Якщо перезапуск демона не вдається, інший варіант – перезавантажити машину сервера SSH:
reboot
Після перезапуску демона (або машини) SSH не буде доступним через порт 22. Як наслідок, для підключення через SSH потрібно вручну вказати порт.
Примітка: обов’язково змініть «1234» з портом, встановленим у файлі конфігурації SSH.
ssh -p 1234 [email protected]
Вимкніть вхід паролем
Ще один чудовий спосіб убезпечити сервер SSH — видалити пароль для входу та замість цього перейти до входу за допомогою ключів SSH. Перехід по маршруту ключа SSH створює коло довіри між вашим сервером SSH і віддаленими машинами, які мають ваш ключ. Це зашифрований файл паролів, який важко зламати.
Налаштуйте за допомогою ключа SSH на вашому сервері. Коли ви налаштуєте ключі, відкрийте термінал і відкрийте файл конфігурації SSH.
su -
або
sudo -s
Потім відкрийте конфігурацію в Nano за допомогою:
nano /etc/ssh/sshd_config
За замовчуванням сервери SSH обробляють аутентифікацію за допомогою пароля користувача. Якщо у вас є надійний пароль, це хороший спосіб, але зашифрований ключ SSH на надійних машинах швидший, зручніший та безпечніший. Щоб завершити перехід до «безпарольного входу», перегляньте файл конфігурації SSH. Усередині цього файлу прокрутіть і знайдіть запис «PasswordAuthentication».
Видаліть символ # перед «PasswordAuthentication» і переконайтеся, що перед ним є слово «ні». Якщо все виглядає добре, збережіть зміни до конфігурації SSH, натиснувши Ctrl + O на клавіатурі.
Після збереження конфігурації закрийте Nano за допомогою Ctrl + X і перезапустіть SSHD, щоб застосувати зміни.
systemctl restart sshd
Якщо ви не використовуєте systemd, спробуйте перезапустити SSH за допомогою цієї команди:
service ssh restart
Наступного разу, коли віддалена машина спробує увійти на цей SSH-сервер, вона перевірить правильні ключі та впустить їх без пароля.
Вимкніть обліковий запис Root
Вимкнення облікового запису Root на вашому SSH-сервері — це спосіб пом’якшити шкоду, яка може виникнути, коли неавторизований користувач отримує доступ через SSH. Щоб вимкнути обліковий запис Root, необхідно, щоб хоча б один користувач на вашому SSH-сервері міг отримати Root через sudo. Це гарантує, що ви все ще зможете отримати доступ на системному рівні, якщо він вам потрібен, без пароля Root.
Примітка: переконайтеся, що користувачі, які можуть отримати доступ до привілеїв Root через sudo, мають надійний пароль, інакше відключати обліковий запис суперкористувача безглуздо.
Щоб вимкнути Root, підніміть термінал до привілеїв суперкористувача:
sudo -s
Використання sudo -s обходить необхідність входу за допомогою su, а натомість надає кореневу оболонку через файл sudoers. Тепер, коли оболонка має доступ суперкористувача, запустіть команду пароля та зашифруйте обліковий запис Root за допомогою –lock.
passwd --lock root
Виконання наведеної вище команди перешифровує пароль облікового запису Root, тому вхід через su неможливий. Відтепер користувачі можуть використовувати лише SSH як локальний користувач, а потім перейти на обліковий запис Root за допомогою привілеїв sudo.