Site icon 8HOST.COM

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

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

1: Логин root

Для подключения к серверу вам понадобится его внешний IP-адрес. Кроме того, нужно знать пароль или иметь закрытый ключ (в случае использования аутентификации на основе SSH-ключей) администратора – пользователя root.

Чтобы войти как пользователь root, используйте команду:

ssh root@SERVER_IP_ADDRESS

На данном этапе может появиться предупреждение о подлинности хоста; примите его и предоставьте учётные root. При первом подключении к серверу вам также будет предложено изменить root-пароль.

Что такое root?

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

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

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

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

adduser 8host

Примечание: Замените условное имя 8host именем своего пользователя.

Установите надёжный пароль и при желании укажите дополнительную информацию о пользователе. Чтобы принять информацию по умолчанию, просто нажмите Enter.

3: Доступ к sudo

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

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

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

Чтобы добавить нового пользователя в группу sudo, запустите следующую команду в сессии пользователя root:

usermod -aG sudo 8host

Теперь новый пользователь имеет права суперпользователя.

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

4: Аутентификация на основе ключей (опционально)

Рекомендуется защитить нового пользователя, настроив аутентификацию на основе ключей.

Генерирование ключей

Если у вас ещё нет пары SSH-ключей, сгенерируйте их. Если у вас уже есть открытый и закрытый ключ, переходите к разделу «Копирование ключей».

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

ssh-keygen

К примеру, если пользователь локальной машины называется localuser, команда вернёт такой результат:

ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Чтобы принять предложенное имя файла и путь, нажмите return.

После этого будет запрошен пароль (или парольная фраза) для защиты ключей. Его устанавливать необязательно.

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

Команда создаст закрытый ключ (id_rsa) и открытый ключ (id_rsa.pub) в каталоге .ssh в домашнем каталоге пользователя localuser.

Важно! Закрытый ключ нельзя разглашать.

Копирование ключей

Сгенерировав SSH-ключи, скопируйте открытый ключ на новый сервер. Для этого существует два метода.

Метод 1: Сценарий ssh-copy-id

Если на локальной машине установлен сценарий ssh-copy-id, его можно использовать для установки открытого ключа для любого пользователя, чьи учётные данные вам известны.

Запустите сценарий ssh-copy-id, указав имя целевого пользователя и IP-адрес сервера.

ssh-copy-id 8host@SERVER_IP_ADDRESS

Укажите пароль пользователя, после чего открытый ключ будет добавлен в файл .ssh/authorized_keys удалённого пользователя.

Метод 2: Установка ключа вручную

Чтобы добавить ключ вручную, введите следующую команду в терминал локальной машины:

cat ~/.ssh/id_rsa.pub

Команда выведет на экран открытый ключ:

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

Скопируйте ключ в буфер обмена.

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

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

su – 8host

Это откроет домашний каталог пользователя 8host.

Создайте новый каталог .ssh и ограничьте доступ к нему:

mkdir ~/.ssh
chmod 700 ~/.ssh

Откройте файл authorized_keys в каталоге .ssh:

nano ~/.ssh/authorized_keys

Вставьте в него открытый ключ. Нажмите CTRL-x, y и Enter, чтобы закрыть и сохранить файл.

Заблокируйте доступ к файлу authorized_keys:

chmod 600 ~/.ssh/authorized_keys

Чтобы вернуться в сессию root, введите:

exit

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

Примечание: Больше информации о ключах – в руководстве «Как настроить SSH-ключи».

5: Отключение аутентификации на основе пароля

Теперь для аутентификации сервер использует SSH-ключи. Отключите аутентификацию на основе пароля. Это ограничит доступ к серверу, так как SSH-ключи станут единственным способом подключиться к нему.

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

В сессии пользователя root или 8host откройте настройки демона SSH.

sudo nano /etc/ssh/sshd_config

Найдите строку PasswordAuthentication, раскомментируйте её и измените значение на no.

PasswordAuthentication no

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

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Сохраните и закройте файл (Ctrl-X, Y, Enter).

Перезапустите SSH:

sudo systemctl reload sshd

Теперь аутентификация на основе пароля отключена. Получить доступ к серверу можно только при помощи SSH-ключей.

6: Тестирование настройки

Прежде чем прервать соединение с сервером, проверьте настройки.

Важно! Не отключайтесь от сервера, пока не убедитесь в том, что SSH-ключи работают.

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

ssh 8host@SERVER_IP_ADDRESS

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

Примечание: Если вы защитили ключи парольной фразой, сначала система запросит эту фразу, а затем уже выполнит аутентификацию при помощи ключей. Если парольной фразы нет, система сразу использует ключи.

После успешной аутентификации вы получите доступ к сессии пользователя 8host.

Чтобы запустить команду с правами root, начните её с sudo:

sudo command_to_run

7: Настройка брандмауэра

Серверы Ubuntu 16.04 могут использовать брандмауэр UFW для блокирования соединений с отдельными сервисами.

Различные приложения могут при установке зарегистрировать свой профиль в UFW. Такие профили позволяют UFW управлять этими приложениями по имени. OpenSSH (сервис, который позволяет подключаться к серверу) имеет свой профиль, зарегистрированный в UFW.

Чтобы просмотреть его, введите:

sudo ufw app list
Available applications:
OpenSSH

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

sudo ufw allow OpenSSH

После этого можно включить брандмауэр:

sudo ufw enable

Чтобы продолжить, нажмите у и Enter. Чтобы убедиться в том, что соединения SSH не блокируются брандмауэром, введите:

sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Если вы установили и настроили дополнительные сервисы, вам необходимо откорректировать настройки брандмауэра, чтобы он не блокировал трафик этих сервисов.

Примечание: Подробнее о настройке UFW – в руководстве Основы UFW: общие правила и команды фаервола.

Заключение

Теперь сервер полностью настроен и готов к работе и развёртыванию приложений.