Rocky Linux 9 — бесплатный выбор, совместимый с RHEL: те же пакеты, тот же dnf, те же firewalld и SELinux. Если вы уже настраивали Debian или Ubuntu, порядок шагов тот же, отличаются инструменты. Здесь — первые десять минут на свежем сервере с Rocky 9.
Каждую команду ниже мы выполнили на нашем образе Rocky Linux 9 перед публикацией. На чистом сервере вся последовательность занимает пару минут.
1. Обновите систему
Войдите как root с паролем из кабинета и обновитесь:
dnf -y upgrade
На нашем образе обновление в тесте заняло секунды: образ уже был свежим.
2. Создайте пользователя с sudo и добавьте SSH-ключ
В Rocky группа администраторов называется wheel, а не sudo:
useradd -m -G wheel deploy
passwd deploy # sudo will ask for this password
Положите на сервер свой публичный ключ (как его создать). Если вы скопировали его в /root/key.pub:
install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/key.pub /home/deploy/.ssh/authorized_keys
restorecon -R /home/deploy/.ssh
restorecon выставляет метки SELinux, которых ждёт sshd. С неправильной меткой вход по ключу не работает, и понятной ошибки вы не увидите.
Откройте второй терминал и проверьте, что ssh deploy@YOUR.SERVER.IP работает, а sudo -v принимает пароль. Не закрывайте сессию root, пока это не так.
3. Запретите вход root и вход по паролю
Здесь Rocky отличается от учебной правки sshd_config. Настройки лежат в отдельных файлах в /etc/ssh/sshd_config.d/, и sshd берёт первое найденное значение. На нашем образе первый файл — 00-eqvps.conf: он разрешает вход root и по паролю, чтобы вы могли войти в первый день. Меняйте настройку там:
sed -i -e 's/^PermitRootLogin .*/PermitRootLogin no/' \
-e 's/^PasswordAuthentication .*/PasswordAuthentication no/' \
/etc/ssh/sshd_config.d/00-eqvps.conf
sshd -t && systemctl reload sshd
sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
Последняя команда показывает, что sshd будет применять на самом деле. Нужно увидеть:
permitrootlogin no
passwordauthentication no
После этого ssh root@… отклоняется даже с ключом, а deploy входит только по ключу.
4. Файрвол: firewalld
В облачном образе firewalld нет. Установите его, запустите и оставьте только нужное:
dnf -y install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --reload
firewall-cmd --list-services
Зона по умолчанию открывает cockpit (порт 9090) и dhcpv6-client. Cockpit не установлен, но держать его порт открытым незачем. Когда добавите приложение, откройте его порт так же, например firewall-cmd --permanent --add-service=https.
5. Автоматические обновления безопасности
dnf-automatic скачивает обновления по таймеру. По умолчанию он их не устанавливает, поэтому включите установку:
dnf -y install dnf-automatic
sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer
Если нужны только исправления безопасности, в том же файле задайте ещё upgrade_type = security.
6. Не выключайте SELinux
На свежем сервере getenforce выводит Enforcing, и всё описанное выше с ним работает. Когда приложению нужен нестандартный порт или каталог, решение — метка (semanage port, restorecon), а не setenforce 0.
Какой тариф
Rocky 9 в простое занимает около 400 МБ памяти. Тарифа Nano (1 ГБ, $3/мес) хватит для одного небольшого сервиса; Micro (2 ГБ, $5/мес) оставляет место для базы данных. На тарифах с NAT SSH доступен через персональный порт из кабинета. Если нужны открытые для всех порты 80/443, берите тариф с собственным IPv4, например Micro-IP за $10/мес.
Rocky Linux 9 есть на странице ОС семейства RHEL и на всех тарифах в разделе VPS. Оплата в USDT, USDC или ETH в сетях Base, Ethereum или Polygon, без документов и карты. Если удобнее управлять сервером из скриптов, заказ, переустановка и продление описаны в документации API.
Комментарии
Пока нет комментариев. Будьте первым.