rhcsa_labs/rh199_(rapid)/labs_solutions.md

46 KiB
Raw Blame History

Лабораторные работы по курсу RH199 (RHCSA)


top

Подготовка виртуальных хостов для выполнения лабораторных работ.

лабораторные работы начинаются с 3-й главы

  1. Управление локальными пользователями и группами.
  2. Управление доступом к файлам.
  3. Настройка SELinux.
  4. Настройка производительности системы.
  5. Установка и обновление программного обеспечения.
  6. Управление локальным хранилищем.
  7. Настройка сервисов и управление загрузкой процессов.
  8. Настройка сетевых интерфейсов.
  9. Анализ и хранение логов.
  10. Реализация расширенных функций хранилища.
  11. Планирование будущих задач. - Лабы нет.
  12. Доступ к NFS (Network-Attached Storage).

stand

Подготовка виртуальных хостов для выполнения лабораторных работ.

Для выполнения лабораторных работ потребуется настроить 2 виртуальных хоста

server1 - 192.168.10.10
user: student
password: student
root password: redhat

[root@server1 ~]# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   16G  0 disk 
├─sda1                  8:1    0   10G  0 part 
│ └─rhel_server1-root 253:0    0   10G  0 lvm  /
└─sda2                  8:2    0  500M  0 part /boot
sdb                     8:16   0    5G  0 disk 
sdc                     8:32   0    5G  0 disk 
sdd                     8:48   0    5G  0 disk 
sr0                    11:0    1 1024M  0 rom 

server2 - 192.168.10.11
user: student
password: student
root password: redhat

Дополнительно необходимо:
SERVER1
Перечень необходимых команд root (стоит это оформить в виде скрипта)

useradd student -G wheel
echo student | passwd student --stdin
echo '192.168.10.11    server2' >> /etc/hosts
wget -P /home/student https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/h/htop-3.0.5-1.el8.x86_64.rpm

SERVER2
Перечень необходимых команд root (стоит это оформить в виде скрипта)

useradd student -G wheel
echo student | passwd student --stdin

echo '192.168.10.10    server1' >> /etc/hosts

yum install httpd -y
mkdir /webserver
sed -i 's/\/var\/www\/html/\/webserver/g' /etc/httpd/conf/httpd.conf
systemctl enable --now httpd
echo "This is the html file for the SELinux final lab on SERVER2." > /webserver/lab.html
firewall-cmd --add-service=http
firewall-cmd --add-service=http --permanent

mkdir -p /shares/{nfs,autofs}
echo "Welcome to NFS share on server2!" > /shares/nfs/welcome.txt
echo "Welcome to Autofs share on server2!" > /shares/autofs/welcome.txt
echo "/shares/nfs    *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports
echo "/shares/autofs    *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports
systemctl enable --now nfs-server.service
firewall-cmd --add-service=nfs
firewall-cmd --add-service=nfs --permanent 
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=rpc-bind --permanent 
firewall-cmd --add-service=mountd
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload

После настройки ВМ необходимо сохранить состояние - создать снапшот и после выполнения каждой лабораторной работы возвращаться к исходному состоянию.


Chapter3

Управление локальными пользователями и группами.

  1. Подключиться по ssh к server1
da2001@Zenmint ~ $ ssh student@server1
  1. У всех вновь создаваемых пользователей пароль необходимо изменять каждые 30 дней.
[student@server1 ~]$ sudo -i
[sudo] пароль для student: 
[root@server1 ~]# vim /etc/login.defs 

необходимо изменить строку

PASS_MAX_DAYS	30
  1. Создать новую группу consultants с GID 35000.
[root@server1 ~]# groupadd -g 35000 consultants
  1. Настроить административные права членов группы consultants, чтобы они могли выполнять любые команды от любых пользователей. best practices RedHat не редактировать существующие системные файлы, а создавать свои в соответствующих директориях. Создадим файл vim /etc/sudoers.d/consultants
[root@server1 ~]# vim /etc/sudoers.d/consultants

добавить строку

%consultants    ALL=(ALL)       ALL
  1. Создать пользователей consultant1, consultant2, и consultant3 и задать им в качестве дополнительной группы consultants.
[root@server1 ~]# useradd -G consultants consultant1
[root@server1 ~]# useradd -G consultants consultant2
[root@server1 ~]# useradd -G consultants consultant3
  1. Учётные записи пользователей consultant1, consultant2, и consultant3 настроить таким образом, чтобы срок их действия истекал через 90 дней с текущей даты. узнать какая дата будет через 90 дней от текущей даты можно с помощью команды
[root@server1 ~]# date -d "+90 days" +%F

