Что нового
Рассмотрим основные изменения, которые влияют на процесс настройки операционной системы и работы с ней.
1. Установка пакетов
Пакетный менеджер.
Пакетный менеджер YUM заменен на DNF. Последний потребляем меньше ресурсов и работает быстрее. Синтаксис установки пакетов, во многом, остается таким же, например:
dnf install bind
Однако, команда yum install bind также отработает — yum является алиасом для dnf, поэтому привычный формат установка пакетов и обновлений сохранен.
Репозитории.
Для установки и обновления пакетов используются базовый репозиторий и BaseOS и модульный AppStream. Базовый содержит минимально необходимый для работы набор пакетов, AppStream — все остальное. Более того, AppStream может использоваться в двух форматах — классическом RPM и модульном.
Модульный репозиторий содержит наборы с альтернативными версиями пакетов — таким образом можно установить программное обеспечение либо основной версии (которая по умолчанию поддерживается релизом CentOS), либо альтернативную (она тоже официально поддерживается операционной системой). Набор пакетов в модульном репозитории представляет из себя логическую единицу для установки приложения — само приложение, набор библиотек и инструментов для его работы. Все наборы тестируются перед размещением в репозиторий.
2. Сетевые настройки
Управление сетью.
Для управления сетью используется только NetworkManager. Скрипты ifup и ifdown объявлены как устаревшие. Для перезапуска сети теперь используется команда:
systemctl restart NetworkManager
* раньше это можно было сделать командой systemctl restart network.
Брандмауэр.
Пакетный фильтр nftables пришел на смену старому доброму iptables. firewalld переведён на использование nftables. Также появились утилиты iptables-translate и ip6tables-translate для конвертации старых правил под iptables.
TCP/IP.
TCP стек обновлен до версии 4.16. Разработчики отмечают увеличение скорости при обработке входящих соединений.
3. Установка
Инсталлятор.
Добавлена возможность установки системы на накопители NVDIMM. Инструмент Image Builder позволяет пользователям создавать настраиваемые системные образы в различных форматах, включая изображения, подготовленные для развертывания в облаках различных поставщиков.
4. Безопасность
Политики настройки криптографических подсистем.
Пакет OpenSSL обновлен до версии 1.1.1 с поддержкой TLS 1.3. Это позволит не пересобирать некоторые пакеты (например nginx для включения http/2).
Также с помощью команды update-crypto-policies можно выбрать один из режимов выбора криптоалгоритмов.
PKCS#11.
Включена поддержка смарткарт и HSM c токенами PKCS#11;
5. Виртуальзация
QEMU.
QEMU обновлен до версии 2.12. Виртуальные машины создаются с поддержкой PCI Express и с эмуляцией чипсета ICH9. Реализован режим sandbox-изоляции для ограничения системных вызовов.
Утилита virt-manager является устаревшей и вместо нее рекомендуется использовать веб-интерфейс Cockpit.
6. Веб-разработка
Языки программирования.
По умолчанию из репозитория теперь устанавливаются:
- php7.2 вместо php5.4
- Python 3.6 вместо 2.7
- Ruby 2.5
- Perl 5.26
- SWIG 3.0
Базы данных.
Также из коробки будут устанавливаться:
- MariaDB 10.3
- MySQL 8.0
- PostgreSQL 10 или PostgreSQL 9.6
- Redis 5
Веб-серверы.
Версии устанавливаемых по умолчанию пакетов — Apache 2.4 и nginx 1.14.
7. Графический интерфейс
Desktop.
По умолчанию устанавливается графический интерфейс GNOME версии 3.28. В качестве протокола организации графического сервера используется Wayland. По сравнению с Xorg, Wayland задействует меньше программных и аппаратных ресурсов и считается, что работает быстрее. Однако, использование Xorg в CentOS 8 также возможно.
Пакеты KDE удалены из состава дистрибутива.
Cockpit.
Cockpit — веб-интерфейс для управления CentOS. Он может оказаться полезным новичкам. Для его запуска нужно выполнить несколько несложных команд.
Установка:
dnf install cockpit
Настройка брандмауэра:
firewall-cmd —permanent —add-port=9090/tcp
firewall-cmd —reload
Запуск:
systemctl enable —now cockpit.socket
systemctl start cockpit
Можно заходить на интерфейс по адресу https://<IP-адрес компьютера>:9090/. В качестве логина используем системную учетную запись, например, root.
Весь список изменений можно найти на сайте Red Hat.
Настраиваем время
Узнать, какое время настроено на сервере centos можно с помощью команды date:
Чтобы сменить часовой пояс, можете воспользоваться специальной утилитой, которая входит в состав systemd.
По факту, эта утилита меняет символьную ссылку. Рассказываю, чтобы вы понимали, как реально меняется часовой пояс.
Если вы вручную замените символьную ссылку на другую, точно так же поменяете часовой пояс системы.
Теперь проверим статус службы по обновлению времени через интернет. Для этого можно использовать указанную выше команду timedatectl без параметров.
В CentOS есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, как и у меня, что видно по скриншоту, то устанровим и настроим вручную:
Запускаем chrony и добавляем в автозагрузку:
Проверяем, нормально ли запустился:
Все в порядке, сервис настроен и работает. После запуска он автоматически синхронизирует время. Теперь наши часы будут автоматически синхронизироваться с сервером времени в интернете.
3: Создание центра сертификации
Прежде чем вы сможете создать закрытый ключ и сертификат ЦС, вам нужно создать файл по имени vars и заполнить его некоторыми значениями по умолчанию. Перейдите в каталог easy-rsa, затем создайте и отредактируете файл vars с помощью текстового редактора.
Текстовым редактором по умолчанию для системы CentOS 8 является vi. Это очень мощный, но не самый простой в обращении редактор. Если хотите, можете установить nano, он проще. Для этого введите команду:
Чтобы подтвердить установку, нажмите у. теперь вы можете отредактировать файл vars.
Вставьте в файл такие строки и отредактируйте все значения, чтобы задать информацию о вашей организации
Здесь важно убедиться, что вы не оставили пустых значений:. Когда вы закончите, сохраните и закройте файл
В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС
Когда вы закончите, сохраните и закройте файл. В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС.
Чтобы создать пару открытого и закрытого ключей для вашего центра сертификации, снова введите команду ./easy-rsa, но на этот раз с параметром build-ca:
В выводе вы увидите несколько строк о версии OpenSSL. Также вам будет предложено ввести парольную фразу для вашей пары ключей. Обязательно выберите сложную фразу и сохраните ее в безопасном месте (или запомните). Эту фразу вам нужно ввести, чтобы получить доступ к своему ЦС (например, для подписи или отзыва сертификата).
Также вам будет предложено подтвердить Common Name (CN) для вашего ЦС. Common Name – это имя, используемое для обозначения этого компьютера в контексте центра сертификации. Вы можете ввести любую строку символов, но проще всего принять имя по умолчанию, нажав Enter.
Примечание: Если вы не хотите, чтобы при каждом взаимодействии с вашим ЦС запрашивался пароль, вы можете запустить команду build-ca с параметром nopass:
Теперь у вас есть два важных файла – ~/easy-rsa/pki/ca.crt и ~/easy-rsa/pki/private/ca.key – открытый и закрытый компонент центра сертификации.
- ca.crt – открытый файл сертификата ЦС. Пользователи, серверы и клиенты будут использовать его для проверки того, что они являются частью одной сети доверия. Каждый пользователь и сервер, который обращается к вашему ЦС, должен иметь копию этого файла. Все стороны будут полагаться на открытый сертификат, чтобы посторонние не могли выдавать себя за вашу систему (это предотвратит атаки посредника).
- ca.key – это закрытый ключ, который ЦС использует для подписи сертификатов серверов и клиентов. Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему файлу ca.key, вам нужно будет уничтожить ваш ЦС. И поэтому ваш файл ca.key должен находиться только на вашем компьютере ЦС (в идеале компьютер ЦС должен оставаться в оффлайн, если вы не подписываете запросы на сертификат в качестве дополнительной меры безопасности).
После этого ваш центр сертификации будет готов. Его можно использовать для подписи запросов и для отзыва сертификатов.
Отключить SELinux
Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:
меняем значение
Чтобы изменения вступили в силу, можно перезагрузиться:
А если хотите без перезагрузки применить отключение SELinux, то выполните команду:
Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы — комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.
Поиск
Просто найти
find /usr/share/doc -name ‘*.pdf’
Найти и сразу скопировать в текущую директорию
find /usr/share/doc -name ‘*.pdf’ -exec cp {} . \;
Найти в текущей директории
find -name ‘*.pdf’
Удалить из текущей директории
find -name ‘*.pdf’ -delete
Найти все ссылки
find /etc -type l
Найти все ссылки только на верхнем уровне вложенности
find /etc -maxdepth 1 -type l
df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1014M 194M 821M 20% /boot
Найти обычные файлы определённого размера
find /boot -size +20000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
/boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
/boot/initramfs-3.10.0-1160.el7.x86_64.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
find /boot -size +10000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
/boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
/boot/initramfs-3.10.0-1160.el7.x86_64.img
/boot/initramfs-3.10.0-1160.el7.x86_64kdump.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
/boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
То же самое плюс показать размер файлов
find /boot -size +10000k -type f -exec du -h {} \;
find: ‘/boot/efi/EFI/centos’: Permission denied
find: ‘/boot/grub2’: Permission denied
60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img
21M /boot/initramfs-3.10.0-1160.el7.x86_64.img
13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img
21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
Установка iftop, atop, htop, lsof на CentOS
И напоследок в завершении настройки добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.
iftop показывает в режиме реального времени загрузку сетевого интерфейса, может запускаться с различными ключами, не буду останавливаться на этом подробно, в интернете есть информация на эту тему. Ставим:
И два интересных диспетчера задач, я чаще всего пользуюсь htop, но иногда пригодится и atop. Ставим оба, сами посмотрите, разберетесь, что вам больше нравится, подходит:
Вот как выглядит htop:
Для вывода информации о том, какие файлы используются теми или иными процессами, советую поставить утилиту lsof. Она скорее всего рано или поздно пригодится, когда будете диагностировать работу сервера.
Рекомендую еще установить несколько нужных и полезных программ, которые часто необходимы, но отсутствуют в минимальной установке — wget, bzip2, traceroute, gdisk.
На этом у меня все. Базовая настройка CentOS закончена, можно приступать к установке и настройке основного функционала.
Как проверить версию CentOS
Прежде чем мы увидим методы проверки версии CentOS, давайте сначала рассмотрим номер версии и то, что означает это число.
Версия CentOS состоит из трех частей, это лучше всего понять на примере. Рассмотрим версию:
7.14.1234
- 7 – разрядный выпуск: это самый важный номер версии, поскольку пакеты программного обеспечения, разработанные для одной версии, могут не поддерживаться в других версиях. Это связано с тем, что в новых версиях будут исправлены некоторые ошибки, которые не входят в новые версии, а также будут иметь новые функции, новые пакеты и новые перехватчики в систему. Таким образом, возникнет проблема при запуске программного обеспечения, предназначенного для других версий, и, следовательно, может испортить систему
- 14 – младший релиз: менее важен, имеет решающее значение для поддержания основных обновлений безопасности и нескольких новых функций.
- 1234 – версия сборки: Это версия для распространения программного обеспечения с незначительными обновлениями безопасности и исправлениями ошибок. Это не сильно влияет на версии программного обеспечения, запущенные в системе.
Метод 1: Использование hostnamectl
Команда hostnamectl может использоваться для запроса и установки имени хоста для системы. А также показывает номер версии ОС, запущенной в системе. Эта команда отображает только номер основной версии.
Способ 2: Использование диспетчера пакетов rpm
Поскольку сама OS рассматривается как пакет для большинства менеджеров пакетов, можно запросить диспетчер пакетов (rpm в этом случае), чтобы найти версию ОС.
где:
- rpm – менеджер пакетов
- -q или – -query – это опция для запросов
- centos-release – это пакет, который мы хотим запросить
Примечание
Если вам нужно проверить любое другое программное обеспечение, замените centos-release на <packagename>.
Способ 3: см. Файлы /etc/*release
Каждая ОС Linux содержит важные и конфигурационные данные о себе и пакетах в каталоге /etc/. И то же, что и в CentOS.
Если вы укажете , будут перечислены следующие файлы.
- centos-release
- os-release
- redhat-release
- system-release
По наименованию файлов можно угадать, они содержат информацию о выпуске системы. Вы можете вручную открывать файлы с помощью любого текстового редактора и проверять файлы для информации о версии или использовать команду cat для просмотра содержимого файлов.
Способ 4: Использование инструмента lsb_release
Команда lsb release отображает важную информацию и информацию о распространении lsb ( linux standard base). Но этот инструмент доступен внутри пакета redhat-lsb. Установите пакет в своей системе, используя следующую команду, чтобы продолжить (если вы еще этого не сделали).
После установки пакета выполните следующую команду:
где:
-d – возможность отображения описания ОС
Поздравляем! Вы дошли до конца. К настоящему времени вы знаете различные способы, с помощью которых можно найти номер версии CentOS.
Надеюсь, вы нашли эту статью полезной. Если у вас есть какие-либо предложения или комментарии, не стесняйтесь предложить их ниже.
Указываем сетевые параметры
Продолжаем базовую настройку centos после установки. Теперь произведем настройку сети, если по какой-то причине не сделали это во время установки, либо если вам надо их изменить. В общем случае, сеть в Centos настраивается с помощью NetworkManager и его консольной утилиты nmtui. Она идет в базовой устновке системы. Там простой и понятный графический интерфейс, так что рассказывать нечего. Я больше привык настраивать сеть через конфигурационные файлы network-scripts. В centos 7-й версии они есть из коробки, в 8-й версии их убрали. Чтобы воспользоваться ими для настройки сети, надо отдельно установить пакет network-scripts.
Теперь можно выполнить настройку сети. Для этого открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0
Если вы получаете сетевые настройки по dhcp, то минимальный набор настроек в конфигурационном файле будет такой.
Для настройки статического ip адреса настройки будут следующие.
В поле IPADDR вводим свой адрес, в PREFIX маску сети, в GATEWAY шлюз, DNS адрес днс сервера. Сохраняем файл и перезапускаем сеть для применения настроек:
Пользователи и группы
ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.
Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы — целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Среди пользователей системы выделяется один пользователь — системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.
Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).
Основные команды для работы с пользователями и группами (часть команд указанных ниже будет требовать sudo для выполнения):
В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.
# System config network tui в CentOS 7
Так же для управления сетевыми интерфейсами и настройками в CentOS можно воспользоваться графической утилитой nmtui. Это сделать очень просто. Достаточно запустить ее в консоли:
Допустим, мы хотим изменить IP адрес через графический интерфейс, выбираем «Изменить соединение»
Выбираем сетевое подключение, в моем случае оно одно, и нажимаем «Изменить …»
Меняем настройки, которые вы хотите изменить и нажимаем «ОК«.
Вот так просто через графический интерфейс можно настраивать сеть. Если по какой то причине у вас не установлен данный пакет, то установить его можно следующей командой:
Менеджер пакетов YUM
Менеджер пакетов YUM — высокоуровневое решение по управлению RPM-пакетами. Основные преимущества YUM:
— хранение пакетов в централизованных репозиториях с определяющими зависимости метаданными. Если для установки одного пакета нужно докачать пакеты из других репозиториев — YUM будет об этом знать заранее
— автоматически разрешаются взаимосвязи между пакетами как при установке (докачать нужное) так и при удалении (удалить ставшее ненужным)
— возможность обновить одной командой все пакеты в системе
Для CentOS это актуальный вопрос. Тут немного изменили параметры настройки. А кто то их и вовсе не знал. Сегодня будем разбирать, как провести первоначальную настройку сети из командной строки.
В данной статье разберем, как настроить или изменить уже имеющиеся настройки локальной сети на CentOS 7.
Вообще первоначальная настройка сети производилась, когда осуществлялась установка CentOS 7, но если ставили не вы или вам надо что то изменить, то данная статья точно для вас!
Шаг 3. Установка гостевых дополнений VirtualBox в CentOS 8
Есть два способа установить гостевые дополнения, и здесь мы рассмотрим оба способа:
Графическая установка гостевых дополнений VirtualBox
Чтобы установить гостевые дополнения, перейдите в меню VirtualBox и нажмите «Устройства» → «Подключить образ диска Дополнений гостевой ОС…»:
Появится всплывающее окно, как показано на скриншоте. Отсюда вы можете выбрать два варианта:
Вы можете нажать «Запустить» и затем ввести пароль своего пользователя для выполнения программы с повышенными привилегиями. После этого начнётся сборка модулей. Информация о сборке будет выводиться в терминал
Обратите внимание на выводимую информацию, чтобы убедиться, что сборка не завершилась ошибкой. К примеру, на следующем скриншоте сборка гостевых модулей завершилась ошибкой (из-за отсутствия пакета autoconf):
После окончания установки, перезагрузите систему и проверьте работу функций, которые включают гостевые дополнения VirtualBox.
Установка гостевых дополнений VirtualBox вручную
Второй вариант — установить в командной строке. Для этого выберите опцию «Отмена», а затем откройте терминал и создайте точку монтирования для ISO-образа гостевых дополнений.
sudo mkdir -p /mnt/cdrom
Затем смонтируйте образ ISO в точке монтирования.
sudo mount /dev/cdrom /mnt/cdrom
Затем, наконец, перейдите к месту монтирования и запустите скрипт установщика VirtualBox.
cd /mnt/cdrom sudo ./VBoxLinuxAdditions.run
Как только скрипт будет запущен, вы сразу увидите, как экран разворачивается в полный размер. Если в вашем случае этого не произошло, перезагрузите систему и, наконец, загрузитесь в полноэкранную виртуальную машину CentOS 8
В меню VirtualBox включите «Общий буфер обмена» и другие функции, которые вам нужны:
Например «Общий буфер обмена» → «Двунаправленный» позволяет копировать и вставлять текст между хост-системой и гостевой системой.
Мы надеемся, что эта статья оказалась для вас полезной.
Общие сведения об именах хостов
Имя хоста — это метка, которая идентифицирует устройство в сети. У вас не должно быть двух или более машин с одинаковым именем хоста в одной сети.
Есть три класса : , и .
- — Традиционное имя хоста. Он хранится в файле и может быть установлен пользователем.
- — Имя хоста UTF8 в свободной форме, используемое для представления пользователю. Например, .
- — Динамическое имя хоста, поддерживаемое ядром. Серверы DHCP или mDNS могут изменять временное имя хоста во время выполнения. По умолчанию это то же самое, что и имя хоста.
Рекомендуется использовать полностью квалифицированное имя домена ( ) для обоих и имена , такие как .
Перенаправление ввода/вывода
Процесс взаимодействия с пользователем выполняется в терминах записи и чтения в файл. Вывод на экран представляется как запись в файл, а ввод — как чтение файла. Файл, из которого осуществляется чтение, называется стандартным потоком ввода, а в который осуществляется запись — стандартным потоком вывода. Существует еще и стандартный поток ошибок, на который выводятся все сообщения об ошибках и те информативные сообщения о ходе работы программы, которые не могут быть выведены в стандартный поток вывода.
Можно организовать конвейер (pipe) выполняемых команд.
В примере выше вывод команды cat, т. е. текст из файла myfile, будет направлен на вход команды grep, которая выделит только строки, содержащие слово «Linux». Вывод команды grep будет, в свою очередь, направлен на вход команды wc -l, которая подсчитает число таких строк. Статус выхода из канала совпадает со статусом выхода, возвращаемым последней командой.
Заключение
Мы выполнили некоторые начальные шаги по настройке сервера CentOS, которые я обычно делаю при подготовке сервера сразу после установки. Я не претендую на абсолютную истину, возможно что-то упускаю или делаю не совсем верно. Буду рад разумным и осмысленным комментариям и замечаниям с предложениями.
Полезно после базовой настройки сразу же подключить сервер к системе мониторинга. Либо настроить ее, если у вас еще нет. У меня есть подробный цикл статей по настройке мониторинга:
- Пример настройки сервера мониторинга zabbix, либо только подключение centos к мониторингу путем установки на него агента.
- В отдельной рубрике zabbix есть много примеров для мониторинга различных полезных метрик.