Серверы, имеющие 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
Следуя этим рекомендациям, вы значительно повысите безопасность вашего сервера.
Регулярно проверяйте настройки и обновляйте систему, чтобы минимизировать риски.