4.7 KiB
Задания
0. Инициализация SELinux
Источник: https://wiki.debian.org/SELinux/Setup
Запустите следующие команды, чтобы инициализировать SELinux:
$ sudo apt install selinux-basics selinux-policy-default auditd
$ sudo selinux-activate
$ reboot
Вы установили утилиты для работы с selinux, политики по-умолчанию, созданные для популярных пакетов и демон для аудита всех действий пользователя. Активировали selinux, собрав модули политик по-умолчанию и добавив параметры запуска с selinux в grub.
После перезагрузки проверьте, что selinux активирован. К каждому файлу и процессу SELinux прикрепляет поля: пользователь, роль, домен(тип), чувствительность(степень секретности). Изменение файловой системы может занять какое-то время.
$ sudo check-selinux-installation
$ getenforce
Действия пользователей (процессов) с объектами (файлами) проверяются в начале Linux DAC, а затем SELinux модулями. В режиме Permissive все нарушения политик SELinux будут только логироваться.
Установите режим Enforcing
в конфигурационном файле /etc/selinux/config
и перезагрузите систему.
$ sestatus -v
1.
Скачайте проект с примером политик SELinux c помощью apt
:
$ sudo apt install selinux-policy-src
Определите местоположение файла selinux-policy-src.tar.gz
с помощью dpkg
и распакуйте себе в домашнюю директорию пользователя. Изучите README и INSTALL.
2.
Установите в систему документацию для политик selinux.
$ sudo sepolicy manpage -a -p /usr/local/man/man8
$ sudo mandb
Проверьте, что открывается документация для httpd_selinux
. Обратите внимание на строки с ngnix
.
3.
Изучите ряд команд selinux.
Выведите булевые переменные для модуля httpd_
командами getsebool -a
и semanage boolean -l
. По принятому соглашению, глобальные переключатели правил начинаются с allow_
и use_
, переключатели модулей начинаются с их названия.
Выполните поиск правил на которые повлияет переключатель httpd_enable_ftp_server
.
sesearch –b httpd_enable_ftp_server –A
Попробуйте также команды:
semanage fcontext -l
(информация о контекстах),ls -Z
(SELinux настройки для файлов директории),ps Zaux
(SELinux настройки для работающих процессов),seinfo -t
(Вывести список контекстов).
4.
Хостинговые компании часто организуют для своих пользователей доступ к одной из папок в домашней директории пользователя по http по ссылке http://site/~user/index.html
. Попробуем это повторить с политиками selinux, уменьшающими потенциальный ущерб для системы от взлома сервера.
Создайте папку www в домашней директории. Добавьте пользователя в группу www-data
и установите права на директорию ~/www
0755.
Установите nginx, если он ещё не установлен. Сконфигурируйте http веб-север со следующими настройками:
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/www$2;
autoindex on;
}
Обратитесь к сайту командой curl
. При правильно работающей политике, доступ должен быть запрещён.
Включите доступ к домашним директориям из контекста httpd
setsebool –P httpd_enable_homedirs on
Проверьте, что доступ появился.