на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Исследование уровня безопасности операционной системы Linux



Рис. 2.3.1 Структурная схема взаимодействия приложения и библиотеки PAM


На рисунке 2.3.1 наглядно показано, как происходит взаимодействие некого приложения А с библиотекой PAM. Приложение взаимодействует с библиотекой PAM, причем приложению неизвестно, какие алгоритмы аутентификации используются при проверке подлинности пользователя. Все операции по аутентификации, то есть шифрование пароля и его проверку, производит библиотека PAM. Библиотека Linux-PAM (в середине рисунка) производит чтение параметров аутентификации приложения А из конфигурационного файла и загружает необходимые модули в память. Затем загруженные модули попадают в одну из четырех управляющих групп (расположенных в нижней части рисунка посередине) и помещаются туда в порядке появления их в конфигурационном файле (сначала модуль а в группу auth, за ним b и так далее). Эти модули при вызове библиотекой Linux-PAM выполняют различные задачи аутентификации для приложения А. Для передачи текстовой информации, запрашиваемой у пользователя, может быть использована встроенная функция обмена.

Все модули PAM по умолчанию располагаются в каталоге /lib/security, а конфигурационные файлы PAM – в каталоге /etc/pam.d. Имя каждого конфигурационного файла, расположенного в каталоге /etc/pam.d, совпадает с именем приложения, использующего его. Например, для программы login полный путь к конфигурационному файлу PAM будет иметь вид /etc/pam.d/login. Содержимое этого файла может иметь следующий вид:

#%PAM-1.0

auth  required  /lib/security/pam_securetty.so

auth  required  /lib/security/pam_stack.so service=system-auth

auth  required  /lib/security/pam_nologin.so

account  required /lib/security/pam_stack.so service=system-auth

password required /lib/security/pam_stack.so service=system-auth

session  required /lib/security/pam_stack.so   service=system-auth

session  required /lib/security/pam_limits.so

session  optional /lib/security/pam_console.so

Каждая строчка файла означает, что для удачной аутентификации пользователь должен пройти через указанный модуль. Формат строки любого конфигурационного файла PAM имеет вид:

тип_модуля    флаг_контроля путь_к_модулю параметры_модуля

Все модули библиотеки PAM по функциональному признаку делятся на четыре типа:

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

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

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

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

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

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

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

requisite – эффект действия этого флага тот же, что и флага required, с одним различием: при получении отказа управление сразу возвращается приложению, прохождение остальных модулей не производится.

sufficient – весь процесс аутентификации считается успешным, если работа модуля с этим флагом была успешной и проверка на предшествующих модулях с флагом required не провалилась. Если работа модуля с этим флагом была неудачной, это не считается фатальной ошибкой.

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

Путь к модулю содержит строку полного пути к модулю в файловой системе. Все модули хранятся в каталоге /lib/security, поэтому, например, путь к модулю pam_limits будет выглядеть как /lib/security/pam_limits.so.

Параметры модуля являются индивидуальным для каждого модуля и описываются в документации модуля.

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

time.conf – в этом файле можно ограничить время доступа пользователей с различных терминалов к различным сервисам. Эти настройки использует модуль pam_time, поэтому для вступления в силу временных ограничений необходимо добавить модуль pam_time в конфигурационный файл приложения, на которое должны распространяться эти ограничения.

pam_env.conf – с помощью этого файла можно ограничить возможность изменения некоторых переменных среды пользователями. Этот файл используется модулем pam_env.

limits.conf – этот файл дает возможность ограничить размер core-файла, максимально допустимый размер файла, максимальное количество одновременно открытых файлов, запущенных процессов, количество одновременно открытых пользовательских сессий и так далее. Используется модулем pam_limits.

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

group.conf – в этом файле можно указать, к какой группе будет принадлежать процесс, запущенный пользователем в определенное время с определенного терминала. Файл читается модулями pam_time и pam_group.

console.perms – в этом файле имеется возможность указать права, назначаемые привилегированным пользователям при входе в систему и возвращаемые консоли при его выходе. Файл используется модулем pam_console.

Как уже неоднократно упоминалось, все модули располагаются в каталоге /lib/security. Кратко рассмотрим, какие модули входят в стандартный пакет PAM, и какие функции выполняет каждый из них:

Название модуля Тип модуля Описание

pam_cracklib

password

Позволяет проверять пароль на стойкость, не является ли он, например, словом из словаря и т. д. В основном используется программами, задающими пароли. К полезным параметрам относятся:

retry=N – задает количество попыток на исправление ошибки;

diffok=N – определяет минимальное количество символов, которое должно быть изменено при смене пароля;

minlen=N – задает минимальный размер пароля в символах;

dcredit=N ucredit=N lcredit=N ocredit=N – задает минимальное количество цифр, строчных, прописных букв и других символов, которые должны присутствовать в пароле.

pam_deny

любой Основное назначение этого модуля – запрет доступа при любых условиях.

pam_env

