rhcsa_labs/rh199_(rapid)/labs_solutions.md

1165 lines
54 KiB
Markdown
Raw Normal View History

2021-10-09 15:38:08 +03:00
#### Лабораторные работы по курсу RH199 (RHCSA)
***
2021-10-10 17:16:06 +03:00
###### top
2021-10-10 17:10:06 +03:00
2021-10-10 17:16:06 +03:00
[Подготовка виртуальных хостов для выполнения лабораторных работ.](#stand)
*лабораторные работы начинаются с 3-й главы*
2021-10-10 17:10:06 +03:00
3. [Управление локальными пользователями и группами.](#chapter3)
4. [Управление доступом к файлам.](#chapter4)
5. [Настройка SELinux.](#chapter5)
6. [Настройка производительности системы.](#chapter6)
2021-10-11 13:58:45 +03:00
7. [Установка и обновление программного обеспечения.](#chapter7)
2021-10-12 09:55:30 +03:00
8. [Управление локальным хранилищем.](#chapter8)
9. [Настройка сервисов и управление загрузкой процессов.](#chapter9)
10. [Настройка сетевых интерфейсов.](#chapter10)
2021-10-12 12:31:21 +03:00
11. [Анализ и хранение логов.](#chapter11)
2021-10-12 15:10:59 +03:00
12. [Реализация расширенных функций хранилища.](#chapter12)
2021-10-13 14:57:44 +03:00
13. [Планирование будущих задач. - Лабы нет.](#chapter13)
14. [Доступ к NFS (Network-Attached Storage).](#chapter14)
2021-10-15 15:30:59 +03:00
15. [Управление сетевой безопасностью.](#chapter15)
2021-10-10 17:10:06 +03:00
16. [](#chapter16)
17. [](#chapter17)
***
###### stand
**Подготовка виртуальных хостов для выполнения лабораторных работ.**
2021-10-09 16:27:29 +03:00
2021-10-10 17:10:06 +03:00
*Для выполнения лабораторных работ потребуется настроить 2 виртуальных хоста*
2021-10-09 16:27:29 +03:00
server1 - 192.168.10.10
user: student
password: student
root password: redhat
2021-10-12 15:10:59 +03:00
```bash
[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
```
2021-10-09 16:27:29 +03:00
server2 - 192.168.10.11
user: student
password: student
root password: redhat
Дополнительно необходимо:
*SERVER1*
2021-10-10 17:10:06 +03:00
Перечень необходимых команд root (*стоит это оформить в виде скрипта*)
2021-10-09 16:27:29 +03:00
```bash
2021-10-10 17:10:06 +03:00
useradd student -G wheel
echo student | passwd student --stdin
2021-10-15 15:30:59 +03:00
2021-10-10 17:10:06 +03:00
echo '192.168.10.11 server2' >> /etc/hosts
2021-10-15 15:30:59 +03:00
2021-10-11 13:58:45 +03:00
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
2021-10-10 17:10:06 +03:00
2021-10-15 15:30:59 +03:00
yum install -y httpd
echo 'Welcome to WEB on SERVER1' > /var/www/html/index.html
mkdir /var/www/html2
echo 'Welcome to VHOST on SERVER1' > /var/www/html2/index.html
cat <<EOT >> /etc/httpd/conf.d/vhost.conf
Listen 1001
NameVirtualHost *:1001
<VirtualHost *:1001>
DocumentRoot /var/www/html2
</VirtualHost>
EOT
firewall-cmd --add-service=http
firewall-cmd --add-service=http --permanent
systemctl enable --now httpd
useradd poduser
echo redhat | passwd poduser --stdin
2021-10-09 16:27:29 +03:00
```
2021-10-10 17:10:06 +03:00
*SERVER2*
2021-10-09 16:45:46 +03:00
Перечень необходимых команд root (*стоит это оформить в виде скрипта*)
```bash
2021-10-10 17:10:06 +03:00
useradd student -G wheel
echo student | passwd student --stdin
2021-10-13 14:57:44 +03:00
2021-10-10 17:10:06 +03:00
echo '192.168.10.10 server1' >> /etc/hosts
2021-10-13 14:57:44 +03:00
2021-10-09 16:45:46 +03:00
yum install httpd -y
2021-10-10 17:10:06 +03:00
mkdir /webserver
sed -i 's/\/var\/www\/html/\/webserver/g' /etc/httpd/conf/httpd.conf
2021-10-09 16:45:46 +03:00
systemctl enable --now httpd
2021-10-10 17:10:06 +03:00
echo "This is the html file for the SELinux final lab on SERVER2." > /webserver/lab.html
2021-10-09 16:45:46 +03:00
firewall-cmd --add-service=http
firewall-cmd --add-service=http --permanent
2021-10-13 14:57:44 +03:00
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
2021-10-09 16:45:46 +03:00
```
2021-10-12 09:59:21 +03:00
**После настройки ВМ необходимо сохранить состояние - создать снапшот и после выполнения каждой лабораторной работы возвращаться к исходному состоянию.**
2021-10-09 16:27:29 +03:00
***
2021-10-09 15:38:08 +03:00
###### Chapter3
**Управление локальными пользователями и группами.**
1. Подключиться по ssh к server1
```bash
da2001@Zenmint ~ $ ssh student@server1
```
2. У всех вновь создаваемых пользователей пароль необходимо изменять каждые 30 дней.
```bash
[student@server1 ~]$ sudo -i
[sudo] пароль для student:
[root@server1 ~]# vim /etc/login.defs
```
*необходимо изменить строку*
```bash
PASS_MAX_DAYS 30
```
3. Создать новую группу `consultants` с GID 35000.
```bash
[root@server1 ~]# groupadd -g 35000 consultants
```
2021-10-10 17:14:20 +03:00
4. Настроить административные права членов группы `consultants`, чтобы они могли выполнять любые команды от любых пользователей.
2021-10-09 15:38:08 +03:00
*best practices RedHat не редактировать существующие системные файлы, а создавать свои в соответствующих директориях.
Создадим файл vim `/etc/sudoers.d/consultants`*
```bash
[root@server1 ~]# vim /etc/sudoers.d/consultants
```
*добавить строку*
```bash
%consultants ALL=(ALL) ALL
```
5. Создать пользователей `consultant1`, `consultant2`, и `consultant3` и задать им в качестве дополнительной группы `consultants`.
```bash
[root@server1 ~]# useradd -G consultants consultant1
[root@server1 ~]# useradd -G consultants consultant2
[root@server1 ~]# useradd -G consultants consultant3
```
2021-10-10 17:14:20 +03:00
6. Учётные записи пользователей `consultant1`, `consultant2`, и `consultant3` настроить таким образом, чтобы срок их действия истекал через 90 дней с текущей даты.
2021-10-09 15:38:08 +03:00
*узнать какая дата будет через 90 дней от текущей даты можно с помощью команды*
```bash
[root@server1 ~]# date -d "+90 days" +%F
```
*ограничить срок действия пароля*
```bash
[root@server1 ~]# chage -E 2022-01-06 consultant1
[root@server1 ~]# chage -E 2022-01-06 consultant2
[root@server1 ~]# chage -E 2022-01-06 consultant3
```
7. Изменить политику паролей для учетной записи `consultant2`, чтобы нужно было менять пароль каждые 15 дней.
```bash
[root@server1 ~]# chage -M 15 consultant2
```
8. Пользователи `consultant1`, `consultant2`, и `consultant3` при первом входе в систему должны изменить свои пароли в принудительном порядке.
```bash
[root@server1 ~]# chage -d 0 consultant1
[root@server1 ~]# chage -d 0 consultant2
[root@server1 ~]# chage -d 0 consultant3
```
2021-10-10 17:14:20 +03:00
**Проверка**
2021-10-09 15:38:08 +03:00
Наличие группы `consultants`, правильность её GID и члены группы
```bash
[student@server1 ~]$ cat /etc/group | grep consultants
consultants:x:35000:consultant1,consultant2,consultant3
```
Срок действия паролей, учётной записи и требование изменить пароль при первом входе в систему
```bash
[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`
```bash
[root@server1 ~]# cat /etc/sudoers.d/consultants
%consultants ALL=(ALL) ALL
```
[вверх](#top)
***
###### Chapter4
**Управление доступом к файлам.**
1. На server1 создать директорию `/home/techdocs`.
```bash
[student@server1 ~]$ sudo -i
[sudo] пароль для student:
[root@server1 ~]# mkdir /home/techdocs
```
2. Создать группу `techdocs`, изменить группу владельца директории `/home/techdocs` на группу `techdocs`.
```bash
[root@server1 ~]# groupadd techdocs
[root@server1 ~]# chgrp techdocs /home/techdocs/
```
3. Создать пользователей `tech1`, `tech2` и добавить их в группу `techdocs`.
```bash
[root@server1 ~]# useradd -G techdocs tech1
[root@server1 ~]# useradd -G techdocs tech2
```
4. Убедиться, что пользователи `tech1`, `tech2` не могут создавать файлы в папке `/home/techdocs`.
```bash
[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 ~]$ выход
```
5. Для директории `/home/techdocs` установить следующие разрешения: setgid (2), чтение/запись/исполнение для владельца и группы (7), для остальных нет никаких прав (0).
```bash
[root@server1 ~]# chmod 2770 /home/techdocs/
```
6. Проверить, что разрешения установлены корректно.
```bash
[root@server1 ~]# ls -ld /home/techdocs/
drwxrws---. 2 root techdocs 6 окт 9 03:36 /home/techdocs/
```
7. Проверить, что члены группы `techdocs` (`tech1`, `tech2`) теперь могут создавать и редактировать файлы в директории `/home/techdocs`, а другие пользователи не могут.
```bash
[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: Отказано в доступе
```
2021-10-10 17:14:20 +03:00
8. Изменить глобальный скрипт загрузки. Обычные пользователи должны иметь umask при которой другие пользователи не смогут просматривать и изменять новые файлы и каталоги.
2021-10-09 15:38:08 +03:00
*создадим новый файл `/etc/profile.d/local-umask.sh` и скопируем в него блок, который имеет отношение к umask из файла `/etc/profile`, значение umask в первом упоминании заменим на 007.*
**Важно обратить внимание - название файла обязательно должно иметь расширение `.sh`, т.к. только такие файлы проверяются.**
```bash
[root@server1 ~]# vim /etc/profile.d/local-umask.sh
```
```bash
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 007
else
umask 022
fi
```
2021-10-10 17:14:20 +03:00
**Проверка**
2021-10-09 15:38:08 +03:00
*проверим только последний пункт, т.к. все предыдущие проверяются в процессе выполнения*
*назначим пользователю `student` временную маску 007, создадим новый файл и проверим его разрешения.*
```bash
[student@server1 ~]$ umask 007
[student@server1 ~]$ touch file1
[student@server1 ~]$ ls -l
итого 0
-rw-rw----. 1 student student 0 окт 9 04:00 file1
```
*остальные не имеют никаких разрешений на файл - то что было нужно в задании.*
[вверх](#top)
***
2021-10-10 17:10:06 +03:00
###### Chapter5
**Настройка SELinux.**
1. На server1 запустите браузер и введите адрес `http://server2/lab.html`. Отобразится сообщение `Forbidden You don't have permission to access this resource.`
2021-10-12 12:31:21 +03:00
2021-10-10 17:10:06 +03:00
2. Изучите и определите проблему SELinux, которая не позволяет Apache обслуживать веб-контент.
```bash
[root@server2 ~]# less /var/log/messages
```
*поиском найти уведомления SELinux `/sealert`*
*скопировать и ввести первое упоминание вида `sealert -l 8dcf4fc2-54e6-448d-91c6-ac047615927f`*
2021-10-10 17:17:55 +03:00
*в сообщении будет предложено решение проблемы*
2021-10-10 17:10:06 +03:00
```bash
[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
... дальнейший вывод отброшен ...
```
3. Отобразите тип контекста SELinux для стандартной и запрашиваемой директории web сервера.
```bash
[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/
```
2021-10-10 17:20:12 +03:00
4. Устраните проблему SELinux, из-за которой Apache не может обслуживать веб-контент.
*как видно из предыдущего пункта, в новой папке web сервера невено установлен тип контекста SELinux. Необходимо его изменить.*
2021-10-10 17:10:06 +03:00
```bash
[root@server2 ~]# semanage fcontext -a -t httpd_sys_content_t '/webserver(/.*)?'
[root@server2 ~]# restorecon -vR /webserver
```
2021-10-12 12:31:21 +03:00
5. Убедитесь, что проблема SELinux решена и Apache может обслуживать веб-контент.
2021-10-10 17:10:06 +03:00
```bash
[root@server2 ~]# curl http://server2/lab.html
This is the html file for the SELinux final lab on SERVER2.
```
[вверх](#top)
***
###### Chapter6
**Настройка производительности системы.**
1. Измените текущий профиль для server1 на `balanced`.
```bash
[root@server1 ~]# tuned-adm profile balanced
```
2021-10-12 12:31:21 +03:00
2021-10-10 17:10:06 +03:00
2. Два процесса на сервере сильно загружают процессор. Измените приоритет этих процессов на значение 10.
*для запуска тестовых процессов можно использовать такие команды*
```bash
cat /dev/zero >> /dev/null &
cat /dev/zero >> /dev/null &
```
*отобразим процессы с сортировкой по загрузке процессора и выведем 2 последних*
*убедимся, что это процессы, которые сформированы нами*
```bash
[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
```
*для изменения приоритета выполним*
```bash
[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
```
[вверх](#top)
***
2021-10-11 13:58:45 +03:00
###### Chapter7
**Установка и обновление программного обеспечения.**
*Все действия необходимо выполнять на server1*
1. Проверить, находится ли система в активированном состоянии. Если система активирована, необходимо отменить регистрацию и удалить системный репозиторий, который устанавливается при регистрации.
```bash
[root@server1 ~]# subscription-manager status
```
*если окажется, что система находится в активированном состоянии, необходимо отменить регистрацию и удалить настроенные репозитории*
```bash
[root@server1 ~]# subscription-manager unregister
[root@server1 ~]# ls /etc/yum.repos.d/
redhat.repo
[root@server1 ~]# rm /etc/yum.repos.d/redhat.repo
```
2. Используя полный установочный ISO образ, настроить локальный репозиторий с BaseOS и APPSteram. Проверку GPG не использовать.
*монтирование ISO в локальную директорию*
```bash
[root@server1 ~]# echo '/dev/sr0 /iso iso9660 ro 0 0' >> /etc/fstab
```
*настройка локального репозитория*
```bash
[root@server1 ~]# vim /etc/yum.repos.d/iso.repo
```
```bash
[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
```
*проверка установленного репозитория*
```bash
[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
```
3. Установить пакет xsane-gimp и модуль PostgreSQL client версии 12.
*установка xsane-gimp*
```bash
[root@server1 ~]# yum install -y xsane-gimp
```
*установка модуля PostgreSQL client версии 12*
```bash
[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
```
4. Установить пакет `htop-3.0.5-1.el8.x86_64.rpm` из директории `/home/student`.
```bash
[root@server1 ~]# yum localinstall /home/student/htop-3.0.5-1.el8.x86_64.rpm
```
2021-10-12 12:31:21 +03:00
2021-10-11 13:58:45 +03:00
5. Выполнить проверку установленных пакетов и модулей.
```bash
[root@server1 ~]# yum list installed | grep xsane-gimp
xsane-gimp.x86_64 0.999-30.el8 @AppStream
[root@server1 ~]# yum module list | grep postgresql
2021-10-11 14:02:58 +03:00
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
2021-10-11 13:58:45 +03:00
postgresql 13 client, server [d] PostgreSQL server and client module
```
*в строке 12 версии отмечено [e]nabled, [i]nstalled*
```bash
[root@server1 ~]# rpm -qa | grep htop
htop-3.0.5-1.el8.x86_64
```
[вверх](#top)
***
2021-10-12 09:55:30 +03:00
###### Chapter8
**Управление локальным хранилищем.**
1. На server1 доступны 2 новых диска. На первом диске создайте раздел GPT объемом 2 Гб с именем `backup`.
```bash
[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
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
2. Отформатируйте созданный раздел в XFS и создайте постоянную точку монтирования в директории `/backup`.
```bash
[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
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
3. На этом же диске создайте два дополнительных раздела по 512 Мб с именами `swap1` и `swap2` соответственно. Укажите корректную метку для этих разделов.
```bash
[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 подкачка
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
4. Инициализируйте разделы в качестве разделов подкачки, они должны быть активны при загрузке системы. Предусмотрите более высокий приоритет использования раздела `swap2` перед `swap1`.
```bash
[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
```
*добавить строки*
```bash
UUID=a905e327-802c-41c0-89ca-500d542c9650 swap swap pri=2 0 0
UUID=0c267fd8-c8f3-4cc3-9c2c-54fdefc13f2f swap swap pri=1 0 0
```
*активировать разделы подкачки*
```bash
[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
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
5. Проверьте свою работу: перезагрузите `server1`, в директории `/backup` должен быть смонтирован XFS раздел размером 2 Гб, а также 2 раздела подкачки общим объемом 1 Гб с более высоким приоритетом использования у раздела `swap2`.
```bash
[root@server1 ~]# reboot
Connection to server1 closed by remote host.
Connection to server1 closed.
```
*смонтированный раздел `/backup`*
```bash
[student@server1 ~]$ mount | grep backup
/dev/sdc1 on /backup type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
```
*подкачка*
```bash
[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
```
[вверх](#top)
***
###### Chapter9
**Настройка сервисов и управление загрузкой процессов.**
1. На server1 запустить сервис `psacct`.
```bash
[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.
```
2. Настроить автозагрузку сервиса `psacct`.
```bash
[root@server1 ~]# systemctl enable psacct
Created symlink /etc/systemd/system/multi-user.target.wants/psacct.service → /usr/lib/systemd/system/psacct.service.
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
3. Остановить сервис `rsyslog` и удалить его из автозагрузки.
```bash
[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
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
4. Перезагрузить server1 и проверить результат:
- сервис `psacct` должен быть загружен и активен
- сервис `rsyslog` не должен быть активен.
```bash
[root@server1 ~]# reboot
Connection to server1 closed by remote host.
Connection to server1 closed.
```
```bash
[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/
```
[вверх](#top)
***
###### Chapter10
**Настройка сетевых интерфейсов.**
1. На server1 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.110/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
2021-10-12 10:01:35 +03:00
2021-10-12 09:55:30 +03:00
Настроить соединение на автоматическое подключение к сети.
*настройку сети необходимо выполнять в локальной консоли server1*
**важно не забыть указать ethernet ipv4.method manual, иначе соединение не активируется**
```bash
[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)
```
2. На server2 создать новое сетевое подключение с данными из таблицы:
Параметр | Значение
:------ | :------
Имя соединения | lab
IP адрес | 192.168.10.111/24
Gateway | 192.168.10.9
DNS | 192.168.10.9
2021-10-12 10:01:35 +03:00
2021-10-12 09:55:30 +03:00
Настроить соединение на автоматическое подключение к сети.
*настройку сети необходимо выполнять в локальной консоли server1*
**важно не забыть указать ethernet ipv4.method manual, иначе соединение не активируется**
```bash
[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)
```
3. Перезагрузить server1 и server2
```bash
[root@server1 ~]# reboot
```
```bash
[root@server2 ~]# reboot
```
2021-10-12 12:31:21 +03:00
2021-10-12 09:55:30 +03:00
4. Проверить доступность обоих хостов с новыми адресами.
*server1*
```bash
[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*
```bash
[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
```
[вверх](#top)
***
2021-10-12 12:31:21 +03:00
###### Chapter11
**Анализ и хранение логов.**
1. На server1 изменить часовой пояс на соответствующий городу Новосибирск.
```bash
[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
```
2. Показать логи записанные за последние 30 минут.
```bash
[root@server1 ~]# journalctl --since -30min
```
3. Создать файл `/etc/rsyslog.d/auth-errors.conf`, с соответствующей конфигурацией rsyslog, при которой в файл `/var/log/auth-errors` будут записываться все события связанные с проблемами аутентификации и безопасности. Используйте категорию `authpriv` и приоритет `alert`.
```bash
[root@server1 ~]# vim /etc/rsyslog.d/auth-errors.conf
```
```bash
authpriv.alert /var/log/auth-errors
```
```bash
[root@server1 ~]# systemctl restart rsyslog.service
```
*для проверки правильности настройки rsyslog, сформируем соответствующее сообщение*
```bash
[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
```
[вверх](#top)
***
2021-10-12 15:10:59 +03:00
###### Chapter12
**Реализация расширенных функций хранилища.**
1. На server1 установите пакеты `stratisd` и `stratis-cli`.
```bash
[root@server1 ~]# yum install -y stratisd stratis-cli
```
2. С помощью `systemctl` активируйте и запустите сервис `stratisd`.
```bash
[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.
```
3. Создайте пул Stratis `labpool` состоящий из устройства `/dev/sdb`.
```bash
[root@server1 ~]# stratis pool create labpool /dev/sdb
```
4. Увеличьте объем пула используя доступный в системе диск `/dev/sdc`.
```bash
[root@server1 ~]# stratis pool add-data labpool /dev/sdc
```
5. Создайте на пуле файловую систему `labfs`. Смонтируйте её в директорию `/labstratisvol`. Не забудьте включить `x-systemd.requires=stratisd.service` в параметры монтирования в `/etc/fstab`.
```bash
[root@server1 ~]# stratis filesystem create labpool labfs
[root@server1 ~]# mkdir /labstratisvol
[root@server1 ~]# vim /etc/fstab
```
```bash
/dev/stratis/labpool/labfs /labstratisvol xfs defaults,x-systemd.requires=stratisd.service 0 0
```
```bash
[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)
```
6. Создайте снапшот `labfs-snap` файловой системы `labfs`.
```bash
[root@server1 ~]# stratis filesystem snapshot labpool labfs labfs-snap
```
7. Создайте VDO раздел `labvdo` с файловой системой XFS, используя устройство `/dev/sdd`. Установите логический размер 50 Гб.
```bash
[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.
```
8. Смонтируйте `labvdo` в директорию `/labvdovol`. Не забудьте включить `x-systemd.requires=vdo.service` в параметры монтирования в `/etc/fstab`.
```bash
[root@server1 ~]# mkdir /labvdovol
[root@server1 ~]# lsblk -n -o uuid /dev/mapper/labvdo >> /etc/fstab
[root@server1 ~]# vim /etc/fstab
```
```bash
UUID=f377ff48-09ea-4726-8748-d6c75adf08f3 /labvdovol xfs defaults,x-systemd.requires=vdo.service 0 0
```
```bash
[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)
```
9. Перезагрузите server1 и убедитесь, что все созданные разделы корректно смонтированы.
*смонтированные разделы*
```bash
[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*
```bash
[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 Гб*
```bash
[student@server1 ~]$ lsblk /dev/mapper/labvdo
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
labvdo 253:8 0 50G 0 vdo /labvdovol
```
[вверх](#top)
***
2021-10-13 14:57:44 +03:00
###### Chapter14
**Доступ к NFS (Network-Attached Storage).**
1. На server1 настроить постоянное монтирование удалённой NFS папки сервера server2 `/shares/nfs` в локальную директорию `/mnt/nfs`.
```bash
[root@server1 ~]# mkdir /mnt/nfs
[root@server1 ~]# showmount -e server2
Export list for server2:
/shares/autofs *
/shares/nfs *
[root@server1 ~]# vim /etc/fstab
```
*вставим строку*
```bash
server2:/shares/nfs /mnt/nfs nfs rw,sync 0 0
```
*проверим возможность монтирования*
```bash
[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)
```
2. На server1 настроить монтирование по запросу (automount) удалённой NFS папки сервера server2 `/shares/autofs` в локальную директорию `/labshares/autofs`.
```bash
[root@server1 ~]# yum install -y autofs
[root@server1 ~]# systemctl enable --now autofs
[root@server1 ~]# mkdir /labshares
```
*создадим карту*
```bash
[root@server1 ~]# vim /etc/auto.master.d/labshares.autofs
```
*вставим строку*
```bash
/labshares /etc/auto.demo
```
*отредактируем монтирование*
```bash
[root@server1 ~]# vim /etc/auto.demo
```
*вставим строку*
```bash
autofs -rw,sync server2:/shares/autofs
```
*проверим автомонтирование при обращении к папке*
```bash
[root@server1 ~]# systemctl reload autofs
[root@server1 ~]# ls -l /labshares/autofs
итого 4
-rw-r--r--. 1 root root 36 окт 9 2021 welcome.txt
```
3. Перезагрузить server1, убедиться, что сетевые папки автоматически смонтированы в соответствующие локальные директории.
```bash
[root@server1 ~]# reboot
```
*проверим монтирование указанное в fstab*
```bash
[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*
```bash
[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!
```
[вверх](#top)
***
2021-10-15 15:30:59 +03:00
###### Chapter15
**Управление сетевой безопасностью.**
Ваша компания решила использовать новое web-приложение. Это приложение прослушивает порты 80/TCP и 1001/TCP. Порт 22/TCP для доступа по SSH также должен быть доступен. Все изменения, которые будут сделаны, должны быть доступны после перезагрузки.
*Все настройки этой работы необходимо производить на server1, доступ проверять с server2.*
1. С server2 проверить доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
```bash
[student@server2 ~]$ curl http://server1/index.html
curl: (7) Failed to connect to server1 port 80: В соединении отказано
[student@server2 ~]$ curl http://server1:1001/index.html
curl: (7) Failed to connect to server1 port 1001: Нет маршрута до узла
```
2. Подключитесь к server1, чтобы разобраться в причинах ограничения доступа.
*Проверим запущен ли Apache*
```bash
[root@server1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2021-10-15 12:49:45 MSK; 7min ago
Docs: man:httpd.service(8)
Process: 10416 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 10416 (code=exited, status=1/FAILURE)
Status: "Reading configuration..."
окт 15 12:49:45 server1 systemd[1]: Starting The Apache HTTP Server...
окт 15 12:49:45 server1 httpd[10416]: AH00548: NameVirtualHost has no effect and will be removed in the next release /e>
окт 15 12:49:45 server1 httpd[10416]: AH00558: httpd: Could not reliably determine the server's fully qualified domain >
окт 15 12:49:45 server1 httpd[10416]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:1001
окт 15 12:49:45 server1 httpd[10416]: (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:1001
окт 15 12:49:45 server1 httpd[10416]: no listening sockets available, shutting down
окт 15 12:49:45 server1 httpd[10416]: AH00015: Unable to open logs
окт 15 12:49:45 server1 systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
окт 15 12:49:45 server1 systemd[1]: httpd.service: Failed with result 'exit-code'.
окт 15 12:49:45 server1 systemd[1]: Failed to start The Apache HTTP Server.
```
*из вывода видно, что Apache не смог прослушать порт 1001*
*проверим логи SELinux, возможно этот порт блокируется*
```bash
[root@server1 ~]# sealert -a /var/log/audit/audit.log
100% done
found 1 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------
SELinux запрещает /usr/sbin/httpd доступ name_bind к tcp_socket port 1001.
***** Модуль bind_ports предлагает (точность 99.5) *************************
Если вы хотите разрешить /usr/sbin/httpd для привязки к сетевому порту $PORT_ЧИСЛО
То you need to modify the port type.
Сделать
# semanage port -a -t PORT_TYPE -p tcp 1001
где PORT_TYPE может принимать значения: http_cache_port_t, http_port_t, jboss_management_port_t, jboss_messaging_port_t, ntop_port_t, puppet_port_t.
-- дальнейший вывод опущен --
```
*проверим разрешённые SELinux порты для WEB сервера*
```bash
[root@server1 ~]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
```
3. Настройте SELinux для доступа сервису httpd прослушивать порт 1001/TCP.
*добавим порт 1001 в SELinux, как было предложено в выводе команды `sealert -a /var/log/audit/audit.log`*
```bash
[root@server1 ~]# semanage port -a -t http_port_t -p tcp 1001
```
*убедимся, что порт добавлен*
```bash
[root@server1 ~]# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 1001, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
```
*перезапустим Apache*
```bash
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-10-15 13:08:01 MSK; 8s ago
Docs: man:httpd.service(8)
Main PID: 39142 (httpd)
Status: "Started, listening on: port 1001, port 80"
Tasks: 213 (limit: 11252)
Memory: 22.2M
CGroup: /system.slice/httpd.service
├─39142 /usr/sbin/httpd -DFOREGROUND
├─39148 /usr/sbin/httpd -DFOREGROUND
├─39149 /usr/sbin/httpd -DFOREGROUND
├─39150 /usr/sbin/httpd -DFOREGROUND
└─39151 /usr/sbin/httpd -DFOREGROUND
окт 15 13:08:01 server1 systemd[1]: Starting The Apache HTTP Server...
окт 15 13:08:01 server1 httpd[39142]: AH00548: NameVirtualHost has no effect and will be removed in the next release /e>
окт 15 13:08:01 server1 httpd[39142]: AH00558: httpd: Could not reliably determine the server's fully qualified domain >
окт 15 13:08:01 server1 systemd[1]: Started The Apache HTTP Server.
окт 15 13:08:06 server1 httpd[39142]: Server configured, listening on: port 1001, port 80
```
4. С server2 проверить доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
```bash
[student@server2 ~]$ curl http://server1/index.html
Welcome to WEB on SERVER1
[student@server2 ~]$ curl http://server1:1001/index.html
curl: (7) Failed to connect to server1 port 1001: Нет маршрута до узла
```
*сервер стал отвечать на стандартном порту (80), но порт 1001, по-прежнему недоступен*
5. Подключитесь к server1, чтобы определить верные ли порты указаны в межсетевом экране (firewall).
```bash
[root@server1 ~]# firewall-cmd --list-ports
[root@server1 ~]#
```
*из вывода понятно, что никакие порты не разрешены*
6. Добавьте порт 1001/TCP в постоянную конфигурацию зоны public.
```bash
[root@server1 ~]# firewall-cmd --zone=public --add-port=1001/tcp
success
[root@server1 ~]# firewall-cmd --list-ports
1001/tcp
[root@server1 ~]#
```
7. Проверьте доступ к серверу `http://server1` и виртуальному хосту `http://server1:1001`.
```bash
[student@server2 ~]$ curl http://server1/index.html
Welcome to WEB on SERVER1
[student@server2 ~]$ curl http://server1:1001/index.html
Welcome to VHOST on SERVER1
```
[вверх](#top)
***