При создании нового сервера 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”, вы увидите вывод, который выглядит следующим образом:
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, который должен выглядеть следующим образом:
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
чтобы выйти из файла, а затем, y
чтобы сохранить изменения, которые вы сделали, а затем, ENTER
чтобы подтвердить имя файла.
Теперь ограничьте права доступа к файл authorized_keys с помощью следующей команды:
chmod 600 ~/.ssh/authorized_keys
Введите эту команду один раз, чтобы вернуться к пользователю root
:
exit
Теперь ваш открытый ключ установлен, и вы можете использовать ключи SSH войти в систему в качестве пользователя.
Далее мы покажем вам, как повысить безопасность вашего сервера путем отключения проверки подлинности пароля.
Шаг пятый – отключить проверку подлинности пароля (рекомендуется)
Теперь, когда ваш новый пользователь может использовать ключи SSH, чтобы войти в систему, вы можете повысить безопасность вашего сервера путем отключения проверки подлинности пароля. Это позволит ограничить SSH доступ к серверу только для открытого ключа аутентификации. То есть, единственный способ войти на свой сервер (за исключением консоли), это иметь секретный ключ, который образует пару с открытым ключом, который был установлен.
Чтобы отключить проверку пароля на сервере, выполните следующие действия.
В корневом каталоге или нового пользователя SUDO, откройте конфигурацию SSH-демона:
sudo nano /etc/ssh/sshd_config
Найдите строку, которая определяет PasswordAuthentication
, раскоментировать путем удаления #
в начале, а затем измените его значение на “no”. Он должен выглядеть следующим образом после того, как вы сделали изменения:
PasswordAuthentication no
Вот два другие параметра, которые имеют важное значение только для ключа аутентификации и устанавливаются по умолчанию. Если вы не изменили этот файл ранее, вы не должны изменять эти настройки:
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)
Если установить и настроить дополнительные услуги, вам нужно будет настроить параметры брандмауэра для разрешения приемлемого трафика.
Куда пойти отсюда?
На данный момент, у вас есть прочный фундамент для вашего сервера. Вы можете установить любой из программного обеспечения вам нужно на сервере в настоящее время.