У цьому посібнику я покажу, як захистити ваш сервер за допомогою SSH.
Протокол SSH (також відомий як Secure Shell) — це метод безпечного віддаленого входу з одного комп’ютера на інший. Він надає кілька альтернативних варіантів надійної автентифікації та захищає безпеку та цілісність зв’язку за допомогою надійного шифрування. Це безпечна альтернатива незахищеним протоколам входу (таким як telnet, rlogin) і незахищеним методам передачі файлів (таким як FTP).
Мій тестовий сервер був онлайн лише дві години. Коли я увійшов, я побачив це повідомлення.
Last failed login: Fri May 22 12:51:07 CEST 2020 from 218.92.0.184 on ssh:notty
There were 718 failed login attempts since the last successful login.
Мені потрібно захистити свій сервер, щоб уникнути атак.
Змініть стандартний порт SSH
Використання нестандартного порту для підключення SSH допомагає уникнути автоматизованих атак на ваш сервер.
Щоб змінити порт SSH, вам потрібно відредагувати файл конфігурації sshd. У моєму випадку я зміню порт за замовчуванням 22 на спеціальний 54321.
# nano /etc/ssh/sshd_config
Розкоментуйте рядок і змініть номер порту, збережіть конфігурацію та перезапустіть службу sshd.
# systemctl restart sshd
Переконайтеся, що SSH прослуховує вказаний порт, підключившись до нього.
# netstat -ntulp | grep ssh
Порт SSH успішно змінено. Щоб підключитися до сервера за допомогою спеціального порту SSH, скористайтеся наступною командою.
# ssh root@ip_address -p54321
Обмежте доступ SSH за допомогою iptables
Ви можете обмежити підключення SSH, дозволяючи лише авторизовані IP-адреси.
Щоб дозволити підключення SSH лише з 10.10.10.10, виконайте таку команду:
# iptables -A INPUT -p tcp -m tcp --dport 54321 -s 10.10.10.10 -j ACCEPT
Щоб вимкнути з’єднання SSH з усіх інших хостів, виконайте таку команду:
# iptables -A INPUT -p tcp -m tcp --dport 54321 -m state --state NEW -j DROP
Збережіть нові правила за допомогою такої команди:
# iptables-save > /etc/sysconfig/iptables
Використовуйте ключі SSH замість паролів
Використання паролів для автентифікації SSH є небезпечним. Якщо один із ваших користувачів встановить слабкий пароль, ваш сервер може бути скомпрометований. Щоб уникнути цього, ви можете використовувати ключ ssh для автентифікації без пароля.
Будь ласка, перегляньте посібник – Як налаштувати ключі SSH
Вимкніть вхід на основі пароля на вашому сервері
Автентифікація за паролем у SSH є великим ризиком для безпеки, якщо ваш користувач встановлює слабкий пароль. Якщо ви використовуєте ключі SSH для автентифікації SSH, ви можете взагалі вимкнути автентифікацію за паролем сервера.
Вам потрібно відредагувати файл конфігурації sshd.
# nano /etc/ssh/sshd_config
Знайдіть рядок, який містить PasswordAuthentication, і змініть його на “ні”
Увага! Перш ніж перезапустити демон ssh, щоб зміни вступили в силу, переконайтеся, що ви створили та налаштували ключ SSH для входу в систему.
Перезапустіть службу sshd, щоб застосувати конфігурацію.
# systemctl restart sshd
Я показав вам основні поради щодо безпеки SSH-сервера.


