westward.cv.ua

Статьи на компьютерную тематику и личный блог

Главная Статьи Сисадмин Ограниченные права для пользователей - Часть 3
Сисадминский котЗавершение темы об ограничении прав пользователей: Вступление, Часть 1, Часть 2.

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

Но как справедливо замечают юмористы, наш человек перед трудностями и ограничениями не останавливается и упорно ищет обходные пути. В нашем случае некоторые коллеги выяснили, что запрет на установку в Windows 2000 / XP срабатывает только для тех программ, которые устанавливаются через службу Windows Installer. А альтернативным установщикам это системное ограничение жить не мешает. Да, в Program Files записать/установить программу нельзя. Ничего, запишем в C:/Progi или D:/TEMP/Robota. Кроме этого, есть довольно много программ, которые вообще не нужно куда-либо устанавливать. Записал в любую папку и пожалуйста, пользуйся.

Пришлось менять NTFS права доступа ко всем дискам и папкам компьютера, разрешить чтение-запись-удаление файлов, но запретить их выполнение. Кстати, на мой взгляд, настройки прав NTFS в 2000/ХР неудачные и неочевидные. Когда нужно поставить тупое "только для чтения", все замечательно. А вот если нужна более сложная настройка, то часто получается совсем не то, что ожидаешь. Ок, закрыли право на выполнение для всех папок, кроме Program Files и Windows, установили нужный для работы софт. Как будто все замечательно: путь для установки и запуска "левых" программ перекрыт.

Не тут-то было. Свинью подложила Майкрософт, а коллеги в очередной раз проявили находчивость. Есть в Windows папка /Local Settings/Temp в профиле каждого пользователя. Папка эта предназначена для временных файлов, ну к примеру почтовая программа TheBat! записывает туда на какое-то время файл, который прицеплен к письму и открыт пользователем. Так вот, я явно захожу в свойства этой папки и указываю "запретить выполнение". Нажимаю Ок, тут же захожу еще раз и вижу, что на мои настройки системе наплевать. Все это я выяснил после того, как хитрые коллеги стали записывать в /Local Settings/Temp программы и оттуда их запускать.

Для Windows 2000 решения этого вопроса я не нашел. А для XP Майкрософт придумала "заплатку" (лучше бы все-таки переработали систему прав на NTFS). Эта заплатка называется Software Restriction Policies, или по-русски "политика ограничения запуска программ". Если ее активировать, запустить можно будет только те программы, которые явно разрешены этой политикой. Об этой системной настройке и пойдет речь далее.

Настраивается политика ограничения запуска через Панель Управления - Администрирование - Локальная политика безопасности. По умолчанию политика не просто выключена, а вообще не создана. Об этом выводится соответствующее предупреждение, поэтому в первый раз такую политику надо создать с помощью команды в меню Действие - Создать новые политики:

Создание политики ограничения запуска программ


После того, как политика создана, ее надо вначале настроить, а потом активировать. По умолчанию создаются следующие правила:
  • разрешен запуск любых программ из папки SystemRoot% - т.е. для WinXP это папка Windows;
  • разрешен запуск файлов типа *.exe из папки SystemRoot%System32 - Windows\System32;
  • разрешен запуск любых файлов из папки ProgramFilesDir% - Program Files.

Ограничения не касаются файлов динамических библиотек *.dll и действуют для всех пользователей, включая тех, кто имеет права "Администратора".

В принципе, если устанавливать все программы в Program Files, эти настройки по умолчанию почти не надо менять. Если какая-либо программа установлена в другую папку, придется добавить ее в список разрешающих правил. Вообще предусмотрено 4 типа разрешающих или запрещающих правил, из которых чаще всего используется правило типа "Путь":

Добавление новых правил, разрешающих запуск


Смысл правила очень простой: вы должны указать путь к папке или файлу и выбрать один из уровней безопасности: разрешить или запретить. Если указана папка, правило будет действовать для всех файлов в этой папке:

Правило типа Path


Из всех настроек политики, которые создаются автоматически, я меняю две. Одна отменяет эту политику для "Администраторов". Если ее не изменить, то перед установкой любой программы мне как администратору вначале придется отключить политику ограничения запуска программ. Иначе я тоже получу отказ при попытке запустить установку программы. В руской локализации XP команду Enforcement перевели как Принудительный:

Отмена политики для администраторов


Вторая настройка касается того, какие типы программ попадают под действие политики ограничения запуска. Дело в том, что иконки в панели "Пуск", "Быстрый запуск", на рабочем столе - все это на самом деле ярлыки, файлы с расширением *.lnk. А по умолчанию политика ограничения запуска программ запрещает запуск этого типа файлов. Это означает, что пользователь получит отказ даже в запуске стандартного калькулятора, если нажмет Пуск - Программы - Стандартные - Калькулятор. Вариантов два: или прописать в свойствах политики разрешающие правила для папок рабочего стола и меню "пуск", причем для каждого пользователя в отдельности. Или второй вариант: убрать тип файлов *.lnk из списка расширений, которые блокирует политика. В русской локализации команда Designated File Types переведена как Назначенные типы файлов:

Типы файлов, которые запрещает политика ограничения запуска


В первый раз кажется, что это все сложно. Много текста, куча окошек с настройками. На самом деле все эти настройки меняются и переключаются не более чем за минуту, если не надо добавлять дополнительные пути в список разрешений. После того, как вы изменили настройки, нужно активировать, "включить" эту политику. Выключатель Майкрософт спрятала в папке Security Levels (Уровни безопасности). Там находятся два ключа: Disallowed (Не разрешено) и Unrestricted (Неограниченный). Чтобы включить политику, нужно выбрать свойства ключа Не разрешено и щелкнуть кнопкой Установить по умолчанию:

Включение политики ограничения запуска программ


Подвожу итоги: после активации политики ограничения запуска для "Пользователя" будет запрещен запуск программ отовсюду, кроме папок Program Files и Windows. А в эти папки "Пользователю" запрещена запись стандартными настройками Windows. Таким образом для обычного пользователя закрывается возможность установки и запуска посторонних программ. Эта же политика поднимает безопасность компьютера: если исполняемый код вируса не попадет в разрешенные папки, он просто не сможет запуститься.

P.S. Еще раз повторю еще раз свое мнение: нормально реализованные, очевидные NTFS права доступа сделали бы эту политику ограничения запуска программ как минимум необязательной. Но имеем именно такой вариант. Возможно, в Win2000 или даже в WinNT что-то не было продумано до конца, а потом исправление логики потащило бы за собой хвост несовместимости старого и нового программного обеспечения.