Серверы, имеющие ip-адреса, доступные из интернета, подвержены множеству угроз:
- Несанкционированный доступ через уязвимости SSH
- Атаки вредоносного ПО
- Эксплуатация слабых паролей
Эта статья поможет вам минимизировать риски и защитить сервер от самых распространённых видов атак, таких как брутфорс, взлом учетных записей, фишинг.
sshd_configФайл /etc/ssh/sshd_config хранит настройки SSH-сервера OpenSSH.
Что бы внести в него изменения, откройте его любым удобным редактором, например nano:
nano /etc/ssh/sshd_config
Для повышения безопасности сервера рекомендуется изменить стандартный порт SSH (22) на нестандартный.
Найдите строку #Port 22, раскомментируйте её и укажите новый порт (любой свободный).
Не забудьте убедиться, что новый порт открыт в файрволе, чтобы не потерять доступ к серверу.
На наших серверах по умолчанию все порты открыты.
Можно вообще отключить вход по паролю, если собираетесь настроить авторизацию по ключам:
Измените PasswordAuthentication на no
Для поиска по документу, открытому в nano можно использовать Ctrl-W и ввести искомое слово.
rootДля безопасности рекомендуется закрыть для root пользователя вход по ssh.
PermitRootLogin на no
Ctrl-X, введите y и нажмите Enter, чтобы сохранить изменения.
user.
sudo.
Для применения изменений в конфиге нужно перезапустить SSH:
systemctl restart ssh
Аутентификация с использованием ключей обеспечивает более высокий уровень безопасности, чем пароли, практически недоступны для брутфорса и исключают фишинг, так как не нужно вводить пароль где-либо.
На локальной машине (с которой будет происходить подключение к серверу) выполните:
ssh-keygen -t rsa -b 4096 -C "My Key"
-t rsa - тип ключа
-b 4096 - длина ключа
-C "My Key" - произвольное описание ключа
Чтобы открыть командную строку на Windows, нажмите Win-R, введите cmd и нажмите Enter
Для Windows:
type %userprofile%\.ssh\id_rsa.pub | ssh user@you_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
И нажимайте Enter до конца. Когда запросит пароль, введите пароль от своего пользователя user
Описание команды:
\%userprofile\%\.ssh\id_rsa.pub - путь к файлу вашего публичного ключа
user - логин. Укажите вашего созданного ранее пользователя (либо root, если вы решили оставить его)
you_ip - ip сервера, из панели управления
mkdir -p ~/.ssh - создание папки ~/.ssh на удалённом сервере, если её ещё не существует.
cat >> ~/.ssh/authorized_keys - добавляет данные в конец файла ~/.ssh/authorized_keys
Для Linux или Mac:
cat ~/.ssh/id_rsa.pub | ssh user@you_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
После этого выполните:
ssh user@you_ip
И вас пустит на сервер без пароля.
PuTTY использует собственный формат ключей .ppk.
Для преобразования выполните следующее:
id_rsa (в формате OpenSSH).
Введите пароль для ключа (если он задан), затем нажмите Save private key и сохраните файл с расширением .ppk.
.ppk.
Вернитесь в раздел Session, введите имя для сессии и сохраните её с помощью кнопки Save.
Теперь вы войдете с ключом My Key без пароля.
Регулярно обновляйте систему для исправления уязвимостей:
apt update && apt upgrade -y
Следуя этим рекомендациям, вы значительно повысите безопасность вашего сервера.
Регулярно проверяйте настройки и обновляйте систему, чтобы минимизировать риски.