Rocky Linux 9 — корпоративный дистрибутив Linux, являющийся полностью совместимым клоном Red Hat Enterprise Linux (RHEL). Данная система предназначена для серверов и корпоративной инфраструктуры, обеспечивает долгосрочную поддержку до 2032 года и бинарную совместимость с RHEL. В Rocky Linux используется пакетный менеджер DNF, инициализацию через systemd, а также улучшенные средства безопасности, включая SELinux и Firewalld.
Rocky Linux активно поддерживается сообществом и организацией Rocky Enterprise Software Foundation, что обеспечивает прозрачное и устойчивое развитие системы без коммерческих ограничений. Основные преимущества Rocky Linux — это стабильность, предсказуемость обновлений, обширная документация, активное сообщество и бесплатность использования в любых целях.
Для заказа виртуального сервера на Rocky Linux 9 авторизуйтесь или зарегистрируйтесь в личном кабинете RUVDS, после чего нажмите Заказать. Затем выберите Дата-центр, в котором будет расположен ваш виртуальный сервер, укажите параметры конфигурации сервера и в качестве операционной системы выберите Rocky Linux 9.

Через несколько минут после оплаты виртуальная машина будет готова. Для подключения к ней по SSH используйте учётные данные, указанные в разделе Авторизация на сервере.

Первоначальная настройка виртуального сервера на Rocky Linux 9
Сразу после заказа виртуального выделенного сервера с Rocky Linux 9 необходимо выполнить его первоначальную настройку безопасности. Данный этап является критически важным для защиты системы. Чистый образ Rocky Linux поставляется с базовыми настройками, которые могут быть небезопасны при введении системы в эксплуатацию.
Необходимыми действиями по обеспечению минимальных мер безопасности в отношении чистой Rocky Linux 9 являются:
- создание отдельной учётной записи и добавление её в
sudoers; - отключение SSH-доступа учётной записи
root; - настройка доступа по SSH-ключам;
- отключение SSH-доступа с использованием пароля;
- настройка брандмауэра
firewalld.
Создание отдельной учётной записи с привилегиями sudo
На чистом образе Rocky Linux доступ к системе осуществляется с использованием только одной учётной записи — root. Данная учётная запись является суперпользователем, поэтому постоянная работа под ней может представлять опасность для системы. Любая ошибка администратора может привести к нарушению работы или повреждению данных. Кроме того, если злоумышленник получит доступ к учётной записи root, он сможет управлять всей системой без каких-либо ограничений.
Поэтому хорошим тоном является использование вместо пользователя root отдельной учётной записи, наделённой полномочиями администратора. Для добавления нового пользователя запустите следующую команду, в которой your-user — имя создаваемой учётной записи:
$ adduser your-user
Следующей командой установите пароль для созданного пользователя:
$ passwd your-user

Наделение пользователя правами администратора заключается в добавлении учётной записи в специальную группу — sudo. В Rocky Linux это делается командой:
$ usermod -aG wheel your-user
С этого момента отпадает необходимость использования пользователя root. Для выполнения операции, требующей полномочий администратора, при запуске команды следует добавлять перед ней утилиту sudo:
$ sudo команда
Отключение SSH-доступа учётной записи root
Поскольку операции, требующие администраторских полномочий, можно выполнять без использования учётной записи root, то можно ограничить для неё возможность подключения к системе. А именно, лишить пользователя root возможности подключаться по SSH. Чтобы настроить такое ограничение, необходимо отредактировать дополнительный конфигурационный файл SSH-сервера, подгружаемый в к основному конфигу:
$ sudo vi /etc/ssh/sshd_config.d/10-ruvds.conf
В файле укажите значение no для параметра PermitRootLogin:
PermitRootLogin no
Закройте текстовый редактор, сохранив изменения в файле, и перезапустите сервер SSH:
$ sudo systemctl restart sshd
После чего вход в систему пользователю root будет возможен только с консоли, которая доступна на странице сервера в личном кабинете RUVDS.

