Ошибка TFTP 403, как предоставить доступ?

Добрый день, пробую установить с помощью PXE систему REDos 7.3.3 (Centos7)
Получаю такую ошибку:
sealert с ошибкой

sudo sealert -l 692bdfb1-87f1-47e5-a5cc-23fc0f206225
SELinux запрещает /usr/sbin/httpd доступ getattr к файл /var/lib/tftpboot/images/REDOS-7.3.3-20230815.0/LiveOS/squashfs.img.

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

Если вы хотите исправить метку.
/var/lib/tftpboot/images/REDOS-7.3.3-20230815.0/LiveOS/squashfs.img по умолчанию должен быть cobbler_var_lib_t.
То вы можете запустить restorecon. Возможно, попытка доступа была остановлена ​​из-за недостаточных разрешений для доступа к родительскому каталогу, и в этом случае попытайтесь соответствующим образом изменить следующую команду.
Сделать
# /sbin/restorecon -v /var/lib/tftpboot/images/REDOS-7.3.3-20230815.0/LiveOS/squashfs.img

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

Если вы считаете, что httpd должно быть разрешено getattr доступ к squashfs.img file по умолчанию.
То рекомендуется создать отчет об ошибке.
Чтобы разрешить доступ, можно создать локальный модуль политики.
Сделать
разрешить этот доступ сейчас, выполнив:
     # ausearch -c 'httpd' --raw | audit2allow -M my-httpd
     # semodule -X 300 -i my-httpd.pp


Дополнительные сведения:
Исходный контекст             system_u:system_r:httpd_t:s0
Целевой контекст              unconfined_u:object_r:tftpdir_rw_t:s0
Целевые объекты               /var/lib/tftpboot/images/REDOS-7.3.3-20230815.0/Li
                              veOS/squashfs.img [ file ]
Источник                      httpd
Путь к источнику              /usr/sbin/httpd
Порт                          <Unknown>
Узел                          pxe-server.office-vm002.nm
Исходные пакеты RPM           httpd-core-2.4.56-2.el7.x86_64
Целевые пакеты RPM
Политика SELinux для RPM      selinux-policy-targeted-3.14.5-50.el7.noarch
Локальная политика для RPM    selinux-policy-targeted-3.14.5-50.el7.noarch
SELinux активен               True
Тип регламента                targeted
Режим                         Permissive
Имя узла                      pxe-server.office-vm002.nm
Платформа                     Linux pxe-server.office-vm002.nm 5.15.72-1.el7.3.x86_64
                              #1 SMP Thu Oct 6 08:28:24 MSK 2022 x86_64 x86_64
Счетчик уведомлений           47
Впервые обнаружено            2023-09-20 10:12:30 MSK
В последний раз               2024-06-03 11:46:42 MSK
Локальный ID                  692bdfb1-87f1-47e5-a5cc-23fc0f206225

Построчный вывод сообщений аудита
type=AVC msg=audit(1717404402.364:2725): avc:  denied  { getattr } for  pid=13984 comm="httpd" path="/var/lib/tftpboot/images/REDOS-7.3.3-20230815.0/LiveOS/squashfs.img" dev="dm-0" ino=1855870 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:tftpdir_rw_t:s0 tclass=file permissive=1

type=SYSCALL msg=audit(1717404402.364:2725): arch=x86_64 syscall=stat success=yes exit=0 a0=7ff3f400e9f8 a1=7ff3f3ffea50 a2=7ff3f3ffea50 a3=7ff3f3fff690 items=0 ppid=886 pid=13984 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm=httpd exe=/usr/sbin/httpd subj=system_u:system_r:httpd_t:s0 key=(null)

Hash: httpd,httpd_t,tftpdir_rw_t,file,getattr



На другом таком же сервере все работает хорошо, я так понимаю дело в SELinux

второй сервер с исправно работающей службой TFTP
sudo audit2allow -a (рабочий сервер)

sudo audit2allow -a

#============= groupadd_t ==============
allow groupadd_t self:capability setgid;

#============= httpd_t ==============
allow httpd_t admin_home_t:file getattr;

#!!!! This avc can be allowed using the boolean 'domain_can_mmap_files'
allow httpd_t tftpdir_rw_t:file map;
allow httpd_t tftpdir_rw_t:file { getattr open read };

#!!!! This avc can be allowed using the boolean 'httpd_read_user_content'
allow httpd_t user_home_t:file { open read };

#============= useradd_t ==============



Текущий сервер не исправно работающий TFTP
sudo audit2allow -a (нерабочий сервер)


#============= groupadd_t ==============
allow groupadd_t self:capability setgid;

#============= httpd_t ==============
allow httpd_t tftpdir_rw_t:file { getattr open read };

#============= tftpd_t ==============

#!!!! This avc is allowed in the current policy
allow tftpd_t user_home_t:dir search;

#!!!! This avc is allowed in the current policy
allow tftpd_t user_home_t:file { lock open read };

#============= useradd_t ==============
allow useradd_t self:capability setgid;



На обоих серверах права на папки c tftp и образами внутри, chmod совпадает идентичны
ls -alZ 
root root unconfined_u:object_r:tftpdir_rw_t:s0

Это сделал уже:
# ausearch -c 'httpd' --raw | audit2allow -M my-httpd
     # semodule -X 300 -i my-httpd.pp


Фотоскрин с машины на которую пытаюсь установить через PXE
665efbb557443023875587.png
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@SunTechnik
Как костыль: временно выдать
setenforce permissive

После этого, если заработает, то дело точно в SELINUX.
В логах будет на какие файлы не хватало прав.
После этого разбираться с политиками и правами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы