У цьому посібнику я покажу, як захистити ваш сервер за допомогою  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_config

Розкоментуйте рядок і змініть номер порту, збережіть конфігурацію та перезапустіть службу sshd.

# systemctl restart sshd

Переконайтеся, що SSH прослуховує вказаний порт, підключившись до нього.

# netstat -ntulp | grep ssh

netstat

Порт 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

sshd_config

Знайдіть рядок, який містить PasswordAuthentication, і змініть його на “ні”

Увага! Перш ніж перезапустити демон ssh, щоб зміни вступили в силу, переконайтеся, що ви створили та налаштували ключ SSH для входу в систему.

Перезапустіть службу sshd, щоб застосувати конфігурацію.

# systemctl restart sshd

Я показав вам основні поради щодо безпеки SSH-сервера.

Tagged: