Базовая настройка Ubuntu Server после установки.

Подключаемся к серверу:

ssh user@ip_addres

По умолчанию пароль для root не установлен в Ubuntu, мы видим сообщение об ошибке:

Permission denied, please try again.

Можем убедится в том, что пароль для root пустой:

sudo cat /etc/shadow | grep root
Учётная запись root по умолчанию

Так устроено в целях безопасности. Например, вы можете забыть что работаете от имени суперпользователя и удалить какие-либо важные вещи. Разработчики Ubuntu это учли и вообще отключили аккаунт суперпользователя.

Если всё же нужно авторизоваться от имени суперпользователя, необходимо установить для него пароль:

sudo passwd root

Затем нужно ввести два раза пароль. Проверим снова:

sudo cat /etc/shadow | grep root
Учётная запись root
Важно! На рабочих серверах не делайте так. Так можно делать только на домашней машине для удобства.

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

sudo adduser john

Система задаст несколько вопросов. Сначала она предложит ввести пароль для этой учетной записи.

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

Проверим добавился ли пользователь john:

sudo cat /etc/shadow | grep john
Добавление нового пользователя

Добавляем нового пользователя в группу sudo:

sudo usermod -aG sudo john

Сменим пользователя и проверим его права:

su - john

sudo whoami
Поверка прав пользователя

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

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

sudo ufw app list
OpenSSH in UFW

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

sudo ufw allow OpenSSH
Allow OpenSSH in UFW

Включаем брандмауэр:

sudo ufw enable

И опять проверяем статус:

sudo ufw status
OpenSSH enable in UFW

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

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

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

ssh-keygen

Путь для расположения ключа можно оставить стандартным. Можно придумать и ввести passphrase (секретная фраза). Или же просто оставить всё по умолчанию, нажимая Enter:

ssh-keygen

Теперь этот ключ нужно скопировать на сервер. В Windows придётся копировать ключ вручную. Займёмся этим.

Подключаемся к серверу:

ssh user@ip_addres

В корневой директории созданного пользователя (/home/john) нужно создать папку .ssh. Скорее всего вы уже находитесь в этой директории. Проверить это можно с помощью команды:

pwd

Если вы находитесь в другой директории, то перейдем в нужную нам с помощью команды:

cd /home/john

Здесь создадим директорию .ssh:

mkdir .ssh

Проверить создание директории и просмотреть структуру текущей директории:

ls -la
mkdir .ssh

Установим права для этой папки:

chmod 700 .ssh/

Перейдем в эту папку:

cd .ssh

Создадим файл authorized_keys в этой директории:

touch authorized_keys

Установим права для этого файла:

chmod 600 authorized_keys

Вводим команду:

cat >> authorized_keys << EOF

Курсор передвинется на новою строку в ожидании ввода данных от вас:

authorized_keys

Переходим в папку на локальном компьютере, куда был сгенерирован ключ и с помощью любого текстового редактора открываем файл id_rsa.pub. Копируем весь текст из этого файла. Копируйте внимательно, без захвата пробелов в начале и в конце строки!

Вставляем ключ, который скопировали из файла id_rsa.pub и вводим команду:

EOF

Жмем Enter.

Отлично, мы скопировали и вставили наш ключ в файл authorized_keys. Можно проверить содержимое файла командой:

cat authorized_keys
cat authorized_keys

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

Откроем для редактирования конфигурационный файл SSH:

sudo nano /etc/ssh/sshd_config

Находим строчку PermitRootLogin. Раскомментируем её (убрав знак решетки (#)) и выставим ему значение no. Таким образом мы запретим авторизацию под root пользователем:

PermitRootLogin no

Находим строчку PubkeyAuthentication. Раскомментируем её. Так мы активируем возможность авторизации с помощью SSH-ключа:

PubkeyAuthentication yes

Находим строчку PasswordAuthentication. Раскомментируем ее и выставим значение no. Так мы запретим авторизацию по паролю:

PasswordAuthentication no

В самом конце файла с новой строчки вставим команду:

// Здесь изменить на вашего пользователя!
AllowUsers john

Сохраняем файл и выходим из редактора. Перезапускаем SSH:

systemctl restart ssh

Теперь если попытаться авторизоваться под root или каким-либо другим пользователем, то сервер выдаст ошибку доступа.

На этом начальная настройка Ubuntu Server завершена.