|
Сети
|
|
|
Работа в сети - основная функция Linux. Он поддерживает стандартные Internet протоколы используемые для UNIX-to-UNIX взаимодействия Так же поддерживаются протоколы операционных систем отличных от UNIX. Например, протоколы PC сетей, такие как Appletalk и IPX.
Работа сети в ядре Linux обеспечивается тремя уровнями программного обеспечения:
• Интерфейс сокета (гнезда)
• Протокольные драйверы
• Драйверы сетевых устройств
Все сетевые запросы от пользователя передаются на интерфейс сокета. Сокет может представлять сетевые адреса для широкого диапазона различных сетевых протоколов.
Следующий уровень - стек сетевых протоколов. Все сетевые данные достигающие этого уровня должны содержать тег определяющий содержащийся сетевой протокол. Протокольный уровень может перезаписывать пакеты, разбивать, собирать пакеты и даже отбрасывать поступающие данные. После обработки пакета протокольный уровень пересылает его на соответствующее устройство.
Наиболее важным набором сетевых протоколов в Linux являются комплект Internet протоколов. Драйвер сетевого устройства использует хеш таблицу известных идентификаторов сетевых протоколов, для поиска подходящего протокола, и пересылки ему пакета.
На различных уровнях программное обеспечение IP передает пакеты отдельным секциям кода для брандмауэра. Драйвер IР отвечает за разбиение и повторную сборку больших пакетов. Так, если пакет слишком велик для непосредственной посыпки на устройство, он разбивается на фрагменты меньшего размера, которые могут быть переданы драйверу.
Безопасность
В многопользовательской среде безопасность является необходимым элементом. Система должна предоставлять методы аутентификации, чтобы только разрешенные пользователи имели доступ с системе. С другой стороны, доступ к отдельным оесурсам должен контролироваться, чтобы избежать потери или повреждения файлов и данных.
Модель защиты Linux реализуется двумя шагами:
Аутентификация
Обеспечивает доступ к системе только зарегистрированных пользователей. Процесс аутентисрикации обычно обеспечивается с помощью механизма паролей. Пароль шифруется по специальным алгоритму с использованием случайного значения и сохраняется в файле паролей. Процесс кодирования пароля является однонаправленным, то есть исходный, символьный пароль не может быть получен из зашифрованного. Когда пользователь вводит пароль, последний шифруется тем же алгоритмом, что и при его установке. Если полученный код совпадает с хранящимся в файле паролей то пароль принимается.
Новый механизм безопасности называется подключаемые аутентифицирующие модули (pluggable authentication modules, РАМ). Linux поддерживает этот механизм. Система основана на разделяемой библиотеке, которая может вызываться из компонент требующих аутентификации пользователей. При необходимости аутентифицирующие модули могут быть загружены из конфигурационного файла доступного в системе. РАМ модули могут описывать:
• Методы аутентификации
• Ограничения бюджета
• Начальные функции сессии
• Функции изменения пароля
Управление доступом
В системе реализованы методы управления доступом к объектам. Основой является использование уникальных числовых идентификаторов. Идентификатор пользователя UID определяет конкретного пользователя и набор прав доступа. Идентификатор группы GID - дополнительный идентификатор, который используется для назначения прав более чем одному пользователю.
Каждый файл доступный в системе имеет стандартный механизм управления доступом. Объектам назначается маска доступа, определяющая какие режимы доступа (чтение, запись, исполнение) предоставляются процессу для владельца, группы и всех прочих пользователей.
Исключением из этого правила является пользователь root с привилегированным UID. Процессу, исполняющемуся от имени root автоматически предоставляется все права к любым объектам системы. Такие процессы обычно выполняют привилегированные операции, например процесс может получить права на запись в физическую память. Для большинство ресурсов ядра подразумевается, что их владельцем является root. Механизм root UID позволяет ядру ограничить обычных пользователей в доступе к внутренним ресурсам.
Linux так же реализует механизм смены идентификатора (setuid, suid). Использование этого механизма позволяет работающей программе иметь привилегии отличные от привилегий пользователя, запустившего эту программу. Например программа Ipr имеет доступ к системным очередям печати, хотя пользователь может не иметь к ним доступа.
Расширением suid механизма является saved user-id механизм, при котором процесс может отказываться и получать вновь свой эффективный UID. Его задача - ограничение безопасности. Например, процесс может отказаться от своих привилегий и работать в безопасном режиме. Для операций, требующих все полномочия, процесс может вернуть свой UID.
|
|
|
|
|