ограничить срок действия пароля

[root@server1 ~]# chage -E 2022-01-06 consultant1
[root@server1 ~]# chage -E 2022-01-06 consultant2
[root@server1 ~]# chage -E 2022-01-06 consultant3
  1. Изменить политику паролей для учетной записи consultant2, чтобы нужно было менять пароль каждые 15 дней.
[root@server1 ~]# chage -M 15 consultant2
  1. Пользователи consultant1, consultant2, и consultant3 при первом входе в систему должны изменить свои пароли в принудительном порядке.
[root@server1 ~]# chage -d 0 consultant1
[root@server1 ~]# chage -d 0 consultant2
[root@server1 ~]# chage -d 0 consultant3

Проверка Наличие группы consultants, правильность её GID и члены группы

[student@server1 ~]$ cat /etc/group | grep consultants
consultants:x:35000:consultant1,consultant2,consultant3

Срок действия паролей, учётной записи и требование изменить пароль при первом входе в систему

[root@server1 ~]# chage -l consultant1
Последний раз пароль был изменён				: пароль должен быть изменён
Срок действия пароля истекает					: пароль должен быть изменён
Пароль будет деактивирован через				: пароль должен быть изменён
Срок действия учётной записи истекает				: янв 06, 2022
Минимальное количество дней между сменой пароля			: 0
Максимальное количество дней между сменой пароля		: 30
Количество дней с предупреждением перед деактивацией пароля	: 7
[root@server1 ~]# chage -l consultant2
Последний раз пароль был изменён				: пароль должен быть изменён
Срок действия пароля истекает					: пароль должен быть изменён
Пароль будет деактивирован через				: пароль должен быть изменён
Срок действия учётной записи истекает				: янв 06, 2022
Минимальное количество дней между сменой пароля			: 0
Максимальное количество дней между сменой пароля		: 15
Количество дней с предупреждением перед деактивацией пароля	: 7
[root@server1 ~]# chage -l consultant3
Последний раз пароль был изменён				: пароль должен быть изменён
Срок действия пароля истекает					: пароль должен быть изменён
Пароль будет деактивирован через				: пароль должен быть изменён
Срок действия учётной записи истекает				: янв 06, 2022
Минимальное количество дней между сменой пароля			: 0
Максимальное количество дней между сменой пароля		: 30
Количество дней с предупреждением перед деактивацией пароля	: 7

Наличие административных прав у членов группы consultants

[root@server1 ~]# cat /etc/sudoers.d/consultants 
%consultants    ALL=(ALL)       ALL

вверх


Chapter4

Управление доступом к файлам.

  1. На server1 создать директорию /home/techdocs.
[student@server1 ~]$ sudo -i
[sudo] пароль для student: 
[root@server1 ~]# mkdir /home/techdocs
  1. Создать группу techdocs, изменить группу владельца директории /home/techdocs на группу techdocs.
[root@server1 ~]# groupadd techdocs
[root@server1 ~]# chgrp techdocs /home/techdocs/
  1. Создать пользователей tech1, tech2 и добавить их в группу techdocs.
[root@server1 ~]# useradd -G techdocs tech1
[root@server1 ~]# useradd -G techdocs tech2
  1. Убедиться, что пользователи tech1, tech2 не могут создавать файлы в папке /home/techdocs.
[root@server1 ~]# su - tech1
[tech1@server1 ~]$ touch /home/techdocs/testfile
touch: невозможно выполнить touch для '/home/techdocs/testfile': Отказано в доступе
[tech1@server1 ~]$ выход
[root@server1 ~]# su - tech2
[tech2@server1 ~]$ touch /home/techdocs/
touch: установка временных отметок '/home/techdocs/': Отказано в доступе
[tech2@server1 ~]$ выход
  1. Для директории /home/techdocs установить следующие разрешения: setgid (2), чтение/запись/исполнение для владельца и группы (7), для остальных нет никаких прав (0).
[root@server1 ~]# chmod 2770 /home/techdocs/
  1. Проверить, что разрешения установлены корректно.
[root@server1 ~]# ls -ld /home/techdocs/
drwxrws---. 2 root techdocs 6 окт  9 03:36 /home/techdocs/
  1. Проверить, что члены группы techdocs (tech1, tech2) теперь могут создавать и редактировать файлы в директории /home/techdocs, а другие пользователи не могут.
