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

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

В этом мануале мы расскажем вам все о начальной настройке сервера CentOS 8.

1: Root-логин

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

Читайте также: SSH-подключение к серверу

Если вы еще не подключились к серверу, сделайте это сейчас. Чтобы войти на сервер как пользователь root, введите эту команду:

ssh root@your_server_ip

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

Что такое root?

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

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

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

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

Чтобы создать нового пользователя по имени 8host, введите:

adduser 8host

Примечание: Замените условное имя 8host именем своего пользователя.

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

passwd 8host

Команда предложит дважды ввести пароль. Сейчас этот аккаунт уже можно использовать, но пока что у него нет доступа к sudo. Давайте предоставим ему такой доступ.

3: Доступ к sudo

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

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

В CentOS 8 доступ к этой команде по умолчанию есть у всех, кто входит в группу wheel. Чтобы добавить вашего нового пользователя в эту группу, запустите следующую команду в сессии пользователя root:

usermod -aG wheel 8host

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

4: Настройка брандмауэра

Серверы CentOS могут использовать брандмауэр для блокировки соединений с отдельными сервисами. Как правило, обычно в качестве брандмауэра на CentOS используется firewalld. Инструмент firewall-cmd позволяет установить политики брандмауэра и настроить исключения.

Сначала установите брандмауэр firewalld.

dnf install firewalld -y

По умолчанию firewalld поддерживает соединения ssh, потому брандмауэр можно включить сразу после установки, не боясь заблокировать себя на своем же сервере:

systemctl start firewalld

Теперь проверьте состояние брандмауэра:

systemctl status firewalld
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, чтобы настроить политику брандмауэра.

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

firewall-cmd --permanent --list-all
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:

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

firewall-cmd --get-services

Чтобы разблокировать сервис в брандмауэре, используйте флаг —add-service:

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

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

firewall-cmd --reload

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

5: Проверка доступа к новому пользователю

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

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

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

Парольная аутентификация

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

ssh 8host@your_server_ip

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

sudo command_to_run

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

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

Аутентификация на основе SSH-ключей

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

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

Проще всего это сделать с помощью команды rsync. Она скопирует каталог .ssh, сохраняя все права доступа к нему. Вместо 8host вы должны указать имя вашего пользователя.

Примечание: Команда rsync обрабатывает исходные и целевые места, имя которых заканчивается косой чертой, иначе, чем те, у которых в имени нет косой черты. При использовании rsync убедитесь, что в качестве исходного каталога вы используете ~/.ssh, а не ~/.ssh/.

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

rsync --archive --chown=8host:8host ~/.ssh /home/8host

Теперь вернитесь в терминал на локальной машине и создайте новое SSH соединение:

ssh 8host@your_server_ip

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

sudo command_to_run

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

Заключение

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

Tags: , , ,