# Первичная настройка сервера на Ubuntu

Первичная настройка сервера занимает всего несколько минут, но значительно облегчает дальнейшую работу с ним, делая её более удобной и безопасной. В этой инструкции мы пройдём несколько базовых шагов: создадим нового пользователя с привилегиями sudo, настроим список исключений фаервола и организуем безопасный доступ к серверу по SSH с паролем или аутентификацией по ключу.

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

В Linux пользователь с root-правами обладает неограниченными полномочиями, использовать которые на регулярной основе не следует — серверу можно нанести серьёзный ущерб даже по неосторожности.

Чтобы избежать этого, мы создадим нового пользователя и наделим его sudo-привилегиями. Это позволит нам выполнять команды от имени администратора (root-пользователя), вводя перед основной командой sudo.

Чтобы создать нового пользователя, подключимся к серверу по SSH с помощью любой программы-клиента.
На Джино данные для SSH-доступа (хост, порт, логин и пароль root-пользователя) можно найти в разделе УправлениеДоступ в консоль.

Первый вход на сервер осуществляется от имени root-пользователя. После подключения можно создать нового пользователя:

adduser User

Вместо User укажите имя нового пользователя.

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

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

usermod -aG sudo User

Этой командой мы добавляем пользователя User в группу sudo — суперпользователей, которые могут выполнять команды от имени root-пользователя.

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

su User

Теперь для выполнения команд, требующих root-права, в начале строки нужно ввести sudo.

# Установка и настройка фаервола

Для контроля подключений на Ubuntu можно использовать стандартную утилиту UFW (Uncomplicated Firewall). Начнём с установки утилиты. Для этого обновим APT (установщик программных пакетов):

sudo apt update

После этого можно устанавливать UFW:

sudo apt install ufw

Сразу после установки UFW находится в неактивном состоянии. Прежде чем активировать её, нужно создать правило, разрешающее подключение к серверу по SSH. Иначе сразу после активации фаервол заблокирует нам доступ к серверу. Правило создаётся так:

sudo ufw allow OpenSSH

Проверим, что правило попало в список. Вводим команду:

sudo ufw app list

У вас должен появиться список приложений, которым разрешён доступ к серверу. На данном этапе он должен выглядеть так:

Available applications:  
  OpenSSH

Как видим, SSH-подключение в списке разрешённых. Теперь можно включать фаервол:

sudo ufw enable

Перед стартом UFW предупредит, что текущее SSH-соединение может быть разорвано, но поскольку мы его уже добавили в список разрешённых подключений, просто нажимаем «y» и продолжаем работу.

Проверим статус утилиты, чтобы убедиться, что она работает:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

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

sudo ufw allow “App_Name”

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

# SSH-подключение с аутентификацией по ключу

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

# Windows

Если вы используете ОС Windows, вам понадобятся утилиты PuTTYgen и Pageant.

Сначала сгенерируем публичный и частный ключи. Для этого запустим PuTTYgen и в пункте меню Key укажем параметр «SSH-2 RSA key». Нажмём Generate и сделаем несколько движений мышью в определённой области экрана — на основании наших движений будут генерироваться числа для ключей.
После этого в окне «Public key for pasting...» появится публичный ключ, который нужно будет поместить на сервер.

Мы сделаем это с помощью SSH-подключения и текстового редактора vim:

  • После подключения к серверу смените директорию на домашнюю командой:

    cd ~
    
  • Теперь создайте папку «.ssh»:

    mkdir .ssh
    
  • Перейдите в эту папку:

    cd .ssh
    
  • Создайте здесь файл «authorized_keys»:

    vim authorized_keys
    
  • Поместите в этот файл публичный ключ из окна «Public key for pasting...» утилиты PuTTYgen.

  • Сохраните только что созданный файл.

Возвращаемся к PuTTYgen.

В поля «key passphrase» и «confirm passphrase» можно ввести пароль, который будет проверяться перед проверкой частного ключа (дополнительная ступень безопасности).

Теперь сохраним на компьютере публичный ключ (Save Public Key) в формате .txt и частный ключ (Save Private Key) в формате .ppk.

В окне утилиты Pageant выберем файл нашего частного ключа (Add key), укажем пароль (passphrase) и активируем его.

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

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

vim /etc/ssh/sshd_config

Далее укажем значение параметра PasswordAuthentication no. Раскомментируем (уберём #) параметр Public Key Authentication и укажем yes. Также укажем файлы публичных ключей в строке AuthorizedKeysFile.

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

sudo sshd restart

# Linux

Если вы используете Linux, то введите в терминале команду ssh-keygen. После запроса придумайте и введите пароль.

В результате в папке .ssh внутри вашей домашней директории появятся файлы key_rsa и key_rsa.pub. Теперь введите в терминале команду ssh-keygen -ef \~/.ssh/key_rsa_alt > \~/.ssh/key_rsa_alt.pub . Она создаст файл key_rsa_alt.pub в папке .ssh.

На сервере создайте файл ~/.ssh/authorized_keys и поместите в него ваш публичный ключ из файла key_rsa_alt.pub.

И в завершение введите в терминале команду ssh-add, чтобы активировать ключ на компьютере.

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