auth Контролирует сохранность переменных среды. С помощью параметра conffile=S можно указать файл конфигурации, отличный от стандартного.

pam_ftp

auth

Предназначен для организации анонимного доступа. Получив в качестве имени пользователя последовательность ‘anonymous’, модуль в качестве пароля требует строку, похожую на почтовый адрес. К полезным параметрам относятся:

users=XXX, XXX, … - разрешает анонимный вход для пользователей из этого списка;

ignore – позволяет не обращать внимания, похож ли пароль на почтовый адрес.

pam_group

auth Определяет группу-владельца процесса, запущенного аутентифицированным пользователем.

pam_lastlog

auth

Сообщает о месте и времени входа в систему. Для протоколирования используется файл wtmp, находящийся в каталоге /var/log . К полезным параметрам можно отнести:

nodate noterm nohost silent – позволяют не выводить в сообщении дату, терминал, адрес машины или вообще ничего не записывать в файл;

never – предоставляет возможность выдачи приветствия пользователя, впервые вошедшего в систему.

pam_limits

session Позволяет задавать ограничения для пользователя на размер файлов, число одновременно открытых дескрипторов и т. д. Имеет параметр conf=S для указания альтернативного конфигурационного файла.

pam_listfile

auth

Предназначен для организации доступа на основе конфигурационных файлов наподобие /etc/ftpaccess. Возможные паарметры:

onerr=succeed | fail – задает возвращаемое значение в случае неудачного поиска;

sence=allow | deny – задает возвращаемое значение в случае удачного поиска;

file=filename – позволяет указать имя файла со списком;

item=user | tty | rhost | ruser | group | shell – определяет тип элементов в списке. Например, значение item=user означает, что в файле содержится список имен пользователей, имеющих возможность входа в систему.

pam_mail

auth

Позволяет уведомлять пользователя о вновь пришедшей почте. Полезные параметры:

dir=S – указывает путь к каталогу почтовых очередей;

noenv – отменяет установку переменной среды MAIL;

close – разрешает уведомлять о новых письмах в почтовых ящиках пользователей с аннулированными бюджетами;

nopen – запрещает вывод какой-либо почтовой информации для вновь заведенного бюджета.

pam_nologin

auth Если файл /etc/nologin существует, в систему может войти только привилегированный пользователь root, остальным же при попытке входа выдается содержимое этого файла.

pam_permit

любой Этот модуль дает доступ при любых условиях. Необдуманное использование этого модуля весьма опасно!

pam_pwdb

любой

Замещает модули серии pam_unix. Этот модуль использует интерфейс библиотеки libpwdb, предназначенный для работы с пользовательскими базами данных, что повышает независимость системы аутентификации от способа хранения пользовательских данных. Полезные параметры:

nullok – разрешает использование пустых паролей;

md5 shadow bigcrypt – указывает используемые алгоритмы шифрования паролей.

pam_radius

session Позволяет осуществлять аутентификацию через сервер RADIUS.

pam_rhosts_auth

auth

Механизм работы этого модуля основывается на анализе содержимого файлов hosts.equiv и .rhosts, используемых для аутентификации такими службами, как rlogin и rsh. Полезные параметры:

no_hosts_equiv – позволяет игнорировать содержимое файла hosts.equiv;

no_rhosts - позволяет игнорировать содержимое файла .rhosts;

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

pam_root_ok

auth Позволяет организовать доступ привилегированного пользователя к сервису, минуя процедуру ввода пароля. Пользователь допускается к сервису, только если его системный идентификатор равен нулю (то есть привилегированный пользователь root).

pam_securetty

auth Позволяет учитывать файл /etc/securetty. В файле /etc/securetty указаны терминалы, с которых привилегированный пользователь имеет доступ в систему.

pam_time

account Накладывает временные ограничения на доступ в систему.

pam_warn

auth, password Производит записи в системных журналах при определенных действиях.

pam_wheel

auth

Этот модуль позволяет получить права привилегированного пользователя только пользователям определенной группы. Полезные параметры:

group=XXX – задает группу, пользователи которой имеют возможность получить права пользователя root;

deny – этот параметр инвертирует действие модуля, другими словами, он запрещает изменение прав на права пользователя root для указанной группы;

trust – избавляет пользователей указанной группы от необходимости ввода пароля при смене идентификатора на нулевой.

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

2.4. Брандмауэр

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

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

Схема сетевого запроса на сервер с установленным брандмауэром показана на рисунке 2.4.1.


Рис. 2.4.1. Пошаговая схема выполнения сетевого запроса с установлением соединения к ОС Linux



Ядро ОС Linux версии 2.4 и более поздних имеет встроенный межсетевой экран netfilter, который располагает следующими возможностями:

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

