После установки операционной системы и до начала ее активного использования нам необходимо выполнить некоторые важные шаги по ее начальной настройке.

Шаг 1 — удаленное подключение к системе

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

Осуществить подключение по SSH можно как используя командную строку вашего десктопа (под управлением практически любой операционной системы), так и через специальные SSH клиенты, как например PuTTY. Я, для примера, буду использовать терминал Windows 11.

Запустите терминал (командную строку) вашей операционной системы, выглядеть это будет примерно так

Командная строка (терминал) Windows 11

и введите следующую команду

ssh user_name@server_ip // user_name - имя пользователя для сервера, server_ip - IP адрес сервера

Я использую на сервере имя пользователя такое же как и в десктопной системе, поэтому могу просто ввести

ssh 192.168.56.101

Нажмите «Enter» и при первом подключении нам выйдет сообщение о том, что хост сгенерировал ключи «рукопожатий» для защиты подключения.

Примем их, введя в командную строку «yes» и нажав клавишу «Enter».

Далее нас попросят ввести пароль от учетной записи

user_name@ip_address's password:

Помним, что при вводе пароля курсор остается неподвижным и не отображает нам даже количество вводимых символов.

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

Так же мы видим, что у нас имеется 12 обновлений. Давайте их установим.

Шаг 2 — Root

Но, перед этим нам следует переключиться на учетную запись суперпользователя, root. Для этого необходимо ввести команду

$ sudo -i

Потребуется повторно ввести пароль от учетной записи.

После переключения на root, начальная строка консоли немного изменит свой вид. Если ранее в конце строки стоял символ ~$, то теперь ин изменится на ~#. Таким образом мы всегда будем помнить с какими правами у нас открыт терминал.

Далее по ходу статей в списках команд я всегда буду указывать символами, с какими правами требуется их выполнение.

~$ - простой пользователь
~# - суперпользователь root

И так, мы ввели команду «sudo -i», что же она сделала? Изначально, когда мы подключались к серверу — мы использовали имя пользователя, который не имеет права администрирования системы, но, нам же необходимо устанавливать программные пакеты и проводить настройку, для этого мы и переключились под root. Далее, все команды, которые мы будем вводить — будут автоматически выполняться с правами суперпользователя.

Шаг 3 — обновление системы

Проведем наконец обновление системы. Для этого мы будем использовать три команды, напишу их сразу одной строкой

~# apt update && apt upgrade -y && apt autoremove -y

Как вы видите, несколько команд могут быть записаны одной строкой. Это используется для ускорения и упрощения работы. Каждая команда отделена от последующей двойным символом «&». То есть у нас будут последовательно выполняться три команды: apt update — эта команда обновляет список пакетов и список обновлений в репозиториях, согласно настроек системы; apt upgrade — производит установку всех найденных обновлений; apt autoremove — автоматическое удаление мусора, неиспользуемых в системе пакетов; атрибут -y подтверждает, что мы действительно хотим установить все обновления. Если мы опустим атрибут -y, то в процессе установки нам необходимо будет каждый раз подтверждать наши действия. Попробуйте обновить систему без использования этого атрибута.

Сначала система проверит список пакетов в репозиториях, затем сверит версии и определит список необходимых для скачивания пакетов

Проверка списков репозиториев

Затем сам скачает их, установит и предложит перезапустить некоторые затрагиваемые службы и приложения

Система хочет перезапустить одну из служб

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

Для выхода из системы в справами суперпользователя и возвращению к пользователю с обычными правами — просто введите команду

~# exit

Отступление о root

В *nix подобных системах считается дурным тоном постоянно находиться в системе под root, так как это может привести случайному краху системы в результате необдуманных действий. Поэтому, чтоб постоянно не переключаться на root и обратно, можно использовать команду sudo без атрибута -i, в начале каждой команды. Рассмотрим обновление системы из под простого пользователя

~$ sudo apt update
~$ sudo apt upgrade
~$ sudo apt autoremove

После первого использования sudo, система потребует ввода пароля. Затем система на какое-то время запомнит вас, и при исполнении следующих команд уже не будет его постоянно требовать ввод пароля.

Шаг 4 — Создание новых пользователей

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

Добавление пользователя осуществляется простой коммандой

