Начальная настройка сервера с CentOS 7

Вступление

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

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

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

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

ssh root@SERVER_IP_ADDRESS

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

О корне

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

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

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

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

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

adduser demo

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

passwd demo

Введите надежный пароль и повторите его еще раз, чтобы подтвердить его.

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

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

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

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

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

gpasswd -a demo wheel

Теперь ваш пользователь может запускать команды с привилегиями суперпользователя! Для получения дополнительной информации о том, как это работает, ознакомьтесь сour 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 demo@SERVER_IP_ADDRESS

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

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

Предполагая, что вы сгенерировали пару ключей SSH на предыдущем шаге, используйте следующую командуat the terminal of your 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 - demo

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

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

mkdir .ssh
chmod 700 .ssh

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

vi .ssh/authorized_keys

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

Введите:x, затемENTER, чтобы сохранить и закрыть файл.

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

chmod 600 .ssh/authorized_keys

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

exit

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

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

[[step-five -—- configure-ssh-daemon]] == Шаг пятый - настройка SSH Daemon

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

Начните с открытия файла конфигурации с вашим текстовым редактором с правами root:

vi /etc/ssh/sshd_config

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

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

/etc/ssh/sshd_config (before)

#PermitRootLogin yes

Подсказка: чтобы найти эту строку, введите/PermitRoot, затем нажмитеENTER. Это должно привести курсор к символу «P» в этой строке.

Раскомментируйте строку, удалив символ «#» (нажмитеShift-x).

Теперь переместите курсор в положение «да», нажавc.

Теперь замените «да», нажавcw, а затем набрав «нет». По завершении редактирования нажмитеEscape. Это должно выглядеть так:

/etc/ssh/sshd_config (after)

PermitRootLogin no

Отключение удаленного входа в систему root настоятельно рекомендуется на каждом сервере!

Введите:x, затемENTER, чтобы сохранить и закрыть файл.

Перезагрузить SSH

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

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

systemctl reload sshd

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

Откройте окно терминалаnew. В новом окне нам нужно начать новое соединение с нашим сервером. На этот раз вместо использования учетной записи root мы хотим использовать созданную нами новую учетную запись.

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

ssh demo@SERVER_IP_ADDRESS

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

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

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

sudo command_to_run

Если все хорошо, вы можете выйти из ваших сессий, набрав:

exit

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

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

Если вы не уверены, что хотите делать со своим сервером, ознакомьтесь со следующим руководством из этой серии дляAdditional Recommended Steps for New CentOS 7 Servers. В нем рассматриваются такие вещи, как включениеfail2ban для снижения эффективности атак методом грубой силы, основные настройки брандмауэра, NTP и файлы подкачки. Он также предоставляет ссылки на учебные пособия, которые показывают, как настроить общие веб-приложения.

Если вы просто хотите исследовать, взгляните на остальные нашиcommunity, чтобы найти больше руководств. Некоторые популярные идеи - это настройкаLAMP stack илиLEMP stack, что позволит
размещать веб-сайты.