We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more →

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

PostedFebruary 4, 2015 113.4k views Getting Started Linux Basics FAQ Security Ubuntu

Введение

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

Шаг 1 - Логин с рутовой учетной записью

Для того, чтобы осуществить вход на Ваш сервер, Вам необходимо знать публичный IP-адрес сервера и пароль учетной записи пользователя root. Если Вы ещё не зашли на сервер, возможно Вы захотите ознакомиться с первым руководством данной серии, Как подключиться к дроплету по SSH, которое детально описывает этот процесс.

Если Вы ещё не зашли на сервер, зайдите под учетной записью root при помощи следующей команды (замените выделенное красным на публичный IP-адрес Вашего сервера):

ssh root@SERVER_IP_ADDRESS

Завершите процесс входа, приняв предупреждение о подлинности хоста (host authenticity), если оно возникнет, а затем идентифицируя себя как root пользователя (с помощью пароля или секретного ключа). Если вы впервые заходите на сервер с использованием пароля, Вам будет предложено изменить пароль учетной записи root.

Об учетной записи root

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

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

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

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

В этом примере мы создаем новую учетную запись пользователя с именем "demo". Вы можете придумать другое имя своей учетной записи, заменив текст, выделенный красным:

adduser demo

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

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

Шаг 3 - Привилегии пользователя "root"

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

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

Чтобы добавить эти привилегии нашей новой учетной записи, необходимо добавить ее в группу "sudo". По умолчанию, в Ubuntu 14.04 пользователи, входящие в группу "sudo", могут использовать команду sudo.

Из-под root-пользователя выполните следующую команду для добавления Вашего нового пользователя в группу "sudo" (замените выделенное красным на имя Вашей новой учетной записи):

gpasswd -a demo sudo

Теперь Ваш пользователь сможет выполнять команды с привилегиями супер-пользователя!

Шаг 4 - Добавление авторизации по публичному ключу (Public Key Authentication) (Рекомендуется!)

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

Создание пары ключей

Если у Вас ещё нет пары SSH-ключей, которая состоит из публичного (открытого) и секретного (закрытого) ключей, Вам необходимо её создать. Если у Вас уже есть ключ, который Вы хотите использовать, перейдите к подразделу "Копирование публичного ключа".

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

ssh-keygen

Если Ваш локальный пользователь называется "localuser", Вы увидите вывод следующего вида:

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

Нажмите "ENTER", чтобы согласиться с адресом и именем файла (или введите другой адрес/имя файла).

Далее Вам будет предложено ввести кодовую фразу для защиты ключа. Вы можете ввести кодовую фразу или оставить ее пустой.

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

В результате этого, в поддиректории .ssh домашней директории пользователя localuser будет создан секретный ключ id_rsa и публичный ключ id_rsa.pub. Не передавайте секретный ключ никому, кто не должен иметь иметь доступ к Вашим серверам!

Копирование публичного ключа

После создания пары SSH-ключей, Вам необходимо скопировать публичный ключ на Ваш новый сервер.

Если Вы создали пару SSH-ключей, как описано в предыдущем пункте, выполните следующую команду в терминале на Вашей локальной машине для печати публичного ключа (id_rsa.pub):

cat ~/.ssh/id_rsa.pub

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

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

Выделите публичный ключ и скопируйте его в буфер обмена.

Добавление публичного ключа к новому удаленному пользователю

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

На сервере, осуществив вход с учетной записью root-пользователя, выполните следующие команды для переключения на нового пользователя (замените demo на Ваше имя пользователя):

su - demo

Теперь Вы находитесь в домашней директории нового пользователя.

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

mkdir .ssh
chmod 700 .ssh

Теперь откройте файл в директории .ssh с названием authorized_keys в текстовом редакторе. Мы будем использовать nano для редактирования файла:

nano .ssh/authorized_keys

Далее добавьте Ваш публичный ключ (который должен быть в буфере обмена) путем вставки в текстовый редактор.

Нажмите CTRL-X для закрытия файла, затем Y для сохранения внесенных изменений, затем ENTER для подтверждения имени файла.

Теперь ограничьте права на доступ к файлу authorized_keys при помощи следующей команды:

chmod 600 .ssh/authorized_keys

Введите следующую команду один раз для возврата к пользователю root.

exit

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

Чтобы узнать больше о том, как работает авторизация по ключам, ознакомьтесь с этим руководством: Как настроить авторизацию по SSH-ключам на сервере Linux.

Шаг 5 - Настройка SSH

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

Начните с открытия конфигурационного файла в текстовом редакторе под пользователем root:

nano /etc/ssh/sshd_config

Смена SSH-порта (опционально)

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

Port 22

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

Если Вы изменяете номер порта, Вам придется помнить, что SSH на Вашем сервере работает на новом порту. В этом руководстве мы изменим порт на 4444 для демонстрации. Это означает, что для подключения нам необходимо будет указать SSH клиенту использовать новый порт вместо порта, используемого по умолчанию. Как это сделать, мы рассмотрим чуть позже. Измените порт на значение по Вашему выбору:

Port 4444

Запрещение входа под root

Затем нам необходимо найти следующую строчку:

PermitRootLogin yes

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

Для отключения возможности входа на сервер с помощью учетной записи root измените строчку следующим образом (замените "yes" на "no"):

PermitRootLogin no

Отключение возможности удаленного доступа с помощью root-пользователя настоятельно рекомендуется для всех серверов!

После окончания внесения изменений сохраните и закройте файл так же, как мы делали ранее (CTRL-X, затем Y, затем ENTER).

Шаг 6 - Перезапуск SSH

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

Выполните следующую команду для перезапуска SSH:

service ssh restart

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

Откройте новое окно терминала. В новом окне необходимо открыть новое соединение с нашим сервером. В этот раз вместо использования root-аккаунта мы хотим использовать новый аккаунт, созданный ранее.

Если Вы изменили номер порта, на котором работает SSH, Вам необходимо сообщить об этом SSH-клиенту. Сделать это можно при помощи синтаксиса -p 4444, где "4444" - заданный Вами номер порта.

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

ssh -p 4444 demo@SERVER_IP_ADDRESS

Обратите внимание: Если Вы используете PuTTY для подключения к Вашим серверам, не забудьте изменить номер порта, чтобы он соответствовал текущей конфигурации сервера.

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

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

sudo command_to_run

Если все нормально, можно завершить Ваши сессии следующей командой:

exit

Что дальше?

Теперь у Вас есть хорошо настроенный сервер и можно устанавливать любое необходимое Вам программное обеспечение.

Еси Вы не уверены том, что ходите делать с сервером, почитайте следующее руководство из этой серии Дополнительные рекомендуемые настройки нового сервера с Ubuntu 14.04. Оно охватывает такие вещи, как включение fail2ban для снижения эффективности brute force атак на сервер, базовые настройки файервола, NTP и swap-файлы. Так же это руководство содержит ссылки на другие руководства по установке распространенных веб-приложений.

Кроме того, Вы можете ознакомиться с некоторыми другими руководствами, созданными членами нашего коммьюнити. Здесь можно найти некоторые популярные идеи настройки LAMP-стека или LEMP-стека, которые позволят Вам осуществлять хостинг веб-сайтов.

7 Comments

Creative Commons License