вторник, июля 14, 2009

SELinux Lockdown, 10: Заключение

оригинал - SELinux Lockdown Part Ten: Conclusion

Завершение цикла статей по использованию SELinux. Оригинал на английском языке опубликован в блоге Доминика Грифта (Dominick Grift).


В предыдущих девяти частях было обсуждено много чего. Это последняя статья в серии, в которой вкратце повторно перечисляются шаги, позволяющие увеличить безопасность, обеспечиваемую SELinux. Подробности по данным шагам доступны в предыдущих статьях.

1. Пользователь SELinux.

По умолчанию сопоставляйте пользователей Linux ограниченному пользователю SELinux. Помните про принцип минимума полномочий. Например, используйте пользователя guest_u: sudo semanage login -m -s guest_u -r s0-s0 __default__

Если необходимо переопределить для новых Linux пользователей пользователя SELinux по умолчанию можно воспользоваться командой useradd и опцией -Z.

Не сопоставляйте пользователей Linux пользователю SELinux unconfined_u. Исключением из этого правила может быть пользователь root. Пользователю root должно разрешаться входить в систему только в экстренных случаях и только через TTY.

2. PAM SEPermit.

Добавьте соответствующие записи для всех ваших ограниченных SELinux пользователях в /etc/security/sepermit.conf, чтобы при работе SELinux в разрешающем (permissive) режиме блокировать их попытки входа в систему .

Вы можете принять решение о создании уникального SELinux пользователя для себя, освобожденного от ограничения SEPermit.

3. Permissive mode против Permissive Domains.

Всегда отдавайте предпочтение использованию разрешающих доменов (Permissive Domains) вместо разрешающего режима (Permissive Mode).

4. Не изменяйте предустановленных по умолчанию пользователей SELinux. Если вам требуется особенный пользователь SELinux и/или пользовательский домен SELinux создайте новый, взяв за основу существующий.

5. Используйте управление доступом на основе ролей (Role based Access control) для ограничения привилегий пользователей, в том числе пользователя root.

6. Не изменяйте существующие роли / домены пользователей.

Если требуется специальная роль, создайте на основе существующей новую и сопоставьте её новому пользователю SELinux. Вместе с тем вы можете сопоставлять существующим ролям новых пользователей SELinux.

7. Используйте команду sudo, вместо su и newrole.

8. Удалите домен(ы) unconfined (неограниченный).

Обязательно сделайте sudo semodule -r unconfined, чтобы отключить системные службы, не имеющие определенных политик. Используйте команду sudo semodule -r unconfineduser, чтобы полностью отключить неограниченную среду пользователя (не рекомендуется). Если вы решили удалить unconfineduser, не забудьте соответствующим образом перенастроить сопоставления пользователей SELinux, чтобы учесть это изменение. Используйте вместо unconfined домен sysadm.

однако, автор отдаёт предпочтение домену unconfined против домена sysadm в качестве дополнительного на все случаи привилегированного пользовательского домена, потому что:

a. для запрета входа неограниченным (unconfined) пользователям можно установить переключатель unconfined_login.
b. не работают переключатели ssh_sysadm_login и xdm_sysadm_login.
c. sysadm - это напившийся (кривой) unconfined.
d. вход пользователю root отключен.
e. домен unconfined используется только как дополнительный привилегированный домен, доступный только при использовании sudo
e.1. за исключением пользователя root, который может входить только в экстренном случае через TTY.

9. Удалите как можно больше политик включением и выключением соответствующих переключателей.

установите unconfined_login в значение off
установите xserver_object_manager в значение on
установите *_exec_content в значение off
рассмотрите применение переключателей secure_mode_*

Комментариев нет: