Top.Mail.Ru

Защита SSH сервера на Astra Linux | Настройка SSH | Подключение по SSH

В одном из прошлых уроков, мы рассматривали вопрос поднятия SSH сервера на Astra Linux и подключение к нему через терминал и программу PuTTY. Однако, поднять только роль SSH сервера недостаточно, так как он открывает потенциальную уязвимость безопасности, а если учитывать, что через него можно полностью управлять сервером, то к данному вопросу стоит отнестись крайне ответственно.

Курс охватывает все ключевые аспекты работы Windows серверами: от установки и настройки до обеспечения безопасности и автоматизации.

Так же в курс входят такие темы как: Active Directory, групповые политики (GPO), администрирование 1С, настройка файлового сервера, удаленное администрирование, WSUS, основы Linux и т.д.

Поэтому сейчас мы на практике рассмотрим такие средства защиты SSH сервера как:

1) Смена стандартного порта для подключения

2) Запрет на прямое подключение из-под пользователя root

3) Подключение к серверу SSH используя приватный ключ

Смена стандартного порта подключения

Откроем конфигурационный файл SSH сервера (корень \ etc \ ssh \ sshd_config)

Тут нас интересуют следующие параметры:

#Port 22 - данная строка отвечает за порт по умолчанию для SSH сервера. Как вы видите, в начале данной строки стоит значок #, это говорит о том, что данная запись закомментирована, т.е. не учитывается в конфигурации.

Давайте еще раз проверим, что мы можем подключиться к данному серверу по SSH протоколу, сделаю я это с другой машины, так же под управлением Astra Linux.

Пуск \ Системные \ Терминал fly \ Проверим какой у сервера IP-адрес \ Мониторчики \ ПКМ \ Сведения о соединении \ 192.168.2.5

 

ssh it-skills@192.168.2.5

 

Так как мы еще не подключались к данной машине, то выдается сообщение:

The authenticity of host '192.168.2.5 (192.168.2.5)' can't be established.

ECDSA key fingerprint is SHA256:zM5bNYDYg5Y30svnn4J77xXIgLqMRneJX9ZXeKxzAFI.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

 

Которое говорит о том, что данная машина не известна, вы действительно хотите к ней подключиться? Пишем yes!

 

Warning: Permanently added '192.168.2.5' (ECDSA) to the list of known hosts.

 

Внимание: В список известных хостов была добавлена данная машина и больше подобных сообщений появляться не будет.

 

Вводим пароль и получаем строку it-skills@astra, что говорит о том, что мы подключились к машине с именем astra под пользователем it-skills

 

Рас уж мы собираемся использовать SSH для дальнейшего удаленного подключения и настройки сервера, то предлагаю именно сейчас с этого и начать. Т.е. выполнить настройку SSH сервера так же, удаленно.

Перейдем в директорию с нашим конфигурационным файлом:

cd /etc/ssh/

ls

sudo nano sshd_config - т.е. открыть через текстовый редактор nano конфигурационный файл sshd_config с повышением прав, так как вносить изменения в него может только супер пользовать

 

Port 22345 - раскомментируем строку и введем не стандартный порт. Не стоит использовать порт 2222, да, он не стандартный, однако, какие бы инструкции по смене порта я не видел, везде указывают 2222, так что, его уже тоже можно считать стандартным.

Ctrl+o - сохранить изменения

Crtl+z - выход из редактора

sudo service sshd reload - перезапустим службу, чтобы применить изменения

logout - отключимся от удаленного сервера

ssh it-skills@192.168.2.5 - попробуем вновь подключиться

 

ssh: connect to host 192.168.2.5 port 22: Connection refused

Отказано в подключении

 

ssh -p 22345 it-skills@192.168.2.5 - через ключ -p указываем конкретный порт, к которому нужно подключиться.

 

Настройка подключения к серверу SSH через учетку root

Идем далее, одним важным нюансом является возможность подключения к серверу через учетную запись суперпользователя root.

В чем тут опасность?

Во-первых, подключившись под root-ом вы можете выполнять абсолютно все настройки в системе, а значит, если его пароль узнает злоумышленник, то он тоже сможет полностью контролировать сервер.

Во-вторых, если у нас будет доступна возможность авторизоваться на SSH сервере непосредственно под root-ом, то злоумышленник может начать процесс подбора пароля. Поэтому, такая возможность должны быть обязательно отключена.

