Сетевая операционная система NetWare.
a) Отличительные особенности и характеристика.
b) Система безопасности данных. Права. Механизм назначения прав.
c) Распределенная служба ресурсов.
Программа. Обмен сообщениями в сети NetWare (между двумя рабочими станциями).
Компанией Novell разработано несколько поколений сетевых операционных систем, начиная с ELS (Entry Level System) NetWare, которые гли обслуживать до 8 станций. Advanced NetWare 2.x уже явля-ась полноценной сетевой ОС, способной одновременно обслуживать до 100 пользователей сервера на базе 286+ PC, как выделенного, так и невыделенного. На современном этапе развития компьютерных технологий наибольший интерес представляют NetWare версий 3.12 и 4.1.
Версия 3.12 является «топ-моделью» своего поколения, в которой исправлены ошибки предыдущих версий и «наведены мосты» к сетям нового поколения - 4.x. Версия 3.12 появилась позже 4.0 и унаследовала ее некоторые черты - поддержку CD-ROM, включение в поставку почтовых средств Basic MHS и First Mail, VLM-клиент, фрейм 1ЕЕЕ_802.2 и некоторые другие. В связи с более поздним появлением зги черты иногда ошибочно считают принадлежностью только NetWare 4.x.
Версии NetWare 4.0, 4.01 и 4.02 были быстросменяемыми заявками на новое поколение, и их «сырость» значительно сдерживала стремление пользователей сменить надежную 3.12 на что-то более прогрессивное. Появление на рынке NetWare 4.1 порадовало приверженцев продуктов Novell, которым требуется создавать и обслуживать большие и очень большие локальные и территориально разъединенные сети.
По внутреннему устройству NetWare 4.1 является этапом эволюции предыдущего поколения, закрепившим его положительные фундаментальные свойства и изменившим систему организации объектов и ресурсов сети. По сравнению с NetWare 3.12 повышена производительность сервера, правда, ценой повышения расхода оперативной памяти. Ниже будут подробно раскрыты эти и другие отличия поколений систем и описаны их общие свойства. Название NetWare без указания конкретной версии будет подразумевать применимость изложенного к NetWare 3.12 (почти всего - к 3.11 с установленными «заплатками») и 4.1.
Основные черты NetWare 3.x - 4.x
NetWare представляет собой многозадачную многосерверную сетевую операционную систему. Она относится к классу сетевых ОС с централизованным управлением.
Сервисы, предоставляемые NetWare: Разделяемое использование файлов (File Sharing) - возможность чтения и записи файлов, физически расположенных в дисковом пространстве файл-сервера с рабочих станций сети. ОС обеспечивает доступ приложений рабочих станций к сетевым файлам так же, как и к файлам локальных дисков, с заданными правами доступа и разрешением множественного доступа нескольких клиентов сети. Разделяемое использование принтеров (Printer Sharing) - возможность коллективного использования принтеров, физически подключенных к серверу, рабочей станции или аппаратных принт-серверов. Обмен сообщениями (Messaging Services) - обмен короткими сообщениями или электронными письмами. Коммуникационный сервис - использование сервера в качестве муль-типротокольного маршрутизатора. Архивирование и восстановление файлов (Backup and Restore) - централизованное использование устройств архивации (обычно ленточных).
Платформа сервера обеспечивает запуск приложений, использующих ресурсы и коммуникационные системы сервера, расширяющих список предоставляемых сетью сервисов.
Средства безопасности (Security) охватывают все сетевые ресурсы. Они обеспечивают:
o Защиту регистрации (Login Security) - вход в сеть только под заранее заданным именем и, при необходимости, с предъявлением пароля.
o Защита консоли (Console Security) - возможность установления пароля на доступ к консоли сервера.
o Защита файловой системы - мощные и гибкие средства разграничения прав доступа пользователей к файлам и каталогам; возможность восстановления удаленных файлов.
o Защита управлением объектами - разграничение привилегий пользователей и администраторов.
o Защита коммуникаций - шифрование паролей в сетевых пакетах и применение сигнатур для противодействия подглядыванию и фальсификации сетевых пакетов.
o Сетевой аудит - отслеживание попыток доступа к важным ресурсам и ведение журналов событий.
Средства обеспечения отказоустойчивости (System Fault Tolerance, SFT) включают:
à Дублирование таблиц каталогов и файлов.
à Верификацию записи на диск последующим считыванием и динамическое переназначение сбойных участков диска в резервную область (Hot Fix Area).
à Отражение (дуплексирование) дисков - параллельная запись данных на несколько носителей с целью резервирования.
à Систему отслеживания транзакций (Transaction Tracking System, TTS) - возможностьотката незавершенных транзакций для сетевых файлов.
Динамическое конфигурирование сервера в процессе эксплуатации реализуется запуском и выгрузкой дополнительных загружаемых модулей - NLM (NetWare Loadable Module).
Автоматическая настройка сервера (Autotuning) обеспечивает изменение распределения памяти и выделение дополнительных ресурсов для процессов под воздействием изменений нагрузки.
Поддержка протокольных стеков обеспечивает возможность одновременного использования нескольких протокольных стеков (IPX/SPX, TCP/IP, Apple-Talk и др.) при независимости набора предоставляемых услуг от используемого протокола.
Поддержка файловых систем DOS, Macintosh, OS/2, Unix позволяет использовать различные пространства имен файлов и каталогов и их атрибутов.
Клиентское обеспечение поддерживает операционные системы DOS, Macintosh, OS/2, Unix.
Поддержка временных зон обеспечивает синхронизацию служб времени для широкомасштабных сетей, охватывающих несколько часовых поясов.
Управление сетью обеспечивается поддержкой SNMP как на серверах, так и на рабочих станциях.
Совместимость с младшими версиями обеспечивает возможность работы клиентов и утилит новых версий с серверами предыдущих версий.
Компьютерная платформа сервера - IBM PC-совместимая машина:
Ø Процессор - не ниже 80386.
Ø ОЗУ - не менее 4 Мбайт для 3.12 и 8 Мбайт - для 4.1.
Ø Системная шина - желательно высокопроизводительная: EISA, MCA, PCI.
Ø Дисковая система - любая, поддерживаемая BIOS, желательно, на шине SCSI.
Ø Дополнительные устройства внешней памяти - CD-ROM, стримеры, устройства массовой памяти (High Capacity Storage System, HCSS).
Ø Коммуникационная система - адаптеры сетевых архитектур ARCNet, Ethernet, FDDI, Token Ring, AppleTalk.
Дистрибутив ОС поставляется на компакт-диске, включающем поддержку нескольких языков и электронную документацию, или на 3-х дискетах в комплекте с печатной документацией. Лицензии сервера поставляются на 3-х дискетах.
Организация объектов сети
К ресурсам сети относятся файл-серверы, дисковые тома, сетевые принтеры, устройства архивации, модемы и другие устройства коллективного использования. Эти ресурсы с предварительного разрешения администратора становятся доступны зарегистрированным пользователям, которых для облегчения задач администрирования можно объединять в группы. В многосерверных сетях способ организации ресурсов и клиентов сети играет немаловажную роль как для администраторов, так и пользователей сети.
NetWare 2.x-3.x
В NetWare 3.12 и младше объекты сети организуются с помощью баз данных Bindery (связи), индивидуальных для каждого сервера и не связанных друг с другом. Bindery содержит список объектов (пользователи и их группы, принтеры и их очереди и тому подобные), списки свойств и значений свойств этих объектов. Все объекты каждой базы принадлежат только ее серверу. Для получения доступа к ресурсам сервера пользователю необходимо иметь на нем свой бюджет (account) и зарегистрироваться под соответствующим именем. Для получения доступа к ресурсам другого сервера необходимо также регистрироваться и в нем (а также иметь на нем свой бюджет). Список ресурсов сервера становится доступным пользователю (в пределах отпущенных ему прав) только после успешной регистрации. Бюджеты и права каждого пользователя или группы в ресурсах каждого сервера задаются администратором в базе Bindery каждого сервера. Эта организация является серверно-центрической (server-centric): сервер в ней - центр своего небольшого мирка. Такая организация приемлема только для относительно небольших сетей или тех, в которых пользователям не требуются ресурсы многих серверов.
NetWare 4.x
Решением проблемы организации объектов для больших многосерверных сетей является использование Сервиса Каталогов (NetWare Directory Services, NDS), радикально отличающего NetWare 4.x от предыдущих версий. Здесь информация обо всех объектах сети, независимо от их принадлежности к конкретному серверу, хранится в общей базе данных сети - Каталоге (Directory). Это слово в данном контексте принято писать с заглавной буквы, чтобы не путать с обычным дисковым каталогом. Все объекты сети - пользователи, группы, серверы, тома, принтеры со своими очередями и серверами - с помощью специальных объектов-контейнеров организованы в иерархическую структуру - перевернутое корнем вверх дерево каталогов. Дерево организуется по логическому принципу - страна, город, организация, подразделение и т. п. Для получения доступа к любым ресурсам всей сети необходима лишь однократная регистрация пользователя. Для поиска нужного объекта необходимо знать его имя и местоположение в дереве, его физическое перемещение (например, переключение с одного сервера на другой) незаметно для пользователя. Данный способ является «сетецентричес-ким» (network-centric), единая для всей сети репликативная база описания ресурсов существует в виде копий (дубликатов, реплик) на всех серверах сети, что обеспечивает дополнительную отказоустойчивость в случае потери доступности базы на каком-либо сервере.
Сервис Каталогов обеспечивает неограниченную наращиваемость сети как по ее размеру, так и по составу объектов, допуская определение приложениями новых классов объектов. Он также облегчает организацию системы безопасности, делая ее более стройной и гибкой.
Для совместимости с серверами NetWare 2.x-3.x NDS имеет возможность их включения в Каталог, а при необходимости использования старых клиентов возможна эмуляция Bindery.
Преимущества древовидной структуры организации сети подчеркиваются графическим интерфейсом утилит Windows, отражающим различные объекты и их связи соответствующими мнемоническими картинками и обеспечивающим простой интерфейс для перемещения по дереву и действий с объектами.
Другие отличил NetWare 4.x
Новое поколение NetWare имеет ряд отличительных средств, часть которых является прямым следствием изменения подхода к организации, другая часть является развитием общих функциональных свойств.
Процедура регистрации пользователя изменилась соответственно принципам организации сети. Однократная регистрация обеспечивает доступ ко всем ресурсам Каталога.
Служба времени, обеспечивающая синхронизацию серверов, использует новую категорию - тайм-сервер (Time Server). Система тайм-серверов задает общее время для всей сети, что необходимо для обслуживания решгакатив-ной базы данных Directory.
Сжатие файлов обеспечивает возможность хранения редко используемых файлов в упакованном виде. В отличие от динамических компрессоров типа Double-Space или Stacker, сжатый файл NetWare при запросе на доступ должен сначала распаковываться в свободном дисковом пространстве, что вызывает некоторые неудобства и задержку обслуживания первого обращения.
Подразделение блоков (Block suballocation) - разбиение блоков диска на подблоки меньшего размера (512 байт) повышает эффективность использования диска, особенно для маленьких файлов.
Миграция данных обеспечивает возможность хранения редко используемых файлов на внешних носителях большой емкости (HCSS), имеющих сравнительно большое время доступа. Аналогично сжатым файлам, файлы-мигранты по первому запросу доступа должны вернуться в нормальное состояние на стандартный диск.
Возможность невыделенного сервера: NetWare Server for OS/2 устанавливается на компьютере с ОЗУ объемом более 16 Мбайт, при этом сервер и его OS/2-клиент могут работать параллельно, разделяя использование ресурсов компьютера.
Расширенный сетевой аудит позволяет отслеживать все обращения по чтению или записи к файлам и каталогам, причем функции аудитора (сугубо пассивного, но всевидящего наблюдателя) неподвластны (и не видны) даже администратору.
Набор сетевых утилит, необходимых администратору и пользователю, по сравнению с предыдущими версиями значительно сокращен за счет расширения их функциональности.
Управление сервером получило удобный меню-интерфейс SERVMAN. NLM -альтернативу множеству длинных команд SET, набор управляемых параметров расширился.
Использование памяти сервера улучшено, сокращены безвозвратные выделения памяти.
Защита памяти сервера - возможность запуска сомнительных модулей в специальной области памяти предотвращает повреждение ими памяти, принадлежащей другим модулям (возможность таких интерференции особо не афишировалась в описаниях предыдущих версий).
Поддержка аппаратных средств сервера - использование преимуществ процессора Pentium, мультипроцессорной архитектуры, шины PCI, поддержка адаптеров с интерфейсом PC Card (новое название стандарта PCMCIA).
Сетевая печать при сохранении основных принципов получила «выпрямленную» процедуру установки и настройки.
Лицензирование сервера. Как и в предыдущих версиях NetWare, количество пользователей, обслуживаемых ядром ОС на каждом файл-сервере, ограничено лицензионным параметром приобретенного пакета, и в одной сети невозможна работа серверов с одинаковыми серийными номерами.
В NetWare 4.x введена аддитивность лицензии: ограничение определяется суммой приобретенных лицензий, которые к тому же могут сниматься с одного сервера и устанавливаться на другой. Лицензия может быть на 5, 10, 25, 50, 100, 250, 500 и 1000 пользователей.
Безопасность
Безопасность хранения данных - конфиденциальность и предотвращение несанкционированного изменения или уничтожения - обеспечивается несколькими путями. О надежности защиты имеет смысл говорить лишь в предположении, что неконтролируемый физический доступ потенциальных нарушителей к файл-серверу исключен. В противном случае искушенный нарушитель может получить доступ ко всем файлам сервера, хотя для непрерывно работающих в сети клиентов это событие не останется незамеченным.
Защита регистрации
В NetWare защита регистрации включает в себя систему имен и паролей пользователей, ограничения времени и списка возможных станций.
Блокировать попытку подбора правильного сочетания имени и пароля пользователя помогает активизация системы обнаружения/захвата нарушителя (Intruder Detection/Lockout) опций администратора SYSCON.EXE или NET- ADMIN (NWADMIN) . Система позволяет выявить нарушителя, пытающегося зарегистрироваться с неверным паролем подряд более заданного количества раз (по умолчанию - 7). Счетчик ошибок обнуляется при успешной регистрации или по истечении периода времени сброса неверных попыток с момента последней ошибочной попытки (по умолчанию - 30 мин). Если включен захват нарушителя, то по достижении порога ошибочных попыток бюджет пользователя, именем которого пытаются воспользоваться, блокируется на время, определенное периодом блокирования бюджета (по умолчанию 15 мин).
При установленном сервисе системы учета на сервере создается двоичный файл регистрации событий NET$ACCT.DAT. В нем содержится хронология всех регистрации и разрегистраций пользователей на сервере, а также фиксируются попытки регистрации нарушителей. Просмотр журнала в текстовом виде и его очистку выполняет утилита PAUDIT.EXE.
Защита от несанкционированного подключения к сети
Защиту регистрации можно попытаться взломать, посылая серверу «самодельные» пакеты запросов, в которых используется информация из перехваченных пакетов сеансов легальных пользователей. Технически мониторинг всех пакетов сети с шинной топологией возможен на любой рабочей станции при соответствующих возможностях сетевого адаптера и программного обеспечения. Организационной мерой пресечения попыток таких нарушений является ограничение физического доступа потенциальных нарушителей к станциям сети.
Для архитектуры Ethernet несанкционированное подключение к толстому кабелю можно осуществить незаметно для системы (если передатчик нарушителя не обнаружит себя посылкой пакета, в котором будет содержаться адрес узла, отличный от известных администратору сети). При визуальном осмотре кабеля лишний трансивер скорее всего будет замечен.
Для тонкого кабеля незаметное подключение возможно лишь при использовании существующих разъемов (разрыв сегмента на несколько секунд не приведет к потере соединений). При разрезании кабеля и установке новых разъемов эта процедура, занимающая несколько минут, почти наверняка приведет к потере какого-либо установленного соединения, что может привлечь внимание пользователей. Драйвер сетевого адаптера сервера этого не заметит, поскольку обрыв кабеля распознается при отсутствии обоих терминаторов, а в этом случае на каждом обрезке сегмента останется по одному из них.
Для витой пары дополнительное подключение возможно лишь к свободным портам хабов, а использование интеллектуальных хабов со встроенной защитой вообще не позволит осуществить подключение без ведома администратора.
Оптоволокно в качестве среды передачи также сильно затрудняет несанкционированный доступ.
Мониторинг пакетов может иметь целью «подглядывание» пароля, обеспечивающего доступ к важным ресурсам. NetWare-386 по умолчанию использует шифрованные пароли.
Если сервер работает в сети совместно с серверами 2.0 или 2.1х с необновленными утилитами или со станциями, использующими оболочку из версии 2.x, необходимо разрешить использование и нешифрованных паролей консольной командой
SET ALLOW UNENCRYPTED PASSWORDS = ON, по умолчанию OFF.
Подделав пакет NCP, пользователь на рабочей станции может выдать себя за более привилегированного пользователя (SUPERVISOR) и получить несанкционированный доступ к системе и ресурсам. Для защиты от подделки пакетов применяется сигнатура пакетов NCP - подпись, меняющаяся от пакета к пакету. Пакеты NCP с некорректной сигнатурой игнорируются, но на станцию, консоль и в журнал системных ошибок отправляется диагностическое сообщение с адресом станции и регистрационным именем.
Уровень сигнатуры для сервера определяется командой SET NCP PACKET SIGNATURE OPTION = 1 (0-3), доступной и из STARTUP. NCF. Во время работы его можно только увеличивать. Значения уровней: 0 - сервер никогда не подписывает пакеты; 1 - подписывает только по запросу клиента; 2 - подписывает, если клиент способен подписывать; 3 - всегда подписывает и требует подписи от клиентов (иначе не позволит регистрацию).
Применение сигнатур может снижать производительность сервера, но является необходимой мерой предосторожности при наличии на сервере особо ценной информации и доступности станций или кабелей для потенциальных нарушителей. Уровень сигнатур сервера должен быть согласован с возможностями станций.
Защита посредством назначения прав доступа и атрибутов
Защита через права обеспечивает разграничение доступа к каталогам и файлам. Здесь необходимо следить за опекунскими назначениями, масками прав и назначениями эквивалентности по защите. Особого внимания заслуживает каталог SYS:SYSTEM, который содержит ключевые элементы защиты.
Файл AUTOEXEC.NCF может содержать пароль удаленной консоли в команде LOAD REMOTE, дающий доступ к консоли сервера с рабочей станции.
Этот же каталог является единственным хранителем .NLM-файлов после выполнения команды SECURE CONSOLE, и гарантированное отсутствие в нем пиратских модулей усиливает защиту системы.
На сервере NetWare 3.x файлы Bindery» хранящие имена, пароли и привилегии всех пользователей, при наличии права записи в SYS:SYSTEM можно подменить, записав свои файлы NET$OBJ.OLD, NET$PROP.OLD и NET$VAL.OLD и выполнив утилиту BINDREST.
Для усиления защиты в особо ответственных случаях стоит удалить IN-STALL.NLM из каталога SYS:SYSTEM, чтобы исключить возможность переименования томов с консоли сервера, в результате которого при некотором знании системы можно получить новую Bindery с двумя пользователями GUEST и SUPERVISOR, не требующими пароля, но обладающими своими штатными правами. В «мирных целях» при наличии копий старой Bindery эти манипуляции можно использовать для переустановки потерянного пароля супервизора с сохранением всех пользователей и групп.
Рядовые пользователи не должны иметь никаких прав в каталоге SYS:SYS-ТЕМ. В каталогах SYS:PUBLIC и SYS:LOGIN они должны иметь права сканирования и чтения [R F] для нормального использования утилит, в каталоге SYS:MAIL - права создания и записи [W С] для использования электронной почты.
Защита файлов и каталогов с помощью атрибутов подразумевает взвешенное назначение права модификации, позволяющего снимать сдерживающие атрибуты.
Проверка надежности системы безопасности осуществляется утилитой SE-CURITY.EXE, хранящейся в SYS:SYSTEM. Она выявляет пользователей, для которых не требуется пароля или имеющих ненадежный пароль (совпадающий с именем, короче 5 символов или со сроком использования более 60 дней, а также без требования уникальности), пользователей, эквивалентных по защите SUPERVISOR, или имеющих права в корневых каталогах, или имеющих чрезмерные права в каталогах SYS:SYSTEM, SYS:LOGIN, SYS:PUBLIC, SYS:MAIL.
Для обычной работы в сети администраторам системы и рабочих групп следует создавать отдельные имена регистрации - бюджеты без чрезвычайных привилегий, чтобы их станцией, случайно оставленной в зарегистрированном состоянии, не смог воспользоваться нарушитель с целью завладения дополнительными правами (при выполнении задач администрирования можно и повысить бдительность).
Чтобы не попасть в ловушку при утере пароля, SUPERVISOR может назначить пользователю, которому он абсолютно доверяет, эквивалентность себе по защите или, что безопаснее, назначить его менеджером своего бюджета.
Также рекомендуется иметь на дискете копию Bindery, в которой SUPERVISOR не имеет пароля, и при необходимости восстановить ее с помощью BINDREST.EXE (правда, для этого нужно получить доступ в SYSrSYSTEM по записи, но это можно и обойти).
Отражение и дублирование сервера
Надежность хранения данных обеспечивается встроенными средствами SFT операционной системы. Более высокий уровень отказоустойчивости обеспечивается применением SFT III - операционной системы с зеркальным сервером. Эта система подразумевает наличие сервера-дублера, совпадающего с основным сервером по объему оперативной (не менее 12 Мбайт) и дисковой памяти, подключенным локальным сетям и даже по применяемому видеоадаптеру. Серверы связываются между собой через специальные скоростные MSL (Mirrored Server Link) адаптеры по специальной линии связи. В зависимости от модели MSL-адаптера и линии связи (коаксиал, витая пара или оптоволокно) допускается удаленность серверов от десятков метров до нескольких километров, что обеспечивает живучесть сети даже при пожарах, авариях и стихийных бедствиях.
В нормальном режиме все запросы обслуживаются только основным сервером, a MSL обеспечивает на резервном сервере состояние памяти и дисковой системы, идентичное основному. В случае аварии основного сервера в работу включается резервный. Новая версия оболочки (запросчика) позволяет рабочей станции автоматически (без вмешательства пользователя) переключаться на резервный сервер в случае потери соединения с основным сервером.
Зеркальные серверы позволяют производить техобслуживание, требующее остановки сервера, без прерывания работы пользователей. Вся информация о сбоях и ошибках выводится на консоль и записывается в файл-журнал. SFT III - первый продукт Novell, поставляемый со средствами тестирования, позволяющими имитировать сбои и системные ошибки и анализировать реакцию системы.
SFT Ш в зависимости от версии может вносить ограничения на используемые сетевые продукты. По причине исключительной редкости применения (только в самых ответственных сетях) цена аппаратных и программных средств довольно высокая.
Для NetWare 4.x поддержка зеркального сервера SFT III включена в обычную поставку на CD-ROM и устанавливается опцией утилиты INSTALL.
Дублирование сервера в отличие от SFT Ш является стандартной мерой обеспечения надежности хранения данных и означает периодическое копирование томов (каталогов, файлов) на внешний по отношению к серверу носитель. Дублирование возможно на другой сервер, локальный диск станции (внутренний или сменный), магнитную ленту или дискеты. В случае потери данных на сервере они могут быть восстановлены с копии с сохранением нх сетевых атрибутов, списков доверенных пользователей и групп. В зависимости от требований к надежности и свежести копий применяется различное количество носителей для каждого набора данных и дисциплина их чередования. В любом случае носителей должно быть не менее двух с тем, чтобы всегда была хоть одна целая копия (отказ сервера во время копирования может привести к потере данных и на сервере, и на используемом носителе одновременно).
Сетевой аудит в NetWare 4.x
Аудит в NetWare 4.x позволяет отслеживать действия пользователей по работе с деревом Каталогов NDS, а также события файлов, каталогов, очередей, серверов и пользователей.
Аудит ND8 устанавливает наблюдение за событиями дерева Каталогов, относящимися к данному контейнеру (возможно наблюдение 27 классов событий), выполняемыми определенным списком пользователей разных контейнеров.
Аудит событий файлов и каталогов позволяет отслеживать открытие, закрытие, создание, удаление, восстановление, чтение, запись, перемещение и модификацию. Возможен сбор информации о событиях, вызванных любыми пользователями (Global Events), о событиях, связанных с определенным файлом и определенным пользователем (User and File events), и о событиях, связанных с действиями любых пользователей над данным файлом или выбранных пользователей над любыми файлами (User or File Events).
События очередей печати включают создание, удаление и изменение очередей, создание и обслуживание заданий печати.
События сервера включают изменение даты и времени, остановку и загрузку сервера, монтирование и размонтирование томов и некоторые другие.
Пользовательские события включают вход и выход из сети, изменение учетной информации.
При просмотре или создании файлов отчетов для сокращения объема выводимой информации могут применяться фильтры пользователей и событий.
Аудит объектов назначается администратором, и после передачи паролей аудиторам (можно и нескольким) управляется ими. Все действия по системе аудита выполняются только с помощью утилиты AUDITCON.EXE.
Для обеспечения возможности одновременной работы не-скопьких аудиторов в опциях AUDITCON необходимо установить Allow Concurrent Auditor Logins.
Аудиторы могут отключать аудит объектов, но дпя возможности его включения они должны обладать правом SUPERVISOR по отношению к данному объекту.
Система аудита сугубо пассивная, она не ограничивает действий пользователей, а только наблюдает за ними.
Управление доступом к файпам и каталогам
Конечной задачей файл-сервера является предоставление пользователям доступа к файлам и каталогам, расположенным в системе хранения данных сервера. NetWare предоставляет возможность доступа клиентов сети к конкретным файлам и каталогам, а также возможность отображения любого каталога на логический диск рабочей станции - так называемое планирование драйвов (Drive Mapping), осуществляемое сервером по командам MAP или через протокольные вызовы NCP.
NetWare как многопользовательская и многозадачная ОС обеспечивает управление доступом к файлам и каталогам в следующих аспектах:
• предоставление определенных прав доступа конкретным пользователям и группам;
• задание свойств файлов и каталогов их атрибутами;
• реализация разделяемого доступа к файлам, механизма захвата (блокировки) файлов и записей при множественном доступе;
• восстановление и очистка удаленных файлов;
• контроль завершенности транзакций.
Потенциально возможные действия любого пользователя с файлами и каталогами определяются его правами доступа в данном файле или каталоге. Права могут задаваться непосредственными опекунскими назначениями (Trustee Assignments) или наследоваться от прав, доверенных в родительском каталоге. Наследование прав регулируется фильтром наследуемых прав (Inherited Rights Filter, IRF), который до версий NetWare 4.x не очень выразительно назывался маской (IRM). Опекунские назначения и фильтры (маски) используют один и тот же набор прав.
Таблица 1. Права доступа к файлам и каталогам
Право
Обозначение
Действие для каталогов и файлов
Read
R
Право открытия и чтения файла (запуск программ)
Write
W
Право открытия и изменения содержимого существующего файла
Create
С
Для каталога - право создания (но не чтения) файлов и подкаталогов. Для файла - право восстановления удаленного (неочищенного)
Erase
E
Право удаления файла или каталога и очистки удаленного файла
Modify
M
Право модификации атрибутов и имени (но не содержимого)
File Scan
F
Право сканирования (обеспечивает видимость имен файлов и подкаталогов)
Access Control
A
Право управления доступом - позволяет изменять маску и предоставлять (модифицировать) все права (кроме прав супервизора) любым пользователям
Supervisory
S
Право супервизора - автоматически включает все вышеперечисленные права, а также позволяет предоставлять право супервизора в этом каталоге или файле другим пользователям. Применительно к каталогу распространяется на все файлы и нижестоящие подкаталоги и не может отменяться на нижестоящих уровнях каталогов или файлов (игнорирует фильтры и опекунские назначения)
Эффективные права пользователя складываются из всех прав, доверенных ему лично и как члену групп, а также из прав пользователей и групп, которым он имеет эквивалентность по защите. Если права доверены только в вышестоящем каталоге, то по пути к данному каталогу они проходят через фильтры наследуемых прав доверенного и промежуточных каталогов, а для файла - еще и через его IRF. При наследовании, естественно, права могут только ограничиваться (за исключением права супервизора). Непосредственное опекунское назначение отменяет наследование прав.
При просмотре каталогов пользователь увидит дерево каталогов от самого корня тома, но только те ветви, которые ведут в доверенные ему каталоги и только те файлы, в которых он имеет эффективное право сканирования (F).
Установкой опекунских назначений можно предоставить любой набор прав (или, наоборот, ограничить доступ) в любом фрагменте дерева каталогов и файлов.
Атрибуты каталогов и файлов предназначены для ограничения действий пользователей, разрешенных их эффективными правами, а также задания некоторых свойств, учитываемых системой при обслуживании. Изменение атрибутов разрешается пользователям, обладающим правом модификации.
Таблица 2. Атрибуты файпов и каталогов
Атрибут файла (F) каталога (D)
Net Ware 2.x-3.x
NetWare 4.x
Назначение атрибута
Archive needed (F)
A
A
Необходимость архивации файла (модифицирован со времени последней архивации)
Copy inhibit (F)
С
Ci
Запрет копирования файлов для Macintosh
Delete inhibit (F,D)
D
Di
Запрет удаления файла или каталога
Hidden (F,D)
H
H
Невидимый командой DOS DIR (NDIR этот атрибут игнорирует )
Indexed (F)
1
1
Индексируемый файл (активизирует построение Turbo-FAT для ускорения доступа)
Purge (F,D)
P
P
Немедленно очищаемый при удалении (невосстанавливаемый утилитой SALVAGE)
Read Only (F)
Ro
Ro
Только чтение: запрет записи, переименования и удаления (автоматически устанавливает атрибуты Ri и Di и снимает Rw)
Read Write (F)
Rw
Rw
Чтение и запись (при установке снимает Ro)
Rename inhibit (F,D)
R
Ri
Запрет переименования
Shareable (F)
S
S
Разделяемый файл (допускает одновременное обращение от нескольких пользователей)
Таблица 3.2. Атрибуты файпов и каталогов (Продолжение)
Атрибут файла (F) каталога (D)
Net Ware 2.x-3.x
NetWare4.x
Назначение атрибута
System (F.D)
sy
Sy
Системный: скрытый с запретом удаления (комбинация Н и Ro)
Transactional (F)
Т
Т
Транзактируемый файл, защищаемый TTS (также запрещает удаление и переименование)
execute only (F)
X
X
Файл только для исполнения (.СОМ или .ЕХЕ). Запрет модификации, удаления, переименования и копирования. Однажды установленный атрибут невозможно снять; не все программы могут с ним работать
(Normal)
N
N
Фиктивный «атрибут» для установки атрибутов по умолчанию (Rw)
Can't Compress (F)
-
Cc
Невозможна существенная компрессия (устанавливается системой после неэффективной попытки сжатия)
Don't Compress (F.D)
-
DC
Запрет компрессии
Immediate Compress (F,D)
-
Ic
Немедленная компрессия (сразу после записи)
Don't Migrate (F.D)
-
Dm
Запрет миграции на HCSS
Migrated (F)
-
M
Файл мигрировал на HCSS
Don't Suballocate (F)
-
Ds
Запрет подразделения блоков
Атрибуты I, Cc, M устанавливаются операционной системой.
При копировании файлов сетевыми утилитами (NCOPY) между сетевыми каталогами файл сохраняет все атрибуты, кроме Р (немедленно очищаемый). Копирование файла на локальный диск, а также любое копирование средствами DOS сохраняет только атрибуты S и Ко.
При разделяемом доступе к файлам целостность данных при одновременном доступе с нескольких станций обеспечивается механизмом захвата файлов и физических записей. Множественный доступ разрешается только к файлам, имеющим атрибут разделяемое™ (S). Прикладная программа может потребовать захвата файла или физической записи - области файла. При попытке другого клиента обратиться к захваченному файлу или записи система блокирует эту операцию.
ОС имеет средства восстановления удаленных файлов: при удалении файла сначала делается только пометка в его описателе, содержимое файла и занимаемое пространство на томе сохраняется до его необратимой очистки (Purge), выполняемой системой автоматически через некоторое время, или пользователем, имеющем в удаленных файлах право удаления D, с помощью утилиты PURGE. Файлы с атрибутом Р очищаются немедленно.
Система позволяет сохранять удаленные файлы даже с совпадающими именами. Неочищенный (восстановимый) файл из удаленного каталога переносится в скрытый каталог DELETED.SAV, автоматически создающийся в корневом каталоге каждого тома. Для обслуживания восстановимых файлов служит утилита SALVAGE.EXE, которая имеет средства для поиска и выбора восстановимых файлов, в том числе и из удаленных каталогов.
Система отслеживания транзакций ITS защищает файлы баз данных с установленным атрибутом транзакционности (Т). Система следит за тем, чтобы каждая транзакция - цепочка захвата, модификации и освобождения записи - выполнялась до конца.
Если по внешним причинам, связанным с сервером, сетью или станцией, транзакция прервалась, то TTS произведет откат транзакции - вернет файл в состояние, в котором он был до ее начала. В корневом каталоге тома SYS: система создает текстовый файл TTS$LOG.ERR, в котором накапливается отчет о работе TTS. Подключение сервера к системе бесперебойного питания позволяет повысить надежность TTS.
Распределение памяти и защита В отличие от предыдущих версий NetWare NetWare v.4 имеет один пул рапределяемой памяти. Для оптимизации производительности память распределяется среди ресурсов и при завершении выполнения NLM (NetWare Loadable Module) обеспечивается ее доступность дру- гим загружаемым модулями NetWare (NLM). В предыдущих версиях Net-Ware программные модули сталкивались иногда с ситуацией нехватки памяти, поскольку память не всегда возвращалась обратно операционной системе. Ресурсы памяти в версии 4.0 структурированы. Это обеспечивает, что работающие на одном сервере различные процессы не будут использовать одну и ту же память. Несколько страниц памяти (объемом по 4К) выделены доменам. В эти домены загружаются NLM. Внутри домена создаются сегменты для кода и данных, и для защиты работающего в домене NLM ему присваивается дескриптор. Одной из важнейших особенностей операционной системы NetWare является применение модулей NLM для таких специальных функций, как поддержка различных дисковых подсистем, сетевых плат, утилит операционной системы и различных расширений. В отличие от модулей VAP прежних версий NetWare, модули NML более эффективно используют оперативную память и обеспечивают органичную связь с ядром NetWare. В основу работы модулей NLM положена концепция несегментированной модели памяти с 32-разрядными адресами. Ядро операционной системы и модули NLM совместно используют единую непрерывную область памяти. Эти объясняется существенное улучшение производи тельности NetWare. В то же время, при такой организации загружаемые модули функционируют на сервере без каких-либо средств защиты. Поэтому ошибки в них могут привести к нарушению памяти сервера. Операционная система должна также защищаться от неверно работающих NLM, выполняющих запись в не принадлежащую им память, что может в итоге привести к краху системы сервера. Для защиты операционной системы используются уровни привилегий. Есть четыре уровня привилегий - от 0 до 3. Если вы не уверены в надежности работы NLM, то можете выполнить его на уровне 3, который обеспечивает защиту операционной системы. Если в течении периода тестирования ошибок не выявится, вы можете перевести его на уровень 0. Таким образом, в NetWare 4.0 фирма Novell учла возможность последних моделей процессоров Intel сегментировать адресное пространство по различным уровням защиты. Такая сегментация позволяет изолировать параллельно выполняющиеся задачи друг от друга, защи- тив тем самым ядро NetWare и утилиты. Защита памяти в NetWare 4.0 может достигаться двумя способами. В первом случае строится домен операционной системы, во втором - защищенный домент операционной системы. Домент операционной системы автоматически при ее загрузке, создает операционную среду и используется ядром для инициализации и выполнения модулей NLM. Благодаря защищенному домену, устанавливаемому при загрузке модуля DOMAIN.NLM, работу любого модуля можно проверять без риска для всей системы.
Программа для обмена сообщениями между 2-мя рабочими станциями в сети NetWare.
Программу нужно запускать с ключом т.е. указать свое имя каким оно будет в сети, когда вы будете обмениваться сообщениями.
Например: Message.exe/ sergei
Текст программы:
typedef struct
{
unsigned char netadd[4];
unsigned char nodeadd[6];
unsigned short socket;
} IPXADDRESS;
typedef struct
{
unsigned short checksum;
unsigned short length;
unsigned char tc;
unsigned char type;
IPXADDRESS dest;
IPXADDRESS source;
} IPXHEADER;
typedef struct
{
void far *linkaddress;
void (far *esraddress)();
unsigned char inuse;
unsigned char cc;
unsigned short socket;
unsigned char workspace[16];
unsigned char immedaddr[6];
unsigned short fragcount;
void far *fragaddr1;
unsigned short fragsize1;
void far *fragaddr2;
unsigned short fragsize2;
} IPXECB;
#ifdef cplusplus
extern "C" {
#endif
extern unsigned short reverseword ( unsigned short );
extern unsigned long ipxinit ( void );
extern unsigned long ipxentry;
extern void ipxgetaddress ( void * );
extern unsigned short ipxgetmaxpacketsize ( void );
extern unsigned short ipxgetretrycount ( void );
extern unsigned short ipxverifychecksum( IPXECB * );
extern unsigned char ipxopensocket ( unsigned char, unsigned short * );
extern void ipxclosesocket ( unsigned short );
extern unsigned char ipxlistenforpacket ( IPXECB * );
extern void ipxsendpacket ( IPXECB * );
extern void sendwithchecksum( IPXECB * );
extern void ipxrelenquishcontrol ( void );
#ifdef cplusplus
}
#endif
ассемблер:
.model large
.data
public _ipxentry
_ipxentry dd 0
.code
public _reverseword
_reverseword:
push bp
mov bp,sp
mov ax,[bp+6]
xchg ah,al
pop bp
retf
public _ipxinit
_ipxinit:
push di
push es
mov ax,7A00h
int 2Fh
cmp al,0FFh
jnz _ipxinit0
mov word ptr [_ipxentry+0],di
mov word ptr [_ipxentry+2],es
_ipxinit0:
mov dx,word ptr [_ipxentry+2]
mov ax,word ptr [_ipxentry+0]
pop es
pop di
retf
public _ipxgetaddress
_ipxgetaddress:
push bp
mov bp,sp
mov bx,0009h
mov si,[bp+6]
mov es,[bp+8]
call [_ipxentry]
pop bp
retf
public _ipxgetmaxpacketsize
_ipxgetmaxpacketsize:
mov bx,001Ah ;0d
call [_ipxentry]
retf
public _ipxgetretrycount
_ipxgetretrycount:
mov bx,001Ah
call [_ipxentry]
mov ax,cx
retf
public _ipxopensocket
_ipxopensocket:
push bp
mov bp,sp
push ds
mov al,[bp+6]
mov bx,[bp+8]
mov ds,[bp+10]
mov dx,[bx]
pop ds
mov bx,0000h
call [_ipxentry]
push ds
mov bx,[bp+8]
mov ds,[bp+10]
mov [bx],dx
mov ah,00h
pop ds
pop bp
retf
public _ipxclosesocket
_ipxclosesocket:
push bp
mov bp,sp
mov bx,0001h
mov dx,[bp+6]
call [_ipxentry]
pop bp
retf
public _ipxlistenforpacket
_ipxlistenforpacket:
push bp
mov bp,sp
push ds
push di
push si
push es
mov bx,0004h
mov si,[bp+6]
mov es,[bp+8]
call [_ipxentry]
mov ah,00h
pop es
pop si
pop di
pop ds
pop bp
retf
public _ipxsendpacket
_ipxsendpacket:
push bp
mov bp,sp
push si
push es
mov bx,0003h
mov si,[bp+6]
mov es,[bp+8]
call [_ipxentry]
pop es
pop si
pop bp
retf
public _sendwithchecksum
_sendwithchecksum:
push bp
mov bp,sp
push si
push es
mov bx,0020h
mov si,[bp+6]
mov es,[bp+8]
call [_ipxentry]
pop es
pop si
pop bp
retf
public _ipxrelenquishcontrol
_ipxrelenquishcontrol:
mov bx,000Ah
call [_ipxentry]
retf
public _ipxverifychecksum
_ipxverifychecksum:
push bp
mov bp,sp
push si
push es
mov bx,0022h
mov si,[bp+6]
mov es,[bp+8]
call [_ipxentry]
pop es
pop si
pop bp
retf
end
С++
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "ipx.h"
int getkey(void);
void sent_buf(int msh,char *sbuffer);
unsigned int socket=0x5000;
#define NPACKETS 5 // количество окон приема/прослушивания
#define PACKETSIZE 200 // размер буфера сообщения
IPXECB recb[NPACKETS],secb[NPACKETS];
IPXHEADER rheader[NPACKETS],sheader[NPACKETS];
unsigned char rbuffer[NPACKETS][PACKETSIZE];
unsigned char sbuffer[NPACKETS][PACKETSIZE];
unsigned char M_ADDR[6];
char NAME_USER[30];
//------------------------------------------------------------------------------
void main ( int argc, char *argv[] )
{
char buf[100],mes[150];
unsigned short ra;
int Flag_exit,key,i;
IPXADDRESS myaddress;
clrscr();
if(argc{
printf("Ошибка задания параметров !\n\n");
printf("message.exe NAME_USER \n");
exit(1);
}
strcpy(NAME_USER,argv[1]);
if(!ipxinit()) { printf("IPX не найден !\n"); exit(1); }
if (ipxopensocket(0x00,&socket) == 0xff) { printf("Канал уже открыт !\n"); exit(1); }
printf("F1 - ввести сообщение. Esc - выход.\n\n\n");
ipxgetaddress(&myaddress);
for(i=0;i// инициализируем окна прослушивания
for(ra=0;ra{
recb[ra].socket=socket;
recb[ra].esraddress=NULL;
recb[ra].fragcount=2;
recb[ra].fragaddr1=&rheader[ra];
recb[ra].fragsize1=sizeof(IPXHEADER);
recb[ra].fragaddr2=&rbuffer[ra];
recb[ra].fragsize2=PACKETSIZE;
ipxlistenforpacket(&recb[ra]);
}
Flag_exit=0;
while(!Flag_exit)
{
if( kbhit() ) // нажата клавиша
{
key=getkey();
switch(key)
{
case 27: // Esc
Flag_exit=1;
break;
case 315: // F1
textcolor(7);
printf("-> ");gets(buf); printf("\n");
sprintf(mes,"%s: %s",NAME_USER,buf);
for(ra=0;ra {
if(!secb[ra].inuse )
{ sent_buf(ra,mes); break; }
}
break;
}
}
for(ra=0;ra {
if(!recb[ra].inuse) // приемные окна
{
if(memcmp(rheader[ra].source.nodeadd,M_ADDR,6))
{
textcolor(3);
cprintf("%s\n\r",rbuffer[ra]);
}
memset(rbuffer[ra],0,PACKETSIZE);
recb[ra].socket=socket;
recb[ra].esraddress=NULL;
recb[ra].fragcount=2;
recb[ra].fragaddr1=&rheader[ra];
recb[ra].fragsize1=sizeof(IPXHEADER);
recb[ra].fragaddr2=&rbuffer[ra];
recb[ra].fragsize2=PACKETSIZE;
ipxlistenforpacket(&recb[ra]);
}//if(!recb[ra].inuse)
}//for(}
ipxclosesocket(socket);
}
//----------------------------------
void sent_buf(int msh,char *buf)
{
int i;
memset(sbuffer[msh],0,PACKETSIZE);
sprintf(sbuffer[msh],"%s",buf);
for(i=0;ifor(i=0;ifor(i=0;ifor(i=0;ifor(i=0;isheader[msh].dest.socket=socket;
sheader[msh].type=4;
secb[msh].socket=socket;
secb[msh].esraddress=NULL;
secb[msh].fragcount=2;
secb[msh].fragaddr1=&sheader[msh];
secb[msh].fragsize1=sizeof(IPXHEADER);
secb[msh].fragaddr2=&sbuffer[msh];
secb[msh].fragsize2=PACKETSIZE;
ipxsendpacket(&secb[msh]);
}
//-----------------------------------------------------------
int getkey(void)
{
int key, lo, hi;
key = bioskey(0);
lo = key & 0X00FF;
hi = (key & 0XFF00) >> 8;
return(lo ? lo : hi + 256);
}