Базовые методы защиты SSH-соединения

CyberSec RuTOR

Кибербезопасность
Команда форума
Модератор
Сообщения
998
Реакции
1.429
В данной статье я расскажу о том, как повысить безопасность вашего SSH-соединения
Представим, что вы приобрели 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 вы можете прочитать в другой статье -
 
Последнее редактирование:

Похожие темы

Итак, сегодня мы разберём машину Nocturnal | Linux easy. После добавления nocturnal.htb в файл /etc/hosts запускаем первый скан. Я использую rustscan, так как он быстрее определяет открытые порты целевой системы. rustscan -a nocturnal.htb -- -A Если вы используете nmap, то первый скан лучше...
Ответы
2
Просмотры
Очень актуальная тема в наше время - собственный VPN, да ещё и такой, чтобы не заблокировали на уровне протокола, как openvpn и wireguard. Сейчас в России стали популярны протоколы Shadowsocks и Vless, которые давно уже используются в Китае для обхода их местных блокировок, и, по моему опыту...
Ответы
13
Просмотры
Данная статья будет являться дополнением к другой моей статье - https://rutor.ink/threads/bazovye-metody-zaschity-ssh-soedinenija.91300/ Здесь я опишу, как защитить SSH-подключение к серверу с помощью аппаратного ключа безопасности с поддержкой протоколов FIDO/U2F. В данном примере будет...
Ответы
2
Просмотры
782
В данной статье я опишу процесс добавление 2FA аутентификации к SSH соединение, то есть, при подключении по SSH к вашему серверу помимо пароля так же потребуется ввести TOTP код из приложения для TOTP, как при двухфакторной аутентификации на каком-либо другом ресурсе. В качестве мобильного...
Ответы
1
Просмотры
838
Привествую уважаемый читатель. Данный гайд будет больше направлен на владельцев шопов или кому надо придерживать анонимную и безопасную связь с работниками или коллегами, чем на обычного юзера даркнет сети. Здесь расскажу как поднять "свой мессенджер" в сети ТОР. Много где находил вопросы по...
Ответы
17
Просмотры
Назад
Сверху Снизу