Tutorial

Первоначальная настройка сервера с CentOS 8

Published on February 20, 2020
Русский
Первоначальная настройка сервера с CentOS 8

Введение

При создании нового сервера CentOS 8 необходимо выполнить ряд действий по настройке незамедлительно в рамках процесса базовой настройки. Это поможет повысить уровень безопасности и удобство работы с сервером и послужит прочной основой последующих действий.

Шаг 1 — Вход с привилегиями root

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

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

  1. ssh root@your_server_ip

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

Подробнее о root

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

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

Шаг 2 — Создание нового пользователя

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

Этот пример создает нового пользователя с именем sammy, но вы должны заменить это имя на любое предпочитаемое вами имя:

  1. adduser sammy

Далее мы установим надежный пароль для пользователя sammy:

  1. passwd sammy

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

Шаг 3 — Предоставление административных прав

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

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

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

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

  1. usermod -aG wheel sammy

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

Шаг 4 — Настройка базового брандмауэра

Брандмауэры обеспечивают базовый уровень безопасности для вашего сервера. Эти приложения отвечают за отклонение трафика для каждого порта на сервере, за исключением тех портов/служб, для которых вы открыли прием трафика. CentOS имеет службу firewalld для выполнения этой функции. Инструмент с именем firewall-cmd используется для настройки политик брандмауэра firewalld.

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

Сначала установите firewalld:

  1. dnf install firewalld -y

Конфигурация firewalld по умолчанию позволяет использовать соединения ssh, поэтому мы можем запустить брандмауэр немедленно:

  1. systemctl start firewalld

Проверьте состояние службы, чтобы убедиться в ее запуске:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Обратите внимание на значение active и enabled, что означает, что она будет запускаться по умолчанию при перезагрузке сервера.

Теперь, когда служба запущена и работает, мы можем использовать утилиту firewall-cmd для получения и установки информации о политике для брандмауэра.

Сначала мы перечислим службы, которые уже разрешены:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Чтобы посмотреть дополнительные службы, которые вы можете активировать по имени, введите:

  1. firewall-cmd --get-services

Чтобы добавить разрешенную службу, используйте флаг --add-service:

  1. firewall-cmd --permanent --add-service=http

Это позволит добавить службу http и откроет для входящего TCP-трафика порт 80. Конфигурация обновится после перезагрузки брандмауэра:

  1. firewall-cmd --reload

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

Шаг 5 — Активация внешнего доступа для стандартного пользователя

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

Примечание. Пока вы не убедитесь, что вы можете войти в систему и использовать sudo с новым пользователем, мы рекомендуем не выходить из учетной записи root. Таким образом, если у вас есть проблемы, вы можете устранить их и внести необходимые изменения в качестве root. Если вы используете DigitalOcean Droplet и сталкиваетесь с проблемами при использовании подключения SSH в учетной записи root, вы можете войти в Droplet, используя консоль DigitalOcean.

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

Если учетная запись root использует аутентификацию по паролю

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

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

Если учетная запись root использует аутентификацию по ключу SSH

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

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

Самый простой способ копирования файлов с правильным правами владения и разрешениями — воспользоваться командой rsync. Она будет копировать директорию .ssh пользователя root user, сохранит разрешения и изменит владельцев файлов, все в одной команде. Обязательно измените выделенные ниже части согласно имени вашего стандартного пользователя:

Примечание. Команда rsync использует источники и пункты назначения, оканчивающиеся на завершающий слеш, иначе, чем те, которые этот завершающий слеш не имеют. При использовании rsync ниже убедитесь, что директория источника (~/.ssh) не включает завершающий слеш (убедитесь, что вы не используете ~/.ssh/​​​).

Если вы случайно добавите в команду завершающий слеш, rsync будет копировать содержимое директории ~/.ssh учетной записи root в домашнюю директорию пользователя sudo вместо копирования всей структуры директории ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет найти и использовать их.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Теперь, вернувшись в новый терминал на локальном компьютере, откройте новый сеанс SSH с пользователем non-root user:

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

Заключение

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel