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

на главную - закладки

Жанры

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

Шрифт:

Для установки утилит необходимо скомпилировать пакет 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 представляет собой несколько строк, каждая из которых имеет вид:

ОПЦИЯ = «значение»

Ниже приведен список основных поддерживаемых опций:

• TCP_PORTS – в этой опции через запятую перечисляются ТСР-порты, которые проверяются программой Portsentry. При обнаружении подключения к перечисленным портам Portsentry записывает информацию об этом в системный журнал и выполняет команду, заданную пользователем, а после этого блокирует хост посредством брандмауэра. ТСР-порты, открытые на защищаемом компьютере другими программами, в этот список включаться не должны;

• UDP_PORTS – то же, что и tcp_ports, но для UDP-портов;

• ADVANCED_PORTS_TCP – значение этой опции определяет верхнюю границу множества TCP-портов, которые проверяются Portsentry при работе в режиме Advanced Stealth Scan Detection Mode. Нижней границей является 1, т. е. при значении advanced_ports_tcp, равном 2048, проверяется подключение к любому порту в промежутке от 1 до 2048;

• ADVANCED_PORTS_UDP – то же, что и advanced_portsjtcp, но для UDP-портов;

• ADVANCED_EXCLUDE_TCP – TCP-порты, которые исключаются из промежутка проверяемых портов, заданного параметром advanced_portsjtcp. Здесь обязательно нужно перечислить ТСР-порты, открытые работающими на защищаемом компьютере программами;

• ADVANCED_EXCLUDE_UDP – то же, что и advanced_exclude_tcp, но для UDP-портов;

• IGNORE_FILE – имя и путь к файлу с IP-адресами хостов, которые не блокируются при подключении к портам, проверяемым программой Portsentry;

• HISTORY_FILE – имя и путь к файлу с историей работы программы Portsentry. В файл записывается время блокирования, имя и IP хоста, атакованный порт, протокол;

• BLOCKED_FILE – строка, из которой формируется имя и путь к файлам, куда записывается информация о блокированных хостах;

• BLOCK_TCP – эта опция в зависимости от значения задает ответную реакцию Portsentry на сканирование портов:

– 0 – не блокировать хост, не запускать заданную пользователем команду;

– 1 – блокировать хост и запустить команду;

– 2 – только запустить заданную команду.

Команда задается при помощи опции KILL_RUN_CMD;

• BLOCK_UDP – то же, что и BLOCK_TCP, но для UDP;

• KILL_ROUTE – эта опция задает команду, которую надо выполнить для блокирования атакующего хоста. Для указания IP-адреса используется переменная $target$. Переменная $port$ используется для указания порта, к которому было подключение;

• KILL_HOSTS_DENY – эти опция задает строку, которая записывается в /etc/hosts.deny для блокирования доступа к сервисам, запускаемым через inetd;

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

• SCAN_TRIGGER – данная опция задает количество разрешенных подключений к проверяемым программой Portsentry портам одного и того же хоста, прежде чем Portsentry начнет действовать. О определяет немедленную реакцию;

• PORT_BANNER – задает сообщение, которое будет выводиться при подключении к проверяемому Portsentry порту.

В файле portsentry.ignore необходимо перечислить IP-адреса компьютеров, которые не должны быть блокированы программой при подключении к проверяемому порту.

Запуск

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

• Classic – при работе в этом режиме Portsentry открывает порты, указанные в tcp_ports или udp_ports, и ждет соединения. При попытке подключиться к такому порту происходит блокировка удаленного хоста. Этот режим работы задается опциями командной строки -tcp – для ТСР-портов и – udp – для UDP-портов;

• Enhanced Stealth Scan Detection – этот режим используется для проверки перечисленных в tcp_ports или udp_ports портов на предмет подключения или сканирования. Выявляет почти все виды Stealth-сканирования, а не только сканирование подключением. В отличие от режима Classic, не держит открытыми порты, поэтому сканировщик получает достоверную информацию об открытых портах. Задается опциями командной строки -step – для TCP-портов и -sudp – для UDP-портов;

