Первоначальная настройка сервера с ОС Ubuntu 18.04
Введение
При создании нового сервера Ubuntu 18.04 необходимо выполнить ряд операций конфигурирования в рамках ранней стадии базовой настройки. Это повысит уровень безопасности и удобства использования вашего сервера, а также создаст прочную основу для дальнейших действий.
Примечание: Ниже представлено руководство по выполнению в ручном режиме всех рекомендуемых нами операций для новых серверов Ubuntu 18.04. Выполнение данной процедуры в ручном режиме позволит получить и отработать базовые навыки администрирования системы для полного понимания действий, осуществляемых на сервере. В качестве альтернативы, при необходимости более быстрого запуска и работы вы можете запустить наш скрипт первоначальной настройки сервера для автоматизации данных операций.
Шаг 1 — Вход в систему под именем Root
Для входа на сервер необходимо знать публичный IP-адрес сервера. Также понадобится пароль или, если для аутентификации установлен SSH-ключ, закрытый ключ для учетной записи пользователя root. Если вы еще не вошли на сервер, вы можете использовать инструкции из нашего руководства подключение к Droplet с помощью SSH, где содержится подробное описание процесса.
Если вы еще не подключены к серверу, войдите в систему под именем root, используя следующую команду (замените выделенную часть команды на публичный IP-адрес вашего сервера):
$ ssh root@your_server_ip
Подтвердите предупреждение о подлинности хоста, если оно появится на экране. Если вы используете аутентификацию по паролю, укажите пароль учетной записи root для входа в систему. Если вы используете SSH-ключ, защищенный кодовой фразой, то при первом использовании ключа в каждом сеансе вам может быть предложено ввести кодовую фразу. Если вы впервые входите на сервер с помощью пароля, вам также может быть предложено сменить пароль root.
О пользователе Root
Пользователь root является администратором в среде Linux и имеет весьма широкие права. Ввиду расширенных прав учетной записи root не рекомендуется использовать ее на постоянной основе, поскольку некоторые права, предоставляемые учетной записи root, дают возможность вносить деструктивные изменения, в том числе случайно.
Следующим шагом является создание альтернативной учетной записи пользователя с меньшим влиянием на повседневную работу. Мы расскажем, как получить расширенные права, когда они вам потребуются.
Шаг 2 — Создание нового пользователя
После входа в систему под именем root мы готовы добавить новую учетную запись пользователя, которая теперь будет использоваться для входа в систему.
В этом примере показан процесс создания нового пользователя под именем sammy, которое следует заменить на желаемое имя пользователя:
# adduser sammy
Вам будут заданы несколько вопросов, начиная с пароля учетной записи.
Введите надежный пароль и, при желании, укажите дополнительную информацию. Если это не требуется, нажмите ENTER
в поле, которое вы хотите пропустить.
Шаг 3 — Предоставление прав администратора
Теперь у нас есть новая учетная запись пользователя с правами обычной учетной записи. Однако иногда нам может потребоваться выполнение задач администратора.
Чтобы избежать необходимости выхода из учетной записи обычного пользователя и входа в систему под именем root, мы можем настроить так называемые права “superuser” или root для нашей обычной учетной записи. Это позволит обычному пользователю запускать команды с правами администратора путем добавления слова sudo
перед каждой командой.
Чтобы назначить данные права нашему новому пользователю, необходимо добавить нового пользователя в группу sudo. По умолчанию на сервере Ubuntu 18.04 пользователям группы sudo разрешается использовать команду sudo
.
Запустите данную команду под именем root, чтобы добавить нового пользователя в группу sudo (замените выделенное слово на имя нового пользователя):
# usermod -aG sudo sammy
Теперь после входа в систему в качестве обычного пользователя вы можете вводить sudo
перед командами для выполнения действий с правами superuser.
Шаг 4 — Установка простого брандмауэра
Серверы Ubuntu 18.04 могут использовать брандмауэр UFW, чтобы обеспечить возможность подключения только к определенным сервисам. Мы можем легко установить простой брандмауэр с помощью данного приложения.
Различные приложения могут регистрировать свои профили при установке UFW. Данные профили позволяют UFW управлять приложениями по имени. Сервис OpenSSH, позволяющий подключиться к нашему серверу, имеет зарегистрированный профиль в UFW.
Вы можете проверить это, набрав:
# ufw app list
Output Available applications: OpenSSH
Необходимо убедиться, что брандмауэр разрешает SSH-соединения, чтобы можно было войти в систему в следующий раз. Мы можем разрешить эти соединения путем ввода:
# ufw allow OpenSSH
Затем мы можем активировать брандмауэр путем ввода:
# ufw enable
Введите “y
” и нажмите ENTER
, чтобы продолжить. Можно увидеть, что SSH-соединения разрешены, путем ввода:
# ufw status
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Поскольку брандмауэр в настоящее время блокирует все подключения, кроме SSH, при установке и настройке дополнительных сервисов вам необходимо настроить параметры брандмауэра, чтобы разрешить соответствующий входящий трафик.
Шаг 5 — Предоставление внешнего доступа для обычного пользователя
После создания обычного пользователя для повседневной работы необходимо убедиться, что мы можем использовать SSH непосредственно в учетной записи.
Процесс настройки SSH-доступа для нового пользователя зависит от того, использует ли учетная запись root сервера пароль или SSH-ключи для аутентификации.
Если учетная запись Root использует аутентификацию по паролю
Если вы вошли в учетную запись root, используя пароль, значит, для SSH активирована аутентификация по паролю. Вы можете использовать SSH для своей новой учетной записи пользователя, открыв новый сеанс и используя SSH с новым именем пользователя:
$ ssh sammy@your_server_ip
После ввода пароля обычного пользователя вы войдете в систему. Помните, что при необходимости запуска команды с административными правами, введите sudo
перед командой:
$ sudo command_to_run
Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo
в каждом сеансе (и периодически после этого).
Для повышения безопасности вашего сервера ** мы настоятельно рекомендуем установить SSH-ключи вместо использования аутентификации по паролю**
Если учетная запись 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 не сможет их найти и использовать.
# rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Теперь начните новый сеанс и используйте SSH с новым именем пользователя:
$ ssh sammy@your_server_ip
Вы должны войти в учетную запись нового пользователя без пароля. Помните, что при необходимости запуска команды с административными правами, введите sudo
перед командой:
$ sudo command_to_run
Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo
в каждом сеансе (и периодически после этого).
Что дальше?
На данный момент у вас есть прочная основа для вашего сервера. Теперь вы можете установить на сервер любое необходимое программное обеспечение.