Как установить мсвс 3.0 с диска. На страже конфиденциальной информации

Год Выпуска : 2010
Версия : МСВС 3.0 Build 4, 5, 6
Разработчик : ВНИИНС
Сайт разработчика :http://www.vniins.ru/
Архитектура : x86
Таблэтка : Не требуется
Язык интерфейса : Русский
Описание : ОС МСВС 3.0 – это мобильная, многопользовательская, многозадачная операционная система, поддерживающая симметричные многопроцессорные архитектуры и работающая как в режиме командной строки, так и в режиме графического интерфейса.
Основное назначение ОС МСВС 3.0 – управление ресурсами системы и процессами, использующими эти ресурсы при вычислениях.
ОС МСВС 3.0 – это инструментальное средство для управления техническими средствами и задачами в следующих областях:
- автоматизированные системы управления производством;
- автоматизированные системы управления технологическим процессом;
- информационные ресурсы;
- системы массового обслуживания;
- системы сбора и анализа информации;
- многопользовательские системы общего назначения.
ВОЗМОЖНОСТИ ОС МСВС 3.0
- ОС МСВС 3.0 сертифицирована в системе сертификации средств защиты информации по требованиям безопасности информации Министерства Обороны РФ по:
- 2 классу защищенности информации от НСД согласно РД;

- 1 уровню контроля отсутствия недекларированных возможностей согласно РД.

Сертификат соответствия №126 от 17 декабря 2002 года.
- ОС МСВС 3.0 сертифицирована в системе сертификации средств защиты информации по требованиям безопасности информации Государственной технической комиссии при Президенте РФ по:
- 3 классу защищенности информации от НСД согласно РД;
"Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации."
- 2 уровню контроля отсутствия недекларированных возможностей согласно РД.
"Защита от несанкционированного доступа к информации. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей."
Скриншоты

Осенью прошлого года ехал в метро куда-то. Как обычно на куртке у меня подколот значок с туксом . который хорошо видно. Обычно почти никто его не замечает, т.к. о Linux вообще знает очень скромный процент айтишников (при том, что и самих технарей среди толпы мало). Но тут двое типичных красноглазиков в вагоне всё пялятся и пялятся, как будто я девушка с декольте. Через пару остановок не выдержал — подошёл сам и спросил, не перевозбудились ли они на моего пингвина? Те хихикают и бормочут что-то про то, что они, мол, разрабы из МСВС. Я тогда о МСВС ничего не слышал и про себя подумал, что это что-то мелкософтовское (может Visual Studio?). Потом навёл справки и открыл для себя это чудо - Мобильную систему вооружённых сил. Как говорит нам Википедия, это - «защищённая операционная система общего назначения. Разработана на основе ОС GNU/Linux Red Hat».

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

Итак, перед нами Red Hat Linux образца 2002 года, первоначально содержавший ядро 2.2 и впоследствии модернизированный до последних версий ветки 2.4.х. Старье? Да. В этой системе используется рабочее окружение, представляющее собой подпиленный и слегка облагороженный Equinox , называемый тут как elk (QT-версия экинокса). Выглядит это олдскульно, но как-то слишком уж - ещё суровее чем дожившая до наших дней EcomStation . Последняя версия - МСВС 3.0 - обзавелась интерфейсом а-ля Win XP Luna и даже частично перелезла с fltk на qt3. Но, так или иначе, МСВС использует старый софт, старый десктоп и всячески противится современным тенденциям - якобы в угоду безопасности. Не буду пинать её за это, так как сам люблю деловое рабочее окружение, а не «фотоальбом» с яркими фантиками вместо рабочего стола.

Дело в другом. Большая часть МСВС - это код, лицензируемый под GPL2, который нельзя присвоить себе и распространять под своим именем. Если скомпилированная программа подпадает под действие GPL2, то вендор обязан предоставить пользователю исходный код это программы - непосредственно или по ссылке. Что сделал ВНИИНС как разработчик «отечественно» ОС? Эта организация присвоила весь код себе, выдав получившуюся сборку линукса за свою интеллектуальную собственность.

Код МСВС получить невозможно, но это не всё. В отдельных программах внутри МСВС стёрты все упоминания авторов этих программ, везде разработчиком указан всё тот же ВНИИНС. Как это назвать, если не быдлячеством, воровством и жлобством, характерным для российских военных учреждений? Распространие этой ОС есть по сути продажа краденого. Стоимость, кстати, до конца неизвестна. По некоторым сообщениям , коробка с МСВС стоила в 2007 году 18 тысяч рублей. Неплохо для работы, на 90% сделанной сообществом? Если кому интересно, где и как происходит воровство кода, то в сети есть достаточно людей, давших достойную отповедь этой поделке. Конкретно про плевок на GPL2 написано, к примеру, .

Если говорить по существу, то чтение каментов пользователей МСВС — это жесть, какая она есть. Ну например:

Русский Линукс для русских офицеров - это не смешно. Это моя суровая реальность. Называется она МСВС и работает… странно. Например, папки открываются не с первого раза. А в сервере под него невозможно поменять зашитые намертво параметры и в принципе не работает htaccess. (тыц).

Например, из коробки он не умеет правильно ротировать логи, поэтому если просто поставить МСВС и оставить в покое, через некоторое время система сожрёт всё свободное место и рухнет.

Если выставить у пользователя локаль, отличную от русской, то залогиниться в систему будет невозможно, потому что у тамошнего оконного менеджера Elk (ворованного FLTK) удалили все переводы, кроме русского (в т.ч. английский).

А самый интересный глюк там такой. Создаём текстовый файл. В X-терминале (из текстовой консоли это не работает) запускаем скрипт, содержащий «cat имя_файла». Запускаем этот скрипт, перенаправляя его вывод в другой файл. И видим, что выходной файл на семь байт больше исходного: в его начало система что-то дописала (выглядит это как несколько бессодержательных символов). (тыц).

> Скажем, у меня не было браузера вообще (кроме lynx’а). А в обзорах её браузер упоминается.
Браузер есть. Называется ГОД (Гипертекстовое Отображение Данных). Продается как отдельный модуль за отдельные деньги, порядка 15к рублей, если мне не изменяет вакуум в голове. (тыц).

Корявая системка. По несчастью на работе приходится с ней возиться.
Основной браузер - КГОД (клиент гипертекстовой обработки данных) - Mozilla 0.9 или около того
Офисный пакет - КП «Офис» - глючная версия OpenOffice.
Короче, постоянно сыпятся претензии к разработчикам с требованием пофиксить - но можно месяцами ждать фикса. (тыц)