~# adduser new_user

Приведенная выше команда создаст в системе нового пользователя с именем «new_user«. Система попросит придумать и ввести пароль для нового пользователя, и еще ответить на пару вопросов о нём, такие как имя пользователя (не для входа в аккаунт, а просто как примечание к нему), телефон и прочую идентификацию, которую можно пропустить, просто нажав клавишу «Enter».

По умолчанию, новый пользователь не получает никаких специальных прав в системе. Он может работать только со своей папкой в файловой системе, которая находится в каталоге “/home/new_user/”. Такой пользователь не может выполнять действия, которые требуют прав администратора.

Для того, чтобы дать пользователю какие-либо привилегии — необходимо его добавить в соответствующую группу. Для примера мы добавим пользователя в группу суперпользователей «sudo«.

~# usermod -aG sudo new_user

Давайте разбираться! usermod — команда для управления пользователями и из правами. Она может принимать ряд аргументов, как например:

  • -a — добавить пользователя в дополнительные группы из параметра -G, а не заменять им текущее значение;
  • -G — указывает дополнительную группу для пользователя;
  • -g — установить новую основную группу для пользователя, такая группа уже должна существовать, и все файлы в домашнем каталоге теперь будут принадлежать именно этой группе.

Мы просто добавляем его в группу sudo, а не перемещаем. Если переместить пользователя в sudo, все действия, которые он выполняет, будут происходить от имени суперпользователя. Это может привести к неприятным последствиям и даже краху системы. При этом основной для пользователя останется группа по умолчанию.

Посмотреть информацию о принадлежности пользователя к группам мы можем еще более простой командой

~$ id username

которая выведет нам и сам ID пользователя, и названия всех групп, в которые включен данный пользователь.

Шаг 5 — настройка файервола

Ubuntu Server может использовать брандмауэр UFW (Uncomplicated Firewall) для обеспечения безопасности в сети и отделения (изоляции) процессов от внешнего мира. Некоторые приложения после установки создают свои профили в UFW, с указанием условий, необходимых им для нормальной работы.

Для управления возможностями брандмауэра используется одноимённая команда — «ufw«, а для просмотра списка установленных профилей мы можем использовать команду

~# ufw app list
Результат выполнения команды

Как видите, приложение OpenSSH уже создало профиль в UFW. В этом профиле указан порт 22, который мы с вами уже используем для подключения к серверу, но, в данный момент брандмауэр у нас пока еще отключен.

Проверить статус UFW можно простой командой

~# ufw status

Результатом выполнения этой команды скорее всего станет ответ сервера «Status: inactive«, то есть файервол не в работе.

Давайте же включим его, но, перед этим мы разрешим внешнее подключение для OpenSSH, для этого мы введем команду

~# ufw allow OpenSSH

Получим в ответ что-то такое

root@ubuntuserver:~# ufw allow OpenSSH
Rules updated
Rules updated (v6)
root@ubuntuserver:~#

Давайте чуть-чуть разберемся. Для разрешения подключения к порту мы используем «allow«, в то время как для запрета будет использовано «deny». OpenSSH — это указание профиля, к которому мы применяем правило. После выполнения команды мы получаем ответ, что было обновлено правило для IPv4 и IPv6.

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

~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

система спросит нас, действительно ли мы хотим включить брандмауэр? Причина такой заботы в том, что если мы не разрешим заранее подключение к портам, указанным в профиле OpenSSH, то после включения файервола — мы потеряем соединение с сервером, и сможем его восстановить, только, имея к нему физический доступ.

Соглашаемся с тем, что мы можем потерять соединение (не можем, если мы сделали «ufw allow OpenSSH») и получаем сообщение, что «Firewall is active and enabled on system startup«, то есть, файервол запущен и включен в автозагрузку.

Всё, теперь наш сервер стал более безопасным. В дальнейшем мы еще не раз вернемся к теме UFW, а еще рассмотрим управление политиками сетевой безопасности через iptables, что тоже интересно и обязательно нам пригодиться.

Итоги

В этой короткой статье мы с вами научились подключаться удаленно к вашему серверу, на основе OS Ubuntu Server, выполнять команды от имени суперпользователя, обновлять систему, управлять пользователями и сделали начальную настройку файервола.

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