rhcsa_labs/rh199_(rapid)/labs.md

243 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#### Лабораторные работы по курсу RH199 (RHCSA)
***
###### top
1. [Управление локальными пользователями и группами.](#chapter1)
2. [Управление доступом к файлам.](#chapter2)
3. [Настройка SELinux.](#chapter3)
4. [Настройка производительности системы.](#chapter4)
5. [Установка и обновление программного обеспечения.](#chapter5)
6. [Управление локальным хранилищем.](#chapter6)
7. [Настройка сервисов и управление загрузкой процессов.](#chapter7)
8. [Настройка сетевых интерфейсов.](#chapter8)
9. [Анализ и хранение логов.](#chapter9)
10. [Реализация расширенных функций хранилища.](#chapter10)
11. [Доступ к NFS (Network-Attached Storage).](#chapter11)
12. [Управление сетевой безопасностью.](#chapter12)
13. [Запуск контейнеров.](#chapter13)
14. [](#chapter14)
***
###### Chapter1
**Управление локальными пользователями и группами.**
1. Подключиться по ssh к server1
2. У всех вновь создаваемых пользователей пароль необходимо изменять каждые 30 дней.
3. Создать новую группу `consultants` с GID 35000.
4. Настроить административные права членов группы `consultants`, чтобы они могли выполнять любые команды от любых пользователей.
5. Создать пользователей `consultant1`, `consultant2`, и `consultant3` и задать им в качестве дополнительной группы `consultants`.
6. Учётные записи пользователей `consultant1`, `consultant2`, и `consultant3` настроить таким образом, чтобы срок их действия истекал через 90 дней с текущей даты.
7. Изменить политику паролей для учетной записи `consultant2`, чтобы нужно было менять пароль каждые 15 дней.
8. Пользователи `consultant1`, `consultant2`, и `consultant3` при первом входе в систему должны изменить свои пароли в принудительном порядке.
[вверх](#top)
***
###### Chapter2
**Управление доступом к файлам.**
1. На server1 создать директорию `/home/techdocs`.
2. Создать группу `techdocs`, изменить группу владельца директории `/home/techdocs` на группу `techdocs`.
3. Создать пользователей `tech1`, `tech2` и добавить их в группу `techdocs`.
4. Убедиться, что пользователи `tech1`, `tech2` не могут создавать файлы в папке `/home/techdocs`.
5. Для директории `/home/techdocs` установить следующие разрешения: setgid (2), чтение/запись/исполнение для владельца и группы (7), для остальных нет никаких прав (0).
6. Проверить, что разрешения установлены корректно.
7. Проверить, что члены группы `techdocs` (`tech1`, `tech2`) теперь могут создавать и редактировать файлы в директории `/home/techdocs`.
8. Изменить глобальный скрипт загрузки. Обычные пользователи должны иметь umask при которой другие пользователи не смогут просматривать и изменять новые файлы и каталоги.
[вверх](#top)
***
###### Chapter3
**Настройка SELinux.**
1. На server1 запустить браузер и ввести адрес `http://server2/lab.html`. Отобразится сообщение `Forbidden You don't have permission to access this resource.`
2. Изучите и определите проблему SELinux, которая не позволяет Apache обслуживать веб-контент.
3. Отобразите тип контекста SELinux для новой и старой HTML страницы.
Display the SELinux context of the new HTTP document root and the original HTTP document root. Устраните проблему SELinux, из-за которой Apache не может обслуживать веб-контент.
4. Убедитесь, что проблема SELinux решена и Apache может обслуживать веб-контент.
[вверх](#top)
***
###### Chapter4
**Настройка производительности системы.**
1. Измените текущий профиль для server1 на `balanced`.
2. Два процесса на сервере сильно загружают процессор. Измените приоритет этих процессов на значение 10.
*для запуска тестовых процессов можно использовать такие команды*
```bash
cat /dev/zero >> /dev/null &
cat /dev/zero >> /dev/null &
```
[вверх](#top)
***
###### Chapter5
**Установка и обновление программного обеспечения.**
*Все действия необходимо выполнять на server1*
1. Проверить, находится ли система в активированном состоянии. Если система активирована, необходимо отменить регистрацию и удалить системный репозиторий, который устанавливается при регистрации.
2. Используя полный установочный ISO образ, настроить локальный репозиторий BaseOS и APPSteram. Проверку GPG не использовать.
3. Установить пакет xsane-gimp и модуль PostgreSQL client версии 12.
4. Установить пакет `htop-3.0.5-1.el8.x86_64.rpm` из директории `/home/student`.
5. Выполнить проверку установленных пакетов и модулей.
[вверх](#top)
***
###### Chapter6
**Управление локальным хранилищем.**
1. На server1 доступны 2 новых диска. На первом диске создайте раздел GPT объемом 2 Гб с именем `backup`.
2. Отформатируйте созданный раздел в XFS и создайте постоянную точку монтирования в директории `/backup`.
3. На этом же диске создайте два дополнительных раздела по 512 Мб с именами `swap1` и `swap2` соответственно. Укажите корректную метку для этих разделов.
4. Инициализируйте разделы в качестве разделов подкачки, они должны быть активны при загрузке системы. Предусмотрите более высокий приоритет использования раздела `swap2` перед `swap1`.
5. Проверьте свою работу: перезагрузите `server1`, в директории `/backup` должен быть смонтирован XFS раздел размером 2 Гб, а также 2 раздела подкачки общим объемом 1 Гб с более высоким приоритетом использования у раздела `swap2`.
[вверх](#top)
***
###### Chapter7
**Настройка сервисов и управление загрузкой процессов.**
1. На server1 запустить сервис `psacct`.
2. Настроить автозагрузку сервиса `psacct`.
3. Остановить сервис `rsyslog` и удалить его из автозагрузки.
4. Перезагрузить server1 и проверить результат:
- сервис `psacct` должен быть загружен и активен
- сервис `rsyslog` не должен быть активен.
[вверх](#top)
***
###### Chapter8
**Настройка сетевых интерфейсов.**
1. На server1 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.110/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
Настроить соединение на автоматическое подключение к сети.
2. На server2 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.111/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
Настроить соединение на автоматическое подключение к сети.
3. Перезагрузить server1 и server2
4. Проверить доступность обоих хостов с новыми адресами.
[вверх](#top)
***
###### Chapter9
**Анализ и хранение логов.**
1. На server1 изменить часовой пояс на соответствующий городу Новосибирск.
2. Показать логи записанные за последние 30 минут.
3. Создать файл `/etc/rsyslog.d/auth-errors.conf`, с соответствующей конфигурацией rsyslog, при которой в файл `/var/log/auth-errors` будут записываться все события связанные с проблемами аутентификации и безопасности. Используйте категорию `authpriv` и приоритет `alert`.
[вверх](#top)
***
###### Chapter10
**Реализация расширенных функций хранилища.**
1. На server1 установите пакеты `stratisd` и `stratis-cli`.
2. С помощью `systemctl` активируйте и запустите сервис `stratisd`.
3. Создайте пул Stratis `labpool` состоящий из устройства `/devsdb`.
4. Увеличьте объем пула используя доступный в системе диск `/devsdc`.
5. Создайте на пуле файловую систему `labfs`. Смонтируйте её в директорию `/labstratisvol`. Не забудьте включить `x-systemd.requires=stratisd.service` в параметры монтирования в `/etc/fstab`.
6. Создайте снапшот `labfs-snap` файловой системы `labfs`.
7. Создайте VDO раздел `labvdo` с файловой системой XFS, используя устройство `/dev/sdd`. Установите логический размер 50 Гб.
8. Смонтируйте `labvdo` в директорию `/labvdovol`. Не забудьте включить `x-systemd.requires=vdo.service` в параметры монтирования в `/etc/fstab`.
9. Перезагрузите server1 и убедитесь, что все созданные разделы корректно смонтированы.
[вверх](#top)
***
###### Chapter11
**Доступ к NFS (Network-Attached Storage).**
1. На server1 настроить постоянное монтирование удалённой NFS папки сервера server2 `/shares/nfs` в локальную директорию `/mnt/nfs`.
2. На server1 настроить монтирование по запросу (automount) удалённой NFS папки сервера server2 `/shares/autofs` в локальную директорию `/labshares/autofs`.
3. Перезагрузить server1, убедиться, что сетевые папки автоматически смонтированы в соответствующие локальные директории.
[вверх](#top)
***
###### Chapter12
**Управление сетевой безопасностью.**
Ваша компания решила использовать новое web-приложение. Это приложение прослушивает порты 80/TCP и 1001/TCP. Порт 22/TCP для доступа по SSH также должен быть доступен. Все изменения, которые будут сделаны, должны быть доступны после перезагрузки.
*Все настройки этой работы необходимо производить на server1, доступ проверять с server2.*
1. С server2 проверить доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
2. Подключитесь к server1, чтобы разобраться в причинах ограничения доступа.
3. Настройте SELinux для доступа сервису httpd прослушивать порт 1001/TCP.
4. С server2 проверить доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
5. Подключитесь к server1, чтобы определить верные ли порты указаны в межсетевом экране (firewall).
6. Добавьте порт 1001/TCP в постоянную конфигурацию зоны public.
7. Проверьте доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
[вверх](#top)
***
###### Chapter13
**Запуск контейнеров.**
Для выполнения этой лабораторной работы необходимо создать учётную запись на https://quay.io/.
https://quay.io/ - реестр образов (аналог https://hub.docker.com/)
1. На server1 установить средства управления контейнерами.
2. Реестр образов https://quay.io/ содержит образ `quay.io/bitnami/mariadb`, необходимо переключиться на пользователя `poduser` используя пароль `redhat`, посмотреть доступные версии БД в образе для загрузки и скачать версию 10.6.
3. На server1 с учетной записью `poduser` создать папку `/home/poduser/db_data`. Подготовить директорию, чтобы контейнеры имели доступ чтения/записи в ней. Директория будет использована в качестве постоянного хранилища.
4. На server1 с учетной записью `poduser` создать контейнер содержащий образ MariaDB с именем `inventorydb`. Необходимо выполнить трансляцию внутреннего порта в контейнере 3306 на внешний порт server1 13306. Подключить директорию `/home/poduser/db_data` в качестве хранилища БД в контейнере директории `/var/lib/mysql/data`. Кроме этого необходимо объявить следующие переменные в контейнере:
Переменная | Значение
--------------------- | ----------
MARIADB_USER | operator1
MARIADB_PASSWORD | redhat
MARIADB_DATABASE | inventory
MARIADB_ROOT_PASSWORD | redhat
После запуска контейнера необходимо убедиться в наличии доступа к БД в контейнере:
- подключиться к контейнеру;
- подключиться к консоли управления БД (команда - `mysql -u root -p`, ввести пароль `redhat`);
- убедиться в том, что БД с именем inventory присутствует в списке доступных (команда - SHOW DATABASES;);
- выйти из консоли управления БД (команда - `exit`);
- отключиться от контейнера.
5. Настроить systemd на автоматический запуск контейнера `inventorydb` при загрузке server1.
[вверх](#top)
***