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

Вступление

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

[[step-one -—- root-login]] == Шаг первый - Root Login

Чтобы войти на свой сервер, вам нужно знать публичный IP-адрес вашего сервера. Вам также понадобится пароль или, если вы установили SSH-ключ для аутентификации, закрытый ключ для учетной записи «root». Если вы еще не вошли на свой сервер, вы можете следовать первому руководству из этой серии,How to Connect to Your Droplet with SSH, которое подробно описывает этот процесс.

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

ssh root@your_server_ip

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

О корне

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

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

[[step-two -—- create-a-new-user]] == Шаг второй - Создайте нового пользователя

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

В этом примере создается новый пользователь с именем «sammy», но вы должны заменить его на имя пользователя, которое вам нравится:

adduser sammy

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

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

[[шаг-три -—- привилегии root]] == Шаг третий - привилегии root

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

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

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

Какroot, выполните эту команду, чтобы добавить вашего нового пользователя в группуsudo (замените выделенное слово вашим новым пользователем):

usermod -aG sudo sammy

Теперь ваш пользователь может запускать команды с привилегиями суперпользователя! Для получения дополнительной информации о том, как это работает, ознакомьтесь сthis sudoers tutorial.

Если вы хотите повысить безопасность вашего сервера, выполните остальные шаги в этом руководстве.

[[step-four -—- add-public-key-authentication-recommended]] == Шаг четвертый - Добавить аутентификацию с открытым ключом (рекомендуется)

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

Генерация пары ключей

Если у вас еще нет пары ключей SSH, которая состоит из открытого и закрытого ключей, вам необходимо сгенерировать их. Если у вас уже есть ключ, который вы хотите использовать, перейдите к шагуCopy the Public Key.

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

ssh-keygen

Предполагая, что ваш локальный пользователь называется «localuser», вы увидите вывод, который выглядит следующим образом:

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

Нажмите return, чтобы принять это имя файла и путь (или введите новое имя).

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

Note: Если вы оставите кодовую фразу пустой, вы сможете использовать закрытый ключ для аутентификации без ввода парольной фразы. Если вы введете кодовую фразу, вам понадобится как закрытый ключand, так и кодовая фраза для входа в систему. Защита ваших ключей с помощью парольных фраз более безопасна, но оба метода имеют свое применение и более безопасны, чем обычная аутентификация по паролю.

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

Скопируйте открытый ключ

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

[.Примечание]##

Note: методssh-copy-id не будет работать в DigitalOcean, если во время создания капли был выбран ключ SSH. Это связано с тем, что DigitalOcean отключает аутентификацию по паролю, если присутствует ключ SSH, аssh-copy-id полагается на аутентификацию по паролю для копирования ключа.

Если вы используете DigitalOcean и выбрали ключ SSH во время создания капли, используйте вместо этогоoption 2.

Вариант 1: использовать ssh-copy-id

Если на вашем локальном компьютере установлен сценарийssh-copy-id, вы можете использовать его для установки вашего открытого ключа любому пользователю, для которого у вас есть учетные данные.

Запустите сценарийssh-copy-id, указав пользователя и IP-адрес сервера, на котором вы хотите установить ключ, например:

ssh-copy-id sammy@your_server_ip

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

Вариант 2. Установите ключ вручную

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

cat ~/.ssh/id_rsa.pub

Это должно напечатать ваш открытый ключ SSH, который должен выглядеть примерно так:

id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]

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

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

On the server, как пользовательroot, введите следующую команду, чтобы временно переключиться на нового пользователя (замените свое собственное имя пользователя):

su - sammy

Теперь вы будете в домашнем каталоге вашего нового пользователя.

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

mkdir ~/.ssh
chmod 700 ~/.ssh

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

nano ~/.ssh/authorized_keys

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

НажмитеCTRL-x, чтобы выйти из файла, затемy, чтобы сохранить сделанные вами изменения, затемENTER, чтобы подтвердить имя файла.

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

chmod 600 ~/.ssh/authorized_keys

Введите эту командуonce, чтобы вернуться к пользователюroot:

exit

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

Чтобы узнать больше о том, как работает аутентификация по ключу, прочтите это руководство:How To Configure SSH Key-Based Authentication on a Linux Server.

Далее мы покажем вам, как повысить безопасность вашего сервера, отключив аутентификацию по паролю.

[[шаг пять -—- disable-password-authentication-Recommended]] == Шаг пятый - Отключить аутентификацию по паролю (рекомендуется)

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

[.note] #Note: Отключите аутентификацию по паролю, только если вы установили открытый ключ для своего пользователя, как рекомендовано в предыдущем разделе, шаг 4. В противном случае вы заблокируете доступ к своему серверу!
#

Чтобы отключить аутентификацию по паролю на вашем сервере, выполните следующие действия.

В качествеroot илиyour new sudo user откройте конфигурацию демона SSH:

sudo nano /etc/ssh/sshd_config

Найдите строку, в которой указанPasswordAuthentication, раскомментируйте ее, удалив предыдущий#, затем измените ее значение на «нет». После внесения изменений это должно выглядеть так:

sshd_config - отключить аутентификацию по паролю

PasswordAuthentication no

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

sshd_config - важные значения по умолчанию

PubkeyAuthentication yes
ChallengeResponseAuthentication no

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

Введите это, чтобы перезагрузить демон SSH:

sudo systemctl reload sshd

Аутентификация по паролю теперь отключена. Ваш сервер теперь доступен только при аутентификации по SSH-ключу.

[[step-six -—- test-log-in]] == Шаг шестой - тестовый вход

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

В новом терминале на вашемlocal machine войдите на свой сервер, используя новую учетную запись, которую мы создали. Для этого используйте эту команду (подставьте имя пользователя и IP-адрес сервера):

ssh sammy@your_server_ip

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

[.note] #Note about key authentication: Если вы создали пару ключей с парольной фразой, вам будет предложено ввести парольную фразу для вашего ключа. В противном случае, если ваша пара ключей не содержит кодовой фразы, вы должны войти на свой сервер без пароля.
#

Как только аутентификация будет предоставлена ​​серверу, вы войдете в систему как ваш новый пользователь.

Помните, что если вам нужно запустить команду с привилегиями root, наберите «sudo» перед этим так:

sudo command_to_run

[[step-seven -—- set-up-a-basic-firewall]] == Шаг седьмой - Настройка базового брандмауэра

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

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

Вы можете увидеть это, набрав:

sudo ufw app list
OutputAvailable applications:
  OpenSSH

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

sudo ufw allow OpenSSH

После этого мы можем включить брандмауэр, набрав:

sudo ufw enable

Введите «y» и нажмите ENTER, чтобы продолжить. Вы можете увидеть, что SSH-соединения все еще разрешены, набрав:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Если вы устанавливаете и настраиваете дополнительные службы, вам нужно будет настроить параметры брандмауэра, чтобы разрешить приемлемый трафик. Вы можете изучить некоторые общие операции UFW вthis guide.

Куда пойти отсюда?

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

Related