- Сообщения
- 998
- Реакции
- 1.429
В данной статье я расскажу о том, как повысить безопасность вашего SSH-соединения
Представим, что вы приобрели VPS/VDS на Debian/Ubuntu у какого-либо провайдера и подключаетесь к нему по паролю под учетной записью root, поскольку root имеет полный доступ к системе
Сейчас я опишу то, что необходимо сделать СРАЗУ после получения доступа к серверу.
Вам необходимо будет отключить доступ под учетной записью root, сменить порт SSH со стандартного на какой-либо специфический и настроить доступ по ключу, убрав при этом доступ по паролю.
Приступим, для начала подключитесь к серверу, делается это командой
После этого введите пароль и вы попадете на сервер под учетной записью root. Создайте обычного пользователя и добавьте его в группу sudo
Начнем c создания пользователя. Вводим команду:
Затем придумайте пароль пользователя (он будет использоваться при выполнении команд с правами sudo)
Теперь выдайте этому пользователю права sudo, для этого отредактируйте файл, в котором прописаны уровни привилегий пользователей, для этого откройте его командой:
Найдите строчку «# User privilege specification» Под этой строчкой впишите следующее:
Сохраните изменения в файле, сделать это можно комбинацией клавиш Ctrl+X, затем введите Y и нажмите Enter.
Проверьте, возможно ли подключиться к вашему серверу под новым пользователем командой:
Система попросит у вас пароль пользователя, если вы всё сделали верно, то попадете на сервер под новым пользователем. Проверьте работоспособность команд с привилегиями sudo.
Отключите учетную запись root
Для этого необходимо отредактируйте файл sshd_config. Для этого введите команду
В открывшемся файле найдите строчку «PermitRootLogin yes» напротив неё есть подпись «yes», её необходимо сменить на «no», после редактирования строчка должна выглядить следующим образом:
Теперь проверьте, что при подключении к серверу по SSH с именем пользователя root система вас не пропустит.
Сменим стандартный порт SSH. Снова откроейте файл sshd_config командой:
Найдите строчку «Port 22», значение 22 замените на любое другое значение порта, например 9898, сохраните изменения в файле и перезагрузите сервер командой
После этого подключайтесь к серверу командой с указанием специфического порта:
Если вы всё сделали правильно, то подключитесь к серверу.
Осталось настроить доступ к серверу по ключу и отключить доступ по паролю
Для этого сгенерируйте пару ключей на устройстве, с которого вы подключаетесь к серверу, командой
На этапе
Нажимаем Enter, если не требуется специфическое название для файла ключа
На этапе
Придумываем пароль ключа, если не хотите защищать ключ с помощью пароля, то оставьте это поле пустым
После этого будет создана пара ключей (открытый и закрытый) для подключения по SSH, загружаем открытый ключ на сервер с помощью команды:
Система запросит пароль для доступа к серверу и перенесет открытый ключ на сервер, перезагружаем сервер и проверяем его. Теперь подключение к серверу происходит по ключу со вводом пароля ключа, который вы указали при генерации, либо без него, если вы не указывали пароль ключа.
Отключите доступ по паролю. Для этого снова необходимо отредактировать файл sshd_config командой
В данном файле найдите строчку «#PasswordAuthentication yes»
Раскомметируйте её (удалить # перед этой строкой) и поменяйте «yes» на «no», после этого сохраните изменения в файле и перезагрузите сервер.
Проверьте, что доступ к серверу работает. Если всё работает корректно, то после этих настроек можете приступать к работе на сервере не опасаясь за безопасность SSH-соединения
О ещё 1 методе защиты SSH-соеднинения с помощью 2FA вы можете прочитать в другой статье -
Представим, что вы приобрели VPS/VDS на Debian/Ubuntu у какого-либо провайдера и подключаетесь к нему по паролю под учетной записью root, поскольку root имеет полный доступ к системе
Сейчас я опишу то, что необходимо сделать СРАЗУ после получения доступа к серверу.
Вам необходимо будет отключить доступ под учетной записью root, сменить порт SSH со стандартного на какой-либо специфический и настроить доступ по ключу, убрав при этом доступ по паролю.
Приступим, для начала подключитесь к серверу, делается это командой
Код:
ssh root@ip_адрес_сервера
После этого введите пароль и вы попадете на сервер под учетной записью root. Создайте обычного пользователя и добавьте его в группу sudo
Начнем c создания пользователя. Вводим команду:
Код:
adduser имя_нового_пользователя
Затем придумайте пароль пользователя (он будет использоваться при выполнении команд с правами sudo)
Теперь выдайте этому пользователю права sudo, для этого отредактируйте файл, в котором прописаны уровни привилегий пользователей, для этого откройте его командой:
Код:
visudo
Найдите строчку «# User privilege specification» Под этой строчкой впишите следующее:
Код:
имя_пользователя ALL=(ALL:ALL) ALL
Сохраните изменения в файле, сделать это можно комбинацией клавиш Ctrl+X, затем введите Y и нажмите Enter.
Проверьте, возможно ли подключиться к вашему серверу под новым пользователем командой:
Код:
ssh имя_пользователя@ip_адрес_сервера
Система попросит у вас пароль пользователя, если вы всё сделали верно, то попадете на сервер под новым пользователем. Проверьте работоспособность команд с привилегиями sudo.
Отключите учетную запись root
Для этого необходимо отредактируйте файл sshd_config. Для этого введите команду
Код:
sudo nano /etc/ssh/sshd_config
В открывшемся файле найдите строчку «PermitRootLogin yes» напротив неё есть подпись «yes», её необходимо сменить на «no», после редактирования строчка должна выглядить следующим образом:
Код:
PermitRootLogin no
Теперь проверьте, что при подключении к серверу по SSH с именем пользователя root система вас не пропустит.
Сменим стандартный порт SSH. Снова откроейте файл sshd_config командой:
Код:
sudo nano /etc/ssh/sshd_config
Найдите строчку «Port 22», значение 22 замените на любое другое значение порта, например 9898, сохраните изменения в файле и перезагрузите сервер командой
Код:
sudo reboot
После этого подключайтесь к серверу командой с указанием специфического порта:
Код:
ssh -p номер_порта имя_пользователя@ip_адрес_сервера
Если вы всё сделали правильно, то подключитесь к серверу.
Осталось настроить доступ к серверу по ключу и отключить доступ по паролю
Для этого сгенерируйте пару ключей на устройстве, с которого вы подключаетесь к серверу, командой
Код:
ssh-keygen
На этапе
Код:
Generating public/private RSA key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
Нажимаем Enter, если не требуется специфическое название для файла ключа
На этапе
Код:
Enter passphrase (empty for no passphrase):
Придумываем пароль ключа, если не хотите защищать ключ с помощью пароля, то оставьте это поле пустым
После этого будет создана пара ключей (открытый и закрытый) для подключения по SSH, загружаем открытый ключ на сервер с помощью команды:
Код:
ssh-copy-id -p номер_порта имя_пользователя@ip_адрес_сервера
Система запросит пароль для доступа к серверу и перенесет открытый ключ на сервер, перезагружаем сервер и проверяем его. Теперь подключение к серверу происходит по ключу со вводом пароля ключа, который вы указали при генерации, либо без него, если вы не указывали пароль ключа.
Отключите доступ по паролю. Для этого снова необходимо отредактировать файл sshd_config командой
Код:
sudo nano /etc/ssh/sshd_config
В данном файле найдите строчку «#PasswordAuthentication yes»
Раскомметируйте её (удалить # перед этой строкой) и поменяйте «yes» на «no», после этого сохраните изменения в файле и перезагрузите сервер.
Проверьте, что доступ к серверу работает. Если всё работает корректно, то после этих настроек можете приступать к работе на сервере не опасаясь за безопасность SSH-соединения
О ещё 1 методе защиты SSH-соеднинения с помощью 2FA вы можете прочитать в другой статье -
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Последнее редактирование: