Первые шаги на 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