• Advanced Stealth Scan Detection – этот режим используется для проверки всех портов в промежутке от 1 до advance d_port_tcp или advanced_port_udр. Порты, открытые другими программами и перечисленные в advanced_exlude_tcp или advanced_exclude_udp, исключаются из проверки. Любой компьютер, попытавшийся подключиться к порту в этом промежутке, тут же блокируется. Задается опциями командной строки – atcp – для TCP-портов и -audp – для UDP-портов.

Сетевая статистика

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

NeTraMet

Этот программный пакет позволяет подсчитывать трафик по IP-адресам в локальной сети раздельно по типам трафика: SMTP, ICMP, HTTP, FTP, UDP, TCP и т. п. Также существует возможность подробного регистрирования трафика.

Программный пакет состоит из:

• NeTraMet – программы-сборщика трафика. Собирает и хранит в оперативной памяти статистику с сетевых интерфейсов сервера;

• NeMaC – программы-менеджера сборщика NeTraMet. NeMaC собирает статистику и записывает ее в журнал;

• srl – компилятора правил для NeMaC;

• fd_filter – программы обработки журналов NeMaC;

• fd_extract – программы обработки результатов fd_filter.

Ключи запуска NeTraMet

Программа запускается со следующими ключами:

• -i network_interface – определяет сетевой интерфейс, трафик которого будет считать NeTraMet;

• -l – предписывает использовать размер пакета из заголовка, а не аппаратный размер;

• -m 614 – определяет UDP-порт, на котором будет соединяться NeTraMet с NeMaC;

• -r password_for_read – устанавливает пароль на чтение;

• -w password_for_write_and_read – устанавливает пароль на чтение/ запись;

• -f 60000 – определяет максимальное количество сетевых потоков в NeTraMet. Чем больше клиентов, трафика и степень детализации статистики, тем больше сетевых потоков.

Ключи запуска NeMaC

Программа запускается со следующими ключами:

• -k 120 – каждые 120 секунд NeMaC будет проверять – не перезагрузился ли NeTraMet;

• -F /var/ntm. iog/$DATER. flows – в этот файл записывать статистику;

• -m 614 – определяет порт для управления NeTraMet;

• -c 900 – предписывает забирать статистику с NeTraMet каждые 15 минут;

• -р – предписывает после записи в файл статистики данных закрывать его. Если файл не найден, то создается новый файл;

• -L /var/ntm. log/$DATER.nemac – журнал работы NeMaC;

• -r /root/ntm.sh/short.3.rules – файл с правилами.

Протоколирование

Нет смысла тратить много времени на защиту компьютера от взлома и не обращать внимания на систему протоколирования событий. Каким образом вы сможете узнать о попытке и способе взлома, не используя инструментов для ведения log-файлов? В этом разделе мы познакомимся со стандартной системой ведения log-файлов – демоном syslogd.

Демон syslogd является частью пакета sysklogd, в который входят две программы: syslogd и klogd. Syslogd отвечает за протоколирование сообщений системы, a klogd – ядра.

Демон syslogd

Демон syslogd запускается автоматически при старте системы и обеспечивает протоколирование событий, которое используется большинством программ. Демон syslogd пишет сообщения в файлы /var/log/* в зависимости от настроек. Обычно записи в log-файле, создаваемом syslogd, содержат следующие поля: дата и время, имя компьютера, программа, сообщение.

Параметры запуска

В табл. 27.1 приведены основные параметры командной строки демона syslogd.

Таблица 27.1. Основные параметры командной строки syslogd

Файл конфигурации По умолчанию используется файл конфигурации /etc/syslog.conf. Вы можете указать другой файл конфигурации с помощью опции -f. Типичный файл конфигурации приведен ниже.

# Все сообщения ядра операционной системы выводить на консоль #kern.* /dev/console

# Все сообщения уровня info или выше протоколировать в файл

# /var/log/messages

# Кроме почтовых сообщений и сообщений аутентификации

*.info;mail.none;authpriv.none;cron.none /var/log/messages

# Протоколирование аутентификации.

# Файл протокола /var/log/secure

authpriv.* /var/log/secure

# Все log-сообщения почтовой системы сохранять в файле /var/log/maillog.

mail.* /var/log/maillog

Поделиться:
Популярные книги

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Кай из рода красных драконов

Бэд Кристиан
1. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5