Выбрать главу

Ядро – всему голова!

Главным, определяющим архитектуру системы звеном является ядро. Все ядра *nix-систем должны выполнять следующие функции:

– управление работой процессов: создание, завершение и организация взаимодействия между ними.

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

– выделение процессу необходимой оперативной памяти. При ее недостатке – включение механизма swap. Также ядро следит за обращением приложения к запрещенным участкам, к соседним сегментам и в случае генерации процессорного исключения снимает сбойный процесс, записывает сообщение в системный журнал.

– предоставление высокоуровневого доступа к винчестеру и другим носителям информации. Ядро подключает файловые системы и дает простой интерфейс по взаимодействию с ними. Все это делается с учетом прав на файлы и квот для пользователя.

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

init 6

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

Книги о UNIX

http://ois.mesi.ru/html_docs/BACH/ – подробная книга, которую можно скачать в 1 zip-архиве.

http://linuxdoc.chat.ru/obsh/rukadmina/index.html – книга 95-го года, но своей актуальности она не потеряла.

NO WARRANTLY ABSOLUTED – девиз модели Open Source наших дней.

При анализе первого варианта UNIX, написанного на языке C, Ритчи указал на заметно возросший объем (20-40%) и на ухудшение производительности ОС в целом по сравнению с ассемблерным вариантом кода.

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

ОС для Кремля / Ищем самую защищенную систему

Dr.Vint (vint@vpost.ru)

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

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

Взглянем на рынок ОС сегодняшнего дня. Мой выбор пал на следующие дистрибутивы: Mandrake 10 Official, Gentoo Linux 2004.2, FreeBSD 5.1, OpenBSD 3.5, QNX 6.2.1.

InTrO

Нам нужен максимально безопасный и стабильный дистрибутив. Самые популярные дистрибутивы Linux базируются на RPM-пакетах. Представителем мира RPM-base стал последний релиз Mandrake. Я выбрал его по нескольким причинам: все компоненты дистрибутива проходят тщательное тестирование на совместимость, используется собственная модель взаимодействия с пользователями, высокая стабильность, проверенная годами. Можно было использовать канонический Red Hat, но политика, направленная на зарабатывание денег, отходит от классической UNIX-модели, что явно не в пользу всей Федоры. В обзоре есть еще один вариант Linux-систем – Gentoo 2004.2. Это классический source-base дистрибутив. При установке такой системы ты полностью сам закладываешь всю безопасность хоста. Кроме этого, в Gentoo очень хорошо продумана схема обновления ПО через интернет, что позволяет всегда использовать самые безопасные и защищенные версии софта.

Самым ярким и известным представителем линейки BSD является FreeBSD. Очень многие сервера крупных организаций используют именно этот клон UNIX. Из основных плюсов можно выделить проверяемую годами архитектуру, отлаженную схему взаимодействия компонентов, минимальное наличие известных уязвимостей. Еще очень сильно привлекает развитая система портов, которая позволяет обновлять всю систему, используя всего одну команду. Второй перспективной реализацией BSD-модели стала OpenBSD. Мой выбор пал именно на эту систему, потому что ее создатели изначально готовят свое детище к работе в сложнейших сетевых условиях: «Вот уже несколько лет, как не было зарегистрировано ни одного удаленного взлома машин, работающих под управлением OpenBSD в конфигурации по умолчанию». И последняя система, о которой пойдет речь в нашем обзоре, – QNX. Это даже не UNIX в том понимании, которое близко нам. QNX – коммерческая ОС жесткого реального времени, совместимая со стандартом POSIX. То есть она может работать с очень многим ПО, написанным для UNIX. Основное отличие QNX от всех остальных операционок в том, что это система реального времени, взломов которой зарегистрировано не было вообще. После небольшого знакомства с нашими кандидатами предлагаю перейти к исследованию безопасности данных систем.

LINUX Mandrake

http://www.mandrakelinux.com

Популярный дистрибутив Linux на рабочем столе. О дружественности продуктов этой компании говорит весь интернет. А что же с безопасностью? Уже в начале установки можно сделать выбор: тип expert или обычный. Следует отдать предпочтение первому варианту: чуть больше возможностей для тонкой настройки ОС при инсталляции. Пожалуй, самым главным этапом во всей установке для нас станет выбор уровня безопасности. Именно так MandrakeSoft подготовила свой дистрибутив к серверному рынку. Первый и самый простой уровень – стандартный. Этот вариант практически не предусматривает никакого контроля над безопасностью системы. Так, любой пользователь сможет читать произвольные каталоги, кроме домашних директорий других юзеров. Кроме этого, некоторые пользователи смогут просмотреть содержимое конфигурационных файлов /etc. Полностью отсутствуют проверки на новые/изменившиеся файлы в системе: разработчики считают, что за день столько софта наставишь/наудаляешь, что читать мегабайтные логи своих действий не возникнет никакого желания. Также возможен непосредственный вход пользователя root прямо по SSH или с терминала, что кому-то удобно, но на самом деле очень опасно. Как видишь, первый уровень ориентирован на домашнее использование и на звание секьюрного варианта даже не претендует. Следующий уровень – высокий – также рассчитан на домашнее использование и поэтому нас тоже не интересует. Пожалуй, единственным приемлемым вариантом станет параноидальный уровень. Для серверов следует использовать только его. Вот что он дает: невозможен непосредственный вход пользователем root, никто не может читать корневую файловую систему – у всех файлов и каталогов выставлены права на чтение только для root. Кроме этого, производители значительно проработали механизм демонов – на этом уровне полностью реализована модель безопасности каждому демону «по потребностям», то есть любой сервис будет запускаться от своей учетной записи. Еще каждую ночь будут проводиться автоматические проверки на бэкдоры и руткиты – при любых изменениях файловой системы составляется протокол, который отправляется администратору. Защита от внешних атак реализуется с помощью обязательной установки пакета iptables – системы Firewall. Mandrake постарается автоматически выбрать необходимые правила и применить их для данного хоста. Причем у фаервола будет активирована опция, отвечающая за отражения попыток сканирования портов – практически ни один порт-сканер не сможет определить наличие работающих сервисов. Таким образом, параноидальный уровень старается создать действительно защищенную крепость как для атак извне, так и для локальных взломов ;).