Введение
Напомню, что Rocky Linux это полностью бинарно совместимый дистрибутив с RHEL. Он собирается силами сообщества и Rocky Enterprise Software Foundation. Развитием системы занимается Gregory Kurtzer, автор Centos. Я отдаю предпочтение именно Rocky Linux, потому что организация вокруг него строится только для развития самой системы. Все остальные форки выпущены коммерческими организациями. Как известно, любая коммерческая организация нацелена на максимальное извлечение прибыли.
Сейчас у этих компаний всё хорошо с деньгами. Кто-то пытается увеличить свою известность за счет дистрибутива, так как ниша освободилась после новостей Red Hat. Нет гарантий, что в будущем, после того, как дистр наберет популярность его не начнут как-нибудь монетизировать. Другой сценарий — коммерческая организация может обанкротиться или быть куплена кем-то другим. В данной истории я больше доверяю организационной структуре, которую строят вокруг Rocky Linux. Хотя понимаю, что у нее тоже есть свои риски. На текущий момент заявлена поддержка этой системы со стороны крупных it вендоров.
Я отдаю себе отчет в том, что не разбираюсь в юридических тонкостях и организационной структуре Rocky Enterprise Software Foundation. Это мое чисто субъективное мнение, основанное только на вере и небольшой интуиции. Какому дистрибутиву отдать предпочтение, решать вам. Думаю, большинство переедет на Oracle Linux. Если к концу года с Rocky Linux всё будет в порядке, перееду на него всеми своими Centos 8. Утилита для смены системы уже готова, можно тестировать.
Architectures
Main architectures
The following arches are built automatically in parallel in our new Build System :
- x86_64 (w/ i686 multilib)
- ppc64le (Little Endian)
- aarch64 (ARM64, ARMv8)
Responsibility, Owner: CentOS Core SIG
AltArch
The following architecture (not existing upstream, so more difficult to boostrap) is also actually being worked, on, but mainly based on a combination of Fedora 27/28 pkgs that can be used to bootstrap the el8 beta rebuild and then iterating loops until we can include that architecture in our Koji Build System. Update: bootstrap phase is done, so now you can follow builds on Armhfp Build System
armhfp (ARM32, ARMv7 — aka armv7hl)
Responsibility, Owner : CentOS SIG-AltArch
Многочисленные дистрибутивы-заменители
Многие пользователи выразили готовность в ближайшем будущем перейти с CentOS на дистрибутив других разработчиков. Такое мнение высказал, в том числе, пользователь Reddit под ником DocToska, который развивал свои проекты с открытым исходным кодом на последних выпусках CentOS, начиная с CentOS 4. Флагманский продукт его компании работает на CentOS 8 как раз потому, что они сделали ставку на поддержку до 2029 г. «CentOS Stream якобы теперь является заменой CentOS, но очевидным недостатком является то, что стабильность и надежность приносятся в жертву на алтаре передовых технологий. Я недоволен этим. Если Red Hat забивает лошадь, на которую мы ставим средства к существованию, то мы переедем на другой дистрибутив и прихватим с собой пару тысяч клиентов», – написал DocToska.
Первые сообщения о разработке альтернативы CentOS не заставили себя долго ждать, появившись сразу же после заявлений Red Hat. Более того, в числе первых, кто сообщил о готовности создать новую ОС на замену CentOS, оказался сам Грег Курцер (Greg Kurtzer) – основатель проекта CentOS. Он задумал создать форк RHEL под названием Rocky Linux, к созданию которого собирался привлечь друзей и сообщество Linux-разработчиков.
В середине января 2021 г. CNews писал, что над созданием собственной альтернативы CentOS работает и американская компания Cloudlinux, основанная выходцем из Украины Игорем Селецким, который в настоящее время занимает в ней должность главного исполнительного директора. В развитие своего проекта компания намерена ежегодно вкладывать $1 млн, а первый выпуск своего дистрибутива, получившего название Almalinux, она намерена сформировать в течение I квартала 2021 г.
Что такое CentOS?
CentOS, как и RHEL, является дистрибутивом Linux корпоративного уровня. На самом деле CentOS — это сокращенная форма «Операционная система сообщества предприятия». Поскольку он использует тот же код, что и RHEL, CentOS может делать почти все, что может его корпоративный аналог, и он разделяет совместимость со всем, что работает на RHEL.
CentOS в основном предназначен для серверов и рабочих станций разработчиков. Как и RHEL, он создан для ситуаций, когда стабильность имеет первостепенное значение. В CentOS вы не найдете новейшие и лучшие функции и привлекательные приложения, но он сможет запускать ваши веб-приложения практически без простоев.
Стоит ли выбирать CentOS?
CentOS — это один из лучших вариантов бесплатного распространения сервера. Это отличный кандидат как для малого бизнеса, так и для предприятий. Он также имеет преимущество в том, что является одним из наиболее широко поддерживаемых дистрибутивов, поэтому вам не составит труда получить помощь или нанять кого-нибудь для обслуживания вашей сети.
Стоит ли выбирать CentOS для повседневного рабочего стола? Возможно нет. CentOS отлично подходит для профессиональных приложений, но все, что делает его отличным для бизнеса, делает его ужасным для отдельных людей. Вы действительно хотите использовать одно и то же устаревшее программное обеспечение более пяти лет? Даже при этом у вас был бы ограниченный доступ к мультимедийным и игровым приложениям. Это не то, для чего был сделан CentOS.
Cockpit: Веб-интерфейс управления сервером в CentOS 8
Как мы уже упоминали, в CentOS 8 предустановлен веб-интерфейс управления сервером cockpit. Он также управляется через systemctl. Вы можете запустить его и добавить в автозгрузку:
По–умолчанию веб сервер Cockpit слушает на порту 9090. Добавьте этот порт в разрешенные:
Для доступа к веб-интерфейсу Cockpit, откройте в браузере URL адрес https://your-CentOS8-IP:9090 и авторизуйтесь.
С помощью веб-интерфейса Cockpit вы можете смотреть загрузку своего сервера, управлять сетями и хранилищами, контейнерами, смотреть логи.
На этом моя типовая настройка CentOS сервера закончена, далее я выполняю настройки согласно технического задания по различным проектам и обычно они отличаются.
Установка CentOS 8 с помощью ISO-образа
Так как я проводил установку операционной системы на виртуальной машине KVM, предварительно я скачал установочный ISO-образ с одного из официальных зеркал (https://www.centos.org/download/mirrors/) и примонтировал его для установки на виртуальном сервере (при установке на физический сервер залейте установочный образ СentOS на USB флешку). Сразу скажу, процесс установки CentOS 8, не отличается от установки предыдущей версии и данная статья рассчитана на то, что будет служить помощником для пользователей, которые выполняют подобное впервые.
В рекомендуемых требования указано, что для установки CentOS 8 необходимо минимум 10 Гб места на диске и 512 Мб RAM на одно ядро процессора
Перезапустив виртуальную машину с примонтированным образом, я вошел в VNC-консоль. Первым шагом, вам будет предложено выбрать дальнейшие действия. Так как вы выполняем установку, нам интересен первый пункт меню:
Install CentOS Linux 8.0.1905
Выбрав его, у вас запустится процесс установки:
В процессе пока все необходимое ПО загружается, можно просто наблюдать за процессом, от вас не требуется никаких действий.
И когда черный экран сменится на интерактивный с логотипом CentOS, пора брать в руки мышь и клавиатуру.
В приветствии, система попросит вас выбрать язык, я всегда ставлю English (английский), потому что мне так удобнее работать (да и не понимаю, зачем вообще ставить русский язык на сервере). Нажмите кнопку “Continue”. В следующем меню нужно выбрать основные настройки для установки CentOS.
Для запуска установки, обязательно настроить только один пункт “Installation Destination”, там вы указываете разбивку диска, но я предпочитаю так же, сразу настроить сеть и дату со временем.
В зависимости от вашего часового пояса, вы устанавливаете свои параметры, для меня это Москва.
Чтобы настроить сеть, переходим в пункт “Network & Host Name”
В поле “Host Name” указываем имя сервера и для конфигурации сетевых интерфейсов нажимаем “Configure”
В главной вкладке, нужно отметить галочкой “Automatically connect to this network when it is available”, это нужно для того, чтобы сетевой интерфейс поднимался автоматически.
Перейдите во вкладку “IPv4 Settings” (либо IPv6 если вы используете данный протокол) настройте IP-адрес, маску подсети и шлюз:
Для ввода конкретного IP, нужно выбрать метод “Manual” и нажать кнопку “Add”, после чего у вас появится возможность ввести нужные данные. Сохранив все, мы вернемся к начальному окну настроек сети
Как можно увидеть на скриншоте, IP адрес добавился и сетевой интерфейс уже поднят (состояние Connected).
Следующим шагом мы перейдем к разбивке диска:
Rocky Linux останется независимым
Представитель Ctrl IQ в разговоре с Ars Technica заявил, что Rocky Linux останется независимым проектом, а вектор его развития будет определяться сообществом. Ctrl IQ, по словам представителя, выделит средства на базовые расходы проекта и юридическую поддержку.
Создатель оригинального CentOS Грегори Курцер основал стартап Ctrl IQ, который выступит спонсором его проекта нового Rocky Linux
Ctrl IQ является одним из трех ключевых спонсоров Rocky Linux, наряду с Amazon и Mattermost. Первая предоставляет проекту вычислительную инфраструктуру в облаке Amazon Web Service (AWS), которая необходима для сборки дистрибутива. Вторая обеспечивает разработчиков Rocky Linux средствами для совместной работы.
Согласно информации, размещенной на сайте проекта Rocky Linux, первый выпуск дистрибутива состоится во II квартале 2021 г. Выхода первого релиз-кандидата следует ожидать 31 марта 2021 г.
Варианты установки CentOS 8
У вас могут быть разные сценарии по инсталляции данной операционной системы я могу выделить вот такие:
- Установка на виртуальную машину, очень частый вариант, как внутри организаций, например Asterisk или же на облачном хостинге
- Второй вариант установки, это через загрузочную флешку, как ее готовить мы уже разбирали, посмотрите по данной ссылке
- PXE установка по сети, как это делать я так же уже рассказывал
- Установка netinstall с зеркала в интернете
На текущий момент пока еще не выпустили CentOS 8 Minimal, и доступны пока диски CentOS-8-x86_64-1905-boot, это чисто вариант для скачивания из интернета или сетевого репозитория. И второй вариант, это CentOS-8-x86_64-1905-dvd1.iso полный дистрибутив со всеми пакетами
Так, что выбор метода будет прямиком зависеть от вашей задачи.
В Red Hat есть Fedora, почему CentOS Stream:
Вы можете спросить: «В Red Hat уже есть Fedora для тестирования, но почему CentOS Stream?»
Ну, Fedora движется очень быстро. Он всегда использует последнюю версию каждого программного обеспечения. Red Hat выбирает один из ранних выпусков Fedora, полирует его и превращает в Red Hat Enterprise Linux (RHEL).
Например, Red Hat Enterprise Linux 7 (RHEL 7) основана на Fedora 19 и Fedora 20.
Red Hat Enterprise Linux 8 (RHEL основана на Fedora 28.
Итак, между Fedora 19, Fedora 20 и Fedora 28. существует огромный разрыв в версиях. На момент написания этой статьи Fedora 30 доступна для использования, Fedora 31 находится в стадии бета-тестирования.
Red Hat трудно отслеживать все эти версии Fedora.
Все, что хотел Red Hat, — это просто с самого начала просто разработать и запланировать следующую версию Red Hat Enterprise Linux (RHEL). Они идут по пути, по которому идет Debian.
Отныне Red Hat будет использовать CentOS Stream для тестирования следующей версии Red Hat Enterprise Linux и CentOS. CentOS Stream не будет предоставлять такие последние пакеты, как в Fedora.
Я думаю, что, как и в Debian Testing, они будут стараться поддерживать CentOS Stream максимально стабильным.
Это скользящий релиз:
Как и Arch Linux и OpenSUSE Tumbleweed, CentOS Stream будет выпускным дистрибутивом. Но вы не получите такие последние пакеты, как в Fedora. CentOS Stream должен быть в середине последней версии Red Hat Enterprise Linux (RHEL) и последней версии Fedora. CentOS Stream должен быть довольно стабильным.
Таким образом, при обновлении CentOS Stream все будет работать.
Следующие версии CentOS будут выпущены раньше:
Из-за того, как работают CentOS и RHEL, между RHEL и CentOS происходят огромные изменения. Таким образом, перенос всего с новой версии RHEL на CentOS занимает много времени. Вот почему на выпуск CentOS 8 ушло около 4 долгих месяцев.
CentOS Stream будет поддерживать синхронизацию CentOS и RHEL. Таким образом, отныне не будет такого большого разрыва от одной версии к другой. Преимущество заключается в том, что пользователи CentOS будут получать обновления быстрее. Кроме того, если будет выпущена новая версия RHEL, новая версия CentOS также будет выпущена в ближайшее время. Это не займет месяцы и месяцы, чтобы перенести все на CentOS больше.
Разработка перед выпуском:
Разработчики приложений теперь могут разрабатывать поверх CentOS Stream. Таким образом, после выпуска новой версии RHEL или CentOS им не придется тратить много времени на портирование своих программ / инструментов.
Разработчики приложений также могут быть уверены в том, что будет в следующей версии RHEL и CentOS, и подготовиться к этому.
Поспособствуйте CentOS / RHEL напрямую:
До сих пор вы не могли напрямую участвовать в проекте CentOS или RHEL. Но теперь вы можете вносить прямой вклад в CentOS и RHEL через CentOS Stream. Участники теперь имеют четкое представление о том, куда идут CentOS и RHEL и куда внести свой вклад. Это значительно ускорит разработку проектов CentOS и RHEL. Это также сделает CentOS и RHEL более стабильными, чем когда-либо прежде.
Хорошо для настольного компьютера и ноутбука:
Поскольку CentOS Stream будет иметь более новую версию программного обеспечения и инструментов, вы сможете использовать его на ноутбуках и настольных компьютерах. Он должен быть достаточно стабильным для вашей повседневной вычислительной задачи.
CentOS Stream очень увлекателен. Вы должны обязательно попробовать CentOS Stream. Спасибо за чтение этой статьи.
CentOS 8 установка на RAID
Выбираем оба диска и нажимаем кнопку Custom и нажимаем «Done».
Так же создаем для устанавливаемой CentOS 8, новые стандартные разделы, как и описывал выше, все кроме «/», его мы и сделаем отказоустойчивым. У него в «Device Type» выставите RAID и в «RAID Level» поставьте нужный тип, у меня, это RAID-1.
Далее подтверждаем форматирование.
Теперь продолжаем установку CentOS 8, как я описал выше. После я покажу, как посмотреть нашу информацию, о RAID массиве. Для этого введите команду:
df -h
Мой массив имеет метку md127
Посмотрим информацию о корневом массиве:
mdadm -D /dev/md127
Шаг 11: Создайте точки монтирования
Рекомендуется создать 4 точки монтирования:
- /boot: Этот раздел содержит ядро, позволяющее CentOS 8 загружаться.
- /: Это корневой раздел, содержащий всю файловую систему, необходимую для запуска ОС
- /home: Это раздел, содержащий ваши личные данные
- swap: Этот раздел создается в качестве компенсации, когда не хватает оперативной памяти. Вы можете назначить 4 ГБ для подкачки
Мы добавим еще один раздел просто в качестве примера, но вы можете пропустить создание этого раздела
/var: который содержит переменные данные, такие как файлы системного журнала, почта, временные файлы и многое другое
Вы увидите список точек монтирования, которые можно создать
Сначала мы создадим /boot раздел. В нашем случае мы будем выбирать именно раздел EFI
Во время установки BIOS, вы будете иметь только /boot, как показано ниже
Теперь, когда он создан, давайте посмотрим на подробности нашего загрузочного раздела EFI. Нам нужно проверить, была ли выбрана правильная файловая система
Для системы BIOS результат работы загрузочного раздела будет отличаться
Важно отметить, что при выборе точки монтирования вам также необходимо выбрать соответствующую файловую систему в зависимости от того, какая вам подходит лучше. Мы будем следовать тому же процессу, чтобы создать другие разделы
Теперь создайте корневой раздел
Мы будем следовать тому же процессу, чтобы создать другие разделы. Теперь создайте корневой раздел
После создания проверьте информацию о созданном разделе. В нашем случае мы будем использовать файловую систему xfs
Мы будем следовать тому же процессу, чтобы создать раздел /home
Теперь проверьте, что файловая система также xfs
Теперь мы можем создать раздел подкачки SWAP
Для раздела подкачки файловая система будет не xfs, а swap
Теперь вы можете создать /var раздел
используйте файловую систему xfs
Когда закончите, вы увидите окно с краткой информацией о том, что было сделано в процессе разбиения
Примените изменения.
Начальная настройка CentOS
Лично я любую настройку системы, будь то centos или другая, после установки начинаю с того, что полностью обновляю систему. Если установочный образ был свежий, либо установка велась по сети, то скорее всего обновлений никаких не будет. Чаще всего они есть, так как установочные образы не всегда регулярно обновляются.
Обновляем систему
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.
Дальше нам пригодятся сетевые утилиты. В зависимости от набора начальных пакетов, которые вы выбираете при установке системы, у вас будет тот или иной набор сетевых утилит. Вот список тех, к которым привык лично я — ifconfig, netstat, nslookup и некоторые другие. Если она вам нужны, так же как и мне, то предлагаю их установить отдельно, если они еще не стоят. Если вам они особо не нужны и вы ими не пользуетесь, то можете пропустить их установку. Проверим, что у нас имеется в системе на текущий момент
Если увидите ответ:
Значит утилита не установлена. Вместо ifconfig в CentOS теперь утилита ip. Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Хотя сейчас это уже не очень актуально, так как с Freebsd больше не работаю, а утилита ip есть во всех дистрибутивах linux. Тем не менее, если вам нужен ifconfig, то можете установить пакет net-tools, в который она входит:
Чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:
Будет вывод:
Так что устанавливаем bind-utils:
Часто задаваемые вопросы по теме статьи (FAQ)
Почему вы используете скрипт для настройки iptables, вместо стандартного FirewallD?
Я работаю не только с серверами, где установлен firewalld. Правила для iptables более универсальные и применимы в любом linux дистрибутиве. Мне так просто удобно. Если вам удобнее работать с firewalld, то используйте его.Используете ли вы GIU в настройке и эксплуатации серверов?
Чаще всего нет. У меня давно налажен процесс настройки практически любого сервера. Я быстрее все делаю через консоль. Иногда использую Webmin из-за удобного просмотра логов сервисов, если они хранятся только на сервере. Если вам нужна консоль управления сервером, то я рекомендую попробовать Cockpit.Зачем вы отключаете SELinux? Неужели так трудно его настроить?
Я умею настраивать selinux и в некоторых статьях это показываю. Данный материал по общей, базовой настройке centos. В основном это для новичков, которых если сразу нагрузить еще и selinux, то будет тяжело. Если есть желание использовать selinux, его можно будет включить и настроить вместе с сервисом, который будет работать на сервере после предварительной настройки.Почему вы не используете sudo, а работаете в консоли под root?
Подробно этот вопрос я разбирал в отдельной статье про sudo. Если объяснить кратко, то смысл в том, что я подключаюсь к консоли сервера для административных дейсвий. Мне всегда нужен sudo, поэтому не вижу смысла его каждый раз набирать. Проще сразу зайти под root.
Настройка сети при установке CentOS 8
В окне «Network & Host Name» вы увидите список ваших сетевых интерфейсов, они по умолчанию отключены. В моем примере их два. Каждый сетевой интерфейс имеет отличительное имя, в моем примере, это ens33 и ens36. Видно, что текущий статус «Disconnected», чтобы это изменить переведите тумблер с состояния «Off» на «On».
Если в вашей с локальной сети есть сервер DHCP, в моем примере на CISCO, то вы должны получить нужные настройки, как видно я поймал IP адрес 192.168.31.10/24 и DNS 192.168.31.1, 192.168.31.2. Чуть ниже в левом нижнем углу вы можете сразу задать имя вашего сервера CentOS 8. Если вас не устраивает, что CentOS 8 будет получать настройки сети по DHCP и вы хотите задать статический IP-адрес, то нажмите кнопку «Configure».
В окне свойств сетевого интерфейса найдите вкладку IPV4 Settings, обратите внимание, что тут будет поле «Method», в котором по умолчанию стоит «Automatic (DHCP)», то есть динамическое получение сетевых настроек в CentOS 8. На выбор у вас будут вот такие пункты:
- Automatic (DHCP) — автоматическое получение всех настроек: IP, маску, DNS, Основной шлюз, маршруты
- Automatic (DHCP) addresses only — вы получите автоматически только IP-адрес
- Manual — ручная настройка сети CentOS 8
- Link-Local Only — Локальные ссылки назначаются автоматически, когда компьютер не настроен на использование статического IP-адреса и не может найти DHCP-сервер. По сути, то APIPA адрес из диапазона 169.254.0.0
- Shared to other computers — это совместное использование сетевого интерфейса. Простой пример у вас есть сервер с двумя сетевыми интерфейсами один LAN второй WAN, и есть другой сервер, где просто один сетевой интерфейс с LAN и без интернета. Вы можете выставить на первом сервере WAN в режим «Shared to other computers» и указать его в маршрутах для выхода в интернет.
- Disabled — отключение получения настроек
Давайте я настрою статический IP-адрес на моем сетевом интерфейсе ens33. Выставляю в методе получения «Manual». В поле «Address» я нажимаю кнопку «Add», для добавления новых настроек, задаю Ip-адрес, маску в «Netmask» и основной шлюз в «Gateway». Чуть ниже я указываю свои DNS сервера, у меня это 192.168.31.1, 192.168.31.2, так же можете в поле «Search domains» указать ваше имя домена Active Directory, у меня это root.pyatilistnik.org.
Галка «Require IPv4 addressing for this connection to complete (Требовать адресацию IPv4 для этого соединения)» — Чтобы разрешить системе устанавливать это соединение в сети с поддержкой IPv6, если конфигурация IPv4 завершится неудачно, но конфигурация IPv6 будет успешной. Кнопка «Routes» позволяет вам настроить дополнительные маршруты в CentOS 8.
Нажмите кнопку «Add», чтобы добавить IP-адрес, маску сети, адрес шлюза и метрику для нового статического маршрута. Можете выбрать «Use this connection only for resources on its network», чтобы ограничить подключения только к локальной сети.
Отключаем флуд сообщений в /var/log/messages
Продолжая настройку centos, исправим одно небольшое неудобство. В дефолтной установке системы 7-й версии, весь ваш системный лог /var/log/messages через некоторое время работы сервера будет забит следующими записями.
В Centos 8 я их не заметил, поэтому там ничего делать не надо. Никакой практической пользы сообщения не несут, поэтому отключим их. Для этого создадим отдельное правило для rsyslog, где перечислим все шаблоны сообщений, которые будем вырезать. Разместим это правило в отдельном файле /etc/rsyslog.d/ignore-systemd-session-slice.conf.
Сохраняем файл и перезапускаем rsyslog для применения настроек.
Необходимо понимать, что в данном случае мы отключаем флуд в лог файл только на локальном сервере. Если вы храните логи на удаленном syslog сервере, то данное правило нужно будет настраивать именно на нем.
Настройка SSH в CentOS
Продолжаем настраивать centos. Внесем некоторые изменения в работу ssh для небольшого увеличения безопасности. Хотя речь стоит вести больше не о безопасности, а об удобстве и эффективности. По-умолчанию, сервис ssh работает на 22 порту и если все оставить как есть, то мы получим огромное количество попыток авторизоваться. Боты сканят непрерывно интернет и подбирают пароли к ssh. Это не доставляет в реальности каких-то серьезных хлопот и тем не менее, подобные запросы забивают лог secure и трятят некоторые ресурсы сервера как миниум на установку соединения и рукопожатия (handshake).
Чтобы немного закрыть себя от сканов простых ботов, изменим порт, на котором работает ssh. Можно выбрать любой пятизначный номер, это не принципиально. От автоматического сканирования это защитит. Повесим демон ssh на 25333 порт. Для этого редактируем файл /etc/ssh/sshd_config.
Раскомментируем строку Port 22 и заменим значение 22 на 25333.
Так же я обычно разрешаю подключаться по ssh пользователю root. Мне так удобнее. Проблем с этим у меня никогда не возникало. Если вы считаете, что это не безопасно, не трогайте эту настройку. Чтобы разрешить пользователю root подключаться по ssh, раскомментируйте строку
Сохраняем файл. Теперь обязательно изменяем настройки iptables, добавляем в разрешенные подключения вместо 22 порта 25333. Если этого не сделать, то после перезапуска sshd мы потеряем удаленный доступ к серверу. Итак, открываем /etc/iptables.sh и меняем в строке
22 на 25333 и исполняем файл. Наше текущее соединение не оборвется, так как оно уже установлено, но заново подключиться по ssh к 22 порту уже не получится.
Перезапускаем sshd:
Кстати, если вы не отключили SELinux, то просто так не сможете сменить порт ssh. Получите ошибку при перезапуске.
Наглядный пример того, как работает защита SELinux. Если у вас кто-то заберется на сервер через какую-то уязвимость и захочет открыть отдельный ssh серввер на каком-то нестандартном порту, у него ничего не получится.
Проверяем какой порт слушает sshd:
Если вывод такой же как у меня, то все в порядке, теперь к ssh можно подключаться по 25333 порту.
Добавим еще одну небольшую настройку. Иногда, когда возникают проблемы с dns сервером, логин по ssh подвисает на 30-60 секунд. Вы просто ждете после ввода логина, когда появится возможность ввести пароль. Чтобы избежать этого замедления, укажем ssh не использовать dns в своей работе. Для этого в конфиге раскомментируем строку с параметром UseDNS и отключим его. По-умолчанию он включен.
Для применения изменений нужно перезапустить ssh службу, как мы уже делали ранее. Настройку службы sshd в centos закончили, двигаемся дальше.
Установка CentOS 8
Создания USB носителя для установки
Существует множество программ для записи iso образа на устройство. Например, у меня два варианта для создания носителя для установки:
- Rufus — использую эту программа для создание загрузочных USB-дисков в системе Windows;
-
ROSA ImageWriter — использую эту программу для любой системы Linux.
Варианты установки
Рассмотрим два самых популярных варианта установки СentOS 8.
Образы iso CentOS 8
- CentOS-8-x86_64-1905-dvd1.iso — полный образ 7G;
- CentOS-8-x86_64-1905-boot.iso — загрузочный образ 550M.
Какой вариант использовать решать вам. Например, мне нравится устанавливать загрузочный образ и дальше настраивать руками, так и опыт приходит и понимаешь как что работает.
Больше нет минимального образа, но радует что есть загрузочный при установке с которого надо только руками внести требуемый репозиторий и выбрать нужные параметры установки.
Смотрим список всех возможных репозиториев и выбираем необходимый который будем использовать при установке с загрузочного образа.
Указывать надо путь к той папке, где лежит каталог repodata. Например, mirror.yandex.ru/centos/8/BaseOS/x86_64/os/.
В выборе программ выбираем базовое окружение «Минимальная установка» а в дополнительных параметрах «Гостевые агенты» и «Стандарт».
Шаблоны
Шаблоны используются как правило для установки на VDS и предоставляются компаниями предоставляющие такие услуги. Удобно, но тем не менее я пару раз попадал в дурацкие ситуации.
Вот моменты почему я советую использовать установку на VDS систем с iso образа:
- Разбивка диска порой не учитывает конфигурацию тарифа или требований вашей системы — например, на одном хостинге при 2 G оперативной памяти был создал SWAP раздел в 512 М в результате пришлось переустанавливать систему дабы не терять место на и так небольшом диске;
- Локализация как правило Английская — мне приятней работать на своем родном языке хотя и на английском если надо всё настрою;
- Присутствие в шаблоне каких-то изменений отличающихся от стандартных минимальных параметров установки — порой не понимаешь откуда взялись какие то настройки которых раньше не видел. Кроме того, можно потратить кучу времени не понимая почему не работает то что всегда работало как часы. В итоге выясняется что в шаблоне установки нет пакета который всегда ставился в стандартном минимальном образе.
Все компании предоставляющие услуги VDS могут предоставить возможность установки системы с ISO образа системы. При установке надо правильно указать сетевые параметры исходя из предоставленных сетевых параметров настроек выбранного тарифа!
Разбивка диска для установки
Вариантов разбивки диска для CentOS 8 может быть множество исходя из пожеланий и предпочтений. Например, мне нравиться придерживаться таких параметров:
- Размер диска под систему Linux 50 G — этого мне хватает с запасом;
- Создаю раздел boot размером 1 G — так я гарантирую что при заполнении диска система загрузится однозначно;
- Создаю SWAP — согласно требованиям системы.
Можно выносить логи и кэш в отдельные разделы, но это лишняя трата времени. Лучше всегда выполнять мониторинг размера диска и в случае проблем оперативно принять необходимые меры. Прежде всего, так и головная боль пропадает о том какой размер указывать разделам ( вариант с перераспределением очень сюрпризная тема) и больше времени потратится на правильную настройку сервера.
SWAP
Тема организации SWAP на сервере очень важная и поэтому я описал все основные моменты использования в статье SWAP для Linux
Как изменить имя в CentOS 8
Давайте я покажу вам какой конфигурационный файл отвечает за имя хоста (Hostname). Если вы или не вы во время установки CENTOS 8 не удосужились задать правильное DNS имя вашего сервера, то у вас оно по умолчанию будет localhost.localdomain. Посмотреть, это можно командой uname или hostname.
uname -n или hostname
В моем примере, это CentOS 8
Предположим, что я хочу сделать имя SuperCentOS01, для этого отредактируйте конфигурационный файл etc/hostname. Пишем команду;
vi etc/hostname
либо вы можете воспользоваться и вот такой командой, чтобы задать нужное имя хоста в CentOS 8:
hostnamectl set-hostname SuperCentos01
Настройка шлюза по-умолчанию в CentOS 8
Если есть необходимость поменять шлюз по умолчанию, или задать его при его отсутствии, то это легко делается. Для начала вам необходимо посмотреть текущие параметры, кто в вашей системе шлюз по умолчанию, для этого есть старая, добрая команда:
netstat -nr
Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.253.2 0.0.0.0 UG 0 0 0 ens36 192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 192.168.253.0 0.0.0.0 255.255.255.0 U 0 0 0 ens36
В итоге в моем примере есть основной шлюз 0.0.0.0 192.168.235.2. Напоминаю, что в системе может быть только один шлюз по умолчанию.
Если хотите поменять его, то для этого вы можете ввести команду:
route add default gw 192.168.31.1
Если нужно удалить шлюз или маршрут, то для этого есть ключ del.
route del default gw 192.168.31.1
CentOS/RHEL на десктопе
Я хотел бы добавить несколько комментариев об использовании Red Hat Enterprise Linux и CentOS на настольном компьютере. После того, как вышел мой обзор RHEL 8 , несколько человек подняли вопрос о ценности тестирования RHEL на рабочей станции или ноутбуке. Основной аргумент, что Red Hat в основном используется на серверах, так зачем обсуждать, как RHEL работает в среде рабочего стола? Зачем говорить о GNOME Software, GNOME и Wayland в операционной системе, которая часто работает без графического сервера?
Это справедливо, продукты Red Hat (и CentOS) обычно встречаются на серверах. Вот почему я говорил об управлении пакетами в командной строке и серверных утилитах, таких как Cockpit, больше, чем обычно
Тем не менее, я думаю, что есть как минимум три причины, почему важно также говорить об этих дистрибутивах, работающих на десктопах:
Установщик CentOS по умолчанию выбирает роль «Сервер с графическим интерфейсом». CentOS и RHEL могут использоваться в основном на серверах, но по умолчанию они устанавливают графические инструменты. Я думаю, что имеет смысл тестировать программное обеспечение, которое может быть установлено по умолчанию. Некоторые из альтернативных ролей также устанавливают десктопное программное обеспечение.
В примечаниях к релизу Red Hat говорится о таких функциях рабочего стола, как Wayland. Я подозреваю, что они не будут советовать пользователям этих функций, если они не ожидают, что люди будут их использовать. Аналогичным образом, хотя RHEL известен тем, что работает на серверах, многие профессионалы запускают эти дистрибутивы на своих рабочих станциях, особенно на работе.
Ранее в этом году Red Hat опубликовала статью «». В статье изложены предложения относительно того, почему разработчики должны использовать RHEL на своих рабочих станциях. Профессиональный пользователь настольного компьютера — рынок, на который Red Hat активно ориентируется. Если Red Hat хочет, чтобы разработчики, такие как я, запускали RHEL на наших рабочих станциях и ноутбуках, я думаю, что разумно принять их предложение.
Отключить SELinux
Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:
меняем значение
Чтобы изменения вступили в силу, можно перезагрузиться:
А если хотите без перезагрузки применить отключение SELinux, то выполните команду:
Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы — комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.
Заключение
Мы выполнили некоторые начальные шаги по настройке сервера CentOS, которые я обычно делаю при подготовке сервера сразу после установки. Я не претендую на абсолютную истину, возможно что-то упускаю или делаю не совсем верно. Буду рад разумным и осмысленным комментариям и замечаниям с предложениями.
Полезно после базовой настройки сразу же подключить сервер к системе мониторинга. Либо настроить ее, если у вас еще нет. У меня есть подробный цикл статей по настройке мониторинга:
- Пример настройки сервера мониторинга zabbix, либо только подключение centos к мониторингу путем установки на него агента.
- В отдельной рубрике zabbix есть много примеров для мониторинга различных полезных метрик.