Как настроить SSH сервер так чтобы его не легко было взломать?

Настройка SSH-сервера для повышения безопасности включает несколько важных шагов. Вот рекомендации, которые помогут защитить ваш сервер:

 

1. Измените стандартный порт SSH

По умолчанию SSH работает на порту 22, что делает его легко находимым для злоумышленников. Чтобы изменить порт:

1. Откройте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

2. Найдите строку:

#Port 22

3. Уберите # и измените 22 на нестандартный порт (например, 2222):

Port 2222

4. Перезапустите SSH:

sudo systemctl restart sshd

2. Ограничьте доступ по IP-адресам

Если известно, с каких IP-адресов будут подключаться пользователи, настройте файрволл для ограничения доступа:

Используйте iptables или ufw. Например, для ufw:

sudo ufw allow from <Ваш_IP> to any port 2222

3. Используйте ключи вместо паролей

Аутентификация по ключам SSH намного безопаснее, чем пароли.

1.Создайте ключи на локальном компьютере:

ssh-keygen -t rsa -b 4096

2.Скопируйте публичный ключ на сервер:

ssh-copy-id -p 2222 user@server_ip

3. Отключите аутентификацию по паролю:

  • В файле /etc/ssh/sshd_config найдите:
PasswordAuthentication yes

Измените на:

PasswordAuthentication no
  • Перезапустите SSH:
sudo ssh systemctl restart sshd

4. Ограничьте вход для root

Отключение входа пользователя root предотвратит прямой доступ к главной учетной записи сервера:

  • В файле /etc/ssh/sshd_config найдите:
PermitRootLogin yes

Измените на:

PermitRootLogin no

5. Используйте Fail2Ban

Fail2Ban автоматически блокирует IP-адреса после нескольких неудачных попыток входа.

  • Установите Fail2Ban:
sudo apt install fail2ban
  • Настройте конфигурацию в файле /etc/fail2ban/jail.local для защиты SSH:
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600

(Далее по желанию) Включите двухфакторную аутентификацию (2FA)

  • Установите google-authenticator:
sudo apt install libpam-google-authenticator

Настройте и следуйте инструкциям. Включите PAM-модуль в SSH:

  • В файле /etc/pam.d/sshd добавьте:
auth required pam_google_authenticator.so

В файле /etc/ssh/sshd_config включите:

ChallengeResponseAuthentication yes

7. Обновляйте программное обеспечение

Регулярно обновляйте сервер, чтобы закрывать известные уязвимости:

sudo apt update && sudo apt upgrade

8. Мониторьте логи

Периодически проверяйте логи SSH для обнаружения подозрительной активности:

sudo tail -f /var/log/auth.log

Эти меры значительно повысят безопасность вашего SSH-сервера.