МСВС 3.0 появилась где-то в году 2002, она была основана на RedHat 7.3, если я не ошибаюсь. Включала ядро 2.2.х, рабочим столом был KDE второй версии. Последние релизы — это их собственная сборка, ядро 2.4, раб. стол ELK. Его выбрали специально из-за схожести с виндой. Ни браузер ГОД, ни сервер ГОД, ни офис КП Офис (OpenOffice 1.0), ни СУБД Линтер (PostgreSQL 7.3) в стандартную поставку не входят, а продаются отдельно. Система крайне не удалась. Сложно сказать что помешало сделать нормальный дистрибутив линукса то-ли сложности с сертификацией, то ли штат программистов из студентов, то ли желание огрести по больше бабла выполнив большее количество НИР и ОКР. В любом случае, хотя приказ о внедрении этого творения вышел в 2002 году, система так и не была внедрена полностью даже в головных организациях. В тех местах где на ней работают, народ устанавливает в эмуляторах NT 4.0 и МSOffice97 и юзает их. Проблема с внедрением еще заключается в банальном отсутствии специалистов по линуху. Раньше все это предприятие лоббировал заместитель министра обороны по вооружению Московский, теперь начальник сменился и у ВНИИНС не лучшие времена. Дело не встало, они готовят КП Офис 2.0 (OpenOffice 2.0), разрабатывают другие программки… (


В этом обзоре я попытаюсь установить копию RedHat Enterprice Linux для нужд МО РФ, чтобы посмотреть как оно работает на современном железе. Последний выпуск МСВС был аж в 2011 году, но он все еще продолжает быть "полезным" в армии РФ:

Приступаем к установке

Устанавливать будем на ноутбук FUJITSU LIFEBOOK N532, который у меня работает стабильно в Линукс и в Виндовс. Этот ноутбук выпущен в 2012 году, всего на год позже МСВС 5.0.


Загрузочное окно - урезанная копия RedHat Enterprice Linux:


Они даже поленились сделать нормальное загрузочное окно, поменяли фон/логотип, удалили ненужные кнопки и всё.
Для продолжения установки просто нажимаем Enter:

Загрузился установщик в ретро-стиле MS-DOS, но до выпуска МСВС 5 уже почти все дистрибутивы имели графический установщик. В Дебиане тоже есть текстовый инсталлер, но он гораздо проще и понятнее чем этот. От нас спрашивают, проверить установочный DVD или нет. Давайте проверим на всякий случай:


Диск записан нормально, ошибок нет. Далее нас спрашивают проверить дополнительные носители, но их у меня нет.


Инструмент разметки дисков загрузился с выбранной опцией удаления всех разделов. А вдруг офицер, понадеявшись на разум отечественной ИТ-индустрии просто нажмёт Enter ?
Теперь приступаем к разметке диска. На этом компе установлены две другие ОС и я выбрал "Создать собственное разбиение"

У нас есть 30Гб неиспользуемого неотформатированного пространства, выбираем "Использовать свободное место и создать разбиение по умолчанию" и получаем ошибку разбиения: невозможно распределить запрошенные разделы


Нажимаем "Да" и получаем ошибку автоматического разбиения:


Нажимаем "Да" и выбираем "Создать собственное разбиение"


Так как этот "досовский fdisk" не показывает сколько занято и свободно, чтобы случайно ничего не удалить я решил просмотреть разделы в другой ОС и нажал перезагрузку (alt+ctrl+del помню из мсдос).


Компьютер просто завис на этих словах, но реагирует на CapsLock. Ждём ещё минут 15 и просто жмём ресет. Загружаем другую ОС, убеждаемся в правильности выбора свободного раздела, продолжаем установку и доходим до этапа разметки дисков. Выбор файловых систем тут не богат, только ext2, ext3 и vfat (который не уместился на экране).


Оставим всё по умолчанию, то есть будем использовать grub:


Просто жмём Enter


Далее нас просят создать пароль на изменение параметров загрузки grub


пришлось ввести длинный пароль


Теперь приступаем к установке загрузчика. На ноутбуке установлены последние версии Дебиана и Убунты, но инсталлер не нашел их. В результате после установки МСВС, пропадёт меню выбора операционных систем и придется восстанавливать grub через LiveCD.
Ползунок списка операционных систем в самом низу, как бы говоря что еще что-то есть. Я пытался переместить его нажимая TAB, Ctrl, Ctrl+tab и другие сочетания клавиш. Но ползунок в каком положении был, в таком и остался:


Нажимаем Да и продолжаем установку:


Выбираем куда установить загрузчик. Я во всех линуксах устанавливаю загрузчик в главную загрузочную запись MBR, то есть на /dev/sda, но для недавних пользователей винды это сложный вопрос. Или все военные РФ знают Юниксы?


Далее идет настройка сети.

Ни каких сетевых подключений у нас нет, выбираем "Нет" и жмём Enter


открылось окошко с просьбой ввести дополнительные параметры настройки сети:


Как видите, кнопок "отмена" и "не надо", тут нет. Есть только "да" и "назад". Это было бы логично, если бы мы устанавливали систему по сети, но у нас DVD-диск с полным комплектом программ. Жмём Enter.

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


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

Просят ввести имя сети. Выбираем "Вручную" и придумываем имя сети


Выбираем свой часовой пояс:


Выбираем пароль пользователя root (не меньше шести символов):


Выбираем список пакетов для установки. Я выбрал все
Дальше идет проверка зависимостей, после чего открылось окошко с адресом журнала установки:
Процесс установки:
Я не пойму, это проблемы с шрифтами или с кодировками?

Установка доходит до 100% и инсталлер радостно приветствует нас о завершении установки, просит отключить съёмные носители и нажать Enter для перезагрузки. Нажимаем Enter и компьютер просто зависает, как в прошлый раз.

Нажимаем кнопку Power, ждём несколько минут и о, ужас, всё на английском. Или это такой русский язык в российской армии?


Где наши Дебиан и Убунта? Тут только один МСВС. Но ничего страшного, это можно исправить переустановкой загрузчика Grub через LiveCD.

Просто нажимаем Enter для загрузки

Система тупит 15 сек и показывает ошибки: Memory for crash kernel (0x0 to 0x0) notwithin permissable; unable to query Synaptics hardware (не могу опросить тачпад)


и продолжает загрузку, в процессе загрузки открывается меню настроек
Просто выбираем "Выход" и жмём Enter. Через 10 секунд открывается вот такой экран, где нет ни единого намёка на графику. Вводим логин и пароль и система готова к работе:

Кстати, обратите внимание, тут установлено ядро 2.6.18. Это ядро вышло , на пять лет раньше чем МСВС 5.0. Да за пять лет можно было целые отрасли промышленности построить, как в сталинских пятилетках, но уже прошло почти 10 лет! В то далёкое время я только начинал интересоваться Линуксами. Хотя может они пять лет проводили аудит безопасности кода.
Ладно, попробуем пользоваться тем что есть.
Пытаемся запустить графику. В никсах для запуска графики, обычно нужно вводить startx, вводим startx:
#startx
и получаем ошибки:


Тут я специально открыл лог ошибок /var/log/Xorg.0.log, чтобы было понятно в чем дело: система не может загрузить стандартные драйвера fbdev и vesa.

Нам остаётся только перезагрузить систему и вернуться в рабочие ОС, вводим reboot и опять получаем зависание при перезагрузке:


Пробуем установить через VirtualBox:

Так же вводим логин root, пароль и startx

Конечно же, ВНИИНС в целях безопасности не рекомендует запускать иксы от администратора. Да и почему тогда после первого запуска или в самом инсталлере не было предложено в целях безопасности создать простых пользователей, как во многих других дистрибутивах?


О_о, оно оказывается работает.

Рабочий стол МСВС 5.0

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


Файловый менеджер, выпущенный 11 лет назад, сильно похож на урезанный konquerror


В системном трэе индикатор времени с календарём, переключатель раскладки клавиатуры и индикатор уровней доступности (но это уже скорее от разработчиков МСВС).

Настройки МСВС 5.0

В Линуксе, некоторые программы (например Chromium) в целях безопасности не запускаются от пользователя root, по этому мы первым делом создадим нового пользователя и зайдем в систему через него:

Пуск - настройки - панель управления ELK, управление пользователями - добавить нового пользователя:

Пароль должен быть не менее 8 символов!

Атрибуты безопасности впечатляют, но мы не будем их трогать:


Пользователь создан успешно. Выходим из сессии и попадаем прямо в консольный аккаунт root, где нас приветствует куча ошибок:


Выходим из этого аккаунта нажатием Ctrl+D, логинимся под новым пользователем и запускаем startx. Иксы запустились, но на движение мыши и на клавиатурные сочетания не реагируют. Перезапуск виртуальной машины не помог, иксы в этой учетной записи тоже не работают. Ладно, придется работать от root, что является нарушением безопасности.

Разрешение экрана у нас 800x600, пробуем изменить его. Переходим в "Панель управления" и выбираем значок "Монитор". Открывается окошко с сообщением что у нас нет файла xorg.conf и что во время его создания экран будет тёмным. Создать его или нет?


Нажимаем "Да"


Ошибка инициализации конфигурации:


После чего открывается окно с настройками монитора. Пробуем что-либо изменить но никакой реакции. Примечательно, что в этом окне показан пример экрана Windows 95. А при нажатии кнопок "Да" и "Отмена" окно не закрывается и ничего не происходит. Закрыть окно можно только нажатием на крестик.


В меню "Системные" есть пункт "Переключение разрешений экрана". Выбираем его и нам открывается программка в трэе с всего двумя пунктами: 800x600 и 640x480 и частотой 60Гц. А зато в ОС FreeDOS у меня получалось выставить и выше и даже менять частоту. Отсюда вывод что в ОС МСВС графика хуже чем в ДОС!


Смотрим информацию о оборудовании:


После нажатия "ОК" открывается вот такое окно:

Программы МСВС 5.0

Интересно, что когда мы переводим указатель мыши из программ EDE в KDE, цвет указателя мыши меняется.
Это потому что рабочий стол МСВС представляет собой смесь рабочих столов EDE и KDE.
Сеть. Всего десять программ в этой категории, среди которых ELK-обозреватель, IRC, Wireshark, GFTP, почтовый монитор, сетевой монитор и настройка PPP и управление устройствами сети.


Управление устройствами сети


Почтовый клиент не запускается:


Браузер ELK-обозреватель представляет собой точную копию браузера Aurora. Смотрите, они переименовали его на ELK, но забыли поменять логотип:

ELK-браузер:


Aurora:


Утилиты
В утилитах аж 4 терминала: ELK-terminal, X-терминал, Консоль и терминал в режиме суперпользователя. А знаете почему их так много? Потому что рабочий стол МСВС - это смесь EDE с KDE. Они даже недодумались удалить ненужные утилиты, все как по умолчанию ставилось так они и оставили.


По этой причине здесь много программ из двух разных рабочих столов, но с одинаковыми возможностями. Это особенно касается просмотра картинок, документов (PDF, DJVU и т.д) и текстовых редакторов.

Текстовый редактор Emacs в МСВС:


Научные . В научных только калькулятор KDE, который выпущен в 2005 году:


Графика. В этом разделе все программы из KDE + Xsane 2007 года выпуска.


Игры. В играх набор игр из KDE, среди которых военные игры Сапёр и Парашюты:


Мультимедиа . Простой медиапроигрыватель, проигрыватель аудиодисков, K3b (запись CD/DVD), регулятор звука и программа для звукозаписи.
Для проверки звука, нужно загрузить в виртуальную систему какой-нибудь фильм.. Звук и видео тут вообще не работают. Ставил в настройках VirtualBOX Alsa, Oss, SoundBlaster16 - ничего не работает. Пробовал ogv, ogg, mp4 - в одних случаях требует установить кодеки, в других - показывает ошибку:


Попробуем установить ffmpeg:
Открываем Пуск - Панель управления ELK - Менеджер программ
перед запуском несколько секунд проверяются списки пакетов
попробуем найти ffmpeg


Вот это такой русски язык в российской армии!

ffmpeg оказался в списке установленных пакетов. А поиск по запросам oss и alsa (звуковые системы) не дал вообще ни каких результатов. Запросы office и firefox тоже не дали никаких результатов.

k3b при запуске выдаёт ошибку, что не удается найти тип Mime. Нужно нажать 10 раз OK и тогда он запуститься:


Выключение системы:


Выводи...
1. На современно оборудовании МСВС не работает
2. Ядро системы как и весь софт выпущено 11 лет назад, соответственно современное оборудование не поддерживается
3. Разрешение экрана установлено в 800x600 и не меняется
4. Видеосистема работает только в эмуляторе, но показывает ошибки после завершения работы.
5. Звук вообще не работает
6. Графика работает только у пользователя root, что является нарушением безопасности
7. Команды выключения и перезагрузки по умолчанию доступны только через консоль и работают только в эмуляторе.

Общий выводы.

МСВС5.0 - скопированный в 2011 году RedHat Enterprice Linux5.0 (2007 года), некорректно работает уже на компьютерах выпущенных в 2011 году. Да в Российской Армии вообще заметна тяга к глубокой старине, например, авианесущий крейсер "Адмирал Кузнецов" с своим трамплином вместо катапульты, из-за которого самолёты вынуждены летать с неполным боезапасом и иногда падают в воду при взлёте для самолётов и с мазутной силовой установкой, нуждающейся в дозаправке во время похода...

МСВС 3.0 - защищенная многопользовательская многозадачная ОС с разделением времени, разработанная на основе Linux. Операционная система обеспечивает многоуровневую систему приоритетов с вытесняющей многозадачностью, виртуальную организацию памяти и полную сетевую поддержку; работает с многопроцессорными (SMP - symmetrical multiprocessing) и кластерными конфигурациями на платформах Intel, MIPS и SPARC. Особенность МСВС 3.0 - встроенные средства защиты от несанкционированного доступа, удовлетворяющие требованиям Руководящего документа Гостехкомиссии при Президенте РФ по классу 2 средств вычислительной техники . Средства защиты включают мандатное управление доступом, списки контроля доступа, ролевую модель и развитые средства аудита (протоколирования событий).

Файловая система МСВС 3.0 поддерживает имена файлов длинной до 256 символов с возможностью создания русскоязычных имен файлов и каталогов, символьные ссылки, систему квот и списки прав доступа. Существует возможность монтирования файловых систем FAT и NTFS, а также ISO-9660 (компакт-диски). Механизм квотирования позволяет контролировать использование пользователями дискового пространства, количество запускаемых процессов и объем памяти, выделяемой каждому процессу. Система может быть настроена на выдачу предупреждений при приближении запрошенных пользователем ресурсов к заданной квоте.

В состав МСВС 3.0 входит графическая система на основе X Window. Для работы в графической среде поставляются два оконных менеджера: IceWM и KDE. Большинство программ в МСВС ориентировано на работу в графической среде, что создает благоприятные условия не только для работы пользователей, но также и для их перехода с ОС Windows на МСВС.

МСВС 3.0 поставляется в конфигурации, которая кроме ядра включает набор дополнительных программных продуктов. Сама операционная система используется как базовый элемент организации автоматизированных рабочих мест (АРМ) и построении автоматизированных систем. Дополнительное программное обеспечение может устанавливаться по выбору, и ориентировано на максимальную автоматизацию управления и администрирования домена, что позволяет уменьшить затраты на обслуживание АРМов и сконцентрироваться на выполнении пользователями их целевой задачи. Программа инсталляции позволяет установить ОС с загрузочного компакт-диска или по сети по протоколу FTP. Обычно сначала с дисков устанавливается и настраивается инсталляционный сервер, а затем по сети происходит инсталляция остальных компьютеров. Инсталляционный сервер в работающем домене выполняет задачу обновления и восстановления ПО на рабочих местах. Новая версия выкладывается только на сервере и затем происходит автоматическое обновление ПО на рабочих местах. При повреждении ПО на рабочих местах (например, при удалении файла программы или несовпадении контрольных сумм исполняемых или конфигурационных файлов), автоматически происходит повторная установка соответствующего ПО.

При инсталляции администратору предлагается выбрать либо один из стандартных типов инсталляции, либо настраиваемую инсталляцию. Стандартные типы используются при установке на стандартные рабочие места и охватывают основные типовые варианты организации рабочих мест на базе ОС МСВС 3.0 (рис. 1). Каждый стандартный тип определяет набор инсталлируемых программных продуктов, конфигурацию диска, набор файловых систем и ряд системных настроек. Настраиваемая инсталляция позволяет явно задать все указанные характеристики конечной системы вплоть до выбора индивидуальных программных пакетов. При выборе настраиваемой инсталляции можно установить МСВС 3.0 на компьютер с уже установленной другой операционной системой (например, Windows NT).

В состав МСВС 3.0 входит единая система документации (ЕСД) с информацией о самых разных аспектах функционирования системы. ЕСД состоит из сервера документации и базы данных, содержащей тексты описаний, доступ к которым возможен через браузеры. При установке дополнительного программного обеспечения в базу данных ЕСД устанавливаются соответствующие справочные разделы. ЕСД может размещаться локально на каждом рабочем месте, либо в домене МСВС может быть выделен специальный сервер документации. Последний вариант полезно использовать в доменах МСВС большой размерности для экономии суммарного дискового пространства, упрощения процесса управления и обновления документации. Доступ к документации с остальных рабочих мест возможен через Web-браузер, поставляемый вместе с МСВС 3.0.

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

Ключевым моментом с точки зрения целостности системы является операция регистрации новых пользователей МСВС, когда определяются атрибуты пользователя, включая атрибуты безопасности, в соответствии с которыми система управления доступом будет в дальнейшем контролировать работу пользователя. Основу для мандатной модели составляет информация, вводимая при регистрации нового пользователя.

Для реализации дискреционного управления доступом используются традиционные для Unix механизмы бит прав доступа и списков прав доступа (ACL - access control list). Оба механизма реализуются на уровне файловой системы МСВС 3.0 и служат для задания прав доступа к объектам файловой системы. Биты позволяют определять права для трех категорий пользователей (владелец, группа, остальные), однако, это не достаточно гибкий механизм и применяется при задании прав для большинства файлов ОС, одинаковым образом используемых основной частью пользователей. С помощью списков ACL можно задавать права на уровне отдельных пользователей и/или групп пользователей, и, тем самым, достичь существенной детализации в задании прав. Списки применяются при работе с файлами, для которых требуется, например, задать разные права доступа для нескольких определенных пользователей.

Одним из существенных недостатков традиционных Unix-систем, с точки зрения безопасности, является наличие суперпользователя, имеющего самые широкие полномочия. Особенность МСВС 3.0 - децентрализация функций суперпользователя. Задача администрирования системы разделена на несколько частей, для выполнения которых существуют администраторы конфигурирования, безопасности и аудита. С точки зрения операционной системы эти администраторы являются обычными пользователями, которым предоставлена возможность запуска специальных административных программ и доступ к соответствующим конфигурационным файлам. Создание учетных записей системных администраторов происходит на этапе установки МСВС 3.0.

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

Децентрализация функций суперпользователя позволяет реализовать принцип «четырех глаз». Например, регистрация нового пользователя МСВС 3.0 выполняется в два этапа. Сначала администратор конфигурирования создает учетную запись для нового пользователя, а затем администратор безопасности регистрирует нового пользователя в базе данных системы защиты. Только после этого становится возможным вход нового пользователя в систему.

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

Первая задача, которая должна быть выполнена после установки МСВС 3.0, заключается в формировании администратором политики безопасности, реализуемой в данной организации. Одной из составляющих этой задачи является настройка механизма мандатного управления доступом. На рис. 2 показан вид программы управления мандатным механизмом, которая позволяет настроить множество мандатных атрибутов субъектов и объектов МСВС 3.0. В верхней части окна программы происходит настройка уровней безопасности, возможными значениями которых могут быть, например, «не конфиденциально» и «конфиденциально». В нижней части создается множество категорий, описывающих предметную область, к которой относится информация: «сотрудники» «технические средства» и т.п. Возможно создание надмножеств категорий (например, «Категория_1_2»), включающих в себя несколько отдельных категорий и других надмножеств. Работа с уровнями наиболее удобна при представлении их в десятичном виде, так как уровни имеют иерархическую организацию. В свою очередь, при работе с категориями удобно представление их в двоичном виде, так как категории - это не иерархическое множество.

На рис. 3 представлен вид одного из окон программы управления пользователями. Запуск этой программы возможен только администраторами конфигурирования и безопасности. При этом каждый из них может установить или изменить только те атрибуты пользователя, управление которыми входит в его компетенцию.

На рис. 4 приведен пример окна программы управления файлами, позволяющего просматривать и изменять значения атрибутов файлов. Визуализация древовидной структуры файловой системы в левой части окна облегчает навигацию по ней и выбор нужного файла. В правой части показываются атрибуты выбранного файла, сгруппированные по своему функциональному назначению. Для каждой группы выделена отдельная закладка. В закладке «Основные» представлены такие традиционные для Unix атрибуты файла, как тип, размер, количество жестких ссылок, дискреционные атрибуты и временные метки. Особенностью файлов МСВС 3.0 является наличие мандатных атрибутов и расширение дискреционных атрибутов списком прав доступа. Мандатные атрибуты представлены в закладке «Мандатная метка». Для управления ACL файла выделена закладка «Права доступа». Причем, при выборе каталогов, для которых возможно создание ACL по умолчанию, активизируется закладка «Права доступа по умолчанию». На рис. 5 представлен вид окна работы с ACL файла. Возможно добавление как единичной записи для пользователя или группы, так и множества записей с одинаковыми правами доступа. Как и в случае предыдущей программы, запуск программы управления файлами возможен только администраторами конфигурирования и безопасности. Каждый из них может изменить только те атрибуты файла, управление которыми входит в его компетенцию.

Службы МСВС 3.0

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

Одной из основных служб любой ОС является служба печати . В состав МСВС 3.0 входит система печати, позволяющая осуществлять печать документов в соответствии с требованиями, предъявляемыми к защищенным системам. Среди особенностей системы печати МСВС 3.0, отличающих ее от аналогичных систем, является поддержка механизма мандатного управления доступом, которая позволяет на этапе формирования задания на печать определить уровень конфиденциальности документа и автоматически направить задание на определенный принтер в соответствии с правилами печати, принятыми в данной организации. Каждый напечатанный лист автоматически маркируется учетными атрибутами документа, включающими фамилию пользователя, распечатавшего документ и имя компьютера, с которого было отправлено задание на печать. Одним из достоинств системы печати является ее инвариантность по отношению к приложениям, которые обращаются к службе печати. Это означает, что она не привязана к существующим приложениям и не изменяется при появлении новых приложений. Как следствие, приложения, выводящие на печать, должны учитывать маркировку листов и оставлять для этого свободное место. Факт печати регистрируется в специальном журнале учета размножения печатных документов. Для работы с этим журналом используется специальная программа, позволяющая просматривать, редактировать некоторые поля записей и распечатывать их (рис. 6).

Важным элементом системы защиты МСВС 3.0 является система идентификации/аутентификации. Для успешной аутентификации пользователю необходимо ввести правильный пароль. Очевидно, качество выбранного пароля определяет стойкость системы к проникновению в нее злоумышленников. Для генерации паролей пользователей в состав МСВС 3.0 входит специальная программа (рис. 7).

Для осуществления мониторинга компьютеров домена применяется система контроля функционирования (КФ), состоящая из сервера и специальных агентов. Агенты устанавливаются на компьютеры домена и сообщают серверу об их состоянии. Система КФ позволяет получать информацию о различных аспектах функционирования компьютеров (состояние процессов, дисковой подсистемы, подсистем ядра) и контролировать работоспособность сетевых служб (ftp, ssh и т.д.). Информация, поступающая на сервер, накапливается в специальных журналах, что позволяет наблюдать не только текущее состояние домена, но и изучать его состояние за весь период функционирования системы.

Домен МСВС

МСВС 3.0 используется для создания доменов, на основе которых создаются защищенные автоматизированные системы. Физически домен реализуется в виде локальной сети компьютеров, большинство из которых служит для организации рабочих мест пользователей. Некоторые из них необходимы для организации ресурсов общего пользования, таких как файловый сервер, сервер баз данных, сервер печати, почтовый сервер. Логически домен МСВС представляет собой множество компьютеров, реализующих единую политику безопасности и образующих единое пространство администрирования. Единая политика безопасности подразумевает, что на всех компьютерах домена поддерживаются единые множества субъектов и объектов доступа, атрибутов безопасности, а также действуют единые правила дискреционного и мандатного управления доступом. В этом смысле, домен МСВС является также доменом безопасности.

Единое пространство администрирования подразумевает единообразное администрирование информационных ресурсов (компьютеров) домена МСВС. Его основой является единое пространство пользователей домена МСВС.

  • Для каждого пользователя домена на его рабочем месте поддерживается учетная запись, включающая необходимую информацию о пользователе (логическое имя, пароль, Ф.И.О. и атрибуты безопасности пользователя). Данная информация используется для выполнения процедур идентификации/аутентификации пользователя при его входе в домен МСВС.
  • На каждом компьютере домена с общими ресурсами (сервере), на котором может работать данный пользователь, для него существует точно такая же учетная запись, как и на его рабочем месте.
  • На рабочем месте администратора безопасности поддерживается база данных с информацией о всех пользователях домена, включающая их учетную запись, расширенную информацию (например, должность, название/номер отдела), а также имя его компьютера и всех серверов, к которым он имеет доступ.

Таким образом, учетная запись является единой для данного пользователя в рамках домена МСВС и именно через нее происходит управление доступом пользователя к информационным ресурсам домена.

Гетерогенные домены

На данный момент при разработке защищенной автоматизированной системы за основу берутся существующие локальные сети, в которых, как правило, доминируют серверы и рабочие места на базе Windows NT. Невозможность мгновенного перехода организации на платформу МСВС порождает проблему ее интеграции с Windows. Здесь можно выделить два аспекта: выбор оптимальной стратегии перехода на МСВС и технические сложности, которые сопутствуют этому переходу.

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

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

Вторым шагом является перенос файловых серверов с платформы Windows. В МСВС 3.0 предусмотрена развитая система управления доступом пользователей к информационным ресурсам операционной системы, что позволяет организовать защиту данных пользователей на должном уровне.

При интеграции МСВС и Windows возникает целый ряд проблем технического характера, наиболее важными из которых являются проблемы совместимости схем идентификации/аутентификации пользователей, принципов управления доступом пользователей, используемых в этих системах кириллических кодировок.

Первые две проблемы заключаются в том, что в среде Windows NT поддерживается схема входа пользователей в домен NT на основе единой базы данных, хранящейся на специальном управляющем сервере - контроллере домена. Данная схема принципиально отличается от схемы, используемой в МСВС. Кроме того, в архитектуре Windows NT отсутствует поддержка мандатного управления доступом и на нее невозможно отобразить множество атрибутов безопасности операционной системы МСВС. В Windows-системах используется кодировка CP1251, в то время как в МСВС 3.0 (как наследие от Linux) используется KOI8-R, однако, накопленные данные (для работы с которыми и требуется среда Windows), как правило, хранятся именно в CP1251. При этом представление данных пользователям, их ввод и редактирование происходит в среде МСВС, поэтому приходится осуществлять перекодирование «на лету». Кроме того, для решения задач управления данными (например, задача сортировки данных) кодировка CP1251 более приемлема, чем KOI8-R.

Для построения защищенной автоматизированной системы на базе МСВС 3.0 с возможностью временной совместимости с NT была разработана система терминального доступа (рис. 8). Данная система позволяет организовать в МСВС работу с Windows-приложениями следующим образом: серверы файлов и печати, а также клиентские места строятся на базе МСВС 3.0, а для работы с Windows-приложениями выделяется сервер приложений на базе NT Terminal Server Edition, доступ к которому осуществляется специальным образом. Одно из достоинств данного варианта - это гибкость в организации работы пользователей, которые фактически получают возможность работать одновременно в двух операционных средах и использовать приложения каждой из них. Недостаток - необходимость создания сервера приложений со специальным доступом, что приводит к появлению ограничений в политике безопасности. В результате, задача интеграции МСВС и Windows NT решается путем создания домена МСВС с сервером приложений на базе NT и использования системы терминального доступа.

Рассмотрим теперь, как работает пользователь в гетерогенном домене МСВС. Пользователь входит в домен через свой АРМ. Для обращения к серверу приложений на базе Windows NT пользователь обращается к клиенту терминального доступа. В специальной базе данных, хранящейся на сервере приложений, имеется соответствие между именем пользователя и именем его компьютера, которое используется при подключении сетевых дисков для данного пользователя. В результате, работая в сеансе NT, пользователь в качестве сетевого диска на своем рабочем месте видит только содержимое своего домашнего каталога, а также общие ресурсы домена (файловые серверы и принтеры). Он может запускать приложения Windows, но будет работать только с ограниченным множеством файлов (своих или общих), хранящихся на компьютерах с МСВС 3.0.

Для организации печати конфиденциальных документов в домене выделяется сервер печати на базе МСВС, который отвечает за осуществление и учет печати, что предотвращает безучетное размножение выходных конфиденциальных документов. Для печати не конфиденциальной информации возможно подключение локальных принтеров к АРМ. Пользователь, работая с приложениями Windows или МСВС, посылает документ на печать, причем не имеет значения, где находится документ - на локальной машине или на сервере файлов. С помощью средств МСВС происходит анализ уровня конфиденциальности документа. Если документ является конфиденциальным, задание перенаправляется на сервер печати, если нет, - документ печатается локально.

Предложенные варианты позволяют организовать постепенный переход от информационной инфраструктуры на основе Windows NT к защищенным автоматизированным системам обработки информации на основе МСВС 3.0.

Литература

1. Гостехкомиссия России. Руководящий документ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации. Москва, 1992

2. Д.В. Ефанов. Система учета печати документов // АСУ и контроллеры. 2001, №1

Андрей Тюлин - сотрудник МО РФ. Игорь Жуков , Дмитрий Ефанов ([email protected]) - сотрудники Всероссийского научно-исследовательского института автоматизации управления в непромышленной сфере (Москва).

В данной главе рассматриваются следующие вопросы:

Пользователи;

Различия между привилегированными и непривилегированными пользователями;

Файлы входа в систему;

Файл /etc/passwd;

Файл /etc/shadow;

Файл /etc/gshadow;

Файл /etc/login.defs;

Модификация сведений об устаревании паролей;

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

Общий взгляд на пользователей

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

При создании нового пользователя ему ставится в соответствие уникальное имя

ПРИМЕЧАНИЕ

Система определяет привилегии пользователя на основании идентификатора пользователя (userID, UID). В отличие от имени пользователя, UID может и не быть уникальным, в этом случае для сопоставления ему имени пользователя берется первое найденное имя, UID которого совпадает с данным.

Каждому новому регистрируемому в системе пользователю ставятся в соответствие определенные элементы системы.

Привилегированные и непривилегированные пользователи

При добавлении нового пользователя в систему ему выделяется специальный номер, называемый идентификатором пользователя (userID, UID). В Caldera МСВС выделение идентификаторов новым пользователям начинается с 500 и продолжается в сторону больших чисел, вплоть до 65 534. Номера до 500 зарезервированы для системных учетных записей.

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

Нумерация идентификаторов начинается с 0 и продолжается до 65 535. UID 0 - это особенный UID. Любой процесс или пользователь с нулевым идентификатором является привилегированным. Такой человек или процесс имеет неограниченную власть над системой. Ничто не может служить для него запретом. Учетная запись root (учетная запись, UID которой равен 0), также называемая учетной записью суперпользователя, делает вошедшего с ее использованием если не владельцем, то как минимум его доверенным лицом.

Остается UID, равный 65 535. Он тоже не из обычных. Этот UID принадлежит пользователю nobody(никто).

Когда-то одним из способов взлома системы было создание пользователя с идентификатором 65 536, в результате чего он получал привилегии суперпользователя. Действительно, если взять любой UID и перевести соответствующее число в двоичную форму, то получится комбинация из шестнадцати двоичных разрядов, каждый из которых равен либо 0, либо 1. Подавляющее количество идентификаторов включают в себя как нули, так и единицы. Исключением является нулевой UID суперпользователя, состоящий из одних нулей, и UIDnobody, равный 65535 и состоящий из 16 единиц, то есть 1111111111111111. Число 65 536 нельзя разместить в 16 разрядах - для представления этого числа в двоичной форме требуется использовать уже 17 разрядов. Самый старший разряд будет равен единице (1), все остальные равны нулю (0). Так что же происходит при создании пользователя с идентификатором длиной в 17 двоичных разрядов - 10000000000000000? Теоретически, пользователь с нулевым идентификатором: поскольку под идентификатор отводится лишь 16 двоичных разрядов, 17 разряд хранить негде, и он отбрасывается. Стало быть, единственная единица идентификатора теряется, и остаются одни нули, а в системе появляется новый пользователь с идентификатором, а значит, и привилегиями, суперпользователя. Но теперь же в МСВС нет программ, которые позволили бы вам установить UID в 65 536.

ПРИМЕЧАНИЕ

Пользователей с идентификаторами, превышающими 65 536, создавать можно, но использовать их без подмены /bin/login не получится.

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

Файл /etc/passwd

Желающий войти в систему должен ввести имя пользователя и пароль, которые проверяются по базе данных пользователей, хранящейся в файле /etc/passwd. В нем, кроме всего прочего, хранятся пароли всех пользователей. При подключении к системе введенный пароль сверяется с паролем, соответствующим данному имени, и в случае совпадения пользователь допускается в систему, после чего запускается программа, указанная для данного имени пользователя в файле паролей. Если это командная оболочка, пользователь получает возможность вводить команды.

Рассмотрим листинг 1.1. Это файл passwd в старом стиле.

Листинг 1.1. Файл /etc/passwd в старом стиле

root: *:1i DYwrOmhmEBU: 0:0: root:: /root: /bin/bash

bin:*:1:1:bin:/bin:

daemon:*:2:2: daemon:/sbin:

adm:*:3:4:adm:/var/adm:

lp:*:4:7:lp:/var/spool/lpd:

sync:*:5:0:sync:/sbin:/bin/sync

shutdown:*:6:11:shutdown:/sbin:/sbin/shutdown

halt:*:7:0:halt:/sbin:/sbin/halt

mail:*:8:12:mail:/var/spool/mail:

news:*:9:13:news:/var/spool/news:

uucp:*:10:14:uucp:/var/spool/uucp:

operator:*:11:0:operator:/root:

games:*:12:100:games:/usr/games:

gopher:*:13:30:gopher:/usr/1ib/gopher-data:

ftp:*:14:50:FTP User:/home/ftp:

man:*:15:15:Manuals Owner:/:

majordom:*:16:16:Majordomo:/:/bin/false

postgres:*:17:17:Postgres User:/home/postgres:/bin/bash

mysql:*:18:18:MySQL User:/usr/local/var:/bin/false

silvia:1iDYwrOmhmEBU:501:501:Silvia Bandel:/home/silvia:/bin/bash

nobody:*:65534:65534:Nobody:/:/bi n/false

david:1iDYwrOmhmEBU:500:500:David A. Bandel:/home/david:/bin/bash

Файл паролей имеет жестко заданную структуру. Содержимое файла представляет собой таблицу. Каждая строка файла - это запись таблицы. Каждая запись состоит из нескольких полей. Поля файла passwd, разделяются двоеточием, поэтому двоеточия нельзя использовать ни в одном из полей. Всего имеется семь полей: имя пользователя, пароль, идентификатор пользователя, идентификатор группы, поле GECOS (оно же поле комментариев), домашний каталог и командная оболочка входа в систему.

Подробнее о /etc/passwd

В первом поле указывается имя пользователя. Оно должно быть уникальным - нельзя, чтобы два пользователя системы имели одно и то же имя. Поле имени является единственным полем, значение которого должно быть уникальным. Во втором поле хранится пароль пользователя. Для того чтобы обеспечить защиту системы, пароль хранится в хэшированном виде. Термин «хэшированный» в данном контексте означает «зашифрованный». В случае с МСВС пароль шифруется по алгоритму DES (DataEncryptionStandard). Длина хэшированного пароля в этом поле всегда равна 13 символам, причем некоторые из символов, такие как двоеточие и одинарная кавычка, никогда не встречаются среди них. Любое другое значение поля, отличное от правильного хэшированного 13-символьного пароля, делает невозможным вход данного пользователя в систему, за одним чрезвычайно важным исключением: поле пароля может быть пустым.

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

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

ПРИМЕЧАНИЕ

Атака по словарю (dictionaryattack) относится к методам взлома паролей грубой силой и подразумевает использование словаря и известной затравки. Атака состоит в переборе всех слов словаря, шифрования их с данной затравкой и сравнении результата со взламываемым паролем. При этом кроме слов из словаря обычно рассматриваются и некоторые их модификации, например, все буквы заглавные, только первая буква заглавная и добавление чисел (обычно только 0-9) в конец всех этих комбинаций. Подобным образом можно взломать достаточно много легко угадываемых паролей.

В третьем поле указывается идентификатор пользователя. Идентификатор пользователя не обязан быть уникальным. В частности, кроме пользователя root, может быть сколь угодно других пользователей с нулевым идентификатором, и все они будут обладать привилегиями суперпользователя.

Четвертое поле содержит идентификатор группы (GroupID, GID). Группа, указанная в этом поле, называется первичной группой пользователя (primarygroup). Пользователь может принадлежать к нескольким группам, но одна из них обязательно должна быть первичной группой.

Пятое поле теперь называют полем комментариев, но первоначальное его название - GECOS, от «GEConsolidatedOperatingSystem». При запросе информации о пользователе через finger или иную программу содержимое данного поля теперь возвращается как истинное имя пользователя. Поле комментариев может быть пустым.

Шестое поле задает домашний каталог пользователя. У каждого пользователя должен быть свой домашний каталог. Обычно пользователь, войдя в систему, оказывается в своем домашнем каталоге, но если такового не существует, то он попадает в корневой каталог.

Седьмое поле задает командную оболочку входа в систему. Не всякую оболочку можно указать в этом поле. В зависимости от настроек системы в нем может быть указана только оболочка из списка допустимых оболочек. В МСВС список допустимых оболочек находится по умолчанию в файле /etc/shells.

Файл /etc/shadow

Владельцем файла /etc/shadow является пользователь root и только он имеет право читать этот файл. Для его создания нужно взять имена пользователей и хэши-рованные пароли из файла passwd и поместить их в файл shadow, заменив при этом все хэшированные пароли в файле passwd символами х. Если посмотреть на файл passwd системы, то можно увидеть, что на месте хэшированных паролей там стоят символы х. Данный символ указывает системе на то, что пароль следует смотреть не здесь, а в файле /etc/shadow. Переход от простых паролей к теневым и обратно осуществляется посредством трех утилит. Для перехода к теневым паролям сначала запускается утилита pwck. Она проверяет файл passwd на предмет всяких аномалий, из-за которых следующий шаг может закончиться неудачей или попросту зациклиться. После того как отработает pwck, запускается утилита pwconv для создания /etc/shadow. Обычно это делается после ручного обновления файла /etc/passwd. Для возвращения к обычным паролям запускается pwuncov.

Файл теневых паролей во многих отношениях схож с файлом обычных паролей. В частности, первые два поля этих файлов одинаковы. Но помимо этих полей в нем, естественно, есть и дополнительные поля, отсутствующие в файле обычных паролей. Листинг 1.2. показывает содержимое типичного файла /etc/shadow.

Листинг 1.2. Файл /etc/shadow

root:1iDYwrOmhmEBU:10792:0:: 7:7::

bin:*:10547:0::7:7::

daemon:*:10547:0::7:7::

adm:*:10547:0::7:7::

lp:*:10547:0::7:7::

sync:*:10547:0::7:7::

shutdown:U:10811:0:-1:7:7:-1:134531940

halt:*:10547:0::7:7::

mail:*:10547:0::7:7::

news:*:10547:0::7:7::

uucp:*:10547:0::7:7::

operator:*:10547:0::7:7::

games:*: 10547:0: :7:7::

gopher:*:10547:0::7:7::

ftp:*:10547:0::7:7::

man:*:10547:0::7:7::

majordom:*:10547:0::7:7::

postgres:*:10547:0::7:7::

mysql:*:10547:0::7:7::

si1via:1iDYwrOmhmEBU:10792:0:30:7:-l::

nobody:*:10547:0::7:7::

david:1iDYwrOmhmEBU:10792:0::7:7::

Подробнеео /etc/shadow

Назначение первого поля файла shadow такое же, как и у первого поля файла passwd.

Второе поле содержит хэшированный пароль. Реализация теневых паролей в МСВС допускает хэшированные пароли длиной от 13 до 24 символов, однако программа шифрования паролей crypt умеет выдавать только 13-символь-ные хэшированные пароли. Символы, используемые в хэше, берутся из набора, состоящего из 52 букв алфавита (строчных и прописных), цифр 0-9, точки и наклонной черты вправо (/). Итого выходит 64 символа, допустимых в поле хэшированного пароля.

Затравка, таким образом, которая, как и ранее, представляет собой первые два символа, может выбираться из 4096 возможных комбинаций (64x64). Для шифрования используется алгоритм DES с 56-битным ключом, то есть пространство ключей этого алгоритма насчитывает 2 56 ключей, что приблизительно равно 72 057 590 000 000 000 или 72 квадрильонам. Число выглядит впечатляюще, однако перебрать все ключи из пространства такого размера можно на самом деле за весьма короткое время.

С третьего поля начинается информация об устаревании пароля. В нем хранится число дней, прошедших с 1 января 1970 года до дня последнего изменения пароля.

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

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

Значение из шестого поля определяет, за сколько дней до окончания срока действия пароля следует начать выдавать предупреждение об этом. Получив предупреждение, пользователь может начать придумывать новый пароль.

Седьмое поле задает число дней, начиная со дня обязательной смены пароля, по истечении которых данная учетная запись блокируется.

В предпоследнем поле хранится день блокировки учетной записи.

Последнее поле зарезервировано и не используется.

Подробнее о /etc/group

Каждая запись файла /etc/group состоит из четырех полей, разделенных двоеточиями. Первое поле задает имя группы. Подобно имени пользователя.

Второе поле обычно всегда пустое, так как механизм паролей для групп обычно не используется, однако если данное поле не пусто и содержит пароль, то к группе может присоединиться любой пользователь. Для этого нужно выполнить команду newgrp с именем группы в качестве параметра, после чего ввести правильный пароль. Если пароль для группы не задан, то присоединиться к ней могут только пользователи, перечисленные в списке членов группы.

Третье поле задает идентификатор группы (GroupID, GID). Смысл его такой же, как и у идентификатора пользователя.

Последнее поле представляет собой список имен пользователей, принадлежащих к группе. Имена пользователей перечисляются через запятую без пробелов. Первичная группа пользователя указывается (в обязательном порядке) в файле passwd и назначается при подключении пользователя к системе исходя из этой информации. Соответственно, если изменить первичную группу пользователя в файле passwd, то пользователь более не сможет присоединиться к своей бывшей первичной группе.

Файл /etc/login.defs

Добавить нового пользователя в систему можно несколькими способами. В МСВС для этого используются следующие программы: coastooL, LISA, useradd. Подойдет любая из них. Утилита COAS использует свой собственный файл. А программы useradd и LISA берут информацию о значениях по умолчанию для полей файлов passwd и shadow из файла /etc/login.defs. Содержимое этого файла в сокращенной форме показано в листинге 1.4.

Листинг 1.4. Сокращенный файл /etc/login.defs

#Максимальное количество дней, в течение которого разрешается использовать пароль:

#(-1 - смена пароля не обязательна) PASS_MAX_DAYS-1

Минимальное количество дней между сменами пароля: PASS_MIN_DAYSО

#За какое количество дней до даты смены пароля должно выдаваться предупреждение: PASS_WARN_AGE7

#Какое количество дней должно пройти после истечения допустимого срока использования пароля, прежде чем учетная запись будет блокирована: PASS_INACTIVE-1

#Форсировать истечение срока использования пароля в заданный день:

# (дата идентифицируется количеством дней после 70/1/1, -1 = не форсировать) PASS_EXPIRE -1

#Значения полей создаваемой учетной записи для программы useradd

#группа по умолчанию:GROUP100

#домашний каталог пользователя: %s = имя пользователя) НОMЕ /home/%s

#командная оболочка по умолчанию: SHELL/bin/bash

#каталог, в котором расположен скелет домашнего каталога: SKEL/etc/skel

#минимальное и максимальное значения для автоматического выбора gid в groupaddGID_MIN100

Содержимое этого файла задает значения по умолчанию для полей файлов passwd и shadow. Если не переопределить их из командной строки, будут использованы именно они. Как отправная точка, эти значения вполне подойдут, однако для реализации устаревания паролей некоторые из них нужно будет изменить. Значение, равное -1, означает отсутствие ограничений.

В программе COAS дистрибутива Caldera используется графический интерфейс пользователя л то

Для изменения информации об устаревании пароля для одного или двух пользователей можно воспользоваться командой chage (changeaging - изменить устаревание). Непривилегированные пользователи могут запускать chage только с параметрами -l и собственным именем пользователя, то есть запрашивать информацию об устаревании только собственного пароля. Для изменения информации об устаревании достаточно указать имя пользователя, остальные параметры будут запрошены в диалоговом режиме. Вызов chage без параметров выдаст краткую справку об использовании.

Программа COAS может использоваться с целью изменения параметров устаревания паролей для каждой из учетных записей по отдельности. При этом значения указываются в днях. Интерфейс программы очевиден.

ПРИМЕЧАНИЕ -

Для получения информации об устаревании пароля пользователя или форсирования этого процесса можно воспользоваться командой expiry.

Система безопасности РАМ

Основная идея РАМ состоит в том, что всегда можно написать новый модуль безопасности, который бы обращался к файлу или устройству за информацией и возвращал результат выполнения процедуры авторизации: УСПЕХ (SUCCESS), НЕУДАЧА (FAILURE) или ИГНОРИРОВАТЬ (IGNORE). А РАМ, в свою очередь, возвратит УСПЕХ (SUCCESS) или НЕУДАЧА (FAILURE) вызвавшей ее службе. Таким образом, неважно, какие пароли, теневые или обычные, используются в системе, если в ней есть РАМ: все поддерживающие РАМ программы будут прекрасно работать и с теми и другими.

Перейдем теперь к рассмотрению основных принципов работы РАМ. Рассмотрим листинг 1.6. В каталоге /etc/pam.d содержатся файлы конфигурации и для других служб, таких как su, passwd и т. п., в зависимости от того, какое программное обеспечение установлено в системе. Каждой службе с ограничением доступа (restrictedservice) соответствует свой файл конфигурации. Если такового нет, то данная служба с ограничением доступа попадает в категорию «other», с файлом конфигурации other.d. (Службой с ограничением доступа называется любая служба или программа, для использования которой требуется пройти авторизацию. Иными словами, если при нормальных условиях служба запрашивает у вас имя пользователя и пароль, она является службой с ограничением доступа.)

Листинг 1.6. Файлконфигурациислужбы login

auth required pam_securetty.so

auth required pam_pwdb.so

auth required pam_nologin.so

#auth required pam_dialup.so

auth optional pam_mail.so

account required pam_pwdb.so

session required pam_pwdb.so

session optional pam_lastlog.so

password required pam_pwdb.so

Как видно из листинга, файл конфигурации состоит из трех столбцов. Строки, начинающиеся с символа решетки (#), игнорируются. Стало быть, модуль pam_dialup (четвертая строка листинга 1.6.) будет пропущен. В файле есть строки с одинаковым третьим полем - pam_pwd.so, и первым - auth. Использование нескольких строк с одинаковым первым полем называется накоплением (stacking) модулей и позволяет получать многошаговую авторизацию (стек модулей), включающую несколько различных процедур авторизации.

Первый столбец является столбцом типа. Тип определяется одной из четырех символьных меток: auth, account, session и password. Содержимое всех столбцов рассматривается без учета регистра.

Тип auth (authentication - аутентификация) используется для выяснения, является ли пользователь тем, за кого он себя выдает. Как правило, это достигается сравнением введенного и хранимого паролей, но возможны и другие варианты.

Тип account (учетная запись) проверяет дозволено ли использовать службу данному пользователю, на каких условиях, не устарел ли пароль и т. д.

Тип password (пароль) используется для обновления маркеров авторизации.

Тип session (сеанс) выполняет определенные действия при входе пользователя в систему и при выходе пользователя из системы.

Управляющие флаги

Второй столбец является полем управляющего флага, определяющим, что делать после возврата из модуля, то есть реакцию РАМ на значения УСПЕХ (SUCCESS), ИГНОРИРОВАТЬ (IGNORE) и НЕУДАЧА (FAILURE). Разрешенные значения: requisite, required, sufficient и optional. От значения в этом поле зависит, будут ли обработаны остальные строки файла.

Флаг requisite (обязательный) задает наиболее жесткое поведение. Обработка любой строки с флагом requisite, модуль которой вернул значение НЕУДАЧА (FAILURE), будет прекращена и вызвавшей ее службе будет возвращен статус НЕУДАЧА (FAILURE). Никакие другие строки рассматриваться не будут. Этот флаг используется достаточно редко. Дело в том, что если помеченный им модуль выполняется самым первым, то следующие за ним модули могут и не выполниться, в том числе и отвечающие за протоколирование, поэтому вместо него обычно применяется флаг required (необходимый).

Флаг required (необходимый) не прерывает выполнение модулей. Каков бы ни был результат выполнения помеченного им модуля: УСПЕХ (SUCCESS), ИГНОРИРОВАТЬ (IGNORE) или НЕУДАЧА (FAILURE), РАМ всегда переходит к обработке следующего модуля. Это наиболее часто используемый флаг, так как результат выполнения модуля не возвращается до тех пор, пока не отработают все остальные модули, а значит, модули, отвечающие за протоколирование, обязательно выполнятся.

Флаг sufficient (достаточный) приводит к немедленному завершению обработки строки и возврату значения УСПЕХ (SUCCESS) при условии, что помеченный им модуль вернул значение УСПЕХ (SUCCESS) и ранее не встречалось модуля с флагом required, вернувшего статус НЕУДАЧА (FAILURE). Если такой модуль встречался, то флаг sufficient игнорируется. Если помеченный этим флагом модуль возвратил значение ИГНОРИРОВАТЬ (IGNORE) или НЕУДАЧА (FAILURE), то флаг sufficient рассматривается аналогично флагу optional.

Результат выполнения модуля с флагом optional (необязательный) принимается во внимание лишь тогда, когда он является единственным модулем в стеке, вернувшим значение УСПЕХ (SUCCESS). В противном случае результат его выполнения игнорируется. Таким образом, неуспешное выполнение помеченного им модуля не влечет за собой неуспех всего процесса авторизации.

Чтобы пользователь смог получить доступ к системе, модули, помеченные флагами requisite и required, не должны возвращать значения НЕУДАЧА (FAILURE). Результат выполнения модуля с флагом optional принимается в рассмотрение, лишь если он является единственным модулем в стеке, вернувшим УСПЕХ (SUCCESS).

Модули РАМ

Третий столбец содержит полное имя файла модуля, связанного с данной строкой. В принципе, модули могут располагаться где угодно, однако если они размещены в предопределенном каталоге для модулей, то можно указывать одно лишь имя, в противном случае нужен еще и путь. В МСВС предопределенным каталогом является /lib/security.

Четвертый столбец предназначен для передачи в модуль дополнительных параметров. Не у всех модулей есть параметры, а если есть, то они могут и не использоваться. Передача параметра модулю позволяет изменить его поведение тем или иным образом.

Листинг 1.7 содержит список модулей РАМ, входящих в состав МСВС.

Листинг 1.7. Список модулей РАМ, входящих в состав МСВС

pam_rhosts_auth.so

pam_securetty.so

pam_unix_acct.so

pam_unix_auth.so

pam_unix_passwd.so

pam_unix_session.so

О модулях подробнее

Модуль pam_access.so используется для предоставления/запрещения доступа на основании файла /etc/security/access.conf. Строки этого файла имеют следующий формат:

права: пользователи: откуда

Права - либо + (разрешить), либо - (запретить)

Пользователи - ALL, имя пользователя или пользователь@узел, где узел соответствует имени локальной машины, иначе запись игнорируется.

Откуда - одно или несколько имен файлов терминалов (без префикса /dev/), имена узлов, доменные имена (начинающиеся с точки), IP адреса, ALL или LOCAL.

Модуль pam_cracklib.so проверяет пароли по словарю. Он предназначен для проверки нового пароля и позволяет предотвратить использование в системе легко взламываемых паролей, каковыми считаются общеупотребительные слова, пароли, содержащие повторяющиеся символы, и слишком короткие пароли. Есть необязательные параметры: debug, type= и retry=. Параметр debug включает занесение отладочной информации в файл журнала. Параметр type, за которым следует строка, меняет в выводимом по умолчанию приглашении NewUnixpassword: слово Unix на указанную строку. Параметр retry задает число попыток, предоставляемых пользователю для ввода пароля, по исчерпании которых возвращается ошибка (по умолчанию дается одна попытка).

Рассмотрим листинг 1.8. В нем показано содержимое файла /etc/ pam.d/other. В этом файле содержится конфигурация, используемая механизмом РАМ в отношении служб, не имеющих своих собственных конфигурационных файлов в каталоге /etc/pam.d. Иными словами, этот файл применяется в отношении всех служб, неизвестных системе РАМ. В нем представлены все четыре типа авторизации, auth, account, password и session, каждая из которых вызывает помеченный флагом required модуль pam_deny.so. Таким образом, выполнение неизвестной службы запрещается.

Листинг 1.8. Файл /etc/pam.d/other

auth required pam_deny.so

auth required pam_warn.so

account required pam_deny.so

password required pam_deny.so

password required pam_warn.so

session required pam_deny.so

Модуль pam_dialup.so проверяет, нужно ли указывать пароль для доступа к удаленному терминалу или терминалам, для чего используется файл /etc/security/ ttys.dialup. Модуль применим не только к ttyS, а вообще к любому tty-терминалу. Когда пароль нужен, он сверяется с прописанным в файле /etc/ security/passwd.dialup. Изменения файла passwd.dialup осуществляются программой dpasswd.

Модуль pam_group.so занимается проверками в соответствии с содержимым файла /etc/security/group.conf. В этом файле указываются группы, членом которых может стать указанный в файле пользователь при выполнении определенных условий.

Модуль pam_lastlog.so заносит в файл lastlog сведения о том, когда и откуда пользователь вошел в систему. Обычно этот модуль помечается типом session и флагом optional.

Модуль pam_limits.so позволяет накладывать различные ограничения на пользователей, вошедших в систему. Эти ограничения не распространяются на пользователя root (или любого другого пользователя с нулевым идентификатором). Ограничения устанавливаются на уровне входа в систему и не являются глобальными или постоянными, действуя только в пределах одного входа.

Модуль pam_lastfile.so принимает некоторую запись (item), сравнивает ее со списком в файле и на основании результатов сравнения возвращает УСПЕХ (SUCCESS) или НЕУДАЧА (FAILURE). Параметры этого модуля следующие:

Item=[терминал пользователь | удаленный_узел | удаленный_пользователь | группа| оболочка]

Sense= (статус для возврата; когда запись найдена в списке, в противном случае возвращается статус, противоположный указанному)

filе=/полный/путь/и/имя_файла - onerr= (какой статус возвращать в случае возникновения ошибки)

Арр1у=[пользователь|@группа] (задает пользователя или группу, в отношении которой применяются ограничения. Имеет смысл только для записей вида item=[терминал | удаленный_узел | оболочка], для записей вида item=[пользователь | удаленный_пользователь | группа] игнорируется)

Модуль pam_nologin.so используется при авторизации типа auth с флагом required. Этот модуль проверяет, существует ли файл /etc/nologin, и если нет, то возвращает значение УСПЕХ (SUCCESS), иначе содержимое файла показывается пользователю и возвращается значение НЕУДАЧА (FAILURE). Этот модуль обычно используется в тех случаях, когда система еще не до конца введена в строй или временно закрыта для обслуживания, но не отсоединена от сети.

Модуль pam_permit.so является дополнительным к модулю pam_deny.so. Он всегда возвращает значение УСПЕХ (SUCCESS). Любые переданные параметры модулем игнорируются.

Модуль pam_pwdb.so предоставляет интерфейс к файлам passwd и shadow. Возможны следующие параметры:

Debug - запись отладочной информации в файл журнала;

Audit - дополнительная отладочная информация для тех, кому недостаточно обычной отладочной информации;

Use_first_pass - никогда не запрашивать пароль у пользователя, а брать его у предыдущих модулей стека;

Try_first_pass - попробовать получить пароль у предыдущих модулей, в случае неудачи запросить у пользователя;

Use_authtok - возвратить значение НЕУДАЧА (FAILURE) в случае, если pam_authtok не был установлен, не запрашивать пароль у пользователя, а брать его у предыдущих модулей стека (только для стека модулей типа password);

Not_set_pass - не устанавливать пароль из этого модуля в качестве пароля для последующих модулей;

Shadow - поддерживать систему теневых паролей;

Unix - помещать пароли в файл /etc/passwd;

Md5 - при следующей смене паролей использовать пароли md5;

Bigcrypt - при следующей смене паролей использовать пароли DECC2;

Nodelay - отключить односекундную задержку при неудачной авторизации.

Модуль pam_rhosts_auth.so разрешает/запрещает использование файлов.rhosts или hosts.equiv. Кроме того, он также разрешает/запрещает использование «опасных» записей в этих файлах. Параметры этого модуля следующие:

No_hosts_equiv - игнорировать файл /etc/hosts.equiv;

No_rhosts - игнорировать файл /etc/rhosts или ~/.rhosts;

Debug - протоколировать отладочную информацию;

Nowarn - не выводить предупреждения;

Suppress - не выводить никаких сообщений;

Promiscuous - разрешить использование подстановочного символа «+» в любом поле.

Модуль pam_rootok.so возвращает значение УСПЕХ (SUCCESS) для любого пользователя с нулевым идентификатором. Будучи помечен флагом sufficient, данный модуль позволяет получать доступ к службе без указания пароля. Параметр у модуля всего один: debug.

Модуль pam_securetty.so можно использовать только в отношении суперпользователей. Этот модуль работает с файлом /etc/securetty, позволяя суперпользователю входить в систему только через перечисленные в этом файле терминалы. Если требуется разрешить вход суперпользователя в систему посредством telnet (псевдотерминал ttyp), то следует либо добавить в этот файл строки для ttyp0-255, либо закомментировать вызов pam_securetty.so в файле для службы login.

Модуль pam_shells.so возвращает значение УСПЕХ (SUCCESS), если оболочка пользователя, указанная в файле /etc/passwd, присутствует в списке оболочек из файла /etc/shells. Если файл /etc/passwd не назначает пользователю никакой оболочки, то запускается /bin/sh. Если в файле /etc/passwd для пользователя указана оболочка, отсутствующая в списке /etc/shells, модуль возвращает значение НЕУДАЧА (FAILURE). Правом на запись в файл /etc/shells должен обладать только суперпользователь.

Модуль pam_stress.so используется для управления паролями. У него достаточно много параметров, в том числе и неизменный debug, но в общем случае из всех параметров интерес представляют только два:

Rootok - разрешить суперпользователю менять пароли пользователей без ввода старого пароля;

Expired - с этим параметром модуль выполняется, как если бы срок действия пароля пользователя уже истек.

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

В МСВС модуль pam_tally.so в файлах из /etc/pam.d по умолчанию не используется. Этот модуль производит подсчет попыток прохождения авторизации. При успешном прохождении авторизации счетчик числа попыток можно обнулять. Если количество неудачных попыток подключения превысило некоторое пороговое значение, доступ можно запретить. По умолчанию сведения о попытках помещаются в файл /var/log/ faillog. Глобальные параметры таковы:

Onerr= - что делать, если возникла ошибка, например не удалось открыть файл;

Filе=/полный/путь/и/имя_файла - если отсутствует, то используется файл по умолчанию. Следующий параметр имеет смысл только для типа auth:

No_magic_root - включает подсчет числа попыток для суперпользователя (по умолчанию не ведется). Полезно, если разрешен вход суперпользователя в систему через telnet. Следующие параметры имеют смысл только для типа account:

Deny=n - отказать в доступе после n попыток. При использовании этого параметра поведение модуля reset/no_reset по умолчанию изменяется с no_reset на reset. Это происходит для всех пользователей, за исключением пользователя root (UID 0), если только не используется параметр no_magic_root;

No_magic_root - не игнорировать параметр deny для попыток доступа, осуществляемых пользователем root. При использовании совместно с параметром deny= (см. ранее) для пользователя root по умолчанию устанавливается поведение reset, как и для всех остальных пользователей;

Even_deny_root_account - разрешает блокировку учетной записи суперпользователя при наличии параметра no_magic_root. При этом выдается предупреждение. Если параметр no_magic_root не используется, то независимо от числа неудачных попыток учетная запись суперпользователя, в отличие от записей обычных пользователей, никогда не будет заблокирована;

Reset - обнулять счетчик числа попыток при успешном входе;

No_reset - не обнулять счетчик числа попыток при успешном входе; используется по умолчанию, если только не указан параметр deny=.

Модуль pam_time.so позволяет ограничить доступ к службе в зависимости от времени. Все инструкции по его настройке можно найти в файле /etc/security/ time.conf. Параметров у него нет: все задается в файле конфигурации.

Модуль pam_unix занимается вопросами обычной авторизации МСВС (обычно вместо этого модуля используется pam_pwdb.so). Физически данный модуль состоит из четырех модулей, каждый из которых соответствует одному из типов РАМ: pam_unix_auth.so, pam_unix_session.so, pam_unix_acct.so и pam_unix_passwd.so. Модули для типов account и auth параметров не имеют. У модуля для типа passwd параметр всего один: strict=false. При его наличии модуль не проверяет пароли на стойкость к взлому, позволяя использовать произвольные, в том числе и небезопасные (легко угадываемые или подбираемые) пароли. Модуль для типа session понимает два параметра: debug и trace. Отладочная информация параметра debug помещается в файл журнала отладочной информации, как указано в syslog.conf, а информация параметра trace из-за ее чувствительности - в журнал authpriv.

Модуль pam_warn.so заносит сообщение о своем вызове в syslog. Параметров не имеет.

Модуль pam_wheel.so разрешает становиться суперпользователем только членам группы wheel. Группа wheel - это специальная системная группа, члены которой имеют большие привилегии, чем обычные пользователи, но меньшие, чем суперпользователь. Ее наличие позволяет уменьшить число пользователей системы с привилегиями суперпользователя, сделав их членами группы wheel и тем самым повысив безопасность системы. Если суперпользователь может входить в систему только при помощи терминала, то данный модуль можно использовать для того, чтобы сделать недоступной для пользователей работу через telnet с привилегиями суперпользователя, отказав им в доступе, если они не принадлежат к группе wheelМодуль использует следующие параметры:

Debug - протоколирование отладочной информации;

Use_uid - определение принадлежности на основании текущего идентификатора пользователя, а не того, что был назначен ему при входе в систему;

Trust - в случае принадлежности пользователя к группе wheel возвращать значение УСПЕХ (SUCCESS), а не ИГНОРИРОВАТЬ (IGNORE);

Deny - меняет смысл процедуры на противоположный (возврат НЕУСПЕШНО). В комбинации с group= позволяет отказывать в доступе членам данной группы.

ПРИМЕЧАНИЕ -

Каталог /etc/security имеет непосредственное отношение к каталогу /etc/pam.d, поскольку содержит файлы конфигурации различных модулей РАМ, вызываемых в файлах из /etc/pam.d.

Записи РАМ в файлах журналов

Листинг 1.9. Содержимое /var/log/secure

Jan 11 16:45:14 chiriqui PAM_pwdb: (su) session opened for user root

Jan 11 16:45:25 chiriqui PAM_pwdb: (su) session closed for user root

Jan 11 17:18:06 chiriqui login: FAILED LOGIN 1 FROM (null) FOR david,

Authentication failure

Jan 11 17:18:13 chiriqui login: FAILED LOGIN 2 FROM (null) FOR david.

Authentication failure

Jan 11 17:18:06 chiriqui login: FAILED LOGIN 1 FROM (null) FOR david.

Authentication failure

Jan 11 17:18:13 chiriqui login: FAILED LOGIN 2 FROM (null) FOR david,

Authentication failure

Jan 11 17:18:17 chiriqui PAM_pwdb: (login) session opened for user david

Jan 11 17:18:17 chiriqui -- david: LOGIN ON ttyl BY david

Jan 11 17:18:20 chiriqui PAM_pwdb: (login) session closed for user david

Каждая запись начинается с даты, времени и имени узла. После чего следует имя модуля РАМ и идентификатор процесса, заключенный в квадратные скобки. Затем, в круглых скобках, идет имя службы с ограничением доступа. Для листинга 1.9 это либо su, либо login. После имени службы следует либо «sessionopened» (сеанс открыт), либо «sessionclosed» (сеанс закрыт).

Запись, следующая непосредственно за записью с «sessionopened», является сообщением о входе в систему, из которого можно узнать, кто и откуда вошел в систему.

Рассматриваются следующие вопросы:

Что такое пользовательская группа по умолчанию и частные пользовательские группы;

Изменение пользователя/группы;

Как изменение пользователя/группы влияет на графический интерфейс;

Безопасность и пользователи;

Безопасность и пароли;

Защита паролей;

Выбор хорошего пароля;

Взлом паролей.

Группа по умолчанию

В настоящее время ограничения на одновременную принадлежность пользователя лишь к одной группе более не существует. Любой пользователь может принадлежать одновременно к нескольким группам. По команде newgrp пользователь становится членом указанной в команде группы, при этом данная группа становится для данного пользователя группой входа в систему (logingroup). При этом пользователь продолжает оставаться членом тех групп, в которые он входил до выполнения команды newgrp. Группа входа в систему является группой, которая становится групповым владельцем файлов, создаваемых пользователем.

Различие между группой по умолчанию и частными группами пользователей заключается в степени открытости этих двух схем. В случае схемы с группой по умолчанию любой пользователь может читать (а часто и изменять) файлы другого пользователя. С частными же группами чтение или запись файла, созданного другим пользователем, возможны лишь, если его владелец явно предоставил права на эти операции остальным пользователям.

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

По умолчанию в МСВС групповые пароли не используются, поэтому файла gshadow в каталоге /etc нет.

Если для выполнения рутинных задач администрирования пользователей вы постоянно используете только одну из программ - useradd, LISA или COAS, - файлы настроек пользователей получаются более согласованными и более легкими в сопровождении.

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

Настройка параметров пользователей по умолчанию - это высокоприоритетная задача, которую следует выполнить сразу же после того, как вы установите систему.

Частные группы пользователей

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

Преимущество частных групп пользователя состоит в том, что пользователям не нужно думать об ограничении доступа к своим файлам: по умолчанию доступ к пользовательским файлам с самого момента их создания будет ограничен. В МСВС, при использовании частных групп пользователь может читать или изменять только принадлежащие ему файлы. Кроме того, создавать файлы он может только в своем домашнем каталоге. Данное поведение по умолчанию может быть изменено системным администратором или пользователем, причем как на уровне отдельного файла, так и на уровне каталога.

Есть несколько команд, при помощи которых пользователь может управлять своим именем и/или группой, к которой он принадлежит, или именем или группой, от лица которых выполняется программа. Одна из таких программ newgrp.

Команда newgrp может быть выполнена любым пользователем. Она позволяет ему присоединиться к группе, к которой он не принадлежал, но только если этой группе назначен пароль. Данная команда не позволит вам присоединиться к группе без пароля, если вы не являетесь членом этой группы.

Команду newgrp можно использовать в отношении группы, членом которой уже является пользователь. В этом случае newgrp делает указанную группу группой входа в систему. Группы пользователя подразделяются на два типа: группа входа в систему и все остальные группы, к которым принадлежит этот пользователь. Пользователь может принадлежать к нескольким группам, однако группой-владельцем файлов, создаваемых пользователем, всегда будет назначаться группа входа в систему этого пользователя.

Помимо newgrp для управления принадлежностью файла тому или иному пользователю или группе можно использовать также команды chown и chgrp.

Область действия команды newgrp в среде XWindow ограничивается программой xterm, в которой она была выполнена: в контексте новой группы будут выполняться лишь программы, запущенные через этот терминал, а значит, пользователь не может изменять с ее помощью группу входа в систему для программ, запущенных посредством диспетчера окон. Программу, которую всегда нужно выполнять в контексте вторичной группы, можно запускать через сценарий, устанавливающий для нее требуемую группу входа в систему.

Система XWindow всегда привносит в жизнь пользователей дополнительные трудности. В данном случае трудности эти не связаны напрямую с X, а следуют из логики работы /etc/groups и /etc/gshadow. Тем, кто не использует теневые пароли для групп, беспокоиться особенно не о чем. В случае с X установить группу, защищенную паролем, из простого сценария не получится, однако для вторичных групп пользователя, не требующих ввода пароля, смена группы осуществляется предельно просто. Достаточно следующего сценария:

sg - gifs -с /usr/X11R6/bin/xv &

В результате запуска этого сценария будет запущена программа xv, первичной группой которой будет сделана группа gifs. Что и требовалось получить.

Труднее тем, кто использует теневые групповые пароли, поскольку в этом случае при выполнении данного сценария на экране появится сообщение об ошибке. Когда в файле /etc/groups перечислены входящие в группу пользователи, любой из них автоматически считается ее членом непосредственно после входа в систему. Однако в случае теневых паролей список пользователей группы перемещен в файл /etc/gshadow, так что вошедший в систему пользователь не зачисляется автоматом в ее члены, но может присоединяться к ней посредством команды newgrp или же выполнять от ее имени какую-либо программу при помощи команды sg. Проблема в том, что с точки зрения X данный пользователь (который не обязательно является пользователем, инициировавшим рабочий сеанс X) не имеет права на установку соединения. Поэтому для незащищенных паролем групп приведенный ранее сценарий изменяется следующим образом:

xhosts +lосаlhost

sg - gifs -c /usr/X11R6/bin/xv &

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


ПРИМЕЧАНИЕ

Использование Х-сервера (в особенности совместо с xdm или kdm) влечет за собой целый ряд своих тонкостей, еще более усугубляемых графическими приложениями, поскольку их можно запускать не только через командную строку, но и при помощи значка на графическом рабочем столе.

Изменение пользователя

ПРИМЕЧАНИЕ

Обычный пользователь не в силах нанести системе столько вреда, сколько может сделать неосторожный суперпользователь. Последствия вашей опечатки как суперпользователя могут быть весьма фатальными, вплоть до того, что всем вашим системным файлам (а то и вообще всем файлам, хранящимся в системе) можно будет сказать «прощай». В некоторых компаниях после этого могут сказать «прощай» и вам.

Превращением одного пользователя в другого занимается команда su. Свое название команда получила от « substitute user » (подстановка пользователя), но так как чаще всего она используется, чтобы стать суперпользователем..

Команда su, вызванная без аргументов, запросит у пользователя пароль, после чего (получив в ответ правильный пароль) сделает вас пользователем root. Данная команда является службой с ограничением доступа, поэтому все аспекты ее безопасности можно настроить через файл /etc/pam.d/su.

ПРИМЕЧАНИЕ -

Обращение su без указания имени пользователя (с дефисом или без) трактуется, как указание сделать вас пользователем root.

Данная команда sudo позволяет избранным пользователям выполнять некоторые программы на правах суперпользователя, причем у обратившегося к этой команде пользователя запрашивается не пароль суперпользователя, а его собственный пароль. Используется sudo подобно команде sg. Пользователь вводит sudo команда_для_выполнения, затем свой пароль, и если ему это разрешено, указанная команда выполняется в контексте привилегий суперпользователя.

Безопасность и пользователи

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

Вообще говоря, не их это забота - безопасность. Системный администратор должен продумать, реализовать и поддерживать политику безопасности, которая позволила бы пользователям делать свою работу, не отвлекаясь на посторонние для них вопросы защиты.

Основная опасность для системы, как правило, исходит изнутри, а не снаружи. Ее источником (особенно в крупных системах) может стать, например, рассерженный пользователь. Следует, однако, избегать излишней подозрительности, когда вред, нанесенный по незнанию, принимается за злой умысел. О том, как оградить пользователей от непреднамеренного повреждения своих и чужих файлов, рассказывается в первой части книги. Как показывает практика, среднестатистический пользователь не в состоянии повредить систему. Беспокоиться нужно лишь о тех пользователях, которые в состоянии найти лазейку в механизмах защиты и действительно способны причинить целенаправленный вред системе. Но таких пользователей обычно мало и со временем они становятся известны, особенно если знать, на что обращать внимание. К группе риска относятся пользователи, которые в силу своего положения или благодаря своим связям могут получить доступ на уровне привилегий root. По мере того как вы будете овладевать материалом данной книги, вы будете узнавать, что именно следует расценивать как признаки надвигающейся беды.

По умолчанию пользователи получают полный контроль над своими домашними каталогами. Если вы используете группу по умолчанию, все пользователи системы принадлежат к одной группе. Любой пользователь обладает правом доступа к домашним каталогам других пользователей и расположенным в них файлам. При использовании схемы с частными группами пользователей любой из пользователей системы обладает доступом только к своему собственному домашнему каталогу, а домашние каталоги других пользователей ему не доступны.

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

Некоторые пользователи нуждаются в использовании или просто не могут обойтись без программ, не входящих в комплект МСВС. Большинство пользователей со временем обзаводится множеством собственных файлов: документы, конфигурационные файлы, сценарии и т. п. Система OpenLinux не предоставляет пользователям особой помощи в деле организации своих файлов, оставляя эту задачу системному администратору.

Структура каталогов, создаваемых в домашнем каталоге каждого нового пользователя, определяется содержимым каталога /etc/skel. В типичном /etc/skel обычно присутствуют следующие каталоги:

Эти каталоги используются для хранения (соответственно) бинарных файлов, исходных файлов, файлов документов и других разнообразных файлов. Многие программы по умолчанию предлагают сохранять файлы тех или иных типов в одном из этих подкаталогов. Получив разъяснение о назначении имеющихся в их распоряжении каталогов, пользователи обычно охотно начинают пользоваться ими, поскольку это избавляет их от необходимости придумывать что-то свое. Не забудьте только сделать каталог ~/bin одним из последних каталогов, перечисляемых в переменной PATH пользователей.

Безопасность и пароли

Говорят, что где тонко, там и рвется, - это высказывание часто вспоминают, когда речь заходит о значимости паролей в системе безопасности. Вообще говоря, надежность системы безопасности определяется множеством факторов, в частности тем, какие службы МСВС-система делает доступными для внешних пользователей (используется ли она в качестве web-сервера, можно ли войти в нее при помощи telnet и т. д.). Другим определяющим фактором являются пароли пользователей, что подводит нас к еще одному фактору - соблюдение пользователями политик безопасности. Простой пользователь знать ничего не желает о безопасности. Если мы уважаем пользователя и не хотим менять его отношение к безопасности принудительными методами, нам следует сделать систему безопасности удобной и понятной для него. Труднее всего обеспечить удобство. Все безопасное обычно не слишком удобно (поскольку за удобством стоят не сочетающиеся с безопасностью предсказуемость и элементарность) и потому входит в конфликт с обычным поведением людей, предпочитающих всем возможным способам самый удобный. В конце концов, пользователи работают с системой для того, чтобы выполнить возложенную на них работу, а не добавить себе новой. Дабы пользователи сознательно не шли по пути наименьшего сопротивления при работе с паролями, я обычно стараюсь объяснить им, для чего вообще нужны пароли и почему так важно поддерживать их безопасность. Важно не с общих позиций типа «систему с низкой безопасностью могут взломать и украсть или повредить важные файлы», а с позиций личных интересов пользователя.

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

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

Однако пользователи должны понимать, что есть и другие не менее опасные способы получить несанкционированный доступ к их учетной записи. Наиболее распространен случай, когда пользователь, опасаясь забыть пароль, делает его простым для запоминания, а значит, и угадывания, или же записывает пароль на бумажку, которая зачастую просто прикрепляется к монитору. Система парольной безопасности основывается на двух вещах: постоянное имя пользователя и периодически меняющийся пароль. Большинство людей никому не скажут PIN-код для доступа к своему банковскому счету, однако свой пароль пользователя они оберегают далеко не столь ревностно. Хотя в отличие от ситуации с банковским счетом, где постоянная часть, то есть кредитная карта, является физическим объектом, доступ к которому еще нужно получить, постоянная часть системы парольной безопасности, то есть имя пользователя, известна всем (по крайней мере, всем в пределах компании и тем, с кем данный пользователь вел переписку по электронной почте). Поэтому если переменная часть где-то записана или легко угадывается или подбирается программой, перебирающей слова из словаря, то такую учетную запись нельзя считать хорошо защищенной.

Наконец, пользователи должны знать о существовании такого метода получения пароля, как «социальная инженерия» (socialengineering). Большинство из нас встречалось в своей жизни хотя бы с одним человеком, о котором можно сказать «скользкий как уж». Такие люди обладают способностью убеждать других людей, прибегая к логично построенной аргументации, предоставить нужную им информацию. Но это не единственно возможный способ узнать чужой пароль. Иногда достаточно просто подсмотреть.

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

ПРИМЕЧАНИЕ-

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

Обратите внимание, что перед началом работы сценарий осуществляет некоторые проверки: выполняется ли он на уровне привилегий root, не занят ли начальный UID и т. д. Тем не менее, нельзя сказать, что он проверяет все.

Взлом паролей

Один из способов проверки безопасности системы подразумевает, что поставить себя на место злоумышленника и пытаться думать и действовать так, как действовал бы человек, пытающийся нарушить защиту. Это означает, что необходимо прогуливать среди пользователей, подсматривая, не прикреплен ли к какому-нибудь монитору записанный пароль, не оставил ли кто-нибудь на столе бумажку с записанными на ней идентификационными данными, или же «проходите мимо» как раз в то утреннее время, когда пользователи входят в систему (быть может, удастся заметить, как кто-нибудь из них будет набирать пароль на клавиатуре).

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

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