
Основы GNU/Linux и подготовка к RHCSA
64 поста
Для обучения линуксам и подготовки к RHCSA установим CentOS на VirtualBox. Почему CentOS, как поставить и первое что сделать после установки - разбираемся в этом видео.
На основе исходного кода Red Hat Enterprise Linux (RHEL) создаётся полностью совместимый, бесплатный дистрибутив Centos. Именно его мы будем использовать для подготовки к сертификации от Red Hat.
Centos можно скачать с сайта centos.org, как с помощью прямой ссылки, так и при помощи торрента. У проекта сейчас 2 подхода к обновлениям – придерживаться строгой совместимости с RHEL, либо, при помощи сообщества, добавлять в дистрибутив новые пакеты и патчи, чем пользуется Red Hat в качестве тестовой площадки. Для обучения подойдёт любой из двух вариантов, но на всякий случай стоит использовать первый вариант.
Дальше мы можем скачать образ DVD диска на 7 гигабайт, в котором есть весь необходимый для установки софт, либо минимальный образ на 600 мегабайт, который при установке будет докачивать необходимое из интернета. Так как я буду устанавливать систему несколько раз, с графическим интерфейсом, без графического интерфейса и т.д., я скачиваю DVD образ на 7 гигабайт.
После того, как всё скачается, запускаем VirtualBox и создаём новую виртуальную машину. Если в названии указать “Cen”, то программа сама предложит тип операционной системы (Linux) и версию (Red Hat 64 bit). Дальше указываем количество оперативной памяти для виртуальной машины. Минимальное значение – 2 гигабайта, но в дальнейшем, без графического интерфейса, можно обойтись и меньшими параметрами. Дальше выбираем “Создать виртуальный диск”, так как он нам нужен для операционной системы, а готового диска у нас нет. После этого указываем тип диска, в зависимости от того, будет ли нам нужно этот виртуальный диск переносить на другие платформы или нет. Так как мы этого не планируем, выбираем VDI – родной формат для VirtualBox. Дальше выбираем, как наш виртуальный диск займёт пространство на нашем реальном диске. Тут два варианта – либо мы даём виртуальной машине диск с каким-то виртуальным размером, реальный размер которого будет изменяться в зависимости от действительно занятого пространства, либо мы сразу выделяем место для виртуального диска, после чего это место станет недоступно для хоста, независимо от того, есть там данные или нет. Есть небольшая разница в производительности в пользу фиксированного размера, но динамический метод оставляет больше места на компьютере. Часто такие подходы к выделению пространства называют thin и thick provisioning соответственно. После этого выбираем, где будет храниться виртуальный диск и его объём. Объём зависит от количества устанавливаемых программ и хранимых файлов. При минимальной установке желательно давать объём не меньше 8 гигабайт, а в нашем случае я укажу 20 гигабайт, которых хватит с запасом.
После нажатия Create кликаем правой кнопкой мыши на появившейся виртуальной машине и заходим в настройки.
Во вкладке General – Advanced – Shared Clipboard выставляем значение Bidirectional, что позволит копировать текст между хостом и виртуалкой, то есть создаст общий буфер обмена.
Во вкладке Display – Screen - Video Memory повышаем значение до 64 Мб или выше, так как при малых значениях графический интерфейс виртуальной машины может подвисать.
Во вкладке Network – Adapter 1 меняем Attached to: NAT на Bridged Adapter и указываем сетевой адаптер, к которому подсоединена сеть на нашем компьютере, что позволит виртуальной машине быть в той же сети, что и хост.
После этого нажимаем OK и Start, что запускает виртуальную машину. VirtualBox предложит указать образ, с которого будет установлена операционная системма. В появившемся окне выбираем Add и указываем ISO файл Centos-а, который мы скачали. Дальше выбираем этот образ и нажимаем Choose.
В новом окне появится меню, где по умолчанию выделено “Test this media”. Эта опция начнёт проверять установщик на целостность, что занимает время. Выберите опцию “Install CentOS Linux 8” и нажмите Enter. Затем загрузится графический установщик, в котором можно работать мышкой. Если вы попытаетесь нажать на экран, VirtualBox предупредит вас, что виртуальная машина перехватит вашу мышку, из-за чего вы не сможете использовать её на хосте. Это не проблема, потому что когда вам понадобится, вы можете нажать правый Ctrl и освободить мышку, поэтому нажимаем Capture.
Когда дело касается языка установщика или операционной системы, рекомендую использовать Английский (US). Очень важно знать IT терминологию на английском языке, а также это позволит вам избежать дальнейших недопониманий. Теперь давайте пройдёмся по настройкам.
В меню Keyboard добавляем нужную раскладку и выбираем горячие клавиши для переключения раскладки.
В меню Network & Hostname включаем сетевой адаптер, чтобы появилась сеть и указываем имя компьютеру.
Во вкладке Time & Date убеждаемся, что включён Network Time и указываем правильную временную зону.
Во вкладке Software Selection выбираем Workstation и ставим галочки перед теми пакетами программ, которые мы хотели бы установить.
Заходим ё во вкладку Installation Destination и просто нажимаем Done, установщик сам разметит диск. Я не буду рассматривать вопрос разметки диска сейчас, так как это требует понимания многих тем, которые мы еще не прошли.
Нажимаем Begin Installation.
Пока идёт установка, мы должны задать пароль пользователю root и создать пользователя.
Root – это пользователь, у которого есть все права на систему, он может делать с операционной системой практически всё.
Дальше создаём пользователя и ставим галочку “Сделать этого пользователя администратором”. И хотя у нас есть пользователь root с полными правами на систему, безопаснее использовать пользователя с административными правами.
Затем дожидаемся установки системы.
После установки следует проделать еще пару операций. Во первых, перезагружаем виртуалку. Если у вас снова появилось окно установщика, то нужно отмонтировать ISO образ (Devices – Optical Drive – убираем галочку с установочного образа, затем Machine – Reset для перезагрузки). При включении принимаем лицензионное соглашение. Затем логинимся пользователем User, после чего рабочее окружение, называемое Gnome, спросит у нас пару настроек и покажет окно с возможностями. Дальше стоит установить обновления – для этого нажимаем Activities – Terminal и в терминале вводим команду (sudo dnf update -y), после чего терминал спросит пароль пользователя. Это команда обновит нашу систему. Иногда при сбоях с сетью команда может вы дать ошибку, поэтому стоит прочитать последние строчки. Если вы видите там error или что-то в этом духе, то попробуйте заново запустить предыдущую команду. Если complete – значит всё нормально.
После обновления нужно установить пару программ (sudo dnf install kernel-devel kernel-headers elfutils-libelf-devel gcc make perl -y). Это нужно для дальнейшей установки гостевых утилит - драйверов и утилит, необходимых виртуальной операционной системе для работы с гипервизором. Без них виртуалка тоже работает, но некоторые функции будут работать неполноценно - не будет определяться разрешение экрана, не будет общего буфера обмена и т.п. На продвинутых гипервизорах такие дополнения могут показывать на хосте детальную информацию об операционной системе виртуалки и даже управлять ей.
После того, как успешно выполнилась предыдущая команда, перезагружаем виртуальную машину, затем снова логинимся нашим пользователем. Дальше в окне VirtualBox-а в меню Devices выбираем Insert Guest Additions CD Image, скачиваем необходимый образ диска. После этого этот диск подключится к виртуалке, где мы сможем нажать Run и программа установит гостевые утилиты. Когда в новом терминале появится надпись “Press Return to close this window”, нужно еще раз перезагрузить компьютер. На этот раз операционная система правильно определит размер экрана и подстроится под размер окна VirtualBox.
Советую вам потыкать настройки и программы, чтобы ближе познакомиться с графическим интерфейсом. А чтобы не пришлось переустанавливать систему после того, как вы случайно что-то сломаете, давайте сделаем снимок. Это функция гипервизора позволяет сохранить текущее состояние виртуальной машины, что позволит в дальнейшем откатится в к этому состоянию. Для этого нажимаем на значок рядом с виртуальной машиной (Tools), выбираем Snapshots, нажимаем Take и указываем название и описание. Снепшотов может быть несколько, чтобы откатиться к какому-то состоянию – выключаем виртуалку, выбираем снепшот и нажимаем restore. Для примера я снял снэпшот, затем удалил папку Pictures и отмонтировал диск с гостевыми утилитами, а затем восстановил снэпшот. VirtualBox предложил также снять снимок текущего состояния системы перед восстановлением, но это мне не нужно, поэтому убираю галочку. После восстановления папка Pictures и образ диска на месте, как будто я ничего и не изменял.
Чтобы мы могли изучить GNU/Linux, нам нужно где-то его установить. Администраторы для таких целей используют виртуальные машины. А что это и где достать - сейчас разберёмся.
Основа современной IT инфраструктуры состоит из 3 элементов – безопасность, отказоустойчивость и производительность.
Безопасность требует, чтобы на одной операционной системе выполнялась одна задача – допустим веб-сервер или почтовый сервер. Это позволит легче контролировать уязвимые места и смягчить потери в случае какой-либо угрозы. Запомните, хорошая безопасность строится не только на превентивных мерах, но и на мерах смягчения. Когда безопасность дала сбой и вам нужно уберечь как можно больше, лучше потерять одну систему, чем несколько.
Отказоустойчивость требует наличия нескольких копий одного сервиса на различных компьютерах, что позволит сервису работать без перебоев при проблемах с одним компьютером, электричеством в здании или даже стихийным бедствием в городе.
Производительность требует оптимального использования ресурсов и возможность быстрого масштабирования, чтобы сервис не использовал лишние ресурсы во время простоя и не падал во время пиковых нагрузок.
Всё это звучит страшно как для администратора, так и для кармана начальника. Но есть технологии, которые позволяют упростить и удешевить всё это в разы. Одна из таких технологий – виртуализация, которой пользуются практически все. Она позволяет запускать несколько виртуальных компьютеров с полноценными операционными системами внутри одного реального компьютера.
Для виртуализации используются специальные программы, называемые гипервизорами. Для её работы требуется операционная система и процессор, поддерживающий виртуализацию. Большинство современных процессоров поддерживает эту технологию. Операционная система, на которой запускается гипервизор, называется хост-системой или хостом, а “виртуальные компьютеры”, запущенные на гипервизоре – виртуальными машинами или гостевыми машинами.
Есть множество реализаций гипервизоров, которые отличаются функционалом и ценой. Нам, для обучения линуксам, вполне подойдут и бесплатные варианты – к примеру, VirtualBox. Но, прежде чем установить гипервизор, стоит убедиться, поддерживается ли на вашем компьютере виртуализация и включена ли она. Если на вашем компьютере Windows, запустите диспетчер задач, во вкладке производительность выберите CPU и ищите строчку Виртуализация. При значение Enabled всё нормально, ваш компьютер поддерживает виртуализацию и она включена. Если Disabled – то нужно зайти в BIOS и включить виртуализацию. Я дам ссылку, как это сделать, так как этот процесс может различаться в зависимости от компьютера.
Если у вас на компьютере GNU/Linux, то я все же рекомендую использовать виртуальные машины для обучения. Чтобы убедиться, поддерживается ли виртуализация вашим компьютером на Linux, выполните команду, как показано на экране ( lscpu | grep Virtualization ). Если команда выдала ответ – то всё хорошо, если нет – попробуйте проверить в BIOS, как я говорил ранее.
После этого идём на сайт virtualbox.org – Downloads – выбираем Windows hosts и ждём, пока всё скачается, а затем устанавливаем гипервизор, следуя настройкам по умолчанию. После установки гипервизора, скачиваем с сайта VirtualBox Extensions Pack и устанавливаем. После всех манипуляций перезагружаем компьютер. Если у вас GNU/Linux, Virtualbox можно скачать и установить как из репозитория, так и с сайта. Дополнительный шаг на Linux – добавить пользователя в группу vboxusers ( sudo usermod -aG vboxusers username ).
Штошш, судя по предыдущему посту, большинство пожелало увидеть полный курс и нашлись те, кто хотел полный разбор всего в структурированной форме. Это, конечно, займёт время, но почему бы и нет?
Ну и как же начать говорить о Linux, не выяснив, что такое операционная система? К сожалению, в рамках готового видео я не смогу разобрать многие вопросы, но постараюсь это сделать завтра (17.04.2020) во время стрима в 19:00 по Москве.
Не хочу обделять тех, кто любит читать текст, поэтому выложу текст из видео здесь. Но я старался над видео и там есть картинки.
Во времена моего детства на вопрос “какая у тебя операционная система?” люди отвечали Pentium 4. C появлением мобильных операционных систем Android и iOS и развитием публичного противостояния между Apple и Samsung все больше людей узнало понятие “Операционная система”. Но, я считаю, что для полноценного осознания чего-либо нужно понимать причины появления. Поэтому давайте заглянем в историю программного обеспечения.
Когда-то компьютеры занимали целую комнату, но выполняли только одну задачу в одно время. Под задачей я подразумеваю прикладную программу – программу, с которой работает пользователь. Допустим, ваш браузер, почтовый клиент, текстовой редактор или игра – всё это прикладные программы.
Так вот, как правило, компьютеры стояли в институтах и работники могли долго ждать, пока до них дойдёт очередь работать с компьютером, как в семье где 10 детей и 1 компьютер. Со временем, мощности компьютеров росли и была необходимость выполнения нескольких задач последовательно или параллельно, а также возможность работать нескольким пользователям одновременно. Появилась концепция разделения времени, так называемый “тайм-шеринг”, на основе которой создали служебные программы, которые решали вопросы многозадачности.
Со временем, такие служебные программы стали приобретать всё больше функций. Если раньше программы взаимодействовали с оборудованием напрямую, то теперь часть задач брали на себя служебные программы. Они стали эдакой прослойкой между прикладными программами и оборудованием. Набор этих служебных программ начал называться операционной системой, одна из первых реализаций которых называлась Multics. На её идеях создали Unix, который задал стандарты для современных операционных систем.
Операционная система – это прослойка между прикладным ПО и оборудованием. Но и ОС можно разделить на 3 составляющие:
- Ядро. Существуют разные типы архитектур ядер, я рассмотрю модульный вариант, который используется для Linux. Ядро это программа, отвечающая сразу за несколько важных функций. Одна из основных называется планировщик задач – часть ядра, отвечающая за многозадачность, решающая, какие программы когда посылать на исполнение процессору для максимальной производительности и эффективности работы, тот самый “тайм-шеринг”. Часть ядра занимается оперативной памятью – решает, когда и что загружать или выгружать из оперативной памяти. Также ядро отвечает за непосредственную работу с оборудованием за счёт специальных модулей, называемых драйверами. Когда прикладное ПО хочет работать с оборудованием, допустим, игра хочет обработать какие-то данные и вывести на экран изображение, она обращается к ядру, а ядро пересылает запрос через драйвер на видеокарту. У ядра есть и другие функции, но на пока этого достаточно.
- Системные библиотеки. Администраторы с библиотеками практически не работают, но всё же стоит знать о них хотя бы поверхностно. Программы частично хранят часть кода, функции или данные в виде специальных файлов, называемых библиотеками.
- Оболочка и утилиты. Одна из важных функций операционной системы – дать пользователю интерфейс взаимодействия с компьютером. Интерфейс может быть как графическим, так и текстовым. Не стоит думать, что текстовой интерфейс – это какое-то окно в скрытый мир компьютера, через которое вы можете делать с компьютером всё что угодно. Да, текстовой интерфейс, как правило, несколько функциональнее графического, но его писали люди для людей и функции у него как у графического интерфейса – дать возможность запускать программы, работать с файлами и т.п. Современные операционные системы содержат сотни небольших программ, называемых утилитами, которые могут служить как для самой системы для каких-то внутренних задач по обслуживанию, так и для пользователей для какого-то базового функционала, а также для диагностики и решения проблем.
Коммерческие компании, которые разрабатывают операционные системы, дают название своим продуктам Windows, MacOS, Android или iOS. Но в случае с GNU/Linux всё сложилось несколько иначе – ядро, называемое Linux, разрабатывают одни люди, точнее даже сказать тысячи людей и компаний, а библиотеки и утилиты сотни других людей и компаний. Что-то осталось еще с 80-ых, а что-то появляется и исчезает каждый год. Как правило, какие-то базовые утилиты разрабатывает организация GNU, а большинство остальных утилит и оболочек выпускается под лицензией GNU GPL (даже ядро). И есть люди и компании, которые берут эти компоненты, соединяют и получают операционную систему в готовом виде, которую называют GNU/Linux. Но у разных людей свои видения и свои цели, в итоге получается много разных вариаций этой операционный системы, которые называют дистрибутивами. Ubuntu, Debian, Centos, RedHat Enterprise Linux – всё это дистрибутивы, которые используют программы GNU и ядро Linux. Есть дистрибутивы, которые отличаются только набором предустановленных программ и настройками графического интерфейса, и есть дистрибутивы, в которых абсолютно разных подход к обновлениям, поддержке и даже наличие каких-то специфичных программ.
Современные операционные системы для персональных компьютеров, как правило, распространяются в виде специальных файлов с расширением ISO. Этот файл – так называемый образ диска – содержит программу-установщик операционной системы и для установки его следует записать на диск или флешку и загрузить компьютер с этого устройства. И хотя есть возможность поставить несколько операционных систем одновременно, ошибка при установке может привести к потере данных, поэтому к процессу установки следует относится очень серьёзно. Я буду рассматривать установку операционной системы в отдельном видео.
Как правило, дистрибутивы GNU/Linux можно скачать с официальных сайтов дистрибутива бесплатно и без всяких регистраций, а коммерческие операционные системы предоставляют доступ к этому файлу только после покупки лицензии – специального документа, разрешающего использование копии программного обеспечения. Некоторые операционные системы жестко привязаны к определённому железу – как например, MacOS, но большинство ставится на различное оборудование при наличии драйверов.
Про операционные системы и GNU/Linux можно говорить очень-очень много, поэтому я сделаю стрим, в котором буду обсуждать многие темы, которые не затронул в этом видео. Тут же я дал только минимально необходимую информацию для понимания.
Всем привет!
Вчера во время стрима один из подписчиков спросил, есть ли в планах делать курс по RHCSA. Сам я сдавал RHCSA, RHCE и LPIC-1, а в этом году планирую получить статус архитектора (RHCA). Для незнающих, это сертификация от RedHat по азам администрирования их дистрибутива. С одной стороны, по азам линуксов материала в интернете полно, с другой стороны, всё это разбросано, и, основная проблема - большинство материала на английском. Обычно я посылаю всех к Семаеву, у него есть курс по LPIC-1, где много тем пересекается с темами RHCSA, но у этих экзаменов есть и отличия. В любом случае, я предпочитаю дать возможность.
Поэтому у меня к вам небольшой опрос - Стоит ли делать курс по RHCSA?
1. Да, стоит сделать полный курс
2. Да, но только определённые темы (пожалуйста, указывайте в комментариях темы)
3. Нет
Продолжая тему почтовых серверов:
От теории к практике. Осталось что-то недосказанное в теме про шифрование? Не хочу углубляться в дебри криптографических протоколов, кому это интересно - в интернете достаточно материала. Но если я упустил что-то важное для админов - напишите.
P.S. Немного фоновой музыки, более динамический контент.
Хотелось бы услышать ваше мнение, над чем стоит поработать, чего не хватает или что стоит вовсе убрать
Будет еще продолжение, с наглядной настройкой, и, возможно, наглядным примером расшифровки рабочим фаерволом.
P.S. Теперь у меня есть хабр канал, где будут все мои видео в текстовом виде. Можно найти по нику datt
В будущем будут еще ролики про SMTP с разбором других расширений, а пока, в основном, про порты и шифрование.
Полезные ссылки:
https://ru.wikipedia.org/wiki/SMTP ( ??? серьёзно? полезная ссылка - википедия? это слишком даже для ЛЛ)
https://blog.gelin.ru/2016/09/starttls.html