Полное руководство по CentOS
Исчерпывающее руководство по установке, настройке и администрированию CentOS
Введение в CentOS
CentOS (Community ENTerprise Operating System) — это дистрибутив Linux, основанный на исходных кодах Red Hat Enterprise Linux (RHEL). Он разрабатывается сообществом и полностью совместим с RHEL, что делает его популярным выбором для серверов и рабочих станций.
История CentOS
CentOS был впервые выпущен в 2004 году как форк RHEL. В 2014 году Red Hat объявила о спонсорстве проекта CentOS, что привело к более тесной интеграции между двумя проектами. В 2020 году Red Hat объявила о смене стратегии развития CentOS, прекратив поддержку CentOS Linux в пользу CentOS Stream.
Особенности CentOS
- Стабильность: Использует проверенные и надежные пакеты
- Долгосрочная поддержка: Каждая версия поддерживается в течение 10 лет
- Совместимость: Полная бинарная совместимость с RHEL
- Безопасность: Регулярные обновления безопасности
- Бесплатность: Полностью свободный дистрибутив
Версии CentOS
CentOS имеет несколько ветвей разработки и выпусков:
Версия | Статус | Дата выпуска | Поддержка до |
---|---|---|---|
CentOS 7 | Поддерживается | 7 июля 2014 | 30 июня 2024 |
CentOS 8 | Прекращена (31.12.2021) | 24 сентября 2019 | 31 декабря 2021 |
CentOS Stream 8 | Поддерживается | 24 сентября 2019 | 31 мая 2024 |
CentOS Stream 9 | Поддерживается | 3 декабря 2021 | 31 мая 2027 |
Примечание: CentOS Stream — это rolling-release дистрибутив, который находится между Fedora и RHEL в процессе разработки Red Hat.
Установка CentOS
Процесс установки CentOS прост и интуитивно понятен. Рассмотрим основные шаги установки CentOS 7/8.
Требования к системе
Компонент | Минимальные требования | Рекомендуемые требования |
---|---|---|
Процессор | 1 ГГц | 2 ГГц или выше (64-бит) |
Оперативная память | 1 ГБ | 4 ГБ или больше |
Жесткий диск | 20 ГБ | 40 ГБ или больше |
Создание загрузочного носителя
Для установки CentOS необходимо создать загрузочный USB-накопитель или DVD:
- Скачайте ISO-образ с официального сайта centos.org/download
- Запишите образ на USB-накопитель с помощью утилиты:
- В Windows: Rufus, Win32 Disk Imager
- В Linux: dd, Etcher
Процесс установки
После загрузки с установочного носителя:
- Выберите “Install CentOS” в меню загрузки
- Выберите язык интерфейса
- Настройте дату и время
- Настройте раскладку клавиатуры
- Настройте разделы диска (можно использовать автоматическое разбиение)
- Настройте сеть и имя хоста
- Установите root-пароль и создайте пользователя
- Начните установку
- После завершения перезагрузите систему
$ cat /etc/centos-release
CentOS Linux release 8.4.2105
Основные команды CentOS
CentOS использует стандартные команды Linux, но имеет некоторые особенности в управлении пакетами и сервисами.
Управление пакетами
В CentOS 7 и 8 используется менеджер пакетов yum (в CentOS 8 также доступен dnf):
# Обновить список пакетов sudo yum update # Установить пакет sudo yum install package_name # Удалить пакет sudo yum remove package_name # Поиск пакета sudo yum search keyword # Показать информацию о пакете sudo yum info package_name # Установить группу пакетов sudo yum groupinstall "Development Tools"
Управление сервисами
В CentOS 7 и 8 используется systemd:
# Запустить сервис sudo systemctl start service_name # Остановить сервис sudo systemctl stop service_name # Перезапустить сервис sudo systemctl restart service_name # Проверить статус сервиса sudo systemctl status service_name # Включить автозагрузку сервиса sudo systemctl enable service_name # Отключить автозагрузку сервиса sudo systemctl disable service_name
Работа с сетью
# Показать сетевые интерфейсы ip addr show # Проверить сетевое соединение ping example.com # Показать таблицу маршрутизации ip route show # Управление сетевыми интерфейсами (CentOS 7) sudo systemctl restart network # Управление сетевыми интерфейсами (CentOS 8+) sudo nmcli connection reload
Администрирование CentOS
Рассмотрим основные аспекты администрирования сервера CentOS.
Управление пользователями
# Добавить пользователя sudo adduser username # Установить пароль пользователя sudo passwd username # Добавить пользователя в группу sudo usermod -aG groupname username # Удалить пользователя sudo userdel username # Показать информацию о пользователе id username # Показать список пользователей cat /etc/passwd
Управление дисками
# Показать информацию о дисках lsblk fdisk -l # Создать раздел sudo fdisk /dev/sdX # Форматировать раздел sudo mkfs.ext4 /dev/sdX1 # Монтировать раздел sudo mount /dev/sdX1 /mnt/mountpoint # Автоматическое монтирование при загрузке # Добавить в /etc/fstab: /dev/sdX1 /mnt/mountpoint ext4 defaults 0 0
Мониторинг системы
# Показать использование CPU top htop # Показать использование памяти free -h # Показать использование диска df -h # Показать процессы ps aux # Показать сетевую активность iftop nethogs
Безопасность в CentOS
CentOS предоставляет несколько инструментов для обеспечения безопасности системы.
SELinux
SELinux (Security-Enhanced Linux) — это механизм принудительного контроля доступа, включенный по умолчанию в CentOS.
# Показать статус SELinux sestatus # Временно отключить SELinux sudo setenforce 0 # Включить SELinux sudo setenforce 1 # Изменить режим SELinux (в файле /etc/selinux/config) SELINUX=enforcing | permissive | disabled
Firewall (firewalld)
CentOS использует firewalld для управления брандмауэром.
# Показать статус брандмауэра sudo firewall-cmd --state # Показать активные зоны sudo firewall-cmd --get-active-zones # Добавить порт sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # Удалить порт sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent # Перезагрузить брандмауэр sudo firewall-cmd --reload
Обновления безопасности
# Проверить доступные обновления sudo yum check-update # Установить обновления безопасности sudo yum update --security # Автоматические обновления (установить yum-cron) sudo yum install yum-cron sudo systemctl enable yum-cron sudo systemctl start yum-cron
Настройка сервисов в CentOS
Веб-сервер (Apache/Nginx)
# Установка Apache sudo yum install httpd sudo systemctl enable httpd sudo systemctl start httpd # Установка Nginx (из EPEL) sudo yum install epel-release sudo yum install nginx sudo systemctl enable nginx sudo systemctl start nginx
База данных (MariaDB/MySQL)
# Установка MariaDB sudo yum install mariadb-server sudo systemctl enable mariadb sudo systemctl start mariadb sudo mysql_secure_installation
PHP
# Установка PHP (CentOS 7) sudo yum install php php-mysql php-fpm # Установка PHP (CentOS 8) sudo dnf install php php-mysqlnd php-fpm
SSH сервер
# Установка SSH (обычно установлен по умолчанию) sudo yum install openssh-server sudo systemctl enable sshd sudo systemctl start sshd # Настройка SSH (файл /etc/ssh/sshd_config) Port 2222 PermitRootLogin no PasswordAuthentication no
Решение проблем
Просмотр логов
# Основной системный журнал sudo journalctl -xe # Логи загрузки sudo journalctl -b # Логи конкретного сервиса sudo journalctl -u service_name # Логи ядра dmesg # Аутентификация sudo tail -f /var/log/secure # Apache/Nginx sudo tail -f /var/log/httpd/error_log sudo tail -f /var/log/nginx/error.log
Восстановление пароля root
- Перезагрузите систему
- В меню загрузки нажмите ‘e’ для редактирования
- Найдите строку, начинающуюся с ‘linux16’
- Добавьте в конец строки ‘rd.break’
- Нажмите Ctrl+X для загрузки
- Выполните команды:
mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot
Миграция с CentOS Linux на CentOS Stream или альтернативы
После изменений в стратегии CentOS многие пользователи рассматривают варианты миграции.
Переход на CentOS Stream
# Для CentOS 8: sudo dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos sudo dnf distro-sync # Для CentOS 7 переход на Stream не рекомендуется
Альтернативы CentOS
- Rocky Linux: Форк RHEL, созданный одним из основателей CentOS
- AlmaLinux: Еще один форк RHEL, спонсируемый CloudLinux
- Oracle Linux: Бесплатный дистрибутив от Oracle с совместимостью RHEL
- Ubuntu Server: Популярный серверный дистрибутив от Canonical
- Debian: Стабильный и надежный дистрибутив