[root@server1 ~]# su - tech1
[tech1@server1 ~]$ touch /home/techdocs/file1
[tech1@server1 ~]$ выход
[root@server1 ~]# su - tech2
[tech2@server1 ~]$ touch /home/techdocs/file2
[tech2@server1 ~]$ echo "Test" >> /home/techdocs/file1
[tech2@server1 ~]$ cat /home/techdocs/file1
Test
[tech2@server1 ~]$ выход
[root@server1 ~]# su - student
[student@server1 ~]$ touch /home/techdocs/file3
touch: невозможно выполнить touch для '/home/techdocs/file3': Отказано в доступе
[student@server1 ~]$ echo "Student test" >> /home/techdocs/file1
-bash: /home/techdocs/file1: Отказано в доступе
  1. Изменить глобальный скрипт загрузки. Обычные пользователи должны иметь umask при которой другие пользователи не смогут просматривать и изменять новые файлы и каталоги. создадим новый файл /etc/profile.d/local-umask.sh и скопируем в него блок, который имеет отношение к umask из файла /etc/profile, значение umask в первом упоминании заменим на 007.
    Важно обратить внимание - название файла обязательно должно иметь расширение .sh, т.к. только такие файлы проверяются.
[root@server1 ~]# vim /etc/profile.d/local-umask.sh
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 007
else
    umask 022
fi

Проверка проверим только последний пункт, т.к. все предыдущие проверяются в процессе выполнения назначим пользователю student временную маску 007, создадим новый файл и проверим его разрешения.

[student@server1 ~]$ umask 007
[student@server1 ~]$ touch file1
[student@server1 ~]$ ls -l
итого 0
-rw-rw----. 1 student student 0 окт  9 04:00 file1

остальные не имеют никаких разрешений на файл - то что было нужно в задании.

вверх


Chapter5

Настройка SELinux.

  1. На server1 запустите браузер и введите адрес http://server2/lab.html. Отобразится сообщение Forbidden You don't have permission to access this resource.

  2. Изучите и определите проблему SELinux, которая не позволяет Apache обслуживать веб-контент.

[root@server2 ~]# less /var/log/messages

поиском найти уведомления SELinux /sealert
скопировать и ввести первое упоминание вида sealert -l 8dcf4fc2-54e6-448d-91c6-ac047615927f
в сообщении будет предложено решение проблемы

[root@server2 ~]# sealert -l 8dcf4fc2-54e6-448d-91c6-ac047615927f
SELinux запрещает /usr/sbin/httpd доступ getattr к файл /webserver/lab.html.

*****  Модуль restorecon предлагает (точность 94.8)  *************************

Если вы хотите исправить метку.$TARGETЗнак _PATH по умолчанию должен быть httpd_sys_content_t
То вы можете запустить restorecon. Возможно, попытка доступа была остановлена ​​из-за недостаточных разрешений для доступа к родительскому каталогу, и в этом случае попытайтесь соответствующим образом изменить следующую команду.
Сделать
# /sbin/restorecon -v /webserver/lab.html

... дальнейший вывод отброшен ...
  1. Отобразите тип контекста SELinux для стандартной и запрашиваемой директории web сервера.
[root@server2 ~]# ls -ldZ /var/www/html/ /webserver/
drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0  6 окт  7 16:06 /var/www/html/
drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0       40 окт  7 16:13 /webserver/
  1. Устраните проблему SELinux, из-за которой Apache не может обслуживать веб-контент.
    как видно из предыдущего пункта, в новой папке web сервера невено установлен тип контекста SELinux. Необходимо его изменить.
[root@server2 ~]# semanage fcontext -a -t httpd_sys_content_t '/webserver(/.*)?'
[root@server2 ~]# restorecon -vR /webserver
  1. Убедитесь, что проблема SELinux решена и Apache может обслуживать веб-контент.
[root@server2 ~]# curl http://server2/lab.html
This is the html file for the SELinux final lab on SERVER2.

вверх


Chapter6

Настройка производительности системы.

  1. Измените текущий профиль для server1 на balanced.
[root@server1 ~]# tuned-adm profile balanced 
  1. Два процесса на сервере сильно загружают процессор. Измените приоритет этих процессов на значение 10. для запуска тестовых процессов можно использовать такие команды
cat /dev/zero >> /dev/null &
cat /dev/zero >> /dev/null &

отобразим процессы с сортировкой по загрузке процессора и выведем 2 последних
убедимся, что это процессы, которые сформированы нами

[root@server1 ~]# ps -aux --sort=pcpu | tail -2
root       17216 49.6  0.0   7448   908 pts/2    R    10:21   1:07 cat /dev/zero
root       17217 49.6  0.0   7448   940 pts/2    R    10:21   1:07 cat /dev/zero

для изменения приоритета выполним

[root@server1 ~]# renice -n 10 17216 17217
17216 (process ID) old priority 0, new priority 10
17217 (process ID) old priority 0, new priority 10

