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

Требования

  • Сервер или VPS с Ubuntu 16.04 и OpenSSH.
  • Устройство с поддержкой SSH.
    • На ПК с Linux, SSH поддерживается по умолчанию через терминал.
    • На Android советуем JuiceSSH.
    • На Windows советуем Remote Terminal.

ВАЖНО: Все команды в этой статье выполняются в терминале. Для Linux, терминал запускается из меню приложений или комбинацией клавиш (в Ubuntu, Ctrl+Alt+T), в остальных ОС — запуском соответствующего приложения. Чтобы выполнить команду, введите её в терминал и нажмите Enter.

Глоссарий

  • Права суперпользователя. Они же root-права или права root. Самый высокий уровень доступа в ОС Linux, который позволяет редактировать любые файлы на своё усмотрение.

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

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

  1. Подключаемся к серверу по протоколу ssh как пользователь root. Для этого, выполняем команду:
    ssh root@IP_адрес_вашего_сервера

    Подключаемся к VPS

  2. Видим запрос пароля. Пароль должен был предоставить хостинг, в котором вы покупали сервер — скорее всего, в e-mail. Вводим пароль (символы не будут отображаться на экране, поэтому вводите осторожно) и нажимаем Enter.
    Вводим пароль
  3. Видим экран приветствия:Видим экран входа
  4. Создаём пользователя командой:
    adduser имя_пользователя

    Создаем пользователя

  5. Видим отчет, в котором Ubuntu рассказывает, как именно был добавлен пользователь. В конце нас просят придумать пароль для пользователя. Придумываем, вводим, нажимаем Enter.Задаем его пароль
  6. Ubuntu просит повторить пароль, чтобы избежать фатальных опечаток. Вводим его снова и нажимаем Enter.Повторяем пароль
  7. Ubuntu хочет собрать информацию о пользователе: полное имя, номер кабинета, рабочий телефон, домашний телефон и комментарий. Можете заполнять, можете просто нажимать Enter в пустой строке. В конце нужно нажать “Y”, а потом Enter, чтобы подтвердить, что информация правильная.Заполняем анкету и создаём пользователя

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

  1. Заходим в систему под новым пользователем. Выполняем команду
    ssh имя_пользователя@IP_адрес_сервера

    Вход под новым пользователем

  2. Видим запрос пароля. Вводим пароль и нажимаем Enter.Вход под новым пользователем
  3. Видим экран приветствия.
    Вход под новым пользователем
  4. Закрываем окно терминала.

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

Выдача прав root новому пользователю

  1. Заходим на сервер как root-пользователь. Для этого, выполняем команду:
    ssh root@IP_адрес_вашего_сервера

    Подключаемся к VPS

  2. Видим запрос пароля. Вводим пароль и жмем Enter. Видим экран приветствия.Видим экран входа
  3. Выполняем команду:
    usermod -aG sudo имя_пользователя

    Выдача прав судо

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

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

Файрвол — это программа, которая защищает компьютер от нежелательных соединений. Например, с хакером, который пытается получить доступ на сервер. Но так как файрвол изначально не знает, как именно будет использоваться сервер, нужно его сначала настроить.

  1. Заходим в систему под своим пользователем. Выполняем команду
    ssh имя_пользователя@IP_адрес_сервера

    Вход под новым пользователем

  2. Видим запрос пароля. Вводим пароль и нажимаем Enter.Вход под новым пользователем
  3. Видим экран приветствия. Теперь нам нужно скачать с репозитория свежий список доступных для установки пакетов (программ). Выполняем команду обновления списка пакетов:
    sudo apt-get update

    Обновляем пакеты

  4. Команды с sudo перед ними требуют права суперпользователя, о чем нам тут же скажет Ubuntu. Вводим пароль от пользователя еще раз и нажимаем Enter.Пароль для sudo
  5. Видим отчет Ubuntu об обновлении пакетов. Выполняем команду для установки файрвола UFW:
    sudo apt-get install ufw

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

  6. Видим отчет об установке и предварительной настройке программы.Отчет об установке
  7. Запрашиваем список программ, которым UFW собирается блокировать доступ в сеть. Для этого выполняем команду:
    sudo ufw app list

    Запрашиваем список програм

  8. Видим в списке OpenSSH. Это плохо, так как без OpenSSH мы не сможем подключаться к серверу. Разрешаем OpenSSH доступ в Интернет командой:
    sudo ufw allow OpenSSH

    Разрешаем OpenSSH доступ в Интернет

  9. Видим отчет об обновлении правил файрвола.Отчет о разрешении OpenSSH доступа
  10. Включаем файрвол. Для этого выполняем команду:
    sudo ufw enable

    Включаем файрвол

  11. Ubuntu скажет нам, что SSH-соединение может быть отключено после включения файрвола. Но мы уже исправили это, поэтому нажимаем “Y” и Enter.Подтверждаем включение
  12. Проверяем состояние файрвола командой:
    sudo ufw status

    Статус файрвола

Теперь файрвол установлен, а ваш проект в безопасности как от хакеров, так и от ошибок пользователей. Можно приступать к установке специализированного ПО и настройке сервера для его задач.