Категории
Самые читаемые

Linux - Алексей Стахнов

Читать онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 91 92 93 94 95 96 97 98 99 ... 151
Перейти на страницу:

Наиболее распространенным протоколом шифрования является протокол 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;

1 ... 91 92 93 94 95 96 97 98 99 ... 151
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Linux - Алексей Стахнов.
Комментарии