Настройка сервера Ubuntu

Введение

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

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

Для того, чтобы осуществить вход на Ваш сервер, Вам необходимо знать публичный IP-адрес сервера и пароль учетной записи пользователя входящего в группу root. Для этого можно воспользоваться программой putty для Windows систем или для Linux систем набрать:

ssh имя_пользователя@ip-адрес-сервера

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

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

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

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

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

Во время установки сервера Ubuntu 15.04 Вы создали пользователя, который имеет права для выполнения команд с повышением прав. Учетная запись root по умолчанию отключена и включение её не рекомендуется.

Так как же выполнить команду с правами "супер-пользователя"? Это очень просто, достаточно перед командой набрать ключевое слово sudo и далее команду, которую Вы хотите выполнить. К примеру Вам нужно перезапустить Apache сервер:

sudo service apache2 restart

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

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

sudo adduser имя-пользователя

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

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

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

Выполните следующую команду для добавления Вашего нового пользователя в группу "sudo"

sudo gpasswd -a имя-пользователя sudo

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

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

Добавление авторизации по публичному ключу (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), Вам необходимо добавить публичный ключ в специальный файл в домашней директории этого пользователя.

На сервере,осуществив вход с учетной записью пользователя, выполните следующие команды:

nano .ssh/authorized_keys

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

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

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

Настройка SSH

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

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

sudo 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).

Перезапуск SSH

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

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

sudo service ssh restart

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

Откройте новое окно терминала. В новом окне необходимо открыть новое соединение с нашим сервером.

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

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

ssh -p 4444 имя-пользователя@IP-адрес

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

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

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

sudo command_to_run

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

exit