На только что созданном сервере доступ для подключения к нему открыт для всего одной учётной записи. На серверах, работающих под управлением операционных систем семейства Linux, пользователь, существующий в системе по умолчанию это – пользователь root
. Такая учётная запись имеет суперполномочия в своей системе и наделена полными правами по отношению ко всем службам, процессам, каталогам и файлам. Исходя из этого можно сделать вывод, что наличие у такого пользователя абсолютных полномочий представляет колоссальную опасность для вашей системы, в случае, если вы используете эту учётку для работы с сервером. Ведь, получив в своё распоряжение данные этой учётной записи, злоумышленник сможет произвести на сервере абсолютно любые действия.
Одним из источников возможной утечки данных является доступ к серверу по протоколу SSH. Исходя из этого, для подключения к серверу следует использовать специально созданные учётные записи.
Подключение по SSH
Для начала мы посмотрим, каким образом реализуется такого рода подключение.
Если ваша рабочая станция управляется одной из операционных систем Linux, то для подключения к серверу по SSH вам необходимо запустить терминал. В терминале нужно набрать специальную команду, которая выглядит следующим образом:
$ ssh имя_пользователя@IP_адрес_сервера
Здесь имя_пользователя
– это имя учётной записи, которую вы используете для подключения, а IP_адрес_сервера
– это IP-адрес сервера, к которому вы подключаетесь. Например, в нашем случае, когда мы подключаемся пользователем root
к серверу с IP-адресом 45.8.230.83, команда будет выглядеть так:
$ ssh root@45.8.230.83
Если вы подключаетесь к серверу впервые, то команда предложит вам согласиться с установлением доверительных отношений между вашей рабочей станцией и сервером. Для создания канала связи наберите yes
. После чего нужно будет набрать пароль вашего пользователя, и если вы не ошиблись в наборе пароля, вы получите приглашение ко вводу команд. Если вы подключались не учётной записью root
, то приглашение выглядит как $
, если вы подключаетесь как root
, то приглашение будет выглядеть как #
.
Точно таким же образом вы сможете подключиться по SSH с компьютера, работающего на Windows 10. Делается это из командной строки, для запуска которой нажмите Win r
и наберите cmd
. Далее, действуйте так же как в Linux.
Для отключения от сервера нажмите Ctrl d
.
В Windows 7 и ранних версиях Windows 10 подключиться к серверу по SSH скорее всего не получится. Там по умолчанию такой возможности нет. Поэтому, как в Windows 7, так и в Windows 10, для работы с протоколом SSH можно использовать различные SSH-клиенты. Наиболее популярным из них является PuTTy – свободно распространяемое программное обеспечение для работы с различными протоколами удалённого доступа, включая SSH.
Дистрибутив PuTTy доступен на официальном сайте. По окончании установки PuTTy можно запустить через Win r
, набрав putty
. В открывшемся окне перейдите в категорию Session
, в поле Connection type
активируйте SSH, а в поле Host Name (or IP address)
наберите IP-адрес вашего сервера. После чего нажмите кнопку Open
:
В следующем окне нажмите Да
:
После чего наберите логин и пароль пользователя, под именем которого вы подключаетесь по SSH, и ваше подключение должно состояться:
Для закрытия подключения используйте Ctrl d
.
Создание дополнительных учётных записей
Для добавления нового пользователя необходимо будет подключиться к серверу по SSH. Подключение будем производить пользователем root
.
Добавление новой учётной записи в Ubuntu происходит при помощи следующей команды:
# adduser your-user
В качестве имени нового пользователя в этой команде мы используем your-user
. При выполнении данной команды система попросит вас указать новый пароль для создаваемого пользователя, после чего повторно набрать его. Далее, система предложит вам ввести некоторые необязательные параметры для новой учётной записи, типа Полное имя, Номер помещения, Рабочий телефон, Домашний телефон и Прочее. Если вы не хотите указывать такие данные, нажимайте на каждой строке Enter
. Если всё введено правильно, на заключительный вопрос следует ответить утвердительно, нажав Y
.
Теперь для того, чтобы созданный пользователь имел привилегированные полномочия, нужно добавить его в группу sudo
:
# usermod -aG sudo
your-user
Такие же инструкции используются для аналогичных операций в Debian:
Процедура добавления нового пользователя в CentOS незначительно отличается. Здесь, сначала необходимо добавить учётную запись в систему:
# adduser your-user
После чего, отдельной командой установить для неё пароль:
# passwd your-user
А для предоставления новому пользователю привилегий sudo
, в CentOS необходимо включить его в группу wheel
:
# usermod -a -G wheel your-user
После произведённых действий вы сможете подключаться к вашему VPS не только под именем пользователя root
, но и с использованием данных недавно созданной учётной записи.
Закрытие доступа пользователю root
Теперь, подключившись к своему виртуальному серверу с помощью нового пользователя по SSH, вы сможете выполнять команды используя привилегированные полномочия – sudo
. А если так, то логичным выглядит закрытие доступа к серверу по SSH пользователю root
.
В Ubuntu и Debian для этого необходимо отредактировать файл конфигурации SSH. Делать это можно подключившись к серверу пользователем, имеющим полномочия sudo
:
$ cd /etc/ssh/
$ sudo nano sshd_config
В файле sshd_config
нужно раскомментировать строку PermitRootLogin
и установить на этой строке значение no
. Затем, закрыть файл с сохранением изменений. Для чего, при использовании текстового редактора nano
, нажмите Ctrl X
, Y
и Enter
.
В CentOS необходимо также изменить конфигурационный файл SSH. Но здесь для этого нужно подключиться пользователем root
:
$ su
И только после этого перейти к редактированию файла:
# cd /etc/ssh
# sudo vi sshd_config
В файле найдите строку PasswordAuthentication
, снимите с неё комментарий (если он есть) и установите в ней значение no
.
Внесённые изменения вступят в силу после перезапуска службы SSH. В Ubuntu и Debian для этого выполните команду:
$ sudo service ssh restart
В CentOS команду для перезагрузки SSH необходимо запускать из-под учётной записи root
:
# systemctl restart sshd
Заключение
Итак, мы научились подключаться к VPS с использованием протокола SSH и создавать на сервере Linux дополнительные учётные записи с возможностью подключения с их помощью по SSH. Далее, вы сможете продолжить настройку с целью повышения уровня безопасности вашего сервера как для Ubuntu/Debian, так и для CentOS.