← К вики

Первые шаги на AlmaLinux 9

Базовая настройка AlmaLinux 9 после первого подключения к VPS.

Время: 10 мин · Сложность: ★☆☆☆☆

Подходит: ✓ AlmaLinux 9


Краткое описание

AlmaLinux 9 — бинарно совместимый клон RHEL 9. Он использует dnf вместо apt, firewalld вместо UFW и группу wheel вместо sudo для привилегированных пользователей. SELinux включён по умолчанию.

Когда пригодится

  • Вы только что создали VPS с AlmaLinux 9
  • Вы пришли с Ubuntu/Debian и хотите разобраться в отличиях
  • Вы хотите использовать RHEL-совместимый дистрибутив

Что понадобится

  • SSH-доступ к серверу под root
  • 10 минут

Пошаговая инструкция

1. Обновите пакеты

dnf update -y

В AlmaLinux пакетный менеджер — dnf. После обновления перезагрузитесь, если обновилось ядро:

reboot

2. Создайте пользователя

adduser username
passwd username

В AlmaLinux для привилегированного доступа используется группа wheel, а не sudo:

usermod -aG wheel username

3. Установите базовые инструменты

dnf install -y curl wget git htop

4. Настройте файрвол

AlmaLinux использует firewalld — он уже установлен и включён по умолчанию.

systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

Проверьте, что SSH открыт:

firewall-cmd --list-services
# dhcpv6-client ssh

5. SELinux

SELinux включён в enforcing-режиме по умолчанию. Это дополнительный уровень защиты — не отключайте его без весомой причины.

Проверьте текущий режим:

getenforce
# Enforcing

Если какое-то приложение не работает из-за SELinux, посмотрите журнал блокировок:

ausearch -m avc -ts recent

Утилита audit2allow поможет сгенерировать правило для разрешения нужного действия:

dnf install -y policycoreutils-python-utils
ausearch -m avc -ts recent | audit2allow -m mypolicy

6. Установите Fail2Ban

dnf install -y epel-release
dnf install -y fail2ban
systemctl enable --now fail2ban

Fail2Ban требует репозиторий EPEL — он подключается первой командой.

Проверка результата

systemctl status firewalld
firewall-cmd --list-all

Пример вывода:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  ...
id username

Пример вывода:

uid=1001(username) gid=1001(username) groups=1001(username),10(wheel)

Группа 10(wheel) подтверждает права sudo.

getenforce
# Enforcing

Возможные ошибки

sudo не работает для нового пользователя

Убедитесь, что пользователь добавлен в группу wheel (не sudo):

usermod -aG wheel username

После этого перелогиньтесь.

Приложение не запускается из-за SELinux

Проверьте журнал:

ausearch -m avc -ts recent

Временно переключите SELinux в permissive, чтобы убедиться, что проблема именно в нём:

setenforce 0

После диагностики верните enforcing:

setenforce 1

firewall-cmd не найдена

dnf install -y firewalld
systemctl enable --now firewalld

FAQ

В чём отличие wheel от sudo?

В RHEL-совместимых дистрибутивах привилегированный доступ традиционно выдаётся через группу wheel. Команда sudo при этом работает так же — просто смотрит на членство в wheel, а не sudo.

Можно ли заменить firewalld на UFW?

Технически можно, но это нестандартно для AlmaLinux и усложняет сопровождение. Лучше освоить firewall-cmd — синтаксис несложный.

Как открыть порт 80?

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

Полезные ссылки

Следующие статьи

Сейчас работают только те cookie, без которых сайт не откроется. Разрешите ещё аналитические — будем видеть, где интерфейс мешает, и чинить это.