вверх


Chapter7

Установка и обновление программного обеспечения.

Все действия необходимо выполнять на server1

  1. Проверить, находится ли система в активированном состоянии. Если система активирована, необходимо отменить регистрацию и удалить системный репозиторий, который устанавливается при регистрации.
[root@server1 ~]# subscription-manager status

если окажется, что система находится в активированном состоянии, необходимо отменить регистрацию и удалить настроенные репозитории

[root@server1 ~]# subscription-manager unregister
[root@server1 ~]# ls /etc/yum.repos.d/
redhat.repo 
[root@server1 ~]# rm /etc/yum.repos.d/redhat.repo
  1. Используя полный установочный ISO образ, настроить локальный репозиторий с BaseOS и APPSteram. Проверку GPG не использовать. монтирование ISO в локальную директорию
[root@server1 ~]# echo '/dev/sr0    /iso    iso9660    ro    0 0' >> /etc/fstab

настройка локального репозитория

[root@server1 ~]# vim /etc/yum.repos.d/iso.repo
[BaseOS]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS
baseurl = file:///iso/BaseOS
enabled = 1
gpgcheck = 0

[AppStream]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream
baseurl = file:///iso/AppStream
enabled = 1
gpgcheck = 0

проверка установленного репозитория

[root@server1 ~]# yum repolist 
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

repo id                                                             repo name
AppStream                                                           Red Hat Enterprise Linux 8 for x86_64 - AppStream
BaseOS                                                              Red Hat Enterprise Linux 8 for x86_64 - BaseOS
  1. Установить пакет xsane-gimp и модуль PostgreSQL client версии 12. установка xsane-gimp
[root@server1 ~]# yum install -y xsane-gimp

установка модуля PostgreSQL client версии 12

[root@server1 ~]# yum module list | grep postgres
postgresql           9.6             client, server [d]                    PostgreSQL server and client module

postgresql           10 [d]          client, server [d]                    PostgreSQL server and client module

postgresql           12              client, server [d]                    PostgreSQL server and client module

postgresql           13              client, server [d]                    PostgreSQL server and client module
[root@server1 ~]# yum module install -y postgresql:12/client
  1. Установить пакет htop-3.0.5-1.el8.x86_64.rpm из директории /home/student.
[root@server1 ~]# yum localinstall /home/student/htop-3.0.5-1.el8.x86_64.rpm 
  1. Выполнить проверку установленных пакетов и модулей.
[root@server1 ~]# yum list installed | grep xsane-gimp
xsane-gimp.x86_64                                  0.999-30.el8                                   @AppStream 
[root@server1 ~]# yum module list | grep postgresql
postgresql           9.6             client, server [d]                       PostgreSQL server and client module

postgresql           10 [d]          client, server [d]                       PostgreSQL server and client module

postgresql           12 [e]          client [i], server [d]                   PostgreSQL server and client module

postgresql           13              client, server [d]                       PostgreSQL server and client module  

в строке 12 версии отмечено [e]nabled, [i]nstalled

[root@server1 ~]# rpm -qa | grep htop
htop-3.0.5-1.el8.x86_64

вверх


Chapter8

Управление локальным хранилищем.

  1. На server1 доступны 2 новых диска. На первом диске создайте раздел GPT объемом 2 Гб с именем backup.
[root@server1 ~]# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   16G  0 disk 
├─sda1                  8:1    0   10G  0 part 
│ └─rhel_server1-root 253:0    0   10G  0 lvm  /
└─sda2                  8:2    0  500M  0 part /boot
sdb                     8:16   0    5G  0 disk 
sdc                     8:32   0    5G  0 disk 
sr0                    11:0    1 1024M  0 rom  
[root@server1 ~]# parted /dev/sdb mklabel gpt mkpart backup xfs 2048s 2GiB
  1. Отформатируйте созданный раздел в XFS и создайте постоянную точку монтирования в директории /backup.
[root@server1 ~]# mkdir /backup
[root@server1 ~]# uuid=`lsblk -n -o uuid /dev/sdb1`
[root@server1 ~]# echo "UUID=$uuid    /backup    xfs    defaults    0 0" >> /etc/fstab
  1. На этом же диске создайте два дополнительных раздела по 512 Мб с именами swap1 и swap2 соответственно. Укажите корректную метку для этих разделов.
[root@server1 ~]# parted /dev/sdb print
Модель: QEMU QEMU HARDDISK (scsi)
Диск /dev/sdb: 5369MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска: 

Номер  Начало  Конец   Размер  Файловая система  Имя     Флаги
 1     1049kB  2147MB  2146MB  xfs               backup

