Поиск по сайту:

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


Введение

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

Шаг первый — Root-вход

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

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

  1. ssh root@your_server_ip

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

О корне

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

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

Шаг второй — создайте нового пользователя

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

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

  1. adduser sammy

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

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

Шаг третий — права root

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

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

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

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

  1. usermod -aG sudo sammy

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

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

Шаг четвертый — добавьте аутентификацию с открытым ключом (рекомендуется)

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

Создать пару ключей

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

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

  1. ssh-keygen

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

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

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

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

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

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

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

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

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

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

Вариант 1. Используйте ssh-copy-id

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

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

  1. ssh-copy-id sammy@your_server_ip

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

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

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

  1. cat ~/.ssh/id_rsa.pub

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

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

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

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

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

  1. su - sammy

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

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

  1. mkdir ~/.ssh
  2. chmod 700 ~/.ssh

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

  1. nano ~/.ssh/authorized_keys

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

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

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

  1. chmod 600 ~/.ssh/authorized_keys

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

  1. exit

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

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

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

Шаг пятый — отключить аутентификацию по паролю (рекомендуется)

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

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

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

От имени пользователя root или нового пользователя sudo откройте конфигурацию демона SSH:

  1. sudo nano /etc/ssh/sshd_config

Найдите строку, в которой указано PasswordAuthentication, раскомментируйте ее, удалив предшествующий #, затем измените ее значение на \no. Это должно выглядеть так после внесения изменений. :

PasswordAuthentication no

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

PubkeyAuthentication yes
ChallengeResponseAuthentication no

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

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

  1. sudo systemctl reload sshd

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

Шаг шестой — тестовый вход

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

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

  1. ssh sammy@your_server_ip

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

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

После аутентификации на сервере вы войдете в систему как новый пользователь.

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

  1. sudo command_to_run

Шаг седьмой — настройте базовый брандмауэр

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

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

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

  1. sudo ufw app list
Output
Available applications: OpenSSH

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

  1. sudo ufw allow OpenSSH

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

  1. sudo ufw enable

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

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

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

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

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