Начальная настройка сервера с Rocky Linux 9

Введение

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

Шаг 1 — Вход в систему как Root

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

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

  1. ssh root@your_server_ip

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

О пользователе Root

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

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

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

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

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

  1. adduser sammy

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

  1. passwd sammy

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

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

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

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

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

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

  1. usermod -aG wheel sammy

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

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

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

Примечание: Если ваши серверы работают на платформе DigitalOcean, вы можете использовать по желанию DigitalOcean Cloud Firewalls вместо 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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago Docs: man:firewalld(1) Main PID: 15060 (firewalld) Tasks: 4 (limit: 10938) Memory: 28.1M CPU: 6.127s CGroup: /system.slice/firewalld.service └─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

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

Теперь, когда служба запущена и работает, вы можете использовать утилиту 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 — Включение внешнего доступа для вашего обычного пользователя

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

Примечание: Пока вы не убедитесь, что можете войти и использовать sudo с вашим новым пользователем, вы должны оставаться в системе под пользователем root. Таким образом, если у вас возникнут проблемы, вы сможете их устранить и внести необходимые изменения от имени root. Если вы используете Droplet от DigitalOcean и испытываете проблемы с подключением 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 в Rocky Linux 9, чтобы узнать, как настроить аутентификацию на основе ключей.

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

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

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

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

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

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

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

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

Заключение

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

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-9