·     позволяет осуществлять трансляцию сетевых адресов NAT (Network Address Translation) и подмену портов NPT (Network Port Translation). Действие NAT заключается в подмене IP адреса компьютера-отправителя или компьютера-получателя на указанный. В большинстве случаев эта возможность используется для организации обмена информацией между двумя сетями, имеющими разные диапазоны IP адресов. Действие NPT аналогично NAT с тем различием, что в последнем производится подмена порта приложения вместо IP адреса.

·     позволяет менять специальные поля заголовка пакета, такие как TOS (Type Of Service), TTL (Time To Live) и так далее, что предоставляет расширенные возможности для управления процессом маршрутизации.

Вся логическая структура экрана netfilter строится на понятиях цепочек, таблиц и правил доступа.

Цепочка – определенный набор правил управления доступом. Попадая в цепочку, пакет проходит все ее правила, начиная с самого первого. Каждое правило имеет критерий и действие. Если пакет попадает под критерий правила, то с пакетом производится действие, определенное для этого правила.

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

Netfilter содержит только три таблицы:

mangle – эта таблица используется для внесения изменений в заголовки пакетов. Примером может служить изменение поля TTL, TOS или MARK. Таблица имеет пять цепочек: PREROUTING, POSTROUTING, INPUT, OUTPUT и FORWARD. Цепочка PREROUTING используется для внесения изменений на входе в брандмауэр, перед принятием решения о маршрутизации. Цепочка POSTROUTING используется для внесения изменений на выходе из брандмауэра уже после принятия решения о маршрутизации. Цепочка INPUT используется для внесения изменений в пакеты перед тем, как они будут переданы локальному приложению внутри брандмауэра. Цепочка OUTPUT используется для внесения изменений в пакеты, поступающие от приложений внутри брандмауэра. И, наконец, цепочка FORWARD используется для внесения изменений в транзитные пакеты после первого принятия решения о маршрутизации, но перед последним принятием решения о маршрутизации. Использование таблицы для других целей, нежели изменения заголовка пакета, является недопустимым.

nat – эта таблица используется для преобразования сетевых адресов, именуемого также NAT, и подмены портов NPT. Через эту таблицу проходит только первый пакет из всего потока данных соединения. Преобразование адресов автоматически применяется ко всем последующим пакетам. Эта таблица содержит три заранее определенные цепочки. Цепочка PREROUTING используется для внесения изменений в пакеты на входе в брандмауэр. Цепочка OUTPUT используется для преобразования адресов в пакетах, созданных приложениями внутри брандмауэра, перед принятием решения о маршрутизации. И последняя третья цепочка в этой таблице – POSTROUTING, которая используется для преобразования пакетов перед отправкой их в сеть. Эта таблица должна использоваться только для преобразования адресов и портов в пакете.

filter – эта таблица используется главным образом для фильтрации пакетов. Таблица имеет три встроенных цепочки. Первая – FORWARD, используемая для фильтрации пакетов, не адресованных серверу, на котором установлен брандмауэр, то есть идущих транзитом через него. Цепочку INPUT проходят пакеты, которые предназначены локальным приложениям сервера. И цепочка OUTPUT используется для фильтрации исходящих пакетов, сгенерированных приложениями на сервере с брандмауэром.

Структурная схема брандмауэра netfilter показана на рисунке 2.4.2.


Рис. 2.4.2. Структурная организация брандмауэра

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

Следуя рисунку 2.4.2, рассмотрим, какой путь совершает пакет, прежде чем достичь места назначения. Попадая на сервер, пакет сначала проходит цепочки PREROUTING таблиц mangle и nat. Затем, в зависимости от того, кому адресован пакет, его направление может меняться. Если пакет адресован локальному процессу сервера, после маршрутизации он попадает в цепочки INPUT таблиц mangle и filter. Если ему удается успешно пройти эти цепочки, пакет достигает локального процесса. Ответ локального процесса перед отправкой проходит сначала цепочку OUTPUT всех трех таблиц, и, если пакет не был отфильтрован, он попадает в заключительную цепочку POSTROUTING таблиц mangle и nat. После этого пакет покидает сервер.

Если же пакет адресован другому компьютеру, то есть является транзитным, то после маршрутизации он попадает в цепочку FORWARD таблиц mangle и filter, в которой осуществляются все необходимые действия по управлению доступом для всех транзитных пакетов. Далее, как и пакет локального процесса, перед отправкой в сеть транзитный пакет проходит через цепочки POSTROUTING таблиц mangle и nat.

Этих трех таблиц с заранее закрепленным функциональным назначением вполне достаточно для реализации всех перечисленных ранее возможностей. Количество таблиц является определенным и не может быть изменено ни при каких условиях. При настройке брандмауэра в таблицы могут быть добавлены другие цепочки в дополнение к уже существующим, что позволяет создавать более гибкую систему управления доступом, нежели просто добавление правил в заранее определенные цепочки. В отличие от цепочек, созданных администратором, системные цепочки INPUT, OUTPUT, FORWARD, PREROUTING и POSTROUTING не могут быть удалены ни при каких условиях.

Страницы: 1, 2, 3, 4, 5, 6


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.