Как настроить 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-сервера.