После создания нового сервера необходимо предпринять несколько шагов по его базовой настройке. Это повысит безопасность и удобство использования Вашего сервера и заложит прочную основу для последующих действий.
Для того, чтобы осуществить вход на Ваш сервер, Вам необходимо знать публичный IP-адрес сервера и пароль учетной записи пользователя root
. Если Вы ещё не зашли на сервер, возможно Вы захотите ознакомиться с первым руководством данной серии, Как подключиться к дроплету по SSH, которое детально описывает этот процесс.
Если Вы ещё не зашли на сервер, зайдите под учетной записью root
при помощи следующей команды (замените выделенное красным на публичный IP-адрес Вашего сервера):
ssh root@SERVER_IP_ADDRESS
Завершите процесс входа, приняв предупреждение о подлинности хоста (host authenticity), если оно возникнет, а затем идентифицируя себя как root
пользователя (с помощью пароля или секретного ключа). Если вы впервые заходите на сервер с использованием пароля, Вам будет предложено изменить пароль учетной записи root
.
Пользователь root
является администратором в среде Linux и имеет очень широкий набор привилегий (прав). Из-за повышенных привилегий root-аккаунта не рекомендуется пользоваться этой учетной записью на регулярной основе. Причиной этого является возможность случайно внести в систему деструктивные изменения.
Следующий шаг заключается в создании альтернативной пользовательской учетной записи с ограниченными привилегиями для повседневной работы. Мы продемонстрируем, как при необходимости получить расширенные полномочия во время использования этой учетной записи.
Осуществив вход с помощью учетной записи root
-пользователя Вы можете создать новую учетную запись, которую можно будет использовать для входа на сервер в дальнейшем.
В этом примере мы создаем новую учетную запись пользователя с именем “demo”. Вы можете придумать другое имя своей учетной записи, заменив текст, выделенный красным:
adduser demo
Вам зададут несколько вопросов, первым из которых будет пароль для новой учетной записи.
Задайте надежный пароль и, по желанию, заполните дополнительную информацию. Вводить дополнительную информацию не обязательно, Вы можете просто нажать “ENTER” в любом поле, которое хотите пропустить.
Теперь у нас есть новая учетная запись по стандартными привилегиями. Однако иногда нам может потребоваться выполнять задачи с привилегиями администратора.
Во избежание необходимости выхода из-под учетной записи обычного пользователя и входа с учетной записью root
-пользователя, мы можем настроить возможность использования режима так называемого “супер-пользователя”, в котором наша обычная учетная запись временно получает привилегии root
-пользователя. Это позволит нашему обычному пользователю выполнять команды с привилегиями администратора с помощью добавления слова sudo
перед каждой командой.
Чтобы добавить эти привилегии нашей новой учетной записи, необходимо добавить ее в группу “sudo”. По умолчанию, в Ubuntu 14.04 пользователи, входящие в группу “sudo”, могут использовать команду sudo
.
Из-под root
-пользователя выполните следующую команду для добавления Вашего нового пользователя в группу “sudo” (замените выделенное красным на имя Вашей новой учетной записи):
gpasswd -a demo sudo
Теперь Ваш пользователь сможет выполнять команды с привилегиями супер-пользователя!
Следующий шаг в усилении безопасности Вашего сервера - это настройка авторизации по публичному ключу для Вашего нового пользователя. Данная настройка повысит безопасность Вашего сервера, требуя секретный 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.
Теперь, когда у нас есть новый аккаунт, мы можем ещё больше обезопасить наш сервер путем изменения конфигурации его SSH (программа для удаленного подключения).
Начните с открытия конфигурационного файла в текстовом редакторе под пользователем root
:
nano /etc/ssh/sshd_config
Первая настройка, которую Вы вероятно захотите сменить, это порт, на котором работает SSH. Найдите строчку, которая выглядит похожим образом:
Port 22
Если мы изменим этот номер на что-нибудь между 1025 и 65536, то SSH на нашем сервере будет ждать соединений на другом порту. Иногда это полезно, поскольку злоумышленники иногда пытаются попасть на сервер путем атаки через SSH. Если вы измените порт SSH, им придется сделать лишний шаг для его определения.
Если Вы изменяете номер порта, Вам придется помнить, что SSH на Вашем сервере работает на новом порту. В этом руководстве мы изменим порт на 4444
для демонстрации. Это означает, что для подключения нам необходимо будет указать SSH клиенту использовать новый порт вместо порта, используемого по умолчанию. Как это сделать, мы рассмотрим чуть позже. Измените порт на значение по Вашему выбору:
Port 4444
Затем нам необходимо найти следующую строчку:
PermitRootLogin yes
Это настройка позволяет отключить возможность входа на сервер с помощью учетной записи root
-пользователя через SSH. Это повышает безопасность сервера, поскольку теперь мы можем осуществлять вход на наш сервер с помощью учетной записи обычного пользователя и повышать полномочия, когда это требуется.
Для отключения возможности входа на сервер с помощью учетной записи root
измените строчку следующим образом (замените “yes” на “no”):
PermitRootLogin no
Отключение возможности удаленного доступа с помощью root
-пользователя настоятельно рекомендуется для всех серверов!
После окончания внесения изменений сохраните и закройте файл так же, как мы делали ранее (CTRL-X
, затем Y
, затем ENTER
).
После внесения изменений необходимо перезапустить сервис 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-стека, которые позволят Вам осуществлять хостинг веб-сайтов.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Здравствуйте. При попытке авторизации по ключу сервер выдает ошибку “Permission denied (publickey).”. Предположительно эта ошибка появилась после изменения прав на 777 на папке /home/user . Может ли это обстоятельство повлиять на работу системы авторизации?
По данному руководству настраивал Ubuntu 16.04 на шаге ssh -p “4444” demo@SERVER_IP_ADDRESS вставляю свой порт и сервер пишет “connection refused”
Понравилась статья и добавил в закладки… Начал второй раз по ней настраивать - авторизация по ключу не срабатывает…((
Здравствуйте, забыл свой root пароль, как можно подсмотреть?