[root@server1 ~]# parted /dev/sdb mkpart swap1 linux-swap 2147M 2659M
Информация: Не забудьте обновить /etc/fstab.

[root@server1 ~]# parted /dev/sdb print
Модель: QEMU QEMU HARDDISK (scsi)
Диск /dev/sdb: 5369MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска: 

Номер  Начало  Конец   Размер  Файловая система  Имя     Флаги
 1     1049kB  2147MB  2146MB  xfs               backup
 2     2147MB  2659MB  512MB                     swap1   подкачка

[root@server1 ~]# parted /dev/sdb mkpart swap2 linux-swap 2659M 3171M
Информация: Не забудьте обновить /etc/fstab.

[root@server1 ~]# parted /dev/sdb print
Модель: QEMU QEMU HARDDISK (scsi)
Диск /dev/sdb: 5369MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска: 

Номер  Начало  Конец   Размер  Файловая система  Имя     Флаги
 1     1049kB  2147MB  2146MB  xfs               backup
 2     2147MB  2659MB  512MB                     swap1   подкачка
 3     2659MB  3171MB  512MB                     swap2   подкачка

  1. Инициализируйте разделы в качестве разделов подкачки, они должны быть активны при загрузке системы. Предусмотрите более высокий приоритет использования раздела swap2 перед swap1.
