Начальная настройка сервера с Ubuntu 22.04

Введение

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

Разверните ваши приложения из GitHub с использованием платформы DigitalOcean App Platform. Позвольте DigitalOcean заниматься масштабированием вашего приложения.

Шаг 1 — Вход в систему от имени root

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

Если вы в настоящее время не подключены к своему серверу, выполните вход от имени пользователя root, используя следующую команду. Замените выделенную часть your_server_ip на публичный 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, вы можете настроить так называемые привилегии суперпользователя или root для обычной учетной записи вашего пользователя. Эти привилегии позволят вашему обычному пользователю выполнять команды с административными привилегиями, добавив слово sudo перед командой.

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

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

  1. usermod -aG sudo sammy

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

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

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

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

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

Вы можете изучить список установленных профилей 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.

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

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

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

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

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

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

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

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

Если вы вошли в свою учётную запись root с использованием SSH-ключей, то аутентификация по паролю отключена для 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 в первый раз в каждой сессии (и периодически после этого).

Что делать дальше?

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

Если вы хотите больше узнать о командах Linux, вы можете проверить наш Linux Command Line Primer.

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