Первоначальная настройка сервера с Ubuntu 20.04

Введение

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

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

Шаг 1 — Вход под учётной записью root

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

Если вы еще не подключены к своему серверу, войдите сейчас как пользователь root, используя следующую команду (замените выделенную часть команды на публичный IP-адрес вашего сервера):

  1. ssh root@your_server_ip

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

О пользователе root

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

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

Шаг 2 — Создание нового пользователя

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

В этом примере создается новый пользователь с именем sammy, но вы можете заменить его на имя пользователя, которое вам нравится:

  1. adduser sammy

Вам будет задано несколько вопросов, начиная с пароля учетной записи.

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

Шаг 3 — Предоставление административных привилегий

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

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

Чтобы добавить эти привилегии нашему новому пользователю, мы должны добавить пользователя в группу sudo. По умолчанию, в Ubuntu 20.04, пользователи, состоящие в группе sudo, имеют право использовать команду sudo.

Как root, выполните эту команду, чтобы добавить вашего нового пользователя в группу sudo (замените выделенное имя пользователя на вашего нового пользователя):

  1. usermod -aG sudo sammy

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

Шаг 4 — Настройка базового брандмауэра

Серверы Ubuntu 20.04 могут использовать брандмауэр UFW, чтобы гарантировать, что разрешены только соединения к определенным службам. Мы можем настроить базовый брандмауэр с использованием этого приложения.

Примечание: Если ваши серверы работают на платформе DigitalOcean, вы можете по желанию использовать Облачные брандмауэры DigitalOcean вместо брандмауэра UFW. Мы рекомендуем использовать только один брандмауэр одновременно, чтобы избежать конфликтующих правил, которые могут быть сложными для отладки.

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

Вы можете увидеть это, набрав:

  1. ufw app list
Output
Available applications: OpenSSH

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

  1. ufw allow OpenSSH

Затем мы можем включить брандмауэр, набрав:

  1. ufw enable

Введите y и нажмите ENTER, чтобы продолжить. Вы можете видеть, что SSH-подключения все еще разрешены, набрав:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Поскольку брандмауэр в настоящее время блокирует все соединения, кроме SSH, если вы устанавливаете и настраиваете дополнительные службы, вам нужно будет настроить параметры брандмауэра для разрешения трафика. Вы можете изучить некоторые общие операции UFW в нашем руководстве UFW Essentials.

Шаг 5 — Включение внешнего доступа для вашего обычного пользователя

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

Примечание: До тех пор, пока вы не убедитесь, что можете войти и использовать sudo с вашим новым пользователем, мы рекомендуем оставаться в системе под пользователем root. Таким образом, если у вас возникнут проблемы, вы сможете их устранить и внести любые необходимые изменения как root. Если вы используете Droplet от DigitalOcean и столкнулись с проблемами с SSH-подключением root, вы можете восстановить доступ к Droplet’ам, используя Консоль восстановления.

Процесс настройки доступа по SSH для вашего нового пользователя зависит от того, использует ли учетная запись root сервера пароль или ключи SSH для аутентификации.

Если учетная запись root использует аутентификацию по паролю

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

Вам будет предложено ввести пароль вашего обычного пользователя при использовании sudo в первый раз в каждой сессии (и периодически после этого).

Для улучшения безопасности вашего сервера мы настоятельно рекомендуем настроить SSH-ключи вместо использования аутентификации по паролю. Следуйте нашему руководству по настройке SSH-ключей в Ubuntu 20.04, чтобы узнать, как настроить аутентификацию на основе ключей.

Если учетная запись root использует аутентификацию по ключу SSH

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

Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys учетной записи root на сервере, мы можем скопировать этот файл и структуру каталогов в нашу новую учетную запись пользователя в текущей сессии.

Самый простой способ скопировать файлы с правильными правами доступа и владельцами — использовать команду rsync. Это скопирует каталог .ssh пользователя root, сохранит разрешения и изменит владельцев файлов, все в одной команде. Убедитесь, что измените выделенные части команды ниже, чтобы они соответствовали имени вашего обычного пользователя:

Примечание: Команда rsync обрабатывает источники и места назначения, оканчивающиеся косой чертой, по-разному, чем те, у которых косой черты нет. При использовании rsync ниже убедитесь, что исходный каталог (~/.ssh) не содержит косую черту в конце (убедитесь, что вы не используете ~/.ssh/).

Если вы случайно добавите косую черту к команде, rsync скопирует содержимое каталога ~/.ssh учетной записи root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталога ~/.ssh. Файлы окажутся в неправильном месте, и SSH не сможет найти и использовать их.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Теперь откройте новую сеанс терминала на вашем локальном компьютере и используйте SSH с вашим новым именем пользователя:

  1. ssh sammy@your_server_ip

Вы должны войти в новую учетную запись пользователя без использования пароля. Помните, если вам нужно выполнить команду с правами администратора, введите sudo перед ней, как здесь:

  1. sudo command_to_run

Вам будет предложено ввести пароль вашего обычного пользователя при использовании sudo в первый раз в каждой сессии (и периодически после этого).

Куда идти дальше?

На этом этапе у вас есть прочный фундамент для вашего сервера. Теперь вы можете установить любое необходимое вам программное обеспечение на ваш сервер.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04