Чтение онлайн

ЖАНРЫ

Стахнов Алексей Александрович

Шрифт:

• ACL_GROUP – то же самое, что и ACLUSER, но для группы пользователей;

• ACL_MASK – маска действующих прав доступа для расширенного режима.

При установке дополнительных прав доступа присваивается значение и элементу ACLMASK.

Каталоги также могут иметь список контроля доступа по умолчанию. В отличие от основного ACL, он действует на создаваемые внутри данного каталога файлы и каталоги. При создании файла внутри такого каталога, файл получает ACL, равный ACL по умолчанию этого каталога.

Установка Linux ACLs

Для использования Linux ACLs необходимо получить на сайте разработчиков собственно пакет Linux ACLs и патчи для ядра операционной системы Linux и некоторых утилит. Само собой, после наложения патчей придется перекомпилировать ядро операционной системы и утилиты.

При подготовке к компиляции ядра операционной системы Linux необходимо выполнить следующие действия:

1. В меню Code Maturity Level Options отметить пункт Prompt for development and/or incomplete code/drivers .

2. В меню Filesystems отметить пункт Extended filesystem attributes (EXPRIMENTAL).

3. Затем

отметить два подпункта: Extended user attributes и Access Control Lists .

4. В пункте Second extended fs support отметить подпункт Extended attributes for ext2 (DANGEROUS).

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

После компиляции и установки ядра операционной системы следует переходить к установке утилит управления расширенным доступом к файлам и накладыванию патчей на стандартные утилиты.

Для установки утилит необходимо скомпилировать пакет ACL, который также берется на сайте разработчиков. Процесс компиляции и установки подробно описан в документации, входящей в комплект пакета. На том же сайте берем патчи к стандартным утилитам операционной системы и применяем их по рецепту, приведенному в документации. После этого можно произвести перезагрузку операционной системы.

Установка и изменение прав доступа

Управление списками контроля доступа производится при помощи двух утилит – getfacl и setfacl.

С помощью getfacl можно просмотреть текущие параметры доступа любого файла. Например, при вызове getfacl для домашнего каталога пользователя vasya мы получим следующее:

getfacl /home/vasya

file: home/vasya

owner: vasya

group: users

user::rwx

group::–

other:–

Как можно видеть, каталог /home/vasya принадлежит пользователю vasya, группе users и значение прав доступа к каталогу – 0700. Каталог имеет только основные параметры доступа, поскольку изначально дополнительные права не устанавливаются. Дополнительные права доступа к файлу устанавливаются и изменяются при помощи утилиты setfacl. Для этого используется следующий формат вызова:

setfacl – опции ACL_структура, ACL_структура,…,ACL_структура имя_файла имя_файла …

ACL-структура представляет собой одну из следующих конструкций:

• [d: ] [и: ] [пользователь] [: [+|^] режимы_доступа] – определяет режим доступа к файлу или каталогу пользователя. Если пользователь не указан, определяет режим доступа пользователя-владельца;

• [d: ] g: [группа] [: [+|^] режимы_доступа] – то же, что и предыдущая конструкция, но для группы;

• [d: ] m [: [+|^] режимы_доступа] – определяет действующие права доступа;

• [d: ] о [: [+|^] режимы_доступа] – определяет режим доступа для остальных пользователей.

Для установки и изменения ACL используются следующие опции:

• -s – заменяет полностью ACL файла на указанный в командной строке;

• -m – изменяет режимы доступа к файлу (каталогу);

• -х – убирает правила доступа из ACL.

К примеру, вот что мы получим, применив setfacl к каталогу vasya:

setfacl -s u::rwx,g::–,o:–,u:usl:rwx,g:usrs2:rx,u:us2:-/home/vasya getfacl /home/dh

file: home/vasya

owner: vasya

group: users

user::rwx

user: usl:rwx

user: us2:–

group::–

group: usrs2:r-x

mask: rwx

other:–

Дополнительные возможности

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

Шифрование трафика

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

Большая часть существующих сетевых протоколов разрабатывалась по компьютерным меркам в чуть ли не доисторическую эпоху рыцарских традиций, когда о сетевых взломах и сетевом шпионаже можно было прочитать только в научной фантастике. Как результат – подавляющее большинство данных в сети Интернет передаются в открытом виде. И как обратная сторона медали – существует большое количество утилит для прослушивания сетевого трафика. Многие из них умеют сами анализировать перехватываемые данные. С помощью таких утилит можно получить пароли пользователей для различных сетевых служб, тексты электронных писем, файлы, сообщения, переданные по ICQ, и т. д., и т. п. Защитить себя от такого прослушивания можно с помощью шифрования трафика.

Наиболее распространенным протоколом шифрования является протокол SSL, разработанный Netscape Communications. Чаше всего он используется для шифровки протокола HTTP (HTTPS), но также может применяться для создания защищенных соединений с SMTP, POP3, IMAP и другими высокоуровневыми сетевыми протоколами.

Программа, осуществляющая поддержку протокола SSL почти для любых серверных и клиентских приложений под Linux и Windows, называется Stunnel. Основное ее применение состоит в создании надежного шифрованного канала между двумя и более хостами в сетях, где существует угроза прослушивания трафика.

Stunnel

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

Установка

