Введение
Когда вы впервые создаете новый сервер Rocky Linux 8, вам следует выполнить несколько шагов конфигурации в начале в качестве базовой настройки. Это повысит безопасность и удобство использования вашего сервера, а также обеспечит надежную основу для последующих действий.
Шаг 1 — Вход в систему от имени root
Чтобы войти в систему на ваш сервер, вам понадобится знать публичный IP-адрес сервера. Вам также понадобится пароль или, если вы установили SSH-ключ для аутентификации, закрытый ключ для учетной записи пользователя root. Если вы еще не вошли в систему на свой сервер, вам может быть интересна наша документация о том, как подключиться к вашему Droplet с помощью SSH, которая подробно описывает этот процесс.
Если вы еще не подключены к своему серверу, выполните вход от имени пользователя root сейчас, используя следующую команду (замените выделенную часть команды на публичный IP-адрес вашего сервера):
Примите предупреждение об аутентичности хоста, если оно появится. Если вы используете аутентификацию по паролю, укажите свой пароль root, чтобы войти. Если вы используете защищенный паролем SSH-ключ, вам может потребоваться ввести парольную фразу при первом использовании ключа в каждой сессии. Если это ваш первый вход на сервер с паролем, вас также могут попросить изменить пароль root.
О Root
Пользователь root является административным пользователем в среде Linux и имеет очень широкие привилегии. Из-за повышенных привилегий учетной записи root вам не рекомендуется использовать ее на постоянной основе. Это потому, что часть власти, присущей учетной записи root, – это возможность сделать очень разрушительные изменения, даже случайно.
Следовательно, следующим шагом является настройка альтернативной учетной записи пользователя с ограниченным объемом влияния для повседневной работы. Эта учетная запись все еще сможет получить расширенные привилегии по мере необходимости.
Шаг 2 — Создание нового пользователя
После входа под учетной записью root вы можете создать новую учетную запись пользователя, которую мы будем использовать для входа отныне.
Этот пример создает нового пользователя под именем sammy, но вы можете заменить его на любое имя пользователя, которое предпочитаете:
Затем установите надежный пароль для пользователя sammy
:
Вам будет предложено ввести пароль дважды. После этого ваш пользователь будет готов к использованию, но сначала мы предоставим этому пользователю дополнительные привилегии для использования команды sudo
. Это позволит нам выполнять команды от имени root, когда это необходимо.
Шаг 3 — Предоставление административных привилегий
Теперь у нас есть новая учетная запись пользователя с обычными привилегиями учетной записи. Однако иногда нам может потребоваться выполнять административные задачи.
Чтобы избежать необходимости выходить из нашего обычного пользователя и снова входить как root, мы можем настроить то, что известно как привилегии “суперпользователя” или root для нашей обычной учетной записи. Это позволит нашему обычному пользователю выполнять команды с административными привилегиями, добавляя перед каждой командой слово sudo
.
Чтобы добавить эти привилегии нашему новому пользователю, нам нужно добавить нового пользователя в группу wheel. По умолчанию, в Rocky Linux 8, пользователи, принадлежащие к группе wheel, имеют право использовать команду sudo
.
Как пользователь root, выполните эту команду, чтобы добавить вашего нового пользователя в группу wheel (замените выделенное слово на ваше новое имя пользователя):
Теперь, когда вы вошли как обычный пользователь, вы можете набирать перед командами sudo
, чтобы выполнять действия с привилегиями суперпользователя.
Шаг 4 — Настройка базового брандмауэра
Брандмауэры обеспечивают базовый уровень безопасности для вашего сервера. Эти приложения отвечают за блокировку трафика на всех портах вашего сервера, за исключением тех портов/служб, которые вы явно одобрили. У Rocky Linux есть служба под названием firewalld
, которая выполняет эту функцию. Для настройки политик брандмауэра firewalld
используется инструмент под названием firewall-cmd
.
Примечание: Если ваши серверы работают на DigitalOcean, вы можете использовать Облачные брандмауэры DigitalOcean вместо firewalld
. Мы рекомендуем использовать только один брандмауэр одновременно, чтобы избежать конфликтующих правил, которые могут быть трудно отлаживать.
Сначала установите firewalld
:
Конфигурация firewalld
по умолчанию разрешает подключения через ssh
, поэтому мы можем сразу включить брандмауэр:
Проверьте статус службы, чтобы убедиться, что она запущена:
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
для получения и установки информации о политике для брандмауэра.
Сначала давайте перечислим, какие службы уже разрешены:
Outputpublic (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:
Чтобы увидеть дополнительные службы, которые можно включить по имени, введите:
Чтобы добавить службу, которая должна быть разрешена, используйте флаг --add-service
:
Это добавит службу http
и разрешит входящий TCP-трафик на порт 80
. Конфигурация будет обновлена после перезагрузки брандмауэра:
Помните, что вам придется явно открыть брандмауэр (с помощью служб или портов) для любых дополнительных служб, которые вы можете настроить позже.
Шаг 5 — Включение внешнего доступа для вашего обычного пользователя
Теперь, когда у нас есть обычный пользователь без прав администратора для ежедневного использования, нам нужно убедиться, что мы можем использовать его для SSH-подключения к нашему серверу.
Примечание: До тех пор, пока вы не убедитесь, что можете войти и использовать sudo
с вашим новым пользователем, мы рекомендуем оставаться в системе под пользователем root. Таким образом, если у вас возникнут проблемы, вы сможете устранить их и внести любые необходимые изменения от имени root. Если вы используете Droplet DigitalOcean и испытываете проблемы с подключением SSH от имени root, вы можете войти в Droplet с помощью консоли DigitalOcean.
Процесс настройки доступа SSH для вашего нового пользователя зависит от того, использует ли учетная запись root вашего сервера пароль или ключи SSH для аутентификации.
Если учетная запись Root использует аутентификацию по паролю
Если вы вошли в свою учетную запись root с помощью пароля, то аутентификация по паролю включена для SSH. Вы можете подключиться к вашей новой учетной записи пользователя, открыв новую сессию терминала и используя SSH с вашим новым именем пользователя:
После ввода пароля вашего обычного пользователя вы будете войти в систему. Помните, что если вам нужно выполнить команду с административными привилегиями, введите sudo
перед ней, например так:
Вам будет предложено ввести пароль вашего обычного пользователя при использовании 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 не сможет их найти и использовать.
Теперь, вернитесь в новый терминал на вашем локальном компьютере и откройте новую сессию SSH с вашим пользователем, не являющимся root:
Вы должны войти в новую учетную запись пользователя без использования пароля. Помните, если вам нужно выполнить команду с административными привилегиями, наберите sudo
перед ней, как здесь:
Вас попросят ввести пароль обычного пользователя при использовании sudo
в первый раз в каждой сессии (и периодически после этого).
Заключение
На данный момент у вас есть прочный фундамент для вашего сервера. Теперь вы можете установить любое необходимое вам программное обеспечение на ваш сервер.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8