[root@server1 ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 488 MiB (511700992 bytes)
без метки, UUID=a905e327-802c-41c0-89ca-500d542c9650
[root@server1 ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 488 MiB (511700992 bytes)
без метки, UUID=0c267fd8-c8f3-4cc3-9c2c-54fdefc13f2f
[root@server1 ~]# vim /etc/fstab

добавить строки

UUID=a905e327-802c-41c0-89ca-500d542c9650       swap    swap    pri=2   0 0
UUID=0c267fd8-c8f3-4cc3-9c2c-54fdefc13f2f       swap    swap    pri=1   0 0

активировать разделы подкачки

[root@server1 ~]# swapon -a
[root@server1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1,8Gi       1,2Gi       106Mi        17Mi       501Mi       442Mi
Swap:         975Mi          0B       975Mi
  1. Проверьте свою работу: перезагрузите server1, в директории /backup должен быть смонтирован XFS раздел размером 2 Гб, а также 2 раздела подкачки общим объемом 1 Гб с более высоким приоритетом использования у раздела swap2.
[root@server1 ~]# reboot 
Connection to server1 closed by remote host.
Connection to server1 closed.

смонтированный раздел /backup

[student@server1 ~]$ mount | grep backup
/dev/sdc1 on /backup type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

подкачка

[student@server1 ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:          1,8Gi       484Mi       807Mi        10Mi       525Mi       1,1Gi
Swap:         975Mi          0B       975Mi
[student@server1 ~]$ swapon -s
Имя файла               Тип     Размер  Исп-но  Приоритет
/dev/sdc2                               partition   499708  0   2
/dev/sdc3                               partition   499708  0   1

вверх


Chapter9

Настройка сервисов и управление загрузкой процессов.

  1. На server1 запустить сервис psacct.
[root@server1 ~]# systemctl start psacct
[root@server1 ~]# systemctl status psacct
● psacct.service - Kernel process accounting
   Loaded: loaded (/usr/lib/systemd/system/psacct.service; disabled; vendor preset: disabled)
   Active: active (exited) since Tue 2021-10-12 08:11:45 MSK; 13s ago
  Process: 6272 ExecStart=/usr/sbin/accton /var/account/pacct (code=exited, status=0/SUCCESS)
  Process: 6270 ExecStartPre=/usr/libexec/psacct/accton-create (code=exited, status=0/SUCCESS)
 Main PID: 6272 (code=exited, status=0/SUCCESS)

окт 12 08:11:45 server1 systemd[1]: Starting Kernel process accounting...
окт 12 08:11:45 server1 accton[6272]: Turning on process accounting, file set to '/var/account/pacct'.
окт 12 08:11:45 server1 systemd[1]: Started Kernel process accounting.
  1. Настроить автозагрузку сервиса psacct.
[root@server1 ~]# systemctl enable psacct
Created symlink /etc/systemd/system/multi-user.target.wants/psacct.service → /usr/lib/systemd/system/psacct.service.
  1. Остановить сервис rsyslog и удалить его из автозагрузки.
[root@server1 ~]# systemctl disable rsyslog.service 
Removed /etc/systemd/system/syslog.service.
Removed /etc/systemd/system/multi-user.target.wants/rsyslog.service.
[root@server1 ~]# systemctl stop rsyslog.service 
  1. Перезагрузить server1 и проверить результат:
  • сервис psacct должен быть загружен и активен
  • сервис rsyslog не должен быть активен.
[root@server1 ~]# reboot 
Connection to server1 closed by remote host.
Connection to server1 closed.
[student@server1 ~]$ systemctl status psacct
● psacct.service - Kernel process accounting
   Loaded: loaded (/usr/lib/systemd/system/psacct.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2021-10-12 08:20:06 MSK; 8min ago
  Process: 754 ExecStart=/usr/sbin/accton /var/account/pacct (code=exited, status=0/SUCCESS)
  Process: 743 ExecStartPre=/usr/libexec/psacct/accton-create (code=exited, status=0/SUCCESS)
 Main PID: 754 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 11252)
   Memory: 0B
   CGroup: /system.slice/psacct.service

окт 12 08:20:01 server1 systemd[1]: Starting Kernel process accounting...
окт 12 08:20:02 server1 accton[754]: Turning on process accounting, file set to '/var/account/pacct'.
окт 12 08:20:06 server1 systemd[1]: Started Kernel process accounting.
[student@server1 ~]$ systemctl status rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:rsyslogd(8)
           https://www.rsyslog.com/doc/

вверх


Chapter10

Настройка сетевых интерфейсов.

  1. На server1 создать новое сетевое подключение с данными из таблицы:
    Параметр Значение
    Имя соединения lab
    IP адрес 192.168.10.110/24
    Gateway 192.168.10.9
    DNS 192.168.10.9

Настроить соединение на автоматическое подключение к сети. настройку сети необходимо выполнять в локальной консоли server1
важно не забыть указать ethernet ipv4.method manual, иначе соединение не активируется

[root@server1 ~]# nmcli connection add con-name lab type ethernet ipv4.method manual ipv4.address 192.168.10.110/24 ipv4.gateway 192.168.10.9 ipv4.dns 192.168.10.9 autoconnect yes
Соединение «lab» (2cdf6ccb-42a8-4176-8af1-65b220b6a95c) добавлено.
[root@server1 ~]# nmcli connection up lab
Соединение успешно активировано (адрес действующего D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/10)
  1. На server2 создать новое сетевое подключение с данными из таблицы:
    Параметр Значение
    Имя соединения lab
    IP адрес 192.168.10.111/24
    Gateway 192.168.10.9
    DNS 192.168.10.9

Настроить соединение на автоматическое подключение к сети. настройку сети необходимо выполнять в локальной консоли server1
важно не забыть указать ethernet ipv4.method manual, иначе соединение не активируется

[root@server2 ~]# nmcli connection add con-name lab type ethernet ipv4.method manual ipv4.addresses 192.168.10.111/24 ipv4.gateway 192.168.10.9 ipv4.dns 192.168.10.9 autoconnect yes
Соединение «lab» (d665308b-458b-4e04-8553-36299e5aac30) добавлено.
[root@server2 ~]# nmcli connection up lab
Соединение успешно активировано (адрес действующего D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4)
  1. Перезагрузить server1 и server2
[root@server1 ~]# reboot
[root@server2 ~]# reboot
  1. Проверить доступность обоих хостов с новыми адресами. server1
[student@server1 ~]$ ping -c 3 192.168.10.111
PING 192.168.10.111 (192.168.10.111) 56(84) bytes of data.
64 bytes from 192.168.10.111: icmp_seq=1 ttl=64 time=0.526 ms
64 bytes from 192.168.10.111: icmp_seq=2 ttl=64 time=0.463 ms
64 bytes from 192.168.10.111: icmp_seq=3 ttl=64 time=0.233 ms

--- 192.168.10.111 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2054ms
rtt min/avg/max/mdev = 0.233/0.407/0.526/0.127 ms

server2

[student@server2 ~]$ ping -c 3 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=64 time=0.252 ms
64 bytes from 192.168.10.110: icmp_seq=2 ttl=64 time=0.268 ms
64 bytes from 192.168.10.110: icmp_seq=3 ttl=64 time=0.326 ms

--- 192.168.10.110 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2041ms
rtt min/avg/max/mdev = 0.252/0.282/0.326/0.031 ms

вверх


Chapter11

Анализ и хранение логов.

  1. На server1 изменить часовой пояс на соответствующий городу Новосибирск.
[root@server1 ~]# timedatectl set-timezone Asia/Novosibirsk     
[root@server1 ~]# timedatectl show
Timezone=Asia/Novosibirsk
LocalRTC=no
CanNTP=yes
NTP=no
NTPSynchronized=no
TimeUSec=Thu 2021-10-07 16:33:57 +07
RTCTimeUSec=Tue 2021-10-12 16:12:45 +07
  1. Показать логи записанные за последние 30 минут.
[root@server1 ~]# journalctl --since -30min
  1. Создать файл /etc/rsyslog.d/auth-errors.conf, с соответствующей конфигурацией rsyslog, при которой в файл /var/log/auth-errors будут записываться все события связанные с проблемами аутентификации и безопасности. Используйте категорию authpriv и приоритет alert.
[root@server1 ~]# vim /etc/rsyslog.d/auth-errors.conf
authpriv.alert          /var/log/auth-errors
[root@server1 ~]# systemctl restart rsyslog.service

для проверки правильности настройки rsyslog, сформируем соответствующее сообщение

[student@server1 ~]$ logger -p authpriv.alert "TEST MESSAGE"
[student@server1 ~]$ sudo tail /var/log/auth-errors
Oct  7 16:44:19 server1 student[18929]: TEST MESSAGE

вверх


Chapter12

Реализация расширенных функций хранилища.

  1. На server1 установите пакеты stratisd и stratis-cli.
[root@server1 ~]# yum install -y stratisd stratis-cli
  1. С помощью systemctl активируйте и запустите сервис stratisd.
[root@server1 ~]# systemctl enable --now stratisd
[root@server1 ~]# systemctl status stratisd.service 
● stratisd.service - Stratis daemon
   Loaded: loaded (/usr/lib/systemd/system/stratisd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-10-07 11:25:23 MSK; 10s ago
     Docs: man:stratisd(8)
 Main PID: 48237 (stratisd)
    Tasks: 1 (limit: 11252)
   Memory: 1.2M
   CGroup: /system.slice/stratisd.service
           └─48237 /usr/libexec/stratisd --log-level debug

окт 07 11:25:23 server1 systemd[1]: Starting Stratis daemon...
окт 07 11:25:23 server1 stratisd[48237]: [2021-10-07T08:25:23Z INFO  libstratis::stratis::run] stratis daemon version 2>
окт 07 11:25:23 server1 stratisd[48237]: [2021-10-07T08:25:23Z INFO  libstratis::stratis::run] Using StratEngine
окт 07 11:25:23 server1 stratisd[48237]: [2021-10-07T08:25:23Z INFO  libstratis::engine::strat_engine::liminal::identif>
окт 07 11:25:23 server1 stratisd[48237]: [2021-10-07T08:25:23Z INFO  libstratis::stratis::dbus_support] D-Bus API is av>
окт 07 11:25:23 server1 systemd[1]: Started Stratis daemon.
  1. Создайте пул Stratis labpool состоящий из устройства /dev/sdb.
[root@server1 ~]# stratis pool create labpool /dev/sdb
  1. Увеличьте объем пула используя доступный в системе диск /dev/sdc.
[root@server1 ~]# stratis pool add-data labpool /dev/sdc
  1. Создайте на пуле файловую систему labfs. Смонтируйте её в директорию /labstratisvol. Не забудьте включить x-systemd.requires=stratisd.service в параметры монтирования в /etc/fstab.
[root@server1 ~]# stratis filesystem create labpool labfs
[root@server1 ~]# mkdir /labstratisvol
[root@server1 ~]# vim /etc/fstab 
/dev/stratis/labpool/labfs  /labstratisvol  xfs defaults,x-systemd.requires=stratisd.service    0 0
[root@server1 ~]# systemctl daemon-reload 
[root@server1 ~]# mount -a
[root@server1 ~]# mount | tail -1
/dev/mapper/stratis-1-87c72f38b1b543c0a86c885528170cee-thin-fs-1d58170dae514b62ba42afa6affbbb8e on /labstratisvol type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,sunit=2048,swidth=2048,noquota,x-systemd.requires=stratisd.service)
  1. Создайте снапшот labfs-snap файловой системы labfs.
[root@server1 ~]# stratis filesystem snapshot labpool labfs labfs-snap
  1. Создайте VDO раздел labvdo с файловой системой XFS, используя устройство /dev/sdd. Установите логический размер 50 Гб.
[root@server1 ~]# vdo create --name labvdo --device /dev/sdd --vdoLogicalSize 50G
Creating VDO labvdo
      The VDO volume can address 2 GB in 1 data slab.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO labvdo
Starting compression on VDO labvdo
VDO instance 0 volume is ready at /dev/mapper/labvdo
[root@server1 ~]# mkfs.xfs -K /dev/mapper/labvdo 
meta-data=/dev/mapper/labvdo     isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
  1. Смонтируйте labvdo в директорию /labvdovol. Не забудьте включить x-systemd.requires=vdo.service в параметры монтирования в /etc/fstab.
[root@server1 ~]# mkdir /labvdovol
[root@server1 ~]# lsblk -n -o uuid /dev/mapper/labvdo >> /etc/fstab
[root@server1 ~]# vim /etc/fstab 
UUID=f377ff48-09ea-4726-8748-d6c75adf08f3       /labvdovol      xfs     defaults,x-systemd.requires=vdo.service 0 0
[root@server1 ~]# mount -a
[root@server1 ~]# mount | tail -1
/dev/mapper/labvdo on /labvdovol type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota,x-systemd.requires=vdo.service)
  1. Перезагрузите server1 и убедитесь, что все созданные разделы корректно смонтированы. смонтированные разделы
[student@server1 ~]$ mount | grep /labstratisvol
/dev/mapper/stratis-1-87c72f38b1b543c0a86c885528170cee-thin-fs-1d58170dae514b62ba42afa6affbbb8e on /labstratisvol type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,sunit=2048,swidth=2048,noquota,x-systemd.requires=stratisd.service)
[student@server1 ~]$ mount | grep /labvdo
/dev/mapper/labvdo on /labvdovol type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota,x-systemd.requires=vdo.service)

детали stratis

[root@server1 ~]# stratis pool list 
Name                     Total Physical   Properties
labpool   10 GiB / 41.63 MiB / 9.96 GiB      ~Ca,~Cr  
[root@server1 ~]# stratis blockdev list labpool 
Pool Name   Device Node   Physical Size   Tier
labpool     /dev/sdb              5 GiB   Data
labpool     /dev/sdc              5 GiB   Data     
[root@server1 ~]# stratis filesystem list labpool 
Pool Name   Name         Used      Created             Device                            UUID                            
labpool     labfs        546 MiB   Oct 07 2021 11:49   /dev/stratis/labpool/labfs        1d58170dae514b62ba42afa6affbbb8e
labpool     labfs-snap   546 MiB   Oct 07 2021 12:17   /dev/stratis/labpool/labfs-snap   cacb462cbc034b0582381d687ef53fcf

детали VDO - размер раздела 50 Гб

[student@server1 ~]$ lsblk /dev/mapper/labvdo 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
labvdo 253:8    0  50G  0 vdo  /labvdovol

вверх


Chapter14

Доступ к NFS (Network-Attached Storage).

  1. На server1 настроить постоянное монтирование удалённой NFS папки сервера server2 /shares/nfs в локальную директорию /mnt/nfs.
[root@server1 ~]# mkdir /mnt/nfs
[root@server1 ~]# showmount -e server2
Export list for server2:
/shares/autofs *
/shares/nfs    *
[root@server1 ~]# vim /etc/fstab 

вставим строку

server2:/shares/nfs     /mnt/nfs          nfs     rw,sync         0 0

проверим возможность монтирования

[root@server1 ~]# mount -a
[root@server1 ~]# mount | tail -1
server2:/shares/nfs on /mnt/nfs type nfs4 (rw,relatime,sync,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.10,local_lock=none,addr=192.168.10.11)
  1. На server1 настроить монтирование по запросу (automount) удалённой NFS папки сервера server2 /shares/autofs в локальную директорию /labshares/autofs.
[root@server1 ~]# yum install -y autofs
[root@server1 ~]# systemctl enable --now autofs
[root@server1 ~]# mkdir /labshares

создадим карту

[root@server1 ~]# vim /etc/auto.master.d/labshares.autofs

вставим строку

/labshares      /etc/auto.demo

отредактируем монтирование

[root@server1 ~]# vim /etc/auto.demo

вставим строку

autofs          -rw,sync        server2:/shares/autofs

проверим автомонтирование при обращении к папке

[root@server1 ~]# systemctl reload autofs
[root@server1 ~]# ls -l /labshares/autofs
итого 4
-rw-r--r--. 1 root root 36 окт  9  2021 welcome.txt
  1. Перезагрузить server1, убедиться, что сетевые папки автоматически смонтированы в соответствующие локальные директории.
[root@server1 ~]# reboot

проверим монтирование указанное в fstab

[root@server1 ~]# ls -l /mnt/nfs/
итого 4
-rw-r--r--. 1 root root 33 окт  9 04:43 welcome.txt
[root@server1 ~]# cat /mnt/nfs/welcome.txt 
Welcome to NFS share on server2!

проверим монтирование autofs

[student@server1 ~]$ ls -l /labshares/autofs
итого 4
-rw-r--r--. 1 root root 36 окт  9 04:44 welcome.txt
[student@server1 ~]$ cat /labshares/autofs/welcome.txt 
Welcome to Autofs share on server2!

вверх