Для работы Stunnel необходимо установить OpenSSL. Обычно OpenSSL устанавливается при инсталляции операционной системы Linux (по крайней мере, в дистрибутиве Red Hat Linux), поэтому проблем с установкой OpenSSL

возникнуть не должно. Пакет Stunnel так же обычно входит в состав дистрибутива в виде RPM-пакета.

Организация шифрованного туннеля

Stunnel может работать в двух режимах – сервера и клиента. В качестве сервера Stunnel открывает указанный порт, дешифрует все поступившие данные и передает их либо в указанную в параметрах запуска программу, либо на указанный порт на указанном хосте. В качестве клиента Stunnel открывает указанный порт, шифрует все поступившие на него данные и передает их в определенную программу или на определенный порт на заданном хосте.

Давайте организуем защищенное telnet-соединение (хотя это и не имеет практической пользы, поскольку есть SSH) между двумя компьютерами А и Б.

На компьютере Б запускаем Stunnel в режиме сервера:

stunnel -d 999 -r 23

Опция d указывает Stunnel работать в режиме отдельного демона, ждущего соединения по порту 999. Все данные, полученные в шифрованном виде на порт 999, в открытом виде передаются на порт 23 на локальной машине. Затем на компьютере А запускаем Stunnel в режиме клиента:

stunnel -с -d 1055 -r В:999

Опция – с указывает на работу в режиме клиента, все данные, полученные в открытом виде на порт 1055, передаются в шифрованном виде на порт 999 на хосте Б. После проделанных манипуляций можно устанавливать telnet-соединение с компьютером Б. Команда запуска telnet на компьютере А будет выглядеть следующим образом:

telnet localhost 1055

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

Достаточно часто возникает ситуация, когда одно из приложений поддерживает протокол SSL, а приложение с другой стороны не поддерживает протокол SSL. В этом случае Stunnel можно запускать только с одной стороны – там, где приложение не способно поддерживать протокол SSL. Но в этом случае возникает проблема – какие порты используются приложением, поддерживающим протокол SSL.

Существует официальный список SSL-портов, который приведен ниже:

https 443/tcp # http protocol over TLS/SSL

smtps 465/tcp # smtp protocol over TLS/SSL (was ssmtp)

nntps 563/tcp # nntp protocol over TLS/SSL (was snntp)

imap4-ssl 585/tcp # IMAP4+SSL (use 993 instead)

sshell 614/tcp # SSLshell

ldaps 636/tcp # ldap protocol over TLS/SSL (was sldap)

ftps-data 989/tcp # ftp protocol, data, over TLS/SSL

ftps 990/tcp # ftp protocol, control, over TLS/SSL

telnets 992/tcp # telnet protocol over TLS/SSL

imaps 993/tcp # imap4 protocol over TLS/SSL

ires 994/tcp # ire protocol over TLS/SSL

pop3s 995/tcp # pop3 protocol over TLS/SSL (was spop3)

Сертификаты

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

• 0 – никакой проверки наличия и подлинности сертификата не производится;

• 1 – сертификат проверяется на подлинность, если присутствует. Если сертификат не является подлинным – соединение не устанавливается;

• 2 – проверяется присутствие сертификата и его подлинность. Если сертификат отсутствует или не является подлинным – соединение не устанавливается;

• 3 – проверяется присутствие сертификата и его наличие в списке проверенных сертификатов. Если сертификат отсутствует или его нет в списке проверенных сертификатов – соединение не устанавливается.

Сертификат создается при сборке пакета и помещается вместе с секретным ключом, используемым при расшифровке входящего трафика, в файл stunnel.pem.

Более полную информацию по этому программному обеспечению смотрите в документации, идущей в комплекте с Stunnel.

Утилиты сканирования и защиты сети

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

SATAN

Одна из старейших утилит сканирования. Говорят, что автора этого пакета уволили из фирмы, где он работал, из-за того, что он выложил SATAN на свой Web-сайт.

SATAN может работать на нескольких операционных системах. Считается устаревшим, но тем не менее для проверки правильности основных сетевых настроек вполне пригоден. Работает от пользователя root, требует наличия Perl.

После запуска SATAN становится Web-сервером и запускает браузер Netscape, поскольку интерфейс у него – Web-ориентированный. Для начала сканирования необходимо указать сканируемый хост или диапазон адресов и "уровень нападения", который может быть слабым, нормальным и тяжелым. После этого кнопкой Start the scan запускается сканирование.

По окончании сканирования необходимо перейти в раздел Reporting & Data Analysis. В этом разделе можно ознакомиться с найденными проблемами, которые необходимо устранить.

Portsentry

Еще один программный продукт, предназначенный для обнаружения сканирования сетевых портов. Основные возможности программы Portsentry:

• обнаруживает практически все известные виды сканирования компьютеров;

• в реальном времени блокирует компьютер, производящий сканирование, посредством установленного на атакуемом компьютере брандмауэра, команду запуска которого можно задать в файле конфигурации;

• записывает в журнал операционной системы посредством syslogd информацию об атаке;

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

Установка и настройка

Процесс установки подробно описан в документации на программу и не вызывает трудностей, поэтому сразу перейдем к настройке программы.

Основной конфигурационный файл программы Portsentry называется portsentry.conf. Содержимое файла portsentry.conf представляет собой несколько строк, каждая из которых имеет вид:

Поделиться с друзьями: