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

Введение

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

Шаг 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, мы можем настроить то, что известно как привилегии “суперпользователя” или root для нашей обычной учетной записи. Это позволит нашему обычному пользователю выполнять команды с административными привилегиями, добавляя перед каждой командой слово sudo.

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

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

  1. usermod -aG wheel sammy

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

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

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

Примечание: Если ваши серверы работают на 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

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

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

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

Если учетная запись 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 в первый раз в каждой сессии (и периодически после этого).

Заключение

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

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