Настройка доступа по SSH-ключам и отключение SSH-доступа с использованием пароля
Для повышения безопасности виртуальной машины также рекомендуется отказаться от входа по паролю и использовать аутентификацию с помощью SSH-ключей.
На локальном компьютере, с которого планируется подключение к удалённой Linux-системе, необходимо создать пару ключей — публичный (открытый) и приватный (секретный). Это можно сделать с помощью стандартной утилиты ssh-keygen. Откройте терминал или командную строку и выполните команду:
ssh-keygen -t rsa -b 4096
Параметр -t определяет алгоритм шифрования – в данном случае используется RSA (Rivest–Shamir–Adleman), один из наиболее распространённых и надёжных алгоритмов асимметричной криптографии. Параметр -b задаёт длину ключа в битах. Для RSA стандартным значением является 2048 бит. При этом выбор длины 4096 бит обеспечивает более высокий уровень защиты, особенно при длительной эксплуатации сервера.
Во время генерации ключей можно задать дополнительную парольную фразу (passphrase). Она добавит ещё один уровень безопасности. В таком случае при каждом подключении по SSH потребуется вводить данный пароль.
После выполнения команды будут созданы два файла:
~/.ssh/id_rsa.pub— открытый ключ, который можно безопасно передавать и размещать на сервере;~/.ssh/id_rsa— секретный ключ, который, наоборот, необходимо хранить в надёжном месте и исключить возможность его передачи кому бы то ни было.
Эта пара ключей позволит безопасно проходить аутентификацию на сервере без использования обычного пароля, что существенно снизит риск несанкционированного доступа к системе.
Чтобы настроить использование созданных ключей сервером, подключитесь к нему по SSH и в домашнем каталоге своего пользователя создайте директорию .ssh:
$ mkdir -p ~/.ssh
После чего переключитесь в созданный каталог:
$ cd ~/.ssh
Находясь там, создайте файл authorized_keys:
$ vi authorized_keys
В него вставьте содержимое файла id_rsa.pub, который был создан ранее при генерации ключей на локальном компьютере.

Сохраните изменения в файле authorized_keys и закройте его.
Чтобы закрыть возможность подключения к системе по паролю, перейдите в директорию /etc/ssh:
$ cd /etc/ssh
Здесь отредактируйте файл файл sshd_config:
$ sudo vi sshd_config
В данном файле отыщите параметр PasswordAuthentication, удалите символ #, указанный перед названием параметра, если этот символ там присутствует, и в качестве значения установите no вместо yes:
PasswordAuthentication no
Закройте файл с сохранением изменений и перезапустите сервер SSH:
$ sudo systemctl reload sshd
После чего подключиться по SSH можно будет только с использованием SSH-ключей.
Настройка брандмауэра firewalld
В качестве средства управления межсетевым экраном в Rocky Linux 9 по умолчанию используется Firewalld. Firewalld — сервис управления сетевой безопасностью. Он позволяет гибко контролировать входящий и исходящий трафик с помощью правил и зон. Изначально данный сервис отсутствует в образе Rocky Linux 9. Поэтому для его установки обновите списки пакетов пакетного менеджера DNF:
$ sudo dnf update
После чего проинсталлируйте Firewalld:
$ sudo dnf install firewalld
В результате установки в системе будет создана служба firewalld, которую необходимо запустить, чтобы сервис начал работать:
$ sudo systemctl start firewalld
После чего проверьте текущее состояние службы:
$ systemctl status firewalld
Вывод команды не должен содержать сообщений о каких-либо ошибках.

Следующая команда выводит все настройки текущей конфигурации активной зоны Firewalld:
$ sudo firewall-cmd --permanent --list-all

В данную конфигурацию можно внести изменения. Например, следующая команда открывает доступ к серверу через TCP-порт 8080:
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Чтобы открыть доступ к серверу, например, по протоколу FTP, запустите команду вида:
$ sudo firewall-cmd --permanent --add-service=ftp
А так можно вывести список всех предопределённых служб, известных Firewalld:
$ sudo firewall-cmd --get-services
Если вы в брандмауэре добавили или удалили службу или порт, то для вступления изменений в силу необходимо перезапустить Firewalld:
$ sudo firewall-cmd --reload
