Rocky Linux. Установка сервера
Установка базисного сервера на Rocky Linux.
Содержание
1 Общая информация
- Rocky Linux — сборка RedHat Linux, пришедший на смену Centos (см. Замена Centos).
- Сайт: https://rockylinux.org/.
- Образы:
1.1 Дополнительные стандартные репозитории
Repository | Rocky 8 | Rocky 9 | Включён | Примечание |
---|---|---|---|---|
Extras | Yes | Yes | Yes | Дополнительные функции, не нарушающие совместимость исходного кода |
Plus | Yes | Yes | No | Либо заменяет стандартный компонент, либо под одну архитектуру |
RT (real time) | Yes | Yes | No | Пакеты для |
NFV | Yes | TBD | No | |
SAP / SAP HANA | No | TBD | No | |
Devel / devel | Yes | Yes | No |
1.2 Репозитории сообщества
- Дополнительные пакеты для Enterprise Linux (EPEL):
- документация: http://fedoraproject.org/wiki/EPEL;
- наиболее часто используемй репозиторий;
- сборки пакетов Fedora для каждого поддерживаемого корпоративного Linux;
- пакеты не заменяют базовые;
- установка:
- Репозиторий Community Enterprise Linux (ELRepo):
- фокусируется на более новых ядрах и пакетах драйверов kmod для улучшения поддержки оборудования;
- репозитории ядра должны быть включены для его использования;
- установка:
1dnf install elrepo-release
- RPM Fusion:
- программное обеспечение, которое Fedora Project или Red Hat не хотят поставлять в Enterprise Linux и Fedora;
- базовые пакеты не заменяются;
- установка:
1dnf install rpmfusion-free-release
- Репозиторий Remi:
- сайт: http://rpms.remirepo.net/;
- поддерживает большую коллекцию RPM, включая, среди прочего, последние версии PHP;
- это коллекция репозиториев;
- документация: http://blog.remirepo.net/pages/English-FAQ;
- может конфликтовать с другими сторонними репозиториями.
- GhettoForge:
- документация: http://ghettoforge.org/index.php/Usage;
- пакеты, которых нет в других сторонних репозиториях;
- пакеты, перезаписывающие базу, будут в репозитории
gf-plus
.
2 Установка образа
3 После установки
- Здесь даны общие шаги для большей части серверов.
3.1 Обновления
- Обновить все пакеты
1dnf -y update
3.2 Установка локализации
- Проверьте текущую локализацию:
1localectl status
- Посмотрите доступные локализации:
1localectl list-locales
- Если нет необходимой, установите её:
1dnf -y install glibc-langpack-ru
- Установите нужную локализацию:
1localectl set-locale ru_RU.UTF-8
- Проверьте текущую локализацию:
1localectl status
3.3 Дополнительные репозитории
- Установим EPEL:
3.4 Установка часового пояса
- Просмотрите список всех часовых поясов:
1timedatectl list-timezones
- Установите часовой пояс (например, UTC):
1timedatectl set-timezone Etc/UTC
3.5 Синхронизация времени
- Запустите демон:
1systemctl enable --now chronyd
- Проверьте работу демона
chronyd
:1chronyc -a tracking
- Включите сетевую синхронизацию времени:
1timedatectl set-ntp true
- Проверьте, работает ли он:
1timedatectl status
3.6 Разрешение имён
3.6.1 systemd-resolved
- Можно установить кеширующий локальный name-server
systemd-resolved
:1dnf -y install systemd-resolved
- Файл настройки:
/etc/systemd/resolved.conf
. - Можно в нём ничего не менять.
- Запустим службу:
1systemctl enable --now systemd-resolved.service
- Установите резольвер:
1ln -snf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
- Проверить работу можно командой:
1resolvectl
3.7 Повышение комфорта работы
- Программы для удобства работы в консоли:
1dnf -y install tmux perl-DateTime-HiRes mc kitty-terminfo
- Программы мониторинга:
1dnf -y install htop lsof
- Утилита для ssh:
1dnf -y install mosh
- Удобство работы с bash:
1dnf -y install bash-completion bash-color-prompt
- Разные утилиты:
1dnf -y install wget git tar zstd p7zip
3.8 Отключение графического интерфейса
- Посмотрите, в каком режиме загружается сервер:
1systemctl get-default
- Если результатом является
graphical.target
, то отключите загрузку графического интерфейса. - Переключите на загрузку в терминальном многопользовательском режиме:
1systemctl set-default multi-user.target
3.9 Безопасность
3.9.1 Fail2ban
Защита от атак:
1dnf -y install fail2ban
Следует сконфигурировать (см. fail2ban. Основные настройки) и запустить:
1systemctl enable --now fail2ban.service
Проверьте работу:
1tail -f /var/log/fail2ban.log
3.10 Администрирование
3.10.1 Автоматическое обновление
- При необходимости можно использовать автоматическое обновление (см. Автообновление систем на базе деривативов RedHat).
- Установка программного обеспечения:
1dnf -y install dnf-automatic
- Задаёте необходимую конфигурацию в файле
/etc/dnf/automatic.conf
. - Запустите таймер:
1systemctl enable --now dnf-automatic.timer
4 Установка дополнительного программного обеспечения
- Описываются дополнительные пакеты для специализированных серверов.
4.1 Утилиты
4.1.1 rsync
- Установим rsync:
1dnf install rsync
4.2 Безопасность
4.2.1 Работа с Let’s Encrypt
- Установим certbot:
1dnf install certbot
- Установим модуль под Apache:
1dnf install python3-certbot-apache
- Если используется Nginx, установим модуль под Nginx:
1install certbot python3-certbot-nginx
4.3 Синхронизация времени
4.3.1 systemd-timesyncd
- Можно использовать альтернативный метод синхронизации времени из пакета systemd.
- Установите демон синхронизации:
1dnf install systemd-timesyncd
- Запустите демон:
1systemctl enable --now systemd-timesyncd
- Включите сетевую синхронизацию времени:
1timedatectl set-ntp true
- Проверьте, работает ли он:
1timedatectl status
- Подробная информация:
1timedatectl timesync-status
4.3.2 Сервер сетевого времени
В файле
/etc/chrony.conf
Разрешите подключение клиентов из локальной сети:1allow 192.168.0.0/16
Запустите сервер сетевого времени:
1systemctl enable --now chronyd
Проверьте пулы NTP:
1chronyc sources
Проверьте состояние синхронизации NTP:
1chronyc tracking
Чтобы принимать входящие запросы клиентов, разрешите службу NTP через брандмауэр:
1firewall-cmd --permanent --add-service=ntp
Перезапустите брандмауэр:
1firewall-cmd --reload
4.4 Вариации на тему стека LAMP (Linux, Apache, MySQL, PHP)
- Устанавливается, если необходимо поддерживать приложение на PHP.
- Обычно используются базы данных Mysql или Postgresql.
4.4.1 Apache
4.4.2 PHP
- Определим, какие версии php возможно установить:
1sudo dnf module list php
- Установим php-8.2:
4.4.3 Mysql
- Установим mariadb:
- Установим модуль для php:
1dnf install php-mysqlnd
4.5 Администрирование
4.5.1 Резервное копирование
- Для резервного копирования используется restic:
1dnf install restic
4.6 Файловые системы
4.6.1 GlusterFS
- Установите пакет для последнего релиза GlusterFS (см. https://wiki.centos.org/SpecialInterestGroup/Storage):
1dnf install centos-release-gluster
- Установка клиента GlusterFS:
4.7 DNS сервера
4.8 Контроль версий
4.8.1 git
- Установите
git
:1dnf -y install git
4.8.2 cvs
- Установите
cvs
:1dnf -y install cvs
4.9 Средства разработки
- Установим группу средств разработки:
1dnf -y group install "Development Tools"