243 lines
17 KiB
Markdown
243 lines
17 KiB
Markdown
#### Лабораторные работы по курсу 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)
|
||
|
||
***
|