rhcsa_labs/rh199_(rapid)/labs.md

243 lines
17 KiB
Markdown
Raw Normal View History

2021-10-09 15:38:08 +03:00
#### Лабораторные работы по курсу RH199 (RHCSA)
***
###### top
2021-10-18 15:47:39 +03:00
1. [Управление локальными пользователями и группами.](#chapter1)
2. [Управление доступом к файлам.](#chapter2)
3. [Настройка SELinux.](#chapter3)
4. [Настройка производительности системы.](#chapter4)
5. [Установка и обновление программного обеспечения.](#chapter5)
6. [Управление локальным хранилищем.](#chapter6)
7. [Настройка сервисов и управление загрузкой процессов.](#chapter7)
8. [Настройка сетевых интерфейсов.](#chapter8)
9. [Анализ и хранение логов.](#chapter9)
10. [Реализация расширенных функций хранилища.](#chapter10)
2021-10-18 16:06:01 +03:00
11. [Доступ к NFS (Network-Attached Storage).](#chapter11)
12. [Управление сетевой безопасностью.](#chapter12)
13. [Запуск контейнеров.](#chapter13)
14. [](#chapter14)
2021-10-09 15:38:08 +03:00
***
2021-10-18 15:47:39 +03:00
###### Chapter1
2021-10-09 15:38:08 +03:00
**Управление локальными пользователями и группами.**
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)
***
2021-10-18 15:47:39 +03:00
###### Chapter2
2021-10-09 15:38:08 +03:00
**Управление доступом к файлам.**
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 при которой другие пользователи не смогут просматривать и изменять новые файлы и каталоги.
2021-10-09 16:45:46 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter3
2021-10-09 16:45:46 +03:00
**Настройка SELinux.**
1. На server1 запустить браузер и ввести адрес `http://server2/lab.html`. Отобразится сообщение `Forbidden You don't have permission to access this resource.`
2. Изучите и определите проблему SELinux, которая не позволяет Apache обслуживать веб-контент.
2021-10-10 17:10:06 +03:00
3. Отобразите тип контекста SELinux для новой и старой HTML страницы.
Display the SELinux context of the new HTTP document root and the original HTTP document root. Устраните проблему SELinux, из-за которой Apache не может обслуживать веб-контент.
4. Убедитесь, что проблема SELinux решена и Apache может обслуживать веб-контент.
2021-10-09 16:45:46 +03:00
2021-10-10 17:10:06 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter4
2021-10-10 17:10:06 +03:00
**Настройка производительности системы.**
1. Измените текущий профиль для server1 на `balanced`.
2. Два процесса на сервере сильно загружают процессор. Измените приоритет этих процессов на значение 10.
*для запуска тестовых процессов можно использовать такие команды*
```bash
cat /dev/zero >> /dev/null &
cat /dev/zero >> /dev/null &
```
2021-10-09 16:45:46 +03:00
2021-10-11 13:58:45 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter5
2021-10-11 13:58:45 +03:00
**Установка и обновление программного обеспечения.**
*Все действия необходимо выполнять на 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. Выполнить проверку установленных пакетов и модулей.
2021-10-11 19:46:56 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter6
2021-10-11 19:46:56 +03:00
**Управление локальным хранилищем.**
1. На server1 доступны 2 новых диска. На первом диске создайте раздел GPT объемом 2 Гб с именем `backup`.
2. Отформатируйте созданный раздел в XFS и создайте постоянную точку монтирования в директории `/backup`.
3. На этом же диске создайте два дополнительных раздела по 512 Мб с именами `swap1` и `swap2` соответственно. Укажите корректную метку для этих разделов.
4. Инициализируйте разделы в качестве разделов подкачки, они должны быть активны при загрузке системы. Предусмотрите более высокий приоритет использования раздела `swap2` перед `swap1`.
5. Проверьте свою работу: перезагрузите `server1`, в директории `/backup` должен быть смонтирован XFS раздел размером 2 Гб, а также 2 раздела подкачки общим объемом 1 Гб с более высоким приоритетом использования у раздела `swap2`.
2021-10-12 09:55:30 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter7
2021-10-12 09:55:30 +03:00
**Настройка сервисов и управление загрузкой процессов.**
1. На server1 запустить сервис `psacct`.
2. Настроить автозагрузку сервиса `psacct`.
3. Остановить сервис `rsyslog` и удалить его из автозагрузки.
4. Перезагрузить server1 и проверить результат:
- сервис `psacct` должен быть загружен и активен
- сервис `rsyslog` не должен быть активен.
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter8
2021-10-12 09:55:30 +03:00
**Настройка сетевых интерфейсов.**
1. На server1 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.110/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
2021-10-12 10:02:56 +03:00
2021-10-12 09:55:30 +03:00
Настроить соединение на автоматическое подключение к сети.
2. На server2 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.111/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
2021-10-12 10:02:56 +03:00
2021-10-12 09:55:30 +03:00
Настроить соединение на автоматическое подключение к сети.
3. Перезагрузить server1 и server2
4. Проверить доступность обоих хостов с новыми адресами.
2021-10-12 12:31:21 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter9
2021-10-12 12:31:21 +03:00
**Анализ и хранение логов.**
1. На server1 изменить часовой пояс на соответствующий городу Новосибирск.
2. Показать логи записанные за последние 30 минут.
3. Создать файл `/etc/rsyslog.d/auth-errors.conf`, с соответствующей конфигурацией rsyslog, при которой в файл `/var/log/auth-errors` будут записываться все события связанные с проблемами аутентификации и безопасности. Используйте категорию `authpriv` и приоритет `alert`.
2021-10-12 15:10:59 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter10
2021-10-12 15:10:59 +03:00
**Реализация расширенных функций хранилища.**
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)
***
2021-10-18 15:47:39 +03:00
###### Chapter11
2021-10-13 14:57:44 +03:00
**Доступ к NFS (Network-Attached Storage).**
1. На server1 настроить постоянное монтирование удалённой NFS папки сервера server2 `/shares/nfs` в локальную директорию `/mnt/nfs`.
2. На server1 настроить монтирование по запросу (automount) удалённой NFS папки сервера server2 `/shares/autofs` в локальную директорию `/labshares/autofs`.
3. Перезагрузить server1, убедиться, что сетевые папки автоматически смонтированы в соответствующие локальные директории.
2021-10-09 15:38:08 +03:00
[вверх](#top)
***
2021-10-14 08:40:14 +03:00
2021-10-18 15:47:39 +03:00
###### Chapter12
2021-10-14 08:40:14 +03:00
**Управление сетевой безопасностью.**
2021-10-14 09:26:55 +03:00
Ваша компания решила использовать новое 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`.
2021-10-14 08:40:14 +03:00
2021-10-15 15:30:59 +03:00
[вверх](#top)
***
2021-10-18 15:47:39 +03:00
###### Chapter13
2021-10-15 15:30:59 +03:00
**Запуск контейнеров.**
2021-10-17 21:31:18 +03:00
Для выполнения этой лабораторной работы необходимо создать учётную запись на https://quay.io/.
2021-10-18 10:10:55 +03:00
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.
2021-10-15 15:30:59 +03:00
2021-10-14 08:40:14 +03:00
[вверх](#top)
***