При первом запуске сервера Rocky Linux 9 следует провести его базовую настройку – она включает в себя несколько простых шагов, которые нужно выполнить на начальной стадии. Правильная настройка повысит безопасность и удобство работы вашего сервера, а также даст вам основу для дальнейшей разработки.
1: Вход в систему как root пользователь
Чтобы войти на сервер, вам нужно знать общедоступный IP-адрес вашего сервера. Также для этого вам понадобится пароль (или, если вы установили ключ SSH для аутентификации,то закрытый ключ) учетной записи пользователя root.
Если вы еще не подключены к серверу, войдите в систему как пользователь root. Сделать это можно с помощью следующей команды (замените your_server_ip внешним IP-адресом вашего сервера):
ssh root@your_server_ip
Примите предупреждение о подлинности хоста, если оно появится. Если вы используете аутентификацию по паролю, укажите root пароль для входа в систему. Если вы используете ключ SSH, защищенный парольной фразой, система может вам предложить ввести эту фразу при первом использовании ключа в каждом сеансе. Если вы впервые входите на сервер по паролю, вам может быть предложено изменить пароль root.
Что такое root?
Пользователь root является администратором в среде Linux и имеет широкие привилегии. Именно из-за повышенных привилегий учетную запись root не рекомендуется использовать на регулярной основе. Это связано с тем, что пользователь root способен вносить очень серьезные изменения, часть из которых может оказаться разрушительной для вашей системы.
Таким образом, следующим шагом в настройке будет создание альтернативной учетной записи пользователя с ограниченными привилегиями для повседневной работы. При необходимости этот пользователь сможет получить широкие привилегии.
2: Создание нового пользователя
После того, как вы вошли в систему как пользователь root, вы можете создать новую учетную запись, которую вы будете использовать в повседневной работе с сервером.
В этом примере создается новый пользователь по имени 8host (конечно, вы можете заменить его любым именем):
adduser 8host
Затем установите надежный пароль для пользователя 8host:
passwd 8host
Пароль нужно будет ввести дважды. После этого вы можете использовать учетную запись для работы, но сначала нужно предоставить дополнительные привилегии. Для этого нужно открыть новому пользователю доступ к команде sudo. Она позволит ему запускать команды от имени пользователя root, когда будет такая необходимость.
3: Предоставление административных привилегий
Итак, у вас есть новая учетная запись пользователя с обычными привилегиями. Но иногда вам может потребоваться выполнение административных задач.
Чтобы избежать необходимости выходить из сессии обычного пользователя и снова входить в систему как root, есть возможность настроить так называемые «суперпользовательские» привилегии, или привилегии root. Это позволит обычному пользователю запускать команды с правами администратора с помощью sudo (ее нужно будет писать перед каждой запускаемой командой).
Чтобы предоставить расширенные привилегии новому пользователю, нужно добавить его в группу wheel. По умолчанию в Rocky Linux 9 всем пользователям группы wheel разрешено использовать команду sudo.
Чтобы добавить нашего нового пользователя в группу wheel, от имени пользователя root выполните эту команду (не забудьте указать в команде имя вашего пользователя):
usermod -aG wheel 8host
Теперь в сессии обычного пользователя вы сможете ввести sudo перед командами, которые нужно выполнять с привилегиями суперпользователя.
4: Настройка брандмауэра
Брандмауэры обеспечивают базовый уровень безопасности вашего сервера. Эти приложения блокируют трафик на каждый порт сервера, за исключением тех портов/сервисов, которые вы одобрили (то есть они закрывают доступ ко всем неиспользуемым портам). В Rocky Linux есть сервис firewalld, который выполняет функцию брандмауэра. Для настройки политик 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 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, чтобы узнать все о его текущей политике.
Сначала давайте запросим список серверов, которые уже разрешены:
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: Включение удалённого доступа
Теперь, когда у вас есть обычный пользователь без привилегий root, нам нужно убедиться, что мы можем использовать его для SSH-подключений к вашему серверу.
Примечание: Пока вы не убедитесь, что вы можете войти в систему и использовать sudo как новый пользователь, мы рекомендуем оставаться в системе как root. Таким образом, если у вас возникнут проблемы с доступом, вы сможете устранить неполадки и внести необходимые изменения как root.
Процесс настройки доступа SSH зависит от типа аутентификации вашего пользователя root: по паролю или по ключам SSH.
Парольная аутентификация пользователя root
Если вы вошли в свою учетную запись root с помощью пароля, тогда для SSH также будет включена аутентификация по паролю. Вы можете использовать SSH в своей новой учетной записи, открыв новый сеанс терминала и используя SSH с именем нового пользователя:
ssh 8host@your_server_ip
После ввода пароля вашего обычного пользователя вы войдете в систему. Помните, если вам нужно запустить команду с правами администратора, вы должны ввести перед ней sudo:
sudo command_to_run
При первом использовании sudo в сеансе (и периодически в течение работы) вам будет предложено ввести пароль обычного пользователя.
Чтобы повысить безопасность вашего сервера, мы настоятельно рекомендуем настроить ключи SSH вместо парольной аутентификации.
Аутентификация root по SSH-ключам
Если вы вошли в свою учетную запись root с помощью ключей SSH, то парольная аутентификация для SSH отключена. Вам нужно добавить копию вашего открытого ключа в файл ~/.ssh/authorized_keys нового пользователя, чтобы он мог войти в систему.
Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys корневой учетной записи на сервере, мы можем скопировать этот файл и структуру каталогов в свою новую учетную запись.
Самый простой способ скопировать необходимые файлы с правильным владельцем и правами доступа — использовать команду rsync. Она скопирует каталог .ssh пользователя root, сохранит права доступа и соответствующим образом скорректирует владельцев файлов – всё это можно сделать с помощью одной команды. Обязательно укажите в приведенной ниже команде правильное имя вашего обычного пользователя:
rsync --archive --chown=8host:8host ~/.ssh /home/8host
Примечание. Команда rsync обрабатывает исходные и целевые каталоги со слешем в конце иначе, чем без него. При использовании rsync убедитесь, что исходный каталог (~/.ssh) не содержит слеша (не должен выглядеть так ~/.ssh/).
Если вы случайно добавите слеш в конце команды, rsync скопирует содержимое каталога ~/.ssh учетной записи root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталогов ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет их найти и использовать.
Вернувшись в новый терминал на вашем локальном компьютере, откройте новый сеанс SSH для пользователя без привилегий root:
ssh 8host@your_server_ip
Вы должны войти в учетную запись пользователя без пароля. Помните, если вам нужно запустить команду с правами администратора, вам нужно ввести sudo перед ней:
sudo command_to_run
При первом использовании sudo в сеансе (и иногда в течении работы) вам будет предложено ввести пароль вашего обычного пользователя.
Подводим итоги
Настройка сервера завершена. Теперь у вас есть прочная основа для повседневной работы, и сервер готов к установке любого необходимого программного обеспечения. Например, вы можете начать с установки веб-сервера Nginx.
Читайте также: Установка Docker в Rocky Linux 9