Обновление от 18 октября 2018
Исправлена ошибка в documentolog.ks
Заменены пакеты php на php54 от remi, изменен kickstart файл
Обнаружился новый компонент Apache Solr, создан отдельный kickstart файл
Добрый день.
Меня зовут Нурмухамед Артыкалы, я работаю архитектором на проекте SKE.04 в АО "Самрук-Энерго".
Данная статья написано мной, на основе опыта полученого с работой системой документооборота от ТОО Документолог. Здесь зафиксированы все настройки необходимые для более безопасной работы системы документоборота. Будут использоваться kickstart для быстрого запуска установки операционной системы.
Виртуальный сервер:
- 4 ядря;
- 8 ГБ ОЗУ;
- 8ГБ жесткого диска;
- 128ГБ жесткого диска;
Система документоборота:
- Documentolog, V5.26;
- Пользователь root не должен иметь возможность войти в систему с консоли;
- Пользователь root не должен иметь возможность войти в систему удаленно через openssh;
- В Openssh должна работать по порту 2345;
- В Openssh должна поддерживаться авторизацию RSA-публичный ключ;
- В Openssh должна быть запрещена парольная авторизация;
- В Openssh должна работать по протоколу 2;
- В Openssh должен быть списко пользователей, которым разрешена удаленная авторизация;
- Сетевая подсистема должна блокировать больше 4 обращений в течение 30 секунд;
- Подсистема SELINUX должна быть включена и работать в режиме Enforcing;
- Все сервисы должны быть настроены в соответствие с правилами SELINUX;
- Политики СУБД, веб-сервера должны разрешать доступ к ресурсам необходимым для работы и блокировать доступ к иным ресурсам;
Установка ОС будет производиться автоматизированно ( в идеале все должно работать на автомате) через kickstart. Для установки ОС необходимы kickstart-файлы:
- sed-alfa.ks
- base.ks
- bareos.ks
- documentolog.ks
- nginx.ks
- openssh.ks
- php-fpm.ks
- postgresql.ks
- users.ks
- В sed-alfa.ks настройки для данной машины - настройка сетевых интерфейсов, разбиение жесткого диска, установка необходимых пакетов;
- В base.ks настройки общие для всех ОС - установка базовых пакетов, создание пользователей;
- В bareos.ks настройки системы резервного хранения Bareos;
- В documentolog.ks настройки системы документоборота;
- В nginx.ks настройки веб-сервера Nginx;
- В openssh.ks настройки, согласно политик безопасности;
- В php-fpm.ks настройки для php;
- В postgresql.ks настройка для СУБД Postgresql;
- В users.ks настройки пользовательских директорий;
Разделение единого kickstart на отдельные файла позволяет более гибко работать с процессом установки ОС. Выденести части, которые общие для всех систем и сохранять в отдельном файле. В будущем фиксируем изменения в едином файле.
Для установки ОС нам нужен будет загрузчик, я использую ipxe.
На сайте rom-o-matic.eu выбираем опцию "ISO bootable image". В поле "Embeded script" вставляем содержимое файла w_settings.ipxe.
Результатом будет небольшой (около 1МБ) ISO-Образ, который будет использоваться для загрузки по сети установочных файлов.
Образ также работает в серверном окружение, где обычно отключен сервис DHCP и сервера назначаются статические адреса.
Расположимм систему документоборота в /var/lib/documentolog.
- /var/lib/documentolog/cnt - файлы, в основном, отсканиированные документы;
- /var/lib/documentolog/log - логи системы;
- /var/lib/documentolog/srv - здесь храняться лицензии и доп.файлы;
- /var/lib/documentolog/www - файлы для вебсервера;
В данный момент (середина октября 2018) настройки СУБД будут минимальными.
Вам необходимы два файла:
- globals
- ${DATE}_documentolog.gz
Минимальные инструкции в файле w_psql.sh
В СУБД я не силен, поэтому руководствовался руководством резервного копирования от ТОО "Documentolog".
Nginx будем настраивать в самом безопасном режиме.
В процессе написания я переключал Selinux в режим Permissive командой
setenforce Permissive
запускаем сервисы nginx php-fpm, смотрим в файле /var/log/audit/audit.log, к какому порту, файлу нет доступа. Чтобы узнать какие у нас есть контектсы, запустим команду
semange fcontext -l | grep http | grep content
Я нашел два контекста, нужные мне:
- httpd_sys_rw_content_t;
- httpd_config_t;
И еще один контекст необходим, чтобы разрешить php-fpm связаться с СУБД
- httpd_can_network_connect_db
Минимальные настройки в файле w_nginx.ks
Изменяем настройки под наши значения, меняем владельца папки и разрешаем для php-fpm доступ к СУБД.
Минимальные настройки в файле w_nginx.ks
TODO