Найти в Дзене
Easy Linux - о Linux просто

Часть 1. Введение. Реализация собственного механизма доменных политик на отечественной системе «Альт Линукс»

Приветствую, авантюрист. Больше 3 лет я провожу процедуру импортозамещения в своей организации. До перехода на Linux я использовал контроллер домена на Windows Server и, само собой, были настроены групповые политики или так называемые GPO. Политики, которые ранее были актуальны, больше не работают, поскольку операционные системы на клиентских устройствах изменились. Windows Server также больше не используется и в ближайшее время будет полностью выведен из эксплуатации. В этой статье я начну серию публикаций, в которых расскажу о том, как мне удалось автоматизировать компьютерную инфраструктуру на Linux. Какие средства я использовал, насколько это получилось удобно, какие допускал ошибки и т. д. Дисклеймер Я не могу сказать, что я эксперт в данном вопросе. Даже наоборот. Я всего лишь хочу поделиться своим опытом. Рассказать, что у меня получилось и как я к этому пришел. Безусловно, я не утверждаю, что способы и методы, которые я использовал, единственные верные или вообще верные. Наверн

Приветствую, авантюрист. Больше 3 лет я провожу процедуру импортозамещения в своей организации. До перехода на Linux я использовал контроллер домена на Windows Server и, само собой, были настроены групповые политики или так называемые GPO. Политики, которые ранее были актуальны, больше не работают, поскольку операционные системы на клиентских устройствах изменились. Windows Server также больше не используется и в ближайшее время будет полностью выведен из эксплуатации. В этой статье я начну серию публикаций, в которых расскажу о том, как мне удалось автоматизировать компьютерную инфраструктуру на Linux. Какие средства я использовал, насколько это получилось удобно, какие допускал ошибки и т. д.

Дисклеймер

Я не могу сказать, что я эксперт в данном вопросе. Даже наоборот. Я всего лишь хочу поделиться своим опытом. Рассказать, что у меня получилось и как я к этому пришел. Безусловно, я не утверждаю, что способы и методы, которые я использовал, единственные верные или вообще верные. Наверняка среди комментаторов найдутся истинные профессионалы и поделятся ссылками на правильные и верные методы решения затронутого мной вопроса. Я всегда приветствую диалог

Необходимый уровень знаний

Для качественного понимания материала тебе потребуется хорошее понимание доменных политик и принципов их функционирования. Также необходим опыт написания скриптов на bash и знание основ работы домен-контроллеров. Рекомендуется, хотя и не обязательно, иметь навыки программирования на C++ с использованием фреймворков QT или Python. Кроме того, необходимо уверенно работать с сетевыми дисками в среде Linux.

Статьи:

GPO, групповые политики, домен-контроллер

Думаю, для общего понимания темы стоит пару слов сказать о том, что же такое это вообще. Итак, при установке на сервере под управлением Windows роли «Домен-контроллер» у тебя появляется возможность вносить в этот самый домен компьютеры организации. Первое, что тебе это дает, — это возможность авторизовываться не только под локальными пользователями, но и под доменными. На «Домен-контроллере» можно создавать группы и пользователей. А на клиентах — авторизовываться под любым из созданных на домене пользователей. Безусловно, удобнейшая вещь.

Далее ты можешь делать для групп пользователей или для конкретных различные политики или правила. К примеру, можно довольно гибко создавать сетевые «шары». Создавать сложные структуры, какие-то группы ограничивать в доступе к каким-то каталогам, какие-то, наоборот, разрешать.

Также для групп или пользователей можно создавать политики. Это некие настройки. К примеру, можно для какой-то группы задать свои обои на рабочий стол. Каким-то группам запретить заходить на диск С, каким-то запретить использование флешки. Каким-то сделать автоподключение сетевых дисков и т. д.

Политики на Windows действительно очень гибкие и удобные. Настроить можно всё что угодно. Ну и учитывая, что можно просто заставить выполнить произвольный скрипт при входе, возможности безграничные.

Из нехороших вещей могу сказать о низком уровне мониторинга процесса применения политик. То есть в какой-то момент на каком-то компьютере внезапно перестают работать какие-то политики. И узнаешь об этом ты, как правило, случайно. Никаких серьезных и удобных средств мониторинга и оповещения сисадмина о том, что на каком-то клиенте что-то не так, нет.

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

Думаю, примерное понимание я дал. Домен-контроллер — это очень удобный способ управления своей компьютерной инфраструктурой, и, конечно же, при переходе на Linux я озадачился вопросом о его реализации на новой системе в первую очередь.

Домен контроллер на Linux

