ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

Шаг первый – Войдите под root

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

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

ssh root@your_server_ip

 

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

О root

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

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

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

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

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

adduser andreyex

 

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

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

Шаг третий – суперпользователь

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

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

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

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

usermod -aG sudo andreyex

 

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

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

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

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

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

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

ssh-keygen

 

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

Вывод ssh-keygen
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‘s. Помните, что закрытый ключ не должен использоваться совместно с кем – либо, кто не должен иметь доступ к серверам!

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

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

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

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

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

ssh-copy-id andreyex@your_server_ip

 

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

Вариант 2: Вручную установить ключ

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

cat ~/.ssh/id_rsa.pub

 

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

Содержание id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABSAABAQFBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7A2c47d4gOqB4izP0+fRQfvbz/AnXFz4COP/H6rCV05hqhhF+KYRxs9Y8tVQrpDZRAl75o6+hSbUOMu7xN+uVD0T9XzCcxmzTmZV7Na5up3QM3DISRYX/NP3utD2+zQqpJILKPLdP74w7s56oYpI9blpnSzxkEP3edVBOivUPpZ4JRenWManvIaSdMTALMy3MtlQhva+jS0gguyVbUkdzK9KKEuah+pSJvaugtebsU+aslPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAWXUPCI9mWkYS/1rPgpFmu3HCXBnWSUgf localuser@machine.local

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

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

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

su - andreyex

 

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

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

mkdir ~/.ssh
chmod 700 ~/.ssh

 

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

nano ~/.ssh/authorized_keys

 

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

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

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

chmod 600 ~/.ssh/authorized_keys

 

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

exit

 

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

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

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


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

В корневом каталоге или нового пользователя SUDO, откройте конфигурацию SSH-демона:

sudo nano /etc/ssh/sshd_config

 

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

sshd_config – Отключите пароль аутентификации
PasswordAuthentication no

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

sshd_config – Важные значения по умолчанию
PubkeyAuthentication yes
ChallengeResponseAuthentication no

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

Перезагрузите SSH демон:

sudo systemctl reload sshd

 

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

Шаг шестой – Тест входа

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

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

ssh andreyex@your_server_ip

 

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


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

Помните, что если вам нужно выполнить команду с привилегиями суперпользователя, введите “sudo” перед ним, так:

sudo command_to_run

 

Шаг седьмой – Настройка основного брандмауэра

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

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

Вы можете увидеть это, введя:

sudo ufw app list

 

Вывод
Available applications:
  OpenSSH

 

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

sudo ufw allow OpenSSH

 

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

sudo ufw enable

 

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

sudo ufw status

 

Вывод
Status: active

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

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

 

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

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

Exit mobile version