Давайте попробуем подключиться к SSH серверу под root-ом

 

ssh -p 22345 root@192.168.2.5

 

Permission denied, please try again.

 

Доступ запрещен, попробуйте еще раз.

 

Отлично, на этом сервере это запрещено. Но, давайте посмотрим, где эта настройка хранится и как его запретить, если у вас она разрешена.

ssh -p 22345 it-skills@192.168.2.5

sudo nano /etc/ssh/sshd_config

 

#PermitRootLogin prohibit-password

изменяем на

PermitRootLogin yes

 

sudo service sshd reload

logout

ssh -p 22345 root@192.168.2.5

 

Permission denied, please try again.

 

Все равно, доступ запрещен. Но, тут уже проблема в другом. При установке Astra Linux и создании первого пользователя мы указываем для него пароль, однако, для учетной записи суперпользователя root пароль вообще не назначается.

И в данном случае, какой-бы мы пароль не вводили, будет выдаваться ошибка.

Поэтому, давайте зададим пароль для root-а

 

ssh -p 22345 it-skills@192.168.2.5

sudo passwd root

[sudo] пароль для it-skills:

Новый пароль :

Повторите ввод нового пароля :

passwd: пароль успешно обновлён

 

А вот теперь, пробуем подключиться под root-ом к нашему серверу через ssh

 

logout

ssh -p 22345 root@192.168.2.5

 

Успешно подключились.

Теперь изменим настройку, чтобы запретить подключения от пользователя root

 

nano /etc/ssh/sshd_config

 

PermitRootLogin yes

изменяем на

PermitRootLogin no

 

service sshd reload

logout

ssh -p 22345 root@192.168.2.5

Permission denied, please try again.

 

Доступ запрещен, а значит именно эта настройка отвечает за подключение из-под root-а к серверу SSH.

 

Подключение к серверу SSH используя приватный ключ

Чтобы исключить возможность взлома пароля пользователя, мы можем воспользоваться авторизацией на SSH сервере через сертификат. В данном случае мы не будем вводить пароль, а подключение будет выполнено если у нашего текущего пользователя имеется сертификат, через который можно получить доступ к серверу.

Запускаем терминал на машине, с которой будем подключаться к серверу (Пуск \ Системные \ Терминал Fly)

 

ssh-keygen -t rsa - ssh-keygen (генерация ssh ключа) -t (type - тип ключа) rsa

 

Generating public/private rsa key pair.

Enter file in which to save the key (/home/it-skills2/.ssh/id_rsa):

Куда будет сохранен ключ

Enter passphrase (empty for no passphrase):

Пароль, пустой Enter

Enter same passphrase again:

Еще раз вводим пароль Enter

Your identification has been saved in /home/it-skills2/.ssh/id_rsa

Your public key has been saved in /home/it-skills2/.ssh/id_rsa.pub

Путь, куда были сохранены приватный и публичный ключи.

 

Давайте проверим, что они появились в домашнем каталоге текущего пользователя (Astra2 \ Менеджер файлов \ Домашняя \ Вид \ Отображать скрытые \ .ssh \ И вот у нас два файла id_rsa и id_rsa.pub)

Теперь, нам нужно скопировать публичный ключа на сервер, к которому мы будем подключаться

 

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22345 it-skills@192.168.2.5 - указываем путь к публичному ключу, порт пользователя и сервер, на который нужно установить этот ключ.

Только имейте ввиду, что подключаться, используя этот ключ, мы сможем только под пользователем it-skills, как и указали в данной команде.

 

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/it-skills2/.ssh/id_rsa.pub"

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

it-skills@192.168.2.6's password:

Вводим пароль для подключения через SSH к серверу Astra

 

Number of key(s) added: 1

 

Now try logging into the machine, with:   "ssh -p '22345' 'it-skills@192.168.2.6'"

and check to make sure that only the key(s) you wanted were added.

 

Все, ключ добавлен

 

Давайте проверим и подключимся еще раз к серверу SSH

 

ssh -p 22345 it-skills@192.168.2.5

 

Мы успешно подключились и система не запросила у нас пароль.

 

Теперь, давайте полностью отключим возможность подключаться к серверу используя пароль, а только через приватный ключ

 

nano /etc/ssh/sshd_config

 

#PasswordAuthentication no

изменяем на

PasswordAuthentication no

 

service sshd reload

 

На этому у меня все, спасибо за внимание и до новых встреч! ПОКА!