Несмотря на очевидное удобство домен-контроллеров, полноценной, универсальной и цельной замены «виндового» решения на Linux нет. Цельной я имею в виду, что установил что-то одно, и у тебя и политики, и авторизация, и всё круто. Такого нет. Но есть всё по запчастям. Например, для того чтобы настроить авторизацию, есть бесплатные решения, такие как FreeIPA или OpenLDAP. Собственно, именно FreeIPA я и выбрал как решение для реализации авторизации в моей организации. И оно отлично работает. О его настройке я уже писал вот здесь. Клиенты подключаются, авторизуются. Да, есть свои нюансы и проблемы, которые вполне себе решаемы. Также я без особых проблем завязал с FreeIPA свой файловый сервер на Samba. Я могу управлять «шарами» в зависимости от групп пользователей или конкретных пользователей. Да, всё это не так удобно и комфортно, как было на Windows, но тем не менее оно есть, оно настраивается и оно работает.

А вот что касается политик, тут всё сложнее. Какого-то конкретного мощного и гибкого решения я так и не нашел. Да, есть попытки у Astra Linux. За что, кстати, им респект, они пилят свой собственный домен-контроллер со своими политиками, всё там управляется графически, как в Windows. Но он работает только под Астру. А у нас в организации Альт. У Альта тоже что-то гуглится по запросу «Альт линукс GPO». Все это нужно изучать, пробовать, настраивать, решать возникающие проблемы. И тут я подумал. А ведь что такое GPO? Ведь по факту это просто некий скрипт, который лежит в сети, и клиент его просто выполняет при входе в систему ( да да, я очень сильно утрировал ). Я сел, подумал. Какого черта, а почему бы и нет. Руки вроде есть. На кнопочки нажимать могу. Вместо того чтобы разбираться в чем-то чужом и тратить кучу времени, а почему бы не потратить то же самое время и устроить свои GPO с блекджеком и… отличным логированием. Ведь ты помнишь, что меня не очень радует эффект «черного ящика» при работе с GPO на Windows.

План безумства

На самом деле, если разобраться, то задача не такая уж и сложная. Попробуем разбить задачу на более мелкие. Первое, что нам нужно, это подключать клиента к домену. Это у нас уже решено. Free IPA отлично работает. Авторизация действует. Дальше нам нужно сделать так, чтобы при включении компьютера, а точнее, при входе клиента в систему, выполнялось нечто, чтобы подключилось к сети по заранее известному адресу, скачало оттуда скрипт политик и выполнило его. Вот, по сути, то и всё. Это, конечно же, вкратце, без описания нюансов.

Забегая вперед, скажу, что всё это у меня уже реализовано и работает почти второй год, и работает хорошо. Пока подкину пару нюансов, которые нам предстоит «решить». Нам надо как-то добавляться в автозапуск любого пользователя при первом входе. Ведь ты помнишь, что мы в домене, а значит, на любом ПК в организации можно зайти под любым пользователем. Нам нужно позаботиться о безопасности. Нам надо разобраться с правами, так как для каких-то вещей нам нужен рут, ну и еще много интересного и неочевидного о чем будет говориться по ходу описания реализации проекта.

Но по итогу мы получаем скрипт в сети, который я могу как админ крутить как хочу. Писать туда всё, что хочу. Нужно установить софт? Без проблем. Надо поставить на всю организацию сертификат? Легко. Надо примонтировать сетевые диски? Не вопрос, еще можно посмотреть группы и сделать это для разных групп по-разному. Конечно же, результат работы скрипт выводит в консоль, а это мы пишем в файлы лога. Благодаря чему я могу получить не просто удобный и информативный лог, а в принципе любой лог, какой захочу. Я сам могу этим управлять, получать любую информацию, выводить любые данные. Писать эти логи я могу также куда хочу, например, в сеть. А потом без проблем их проанализировать, так как это обычные текстовые файлы.

Итог

Конечно, остается вопрос: а стоит ли оно того? Для меня ответ очевидно «да». Это отличный опыт. Это прокачивает мое понимание работы Linux-систем. Это чертовски интересно. Ты пишешь целую инфраструктуру, которая РАБОТАЕТ в реальной жизни и приносит профит, это очень круто. Сейчас мой скрипт разросся уже почти на 40+ политик. И благодаря ему я решил довольно много серьезных вопросов и задач буквально за несколько минут.

В следующей статье я начну описывать детали. Начну с реализации автозапуска, а там посмотрим. Всё интересное впереди. =) Удачи, авантюрист.

ЗЫ Если есть предложения или варианты развития статьи, пиши в комментарии. У меня пока нет четкого плана, как писать и о чем. Буду импровизировать на ходу, а значит, ты можешь повлиять на то, как будет выглядеть следующая статья.