Перемещенные / размещают к новому диску, SELinux запрет доступа к / домой для sshd

Вчера я добавил диск к полю Centos6 VM, создал / домашняя точка монтирования на диске и затем переместился, пользователь (jenkins в этом случае) к нему к свободному располагают с интервалами от / точка монтирования.

Это, казалось, хорошо работало и полномочия и маркирует, все выглядят правильными, но более ранний сегодня я начал видеть проблемы, где я был неспособен к SSH на поле как jenkins пользователь от любого поля. SSHing к полю как корень и suлуг к jenkins хорошо работал. К тому же, если я сделал a service sshd stop и затем /usr/sbin/sshd Я мог затем соединиться с полем непосредственно как jenkins пользователь.

После большой отладки я в конечном счете определил отказы SELinux в /var/log/audit/audit.log как так:

type=AVC msg=audit(1428584552.564:187): avc:  denied  { search } for  pid=1798 comm="sshd" name="/" dev=sdd1 ino=2 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:file_t:s0 tclass=dir
type=AVC msg=audit(1428584552.567:188): avc:  denied  { getattr } for  pid=1798 comm="sshd" path="/home" dev=sdd1 ino=2 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:file_t:s0 tclass=dir

Установка SELinux к разрешающему затем позволила мне снова соединяться как jenkins пользователь удаленно.

Я не являюсь слишком великим с SELinux, но после прочтения (снова) учебных руководств хинду на SELinux, из которого я считал эти ошибки как sshd пытающийся получить доступ и / и / домой с системным контекстом system_u:system_r:sshd_t:s0. Вместо этого эти конечные точки маркированы как system_u:object_r:file_t:s0 который является, по крайней мере, что / корневой каталог маркирован как (не слишком уверенный, как видеть маркировку для/).

Мне те маркировки выглядят правильными для тех каталогов, и я не слишком уверен, почему это пытается искать маркировку sshd_t до сих пор дерево каталогов.

Рабочий ls-laZ для получения важных частей (.ssh папка и authorized_keys) дает мне:

drwx------. jenkins jenkins unconfined_u:object_r:ssh_home_t:s0 .ssh

и

-rw-------. jenkins jenkins unconfined_u:object_r:ssh_home_t:s0 authorized_keys

Который выглядит одинаково как другие флажки, которые я устанавливаю, и они хорошо работают.

Что я должен сделать, чтобы заставить SELinux сотрудничать так, я могу вернуться к осуществлению?

Править: Я попробовал umounting / домой и использующий restorecon, чтобы попытаться повторно маркировать каталог благодаря предложению Michael Hampton, но это не изменило маркировку на каталоге и, как упомянуто выше system_u:object_r:file_t:s0 маркировка для / домой выглядит правильной по сравнению с другими полями, которые хорошо работают.

Существует ли способ, которым я могу изменить системный контекст sshd при попытке получить доступ к этому каталогу?

1
задан 13 April 2017 в 15:14
1 ответ

Вы смотрите не в нужные каталоги.

Ваши отказы AVC касаются конкретно контекстов на / и / home соответственно , а не в каком-либо файле внутри них.

Это заставляет меня подозревать, что у вас есть не только те записи каталога, которые неправильно помечены.

Вот как я бы восстановил:

  1. Отключить / home . Это необходимо, потому что мы хотим восстановить контекст файла в точке монтирования в родительской файловой системе, а также контексты файлов в дочерней файловой системе.
  2. Восстановить контексты файлов для точки монтирования / home .

     restorecon -v / home
     
  3. Перемонтировать / home .

  4. Восстановить контексты файлов для всей системы на всякий случай. Это можно сделать одним из двух способов:

    • прикоснуться к /.autorelabel и перезагрузиться. Во время запуска система будет помечена заново.
    • restorecon -r -v / и перезагрузится, когда закончится. Я обычно использую этот метод, поскольку он дает вам полный список контекстов файлов, которые были изменены.

После изменения метки и перезагрузки вы можете безопасно вернуться к принудительному применению SELinux.

6
ответ дан 3 December 2019 в 16:45

Теги

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