Програмное обеспечение компьютерных систем

Сетевая операционная система 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, Macin­tosh, 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 Servi­ces, 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, в которой SUPERVI­SOR не имеет пароля, и при необходимости восстановить ее с помощью 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.
Аудиторы могут отключать аудит объектов, но дпя воз­можности его включения они должны обладать правом SU­PERVISOR по отношению к данному объекту.
Система аудита сугубо пассивная, она не ограничивает действий пользовате­лей, а только наблюдает за ними.
Управление доступом к файпам и каталогам
Конечной задачей файл-сервера является предоставление пользователям до­ступа к файлам и каталогам, расположенным в системе хранения данных сервера. 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);
}