Ограничение службы Apache в Windows
Обновлено: 30.06.2025На Web Security Blog опубликовано письмо Юрия Зайцева (Yury Zaytsev), в котором он описывает свой опыт по изолированию Apache в ОС Windows. Под изолированием понимается максимальное ограничение возможности доступа к системе, что существенно понижает возможность выполнения злонамеренных действий. Вот выдержка из этого письма:
Сперва необходимо создать локального пользователя (например, "Apache") (вы можете даже установить пароль для него, но особого смысла в этом нет) и запретить для него локальный вход и вход из сети с помощью политик групп. Затем надо запретить пользователю "Apache" любой доступ к локальным дискам (запрещается все: листинг каталога, чтение, запись, изменение). Это делается через вкладку Свойства(Properties)->Безопасность(Security). Теперь любой процесс, созданный с правами "Apache" не сможет даже просматривать каталоги. У некоторых пользователей Windows вкладка Безопасность(Security) отсутствует. О том как это исправить можно прочитать тут.
Теперь нам надо разрешить этому пользователю чтение и листинг каталога сервера Apache (производиться через Свойства каталога(Properties)->Безопасность(Security)), а также разрешить запись для PID файла (/logs/httpd.pid) и для лог-файлов. И в завершении необходимо подправить службу (service) сервера Apache. В диалоге Службы (вызывается с помощью команды services.msc или через Панель управления->Администрирование->Службы) выбирается служба Apache и в свойствах меняется вход в систему от пользователя "Apache".
Далее перезагрузка, проверка с помощью диспетчера задач (Task Manager), что процесс сервера запущен от имени пользователя "Apache", проверка работоспособности сервера. Готово.
Изложенный выше метод значительно повышает безопасность выполнения скриптов: теперь, даже если кто-то будет использует уязвимость вашего PHP/Perl скрипта (при использовании SAPI/mod_perl), он не только не сможет просматривать каталоги выше каталога сервера, но даже не сможет изменить какой-нибудь файл внутри каталога Apache, кроме тех, которые вы явно разрешили изменять.
Мой метод полностью копирует Unix-ную технологию chroot (и chmod). Это примитивно и эффективно. В любом случае это не раз избавляло меня от использования эксплоитов уязвимостей PHP скриптов.
Источник: http://apachedev.ru/
Пример настроек правил брандмауэра FreeBSD, Linux и Windows (какие порты открыть и для чего)
Обновлено: 30.06.2025
Когда сравнивают два брандмауэра, один с графическим интерфейсом, другой - с текстовым конфигурационным файлом, то для одних сложность в том, что через графический интерфейс не всегда можно добиться максимальной гибкости при постоении правил (как правило, это характерно либо для брандмауэров windows, либо надстроек GUI к консольным брандмауэрам, таким, как ipfw, iptables, pf операционных систем FreeBSD,Linux). Но и в тех и в других случаях частенько начинающим администраторам бывает не просто понять, как именно настроить правила брандмауэра. Что разрешить, что запретить и в каком направлении (входящий/исходящий пакет, TCP или UDP...). Приведенная ниже таблица поможет сориентироваться в том, что нужно разрешить, чтобы часто используемые приложения локальной сети могли иметь выход в интернет. На основании нижеприведенных примеров можно строить многие другие подобные правила. И последнее замечание: эта таблица полезна и тем, кто настраивает брандауэр через текстовый конфиг, и тем, кто юзает GUI.
Web Browsers | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
HTTP connection | TCP | Any or 1024:5000 |
80:83 | Outbound | Accept |
HTTPS connection | 443 | Outbound | |||
SOCKS connection | 1080 | Outbound | |||
PROXY connection | 3128 8080:8083 8088 8100 |
Outbound | |||
FTP connection | 21 | Outbound | |||
FTP DATA connection | 20 | Inbound |
Mail Clients | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
Send Mail (SMTP) | TCP | Any or 1024:5000 |
25 | Outbound | Accept |
Receive Mail (POP3) | 110 995 |
||||
IMAP connection | 143 993 |
FTP Clients | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
FTP connection | TCP | Any or 1024:5000 |
21 | Outbound | Accept |
FTP DATA connection | 20 | Inbound | |||
PASV FTP connection | 1024:65535 | Outbound |
Download Managers | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
HTTP(s) connection | TCP | Any or 1024:5000 |
80:83 443 1080 3128 8080 8088 11523 |
Outbound | Accept |
FTP connection | 21 | ||||
FTP DATA connection | 20 | Inbound | |||
PASV FTP connection | 1024:65535 | Outbound |
ICQ & AOL Messengers | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
AOL connection | TCP | Any | 443 5190 |
Outbound | Accept |
MSN Messenger | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
MSN Messenger connection | TCP | 1024:65535 | 1863 | Outbound | Accept |
MSN Messenger voice communications | 6901 | ||||
MSN Messenger file transfer | 6891:6900 | All | |||
MSN Messenger Remote Assistance | 3389 | Outbound | |||
MSN Messenger Application Sharing and Whiteboard | 1503 | ||||
MSN Messenger RTP connection | 5004:65535 | All |
Odigo | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
Odigo connection | TCP | Any | 80 3128 8080 1080 2562 |
Outbound | Accept |
IRC | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
mIRC connection | TCP | Any | 6660:6670 | Outbound | Accept |
mIRC AUTH connection | 113 | Inbound |
Windows Media Player | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
Windows Media Player Connection | TCP | Any | 80 3128 8080 1755 8000:8001 |
Outbound | Accept |
WinAmp | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
WinAmp Connection | TCP | Any | 8000:8900 | Outbound | Accept |
WinAmp MiniBrowser Connection | 80:83 443 1080 3128 8080 8088 11523 |
QuickTime Player | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
QuickTime Player Connection | TCP | Any | 554 | Outbound | Accept |
QuickTime Player Connection | UDP | 2001 | |||
QuickTime Player HTTP Connection | TCP | 80:83 443 1080 3128 8080 8088 11523 |
Windows Time Synchronization | |||||
Description | Protocol | Local port | Remote port | Direction | Action |
Windows Time Sync | UDP | Any | 123 | Send datagrams | Accept |
Windows Time Sync | 123 | Any | Receive datagrams |
Таблица взята по адресу: http://jetico.narod.ru/
VPN: не все йогурты одинаково полезны…
Обновлено: 30.06.2025Кухтин С.Г.
Технология виртуальных частных сетей завоевала определенный сегмент рынка, который в последнее время интенсивно расширяется.
Организации, столкнувшись с проблемой защиты своих сетей, видят, как правило, в VPN панацею от всех бед. Однако на практике все оказывается не так уж безоблачно. Нередко после инсталляции всплывали особенности, на которые вначале не обращалось внимания, и нередко они вносили значительные изменения в штатную работу сети.
Основными задачами этой статьи являются попытка рассмотреть проблемы, возникающие в сети после внедрения VPN, и рекомендации по выбору ее оптимальной реализации.
Напомним вкратце суть технологии. Принцип работы виртуальных частных сетей заключается в туннелировании передаваемого трафика через сеть общего пользования, например, Интернет. Реализация технологии осуществляется на основе специальных устройств - криптошлюзов, которые кроме этого скрывают структуру локальной сети, защищают от проникновения извне, осуществляют маршрутизацию трафика. VPN выгодно отличается при сравнении с традиционным решениями на основе выделенных каналов - гибкость и масштабируемость сети, более низкая стоимость, высокий уровень защищенности передаваемой информации.
Естественно, что эти преимущества не остались незамеченными потребителями. Рынок стремительно расширяется, устройства VPN есть в линейке моделей практически любого крупного производителя телекоммуникационного оборудования. Однако внедрение виртуальных частных сетей имеет свои особенности.
Оценка степени влияния
При работе виртуальных частных сетей криптошлюзы осуществляют преобразование трафика, при этом многие характеристики с точки зрения конечного пользователя меняются не лучшую сторону. Интеграция VPN вносит следующие изменения в работу сети:
- Снижение пропускной способности сети
- Накладные расходы на преобразование трафика
- Задержки при передаче пакетов
Рассмотрим подробнее эти параметры.
Снижение пропускной способности сети возникает по разным причинам. Первая заключается в недостаточной производительности самого криптошлюза, хотя, как правило, при выборе таких устройств этому параметру уделяется большое внимание. Устройства VPN должны обладать достаточной пропускной способностью для того, чтобы минимизировать свое влияние при передаче информации в сети.
Вторая причина определяется типом трафика и обусловлена накладными расходами на преобразование трафика. Они возникают при обработке пакета за счет добавления нового IP-заголовка к туннелируемому пакету. Эта величина зависит от протокола, используемого в системе, и составляет фиксированное количество байт. Дополнительная нагрузка на сеть определяется процентным приростом длины пакета по отношению к исходной. В этом и заключается причина снижения пропускной способности в зависимости от типа трафика.
Например, широко известный протокол IPSec добавляет (для алгоритма ГОСТ 28147-89) при преобразовании минимум 54 байта. Для IP-пакета длиной 1500 байт (стандартный пакет передачи данных) прирост составит порядка 4%, а для 56 байтного пакета (IP-телефония) - накладные расходы составят уже около 100%.
На российском рынке некоторые компании представляют протоколы собственной разработки (например, протокол шифрования данных семейства криптомаршрутизаторов "Континент-К"). Как правило, они лишены многих недостатков IP-Sec, имеют меньшее увеличение длины пакета, нередко также используют режим сжатия полей данных и/или заголовка.
Задержки при передаче пакетов обусловлены многими причинами. Роль VPN здесь далеко не всегда является доминирующей, ведь задержки определяются работой узлов на различных уровнях - от физического до транспортного. При условии работы через Интернет основными местами возникновения задержек являются узлы доступа к Интернету и шлюзы между провайдерами.
Устройства VPN вносят два типа задержек - прямую и косвенную. Первая обусловлена временем обработки пакета и зависит только от характеристик самого устройства. Вторая может возникать за счет увеличения трафика в канале из-за накладных расходов при туннелировании.
Рекомендации при выборе VPN
Рассмотренные нами параметры нередко оказывают большое влияние на работу стандартных сетевых сервисов. В настоящее время, как правило, организации приходят к выводу о потребности в защите информации, когда корпоративная сеть уже есть. И реализация VPN происходит в жесткой привязке к существующей структуре и параметрам сети. Здесь-то и кроются подводные камни.
Весьма важно перед проектированием VPN оценить степень влияния на существующие или планируемые сервисы в корпоративной сети.
Одним из характерных примеров в данной ситуации является функционирование систем сбора технологических параметров и диспетчерского управления (SCADA), предназначенных для предприятий в электроэнергетической, добывающей и других подобного рода отраслях. Эти системы обеспечивают управление производственными процессами в режиме реального времени. Критичность к временным задержкам при этом весьма высока. Несмотря на отсутствие единых стандартов, передаваемые пакеты достаточно короткие, и, соответственно, при внедрении виртуальных частных сетей трафик пропорционально возрастает.
Еще одним примером является IP-телефония. Несмотря на скептические замечания специалистов, эта технология сумела занять свою нишу на рынке и продолжает активно развиваться. Передаваемые IP-пакеты имеют длину 56 байт (Стандарт H.323). Теперь представим себе, что в существующую сеть, изначально не рассчитанную на какое-либо вмешательство, мы пытаемся интегрировать VPN. Каждый пакет при преобразовании снабжается новым заголовком, при этом, например, для IPSec, как уже упоминалось, увеличение пакета составит более 100%. А теперь представите себе, как будет работать канал при передаче таких пакетов.
Вышесказанное актуально также для передачи телеконференций через IP и, в принципе, любых сервисов, использующих короткие пакеты и критичных к задержкам при их пересылке.
Решение данной проблемы возможно в двух направлениях. Вариант быстрый, но дорогой - увеличение пропускной способности канала. Он позволяет снять многие проблемы, но… Затраты на аренду каналов связи вырастают минимум вдвое. Для большой сети это весьма значительная сумма, и не каждая организация пойдет на это.
Однако есть другой вариант. Он заключается в использовании протоколов с минимальными накладными расходами на туннелирование. При этом остальные параметры устройств VPN должны соответствовать требованиям заказчика.
Проблемы функционирования корпоративной сети после интеграции VPN вовсе не ограничиваются периодом инсталляции и настройки. Есть ряд факторов, которые возникают при штатной работе и требуют к себе внимания.
Во-первых, следует четко представлять концепцию работы системы. Основной акцент делается именно на безопасности, поэтому очень важен выбор протоколов, алгоритмов шифрования трафика, ключевых схем. Эти параметры обуславливают защитные свойства VPN и удобство мониторинга и управления сетью. Как правило, ищется компромиссное решение, удовлетворяющее с точки зрения безопасности и с точки зрения удобства эксплуатации сети. Эта тема весьма обширна и требует более детального анализа, мы же рассмотрим пример, актуальный для практического использования VPN.
Одним из показателей работы сети является ее реакция на возникновение аварийных и сбойных ситуаций. Российская специфика накладывает свой отпечаток - криптошлюзы, особенно на периферии, должны быть надежны и неприхотливы в обслуживании. И если при сбое связи с сетью практически все VPN-устройства (например, Cisco PIX Firewall, Check Point VPN-1, "Континент-К" и другие) автоматически восстанавливают связь, то при падении напряжения и последующей перезагрузке некоторые устройства не активизируются без предоставления ключевой информации, которая, как правило, находится в центральном офисе. А теперь можно прикинуть среднее расстояние между центральным офисом и удаленным филиалом и умножить на российские условия. Результат - долговременное отключение сегмента VPN, простой в работе приложений, потерянные деньги, упущенные выгоды.
Вывод: если ваша сеть критична к простоям, необходимо выбрать VPN, не требующий присутствия оператора. Их основной принцип - сохранение ключевой информации в зашифрованном виде на самом криптошлюзе. При восстановлении штатных условий работы такой криптошлюз автоматически подключается к сети.
Интеграция виртуальных частных сетей в действующую сеть организации - процесс непростой и ответственный. Большое значение имеет правильный выбор продукта, наиболее полно удовлетворяющий функционированию данной сети - ошибки могут обойтись очень дорого. И если на основные характеристики продуктов VPN: производительность, алгоритмы шифрования, ключевая схема, - покупатель обращает пристальное внимание, то остальные характеристики нередко остаются за кадром. В силу интенсивного развития рынка VPN тема эта далеко не исчерпана, и автор рассчитывает еще вернуться к ее обсуждению.
Об авторе:
Сергей Геннадиевич Кухтин, ведущий специалист Научно-инженерного предприятия "ИНФОРМЗАЩИТА" (Москва). Связаться с ним можно по тел. (095) 289-8998 или e-mail: SergeK@infosec.ru, май 2001 г., www.infosec.ru
Криптоанализ туннельного протокола типа точка-точка (PPTP) от Microsoft
Обновлено: 30.06.2025
Bruce Schneier, Peter Mudge, пер. Василий Томилин
Copyright © Bruce Schneier, Peter Mudge
перевод Василий Томилин
1 Введение
Многие организации не являются централизованными. Филиалы, виртуальные корпорации и перемещающиеся сотрудники делают идею создания выделенного канала к любому требуемому пункту логически невозможной. Концепция виртуальных сетей обеспечивает решение возникшей проблемы путем туннелирования объединяемого сетевого пространства по другим, промежуточным и небезопасным сетям (например, Интернет), тем самым позвол удаленным пунктам стать локальными. Данное решение не требует вложений на проведение абонируемых или выделенных линий в любую точку. Такой способ иногда называют "тоннель".
По мере решения виртуальными сетями проблем нецентрализованных машин возникла другая проблема. Трафик, который раньше находился в пределах компании, теперь открыт для любопытных глаз со всего мира. Для обеспечения не только отказоустойчивости, но и безопасности информации необходимо использовать механизмы аутентификации и шифрования. В результате виртуальные сетевые соединения объединили с криптографической защитой, и конечный продукт назвали Виртуальные Приватные Сети (VPN).
Безопасность VPN основывается на безопасности протоколов аутентификации и шифрования. Если криптография VPN слаба, то степень защиты не выше, чем в любой другой неприватной сети передачи информации по Интернет. Поскольку компании надеются, что VPN расширит периметр внутренней безопасности до удаленного офиса, прорыв системы защиты туннеля соответствует уничтожению всех систем защиты внутреннего периметра. Прорыв в VPN означает практически то же самое, что и прорыв за firewall.
Протокол PPTP (туннельный протокол типа точка-точка) был предназначен для решения задачи создания и управления VPN по общественной сети TCP/IP с использованием стандартного протокола РРР. Хотя протокол резервирует пространство для всех возможных типов шифрования и аутентификации, в большинстве коммерческих продуктов используется версия данного протокола для Windows NT. Именно эта реализация и подвергнута анализу в данной статье.
Мы обнаружили, что протокол аутентификации Microsoft слаб и уязвим путем атаки по словарю; большинство паролей можно вскрыть в течение нескольких часов. Мы обнаружили, что способы шифрования с использованием 40- и 128-разрядных ключей одинаково слабы и открыли ряд заложенных в реализацию неразумных идей, которые позволяют осуществлять другие атаки на данный шифр. Мы может открывать соединения через firewall, нарушая правила переговоров РРTР, и можем проводить различные атаки отказа в обслуживании на тех, кто использует Microsoft PPTP.
Оставшаяся часть работы разделена следующим образом: В параграфе 2 рассматривается РРТР, как стандарт протокола, так и реализация Microsoft. В параграфе 3 рассматриваются две функции хэширования паролей в Microsoft PPTP и способы атаки на них. В параграфе 4 проводится криптоанализ протокола аутентификации Microsoft, а в параграфе 5 - криптоанализ протокола шифрования Microsoft. Другие атаки на Microsoft РРТР рассмотрены в параграфе 6. Наконец, в параграфе 7 делаются некоторые выводы.
2 Туннельный протокол типа точка-точка
РРТР - протокол, который позволяет выполнять туннелирование РРР-соединений по IP-сети путем создания VPN. Таким образом, удаленный компьютер в сети Х может туннелировать трафик на шлюз в сети У и имитировать подключение, с внутренним IP-адресом, к сети У. Шлюз получает трафик для внутреннего IP-адреса и передает его удаленной машине в сети Х. Существуют два основных способа использования РРТР: по Интернет и по коммутируемым соединениям. Настояща статья ориентирована на использовании РРТР как VPN при непосредственном подключении клиента к Интернет.
Функционирование РРТР заключается в инкапсулировании пакетов виртуальной сети в пакеты РРР, которые в свою очередь, инкапсулируются в пакеты GRE (Generic Routing Incapsulation), передаваемые по IP от клиента к шлюзу - серверу РРР и обратно. Совместно с каналом инкапсулированных данных существует управляющий сеанс на базе TCP. Пакеты управляющего сеанса позволяют запросить статус и сопровождать сигнальную информацию между клиентом и сервером. Канал управления инициируется клиентом на сервере на ТСР-порте 1723. В большинстве случаев это двунаправленный канал, по которому сервер посылает запросы на сервер и наоборот.
РРТР не оговаривает конкретных алгоритмов аутентификации и протоколов; вместо этого он обеспечивает основу для обсуждения конкретных алгоритмов. Переговоры не присущи только РРТР, они относятся к существующим вариантам переговоров РРР, содержащихся в ССР, СНАР и других расширениях и усовершенствованиях РРР.
2.1 РРТР от Microsoft
Microsoft РРТР является частью ОС Windows NT Server, данное программное обеспечение можно бесплатно получить с Web-сайта Microsoft. Подключение осуществляется с помощью панели управления и редактора реестра. Данная реализация РРТР широко используется в коммерческих применениях VPN, например Aventail и Freegate именно потому, что входит в состав ОС Microsoft.
Сервер Microsoft РРТР может существовать только для Windows NT, хотя клиентское программное обеспечение существует для Windows NT, некоторых версий Windows и Windows 98. Реализация Microsoft поддерживает три варианта аутентификации:
- Текстовый пароль: Клиент передает серверу пароль в открытом виде.
- Хэшированный пароль: Клиент передает серверу хэш пароля (см. параграф 3).
- Вызов/Отклик: Аутентификация сервера и клиента с использованием протокола MS-CHAP (вызов/отклик), что описано в параграфе 4.
Третий вариант называется в документации для пользователей "Аутентификаци Microsoft", для шифрования пакетов РРТР его надо разрешить. При выборе любого из двух других вариантов шифрование неосуществимо. Кроме того, возможность шифрования (40- или 128-разрядное) гарантируется только в том случае, если клиент использует Windows NT. Некоторые клиенты Windows 95 не могут поддерживать зашифрованные сеансы1.
3. Криптоанализ функций хэширования паролей Windows NT
В ОС Microsoft Windows NT для защиты паролей используются две однонаправленные хэш-функции: хэш Lan Manager и хэш Windows NT. Функция хэша Lan Manager была разработана Microsoft для операционной системы IBM OS/2, она была интегрирована в Windows for Workgroups и частично в Windows 3.1. Данная функция используется в некоторых протоколах аутентификации перед Windows NT. Хэш Windows NT был разработан специально для ОС Microsoft Windows NT. Функция хэша Lan Manager основана на алгоритме DES; Функция хэша Windows NT основана на односторонней хэш-функции MD4. Обе эти функции используются во многих протоколах аутентификации Windows NT, а не только в РРТР.
Функция хэша Lan Manager вычисляется следующим образом:
Превращение пароля в 14-символьную строку путем либо отсечки более длинных паролей, либо дополнения коротких паролей нулевыми элементами.
- Замена всех символов нижнего регистра на символы верхнего регистра. Цифры и специальные символы остаются без изменений.
- Разбиение 14-байтовой строки на две семибайтовых половины.
- Использование каждой половины строки в роли ключа DES, шифрование фиксированной константы с помощью каждого ключа, получение двух 8-байтовых строк.
- Слияние двух строк для создания одного 16-разрядного значения хэш-функции.
Словарные атаки на функцию хэша Lan Manager легко достигают успеха по следующим причинам:
Большинство людей выбирают легко угадываемые пароли.
- Все символы преобразуются в верхний регистр, что ограничивает и без того небольшое число возможных паролей.
- Нет индивидуальной привязки (salt); два пользователя с одинаковыми паролями всегда будут иметь одинаковые значения хэш-функции. Таким образом, можно заранее составить словарь хэшированных паролей и осуществлять поиск неизвестного пароля в нем. При таком подходе с точки зрения отношения время/память тестирование пароля может выполнятьс со скоростью дискового ввода/вывода.
- Две семибайтовых "половины" пароля хэшируются независимо друг от друга. Таким образом, две половины могут подбираться методом грубого подбора независимо друг от друга, и сложность атаки не превышает сложности атаки против семибайтового пароля. Пароли, длина которых превышает семь символов, не сильнее, чем пароли с длиной семь символов. Кроме того, те пароли, длина которых не превышает семь символов очень просто распознать, поскольку вторая половина хэша будет одной и той же фиксированной константой: шифрование фиксированной константы с помощью ключа из семи нулей.
Функция хэша Windows NT вычисляется следующим образом:
- Преобразование пароля, длиной до 14 символов, с различением регистров в Unicode.
- Хэширование пароля с помощью MD4, получение 16-символьного значения хэш-функции.
Хэш Windows NT обладает преимуществом по сравнению с функцией хэша Lan Manager - различаются регистры, пароли могут быть длиннее 14 символов, хэширование пароля в целом вместо разбиения его на маленькие части - хотя по-прежнему отсутствует индивидуальность. Таким образом, люди, имеющие одинаковые пароли, всегда будут иметь одинаковые хэшированные пароли Windows NT. Сравнение файла хэшированных паролей с заранее рассчитанным словарем хэшированных паролей может быть весьма эффективной атакой.
Кроме того, более серьезна проблема реализации существенно облегчает раскрытие паролей. Даже хотя хэш Lan Manager был включен по соображениям совместимости с предыдущими версиями, и не требуется в сетях Windows NT, оба значения хэш-функций всегда передаются вместе. Следовательно, можно выполнить грубый подбор пароля с помощью более слабой хэш-функции Lan Manager и затем выполнить тестирование с учетом регистра для подбора значения хэш-функции Windows NT.
4. Криптоанализ MS-CHAP
РРР содержит различные способы обработки аутентификации. Одним из способов является протокол аутентификации вызов-рукопожатие (СНАР). Реализация PPP СНАР компанией Microsoft (MS-CHAP) почти совпадает с методом аутентификации, используемым для аутентификации клиентов в Windows-сетях.
MS-CHAP функционирует следующим образом:
- Клиент запрашивает вызов сетевого имени.
- Сервер возвращает восьмибитовый случайный вызов.
- Клиент вычисляет хэш-функцию Lan Manager, добавляет пять нулей для создания 21-байтовой строки и делит строку на три семибайтовых ключа. Каждый ключ используется для шифрации вызова, что приводит к появлению 24-разрядного шифрованного значения. Оно возвращается серверу как отклик. Клиент выполняет то же самое с хэш-функцией Windows NT.
- Сервер ищет значение хэш-функции в своей базе данных, шифрует запрос с помощью хэш-функции и сравнивает его с полученными шифрованными значениями. Если они совпадают, аутентификация заканчивается.
Сервер может выполнять сравнение по хэш-функции Windows NT или по хэш-функции Lan Manager; результаты должны совпадать. Хэш, используемый сервером, зависит от конкретного флага в пакете. Если флаг установлен, то сервер выполняет тестирование с помощью хэш-функции Windows NT; в противном случае тестирование выполняется с помощью хэш-функции Lan Manager.
Протокол вызова/отклика является стандартным; использование случайного вызова имени делает невозможными словарные атаки на MS-CHAP и файл записанных хэш-функций от паролей. В то же время, поскольку даже в Windows NT-сетях используются оба значения хэш-функции, можно в каждом случае атаковать более слабую хэш-функцию Lan Manager. Поскольку ответ клиента разбит на три части, и каждая часть шифруется независимо от других, можно атаковать сам протокол MS-CHAP.
Последние восемь байт хэш-функции Lan Manager представляют собой константу в том случае, если длина пароля не превышает семи символов. Это верно, несмотря на случайный вызов. Следовательно, последние восемь байт отклика клиента будут представлять собой вызов, зашифрованный с помощью данной константы. Легко проверить, не превышает ли длина пароля семи символов. После того, как атакующий находит значение хэш-функции Lan Manager, он может использовать эту информацию для восстановления хэш-функции Windows NT.
Атака может быть существенно ускорена за счет активного использования предварительных вычислений и тщательного исследования слабостей хэш-функции Lan Manager и протокола MS-CHAP. Далее приводятся подробности оптимизированной атаки:
Р0-Р13 - байты пароля. Н0-Н15 - байты хэш-функции Lan Manager, которая преобразуется в 21-байтовый ключ К0-К20. S- фиксированная константа, используемая в хэш-функции Lan Manager. Вызов С и 24-байтовый отклик Ro-R23. Злоумышленник может знать C и R и хочет найти Р.
- Попробуйте все возможные комбинации К14, К15. Правильное значение выделяется, когда С превращается в R16, ..., R23 с ключом К14, К15, 0,0,0,0,0. На это уходит примерно 215 операций.
- Попробуйте вероятные значения Р7,...,Р13. Неверные значения можно быстро отбросить путем шифрования S и проверки совпадения последних двух байт полученного значения с К14 и К15. (Так отбрасываются все биты 1 в 216 неверных вариантах). Каждый оставшийся вариант Р7,...,Р13 предоставляет значение-кандидат для К8,...,К13. Чтобы проверить значение-кандидат, проверьте все возможные значения К7, чтобы увидеть, есть ли такое, при котором С шифруется в R8,...,R15 при значении-кандидате К8,...,К15. Если есть такое К7, то догадка для Р7,...,Р13 почти наверняка верна. Если нет, то надо выбрать другое значение для Р7,...,Р13. Если существуют N вероятных вариантов Р7,...,Р13, то подбор верного значения можно провести за N тестовых шифрований.
Обратите внимание, что поскольку в протоколе нет индивидуальной настройки, эта атака может быть существенно ускорена с помощью замены время/память. Если есть N заранее вычисленных тестовых шифрований, то восстановление верного значения Р7,...,Р13 потребует N/216 операций. - После нахождения Р7,...,Р13, восстановление Р0,...,Р6 требует М попыток, где М - число вероятных значений Р0,...,Р6. Опять же, поскольку нет индивидуальной настройки, атака может быть выполнена за N/28 попыток при М предварительно вычисленных значениях.
Кроме того, данный протокол позволяет выполнить аутентификацию только клиента. Атакующий, выполняющий подмену соединения, может тривиально замаскироваться под сервер. Если шифрование разрешено, атакующий не сможет посылать и принимать сообщения (пока не взломает шифр), однако используя старое значение вызова он сможет получить две сессии текста, зашифрованные одним ключом (см. атаки далее).
5. Криптоанализ МРРЕ 5.1 Описание МРРЕ
Протокол шифрования в одноранговых сетях (МРРЕ) обеспечивает методологию для шифрования пакетов РРТР. Он предполагает существование секретного ключа, известного обоим участникам соединения, и использует поточный шифр RC4 с 40- либо 128-разрядным ключом. Такой метод установки использования МРРЕ является одной из функций протокола управления сжатием РРР (ССР) и описан в приложении С. После установки режима работы начинается сеанс РРР по передаче пакетов зашифрованных данных. Важно отметить, что шифруются только те пакеты РРР, номера протоколов которых лежат в диапазоне 0x0021-0x00fa. Все остальные пакеты передаются без шифрования, даже если шифрование разрешено. Типы пакетов, шифрование которых осуществляется/не осуществляется, регламентируются документом RFC 1700. Для любых пакетов не обеспечивается аутентификация.
В МРРЕ 40-битовый ключ RC4 определяется следующим образом:
- Генерация определяющего 64-битового ключа из хэш-функции Lan Manager пароля пользователя (известного пользователю и серверу) с помощью SHA.
- Установка старших 24 бит ключа в значение 0xD1269E.
128-битовый ключ RC4 определяется следующим образом:
- Объединение хэша Windows NT и 64-битового случайного значения, выданного сервером при работе по протоколу MS-CHAP. Данное число посылается клиенту по протоколу обмена, потому оно известно и клиенту, и серверу.
- Генерация определяющего 128-битового ключа из результатов предыдущего этапа с помощью SHA.
Результирующий ключ используется для инициализации RC4 обычным способом, а затем для шифрования байт данных. После каждых 256 пакетов - МРРЕ поддерживает счетчик, в котором фиксируется число пакетов - генерируется новый ключ RC4 по следующим правилам:
- Генерация определяющего ключа - 64-битового для 40-битового шифрования и 128-битового для 128-битового шифрования - путем хэширования предыдущего ключа и исходного ключа с помощью SHA.
- Если требуется 40-битовый ключ, то установка старших 24 бит ключа в значение 0xD1269E.
Длина типичного пакета РРТР составляет 200 байт, включая заголовок.
При потере синхронизации происходит реинициализация RC4 с использованием текущего ключа. Существует также возможность обновления ключа RC4 после каждого пакета; эта возможность снижает эффективность шифрования примерно наполовину, поскольку на выполнение плановых изменений ключа RC4 требуется время.
5.2 Восстановление ключа
В МРРЕ степень защиты ключа не превышает степень защиты пароля. Большая часть паролей имеет существенно меньше 40 бит безопасности и раскрываются с помощью словарных атак. Хэш-функция Lan Manager еще боле уязвима: с учетом максимальной длины порции, ограниченного алфавита и отсутствия символов нижнего регистра, невозможно сгенерировать 128-битовый ключ, даже если пользователь хочет это сделать. В документации по МРРЕ описывается флаг для вычисления 40-битового ключа RC4 на основании хэш-функции Windows NT, а не Lan Manager, но эта функция еще не реализована. Нет способов вычисления 128-битового ключа RC4 на основании хэш-функции Windows NT, хотя такой вариант был бы более безопасным (хотя существенно менее безопасным, чем 128-битовый случайный ключ.)
В любом случае, общая степень защиты составляет не 40 или 128 бит, а количество бит энтропии пароля. На основании экспериментальных данных получено, что английскому языку свойственна энтропия 1,3 бита на символ. Изменения регистра, цифры и специальные символы существенно повышают это значение. Любая атака, которая использует словарь слабых паролей, может быть способна прочитать зашифрованный МРРРЕ трафик. Кроме того, стилизованные заголовки в пакете РРР облегчают сбор известных текстов и базы для проверки угаданного ключа.
40-битовый алгоритм RC4 подвержен более серьезным уязвимостям. Поскольку не предусмотрена индивидуальная настройка, атакующий может подготовить словарь зашифрованных заголовков РРР, а затем быстро найти данный зашифрованный текст в словаре. При поиске мест в пакетах МРРЕ, где может содержаться незашифрованный текст, атакующий может воспользоваться множеством связей по SMB и NetBIOS, которые происходят при стандартных соединениях Microsoft.
Более того, тот же 40-битовый ключ RC4 генерируется всякий раз, когда пользователь инициализирует протокол РРТР. Поскольку RC4 представляет собой способ шифрования с обратной связью по выходу, то просто взломать шифр за два сеанса. Серьезная уязвимость отмечается в большей части свежих спецификаций МРРЕ, хотя она исчезла из предыдущей версии. Ни в одной версии документации Microsoft не указано, что один и тот же ключ используется как в прямом, так и в обратном направлении, что гарантирует, что для шифрования двух разных текстов используется один и тот же поток ключей.
128-битовый RC4 использует в процессе генерации ключей 64-битовую случайную величину. Такой подход делает непрактичной словарную атаку. По-прежнему, метод грубого подбора пароля более эффективен, чем метод грубого подбора пространства ключей. Случайное число также означает, что для двух сессий с одним паролем будут использованы разные 128-битовые ключи RC4, хотя для шифрования текста в обоих направлениях будет использован один и тот же ключ.
5.3 Атаки переворота битов
RC4 - способ поточного шифрования с обратной связью по выходу, при этом не обеспечивается аутентификация потока шифрованного текста. Поскольку в МРРРЕ не предусмотрено другого способа аутентификации, атакующий может незаметно менять значения бит в шифре. Если протокол нижнего уровня чувствителен к изменению значения конкретных бит - разрешение/запрещение каких-либо функций, выбор вариантов, сброс параметров - эта атака может быть достаточно эффективна. Обратите внимание, для проведения этой атаки атакующему не надо знать ключ шифрования или пароль клиента. Конечно, такие атаки могут обнаруживаться или предотвращаться протоколами верхнего уровня.
5.4. Атака путем ресинхронизации
Если в процессе передачи теряется пакет, либо приходит пакет с неверным номером в заголовке МРРЕ, то происходит ресинхронизация ключа. Сторона, принявшая неверный пакет, посылает отправителю запрос на ресинхронизацию. По принятию данного запроса, отправитель реинициализирует таблицы RC4 и устанавливает бит "сброшен" (flushed) в заголовке МРРЕ. Если система обнаруживает в пакете установленный бит "сброшен", она реинициализирует свои таблицы RC4 и устанавливает счетчик пакетов в соответствии с полученным значением.
Так создается проблема, когда атакующий может либо подавать запросы на ресинхронизацию, либо вбрасывать пакеты МРРЕ с неверными значениями счетчика пакетов. Если выполнять это постоянно перед обменом 256-м пактом, когда происходит смена сеансового ключа, то атакующий может добиться успеха - сеансовый ключ не будет изменен.
6 Другие атаки на MS-PPTP
Несмотря на то, что атаки на протоколы MS-CHAP и МРРЕ приводят к полному отрицанию полезности и безопасности MS PPTP, необходимо упомянуть о нескольких интересных атаках.
6.1 Пассивный мониторинг
Потрясающее количество информации можно получить, если просто наблюдать за трафиком сеанса РРТР, передаваемым по сети. Такая информация бесценна для анализа трафика, ее следует защищать. Тем не менее, сервер выдает всем желающим такие сведения, как максимальное количество доступных каналов. Эту информацию можно использовать для установки соответствующего размера сервера РРТР и контроля его нагрузки. Если атакующий регулярно передает пакеты PPTP_START_SESSION_REQUEST, то он может наблюдать создание новых соединений и закрытие существующих соединений. Таким способом атакующий может собрать информацию о системе и шаблонах ее использования, при этом ему не нужно быть рядом.
Путем установки стандартных средств просмотра и расшифровки общественных линий связи от серверов Microsoft PPTP была получена следующая информация:
- IP-адрес клиента
- IP-адрес сервера
- Количество доступных на сервере виртуальных каналов РРТР
- Версия RAS клиента
- Имя клиента NetBIOS
- Идентификация производителя клиента
- Идентификация производителя сервера
- IP-адрес клиента во внутреннем виртуальном туннеле
- Внутренние DNS-сервера, обслуживающие клиента
- Имя пользователя на клиенте
- Достаточно информации для получения значений хэш-функций паролей пользователей
- Достаточно информации для получения начального значения МРРЕ
- Текущее значение шифрованного пакета для клиента перед реинициализацией RC4
- Текущее значение шифрованного пакета для сервера перед реинициализацией RC4
В любом случае, когда канал связи шифруется и пользователь предполагает некоторый уровень конфиденциальности, перечисленная выше информация не должна быть доступна так легко. Для Microsoft PPTP нет легкого способа зашифровать эту информацию, поскольку утечки происходят вне канала, контролируемого МРРЕ. В некоторых случаях, эти пакеты представляют собой конфигурационные и установочные пакеты для шифрования в рамках МРРЕ, и они должны передаватьс до начала шифрования. Единственным решением является шифрование канала управления или резкое уменьшение количества передаваемой по нему информации.
6.2 Перехват переговоров РРР
Пакеты переговоров РРР передаются до начала шифрования и после его окончания. Поскольку метод ресинхронизации ключей осуществляется с использованием пакетов РРР ССР, эти каналы связи не могут шифроваться таким же образом. Добавим, что реальная аутентификация данных пакетов не выполняется. Этап конфигурации полностью открыт для атаки.
Подмена конфигурационного пакета, описывающего DNS-сервер, позволяет направить всю систему распознавания имен на ложный сервер имен.
Точно так же, подмена пакета, содержащего внутренний туннельный IP-адрес, позволяет обойти файрволы, осуществляющие фильтрацию пакетов по правилам, поскольку клиент будет подключаться к внешним машинам из внутренней защищенной сети.
6.3 Канал управления и отказ в обслуживании на сервере
В данной статье каналу управления РРТР посвящена не слишком большая часть. Частично потому, что непонятно, зачем этот канал существует. Все, что реализовано с помощью этого дополнительного канала, можно осуществить по каналам РРР или задействовать неиспользуемые фрагменты заголовка GRE.
Другой причиной была реализация Microsoft канала управления. Мы быстро обнаружили, что просто нарушить работоспособность машины Windows NT с сервером РРТР, иногда это приводило к появлению "голубого экрана". На самом деле, трудно провести тестирование канала управления и не нарушить работу сервера РРТР. Настолько трудно, что большая часть атак, предпринимавшихс для изучения теоретических проблем безопасности канала управления, приводила к нарушению работы сервера раньше, чем атаки могли сработать. Далее описана малая часть тестов, приводивших к нарушению работы Windows NT Server с установленным Service Pack 3:
- Цикл по пакетам PPTP_CLEAR_CALL_REQUEST с тем, чтобы пройти 16-разрядное пространство идентификаторов вызова.
- Перебор всех возможных и невозможных значений, которые могут содержаться в поле Тип пакета заголовка пакета РРТР.
- Передача недопустимых значений в заголовке пакета управления РРТР.
Все вышеуказанные пакеты могут отправляться на сервер РРТР из-за файрвола, без всякой аутентификации. Предполагается, что нет конфигурации файрвола, позволяющей передавать РРТР на сервер РРТР с определенных IP-адресов или сетей. Однако, если у пользователей есть возможность обращаться к серверу РРТР из любой точки мира, то атакующий тоже должен иметь возможность послать запрос из любой точки мира.
6.4. Потенциальные утечки информации на клиенте.
Клиент Windows 95 не выполняет требуемую очистку буферов, и потому допускается утечка информации в сообщениях протокола. Хотя в документации РРТР сказано, что в пакете PPTP_START_SESSION_REQUEST символы после имени компьютера и производителя должны быть сброшены в 0х00, Windows 95 этого не делает.
080: 0000 6c6f 6361 6c00 0000 3e1e 02c1 0000 ..local...>.....
096: 0000 85c4 03c1 acd9 3fc1 121e 02c1 2e00 ........?.......
112: 0000 2e00 0000 9c1b 02c1 0000 0000 0000 ................
128: 0000 88ed 3ac1 2026 02c1 1049 05c1 0b00 ....:. &...I....
144: 0000 3978 00c0 280e 3dc1 9c1b 02c1 041e ..9x..(........
160: 02c1 0e00 0000 121e 02c1 2e00 0000 2e00 ................
176: 0000 3dad 06c1 74ed 3ac1 1c53 05c1 9c1b .....t.:..S....
192: 02c1 041e 02c1 0e00 0000 121e 02c1 2e00 ................
208: 0000 ..
Выше показаны символы, содержащиеся после имени компьютера и строки производителя. В байтах 82-86 содержится имя компьютера, которое для клиента Windows 95 всегда равняется "local". Байт 113 - то место, где должна содержатьс строка производителя. При просмотре аналогичного пакета Windows NT обнаружено, что все символы "мусора" сброшены в 0х00.
Существует очевидная возможность утечки информации в зависимости от того, как и где используются и размещаются структуры данных и что происходит на клиентской системе. Для оценки данной утечки информации необходимо провести дальнейший анализ кода Windows 95.
7 Выводы
Реализация РРТР от Microsoft уязвима с точки зрения реализации, и обладает серьезными недостатками с точки зрения протокола. Протокол аутентификации имеет известные уязвимости, на которые указывалось не только здесь, но и в группах, например, L0pht. Шифрование выполнено неверно, в данной реализации используется поточный шифр с обратной связью по выходу, хотя более уместен был бы блоковый шифр "шифр-блок-цепочка" (CBC). Чтобы связать слабую аутентификацию с плохим шифрованием Microsoft задал ключ шифрования как функцию от пароля пользователя вместо использования сильного алгоритма обмена ключами типа Диффи-Хеллмана или ЕКЕ. Наконец, канал управления не аутентифицируется и не сильно защищен.
Мы не потратили много времени на изучение механизмов обеспечения локальных IP-адресов клиентов и того, как Microsoft пытался и смог ли он учесть уязвимость представления клиента с двумя адресами. Тем не менее, мы обнаружили проблемы с нестандартными масками подсети и внутренним трафиком туннеля, отправленного от РРТР сервера. Разработчики, будьте внимательны!
Наконец, хочется подчеркнуть, что криптоанализ не подвергал сомнению протокол РРТР (?), но лишь реализацию протокола от Microsoft. Хотя Microsoft использует свои собственные расширения (MS-CHAP, МРРЕ, МРРС) в РРР секции РРТР, стандарт РРТР не требует этого. Производители могут включить расширения Microsoft в свои продукты по соображениям совместимости, но они не обязаны ограничиватьс их использованием и, наверное, реализуют более безопасные решения. Конечно, новые расширения для корректной работы должны поддерживаться как клиентом, так и сервером.
В ходе экспериментов выяснилось, что некоторые клиенты Windows 95 поддерживают аутентификацию Microsoft, а некоторые - нет. Мы не смогли оценить различия или определить способы, позволяющие понять, поддерживает ли данная система Windows 95 аутентификацию Microsoft. Если протокол не поддерживается, то пункт в диалоговом окне недоступен. Это ограничение соответствует заявлению Microsoft, что Windows 95 не обеспечивает безопасность, и что те пользователи, которым она нужна, должны перейти на NT. Тем не менее, Microsoft заявлял, что Windows 95 не обрабатывает хэш Windows NT, а использует хэш Lan Manager. Однако клиенты Windows 95 передают обе хэш-функции. Из нашего анализа кода Windows 95 неясно, почему шифрование нельзя реализовать в клиентах Windows 95.
В документации Microsoft сказано, что длина паролей Windows NT может достигать 128 символов, и хэш-функция Windows NT принимает пароли такой длины. Однако, диспетчер пользователей ограничивает длину паролей до 14 символов. В документации MS-СНАР также упоминается это ограничение, которое подтвердилось в ходе экспериментов.
Известное средство хакеров, L0pthcrack, автоматизирует процесс подбора пароля по его хэш-значению. На Pentium Pro 200, L0phtcrack 2.0 может проверить файл с 200 паролями за минуту с использованием 8 мегабaйтного словаря паролей.
Мы не исследовали ни сам генератор псевдослучайных чисел, ни его криптографическую стойкость.
8. Благодарности Мы хотели бы поблагодарить Mark Chen, Chris Hall, Brad Kemp, Paul Jones, Ben McCann, Mark Seiden, Inderpreet Singh, David Wagner и Wray West за их ценные замечания.
Литература
[Ave98] Aventail Corp., 1998. http://www.aventail.com.
[BV98] L. Blunk and J. Vollbrecht, ``PPP Extensible Authentication Protocol (EAP),'' Network Working Group, RFC 2284, Mar 1998. ftp://ftp.isi.edu/in-notes/rfc2284.txt.
[CK78] T.M. Cover and R.C. King, ``A Convergent Gambling Estimate of Entropy,'' IEEE Transactions on Information Theory, v. IT-24, n. 4, Jul 1978, pp. 413--421.
[Fre98] FreeGate Corp., 1998. http://www.freegate.com.
[HLFT94] S. Hanks, T. Li, D. Farinacci, and P. Traina, ``Generic Routing Encapsulation (GRE),'' Network Working Group, RFC 1701, Oct. 1994. ftp://ftp.isi.edu/in-notes/rfc1701.txt.
[Hob97] Hobbit, ``CIFS: Common Insecurities Fail Scrutiny,'' Avian Research, Jan 1997. http://www.avian.org.
[HPV+97] K. Hamzeh, G.S. Pall, W. Verthein, J. Taarud, and W.A. Little, ``Point-to-Point Tunneling Protocol,'' Internet Draft, IETF, Jul 1997. http://www.ietf.org/internet-drafts/draft-ietf-pppext-pptp-02.txt.
[KSWH98] J. Kelsey, B. Schneier, D. Wagner, and C. Hall, ``Cryptanalytic Attacks on Pseudorandom Number Generators,'' Fast Software Encryption: 5th International Workshop, Springer-Verlag,1998, pp. 168-188
[Kle90] D.V. Klein, ``Foiling the Cracker: A Security of, and Implications to, Password Security,'' Proceedings of the USENIX UNIX Security Workshop, Aug 1990, pp. 5--14.
[Kli98] S. Klinger, ``Microsoft PPTP and RRAS for Windows NT Server 4.0,'' LAN Times, Feb ??, 1998. http://www.lantimes.com/98/98feb/802b065b.html.
[L97a] L0pht Heavy Industries Inc, L0phtcrack, 1997. http://www.L0pht.com/L0phtcrack/.
[L97b] L0pht Heavy Industries Inc, ``A L0phtCrack Technical Rant,'' Jul 1997. http://www.l0pht.com/l0phtcrack/rant.html.
[LS92] B. Lloyd and W. Simpson, ``PPP Authentication Protocols,'' Network Working Group, RFC 1334, Oct 1992. ftp://ftp.isi.edu/in-notes/rfc1334.txt.
[Mey96] G. Meyer, ``The PPP Encryption Control Protocol (ECP),'' Network Working Group, RFC 1968, Jun 1996. ftp://ftp.isi.edu/in-notes/rfc1968.txt.
[Mic96a] Microsoft Corpotation, Advanced Windows NT Concepts, New Riders Publishing, 1996. Relevent chapter at http://www.microsoft.com/communications/nrpptp.htm.
[Mic96b] Microsoft Corporation, ``Pont-to-Point Tunneling Protocol (PPTP) Frequently Asked Questions,'' Jul 1996. http://premium.microsoft.com/sdn/library/bkgrnd/html/pptpfax.htm.
[Mic97] Microsoft Corporation, ``Response to Security Issues Raised by the L0phtcrack Tool,'' Apr 1997, http://www.microsoft.com/security/l0phtcrack.htm.
[Mic98] Microsoft Corporation, ``Clarification on the L0phtcrack 2.0 Tool.'' Mar 1998.
http://www.microsoft.com.security/l0pht20.htm.
[MB97] P. Mudge and Y. Benjamin, ``Deja Vu All Over Again,'' Byte, Nov 1997.
http://www.byte.com/art/9711/sec6/art3.htm.
[NBS77] National Bureau of Standards, NBS FIPS PUB 46, ``Data Encryption Standard,'' National Bureau of Standards, U.S. Department of Commerce, Jan 1977.
[NIST93] National Institute of Standards and Technology, ``Secure Hash Standard,'' U.S. Department of Commerce, May 93.
[Pal96a] G.S. Pall, ``Microsoft Point-to-Point Compression (MPPC) Protocol,'' Network Working Group Internet Draft, Jul 1996.
[Pal96b] G.S. Pall, ``Microsoft Point-to-Point Encryption (MPPE) Protocol,'' Network Working Group Internet Draft, Jul 1996.
[PZ98] G.S. Pall and G. Zorn, ``Microsoft Point-to-Point Encryption (MPPE) Protocol,'' Network Working Group, Internet Draft, IETF, Mar 1998. http://www.ietf.org/internet-drafts/draft-ietf-pppext-mppe-00.txt.
[Ran96] D. Rand, ``The PPP Compression Control Protocol (CCP),'' Network Working Group, RFC 1962, Jun 1996. ftp://ftp.isi.edu/in-notes/rfc1962.txt.
[RP94] J. Reynolds and J. Postel, ``Assigned Numbers,'' Networking Group, Std 2, RFC 1700, Oct 1994. ftp://ftp.isi.edu/in-notes/rfc1700.txt.
[Riv91] R.L. Rivest, ``The MD4 Message Digest Algorithm,'' Advances in Cryptology --- CRYPTO '90 Proceedings, Springer-Verlag, 1991, pp. 303--311.
[Sch96] B. Schneier Applied Cryptography, 2nd Edition, John Wiley & Sons, 1996.
[Sim94] W. Simpson, ``The Point-to-Point Protocol (PPP),'' Network Working Group, STD 51, RFC 1661,, Jul 1994. ftp://ftp.isi.edu/in-notes/rfc1661.txt.
[Sim96] W. Simpson, ``PPP Challenge Handshake Authentication Protocol (CHAP)'' Network Working Group, RFC 1334, Aug 1996. ftp://ftp.isi.edu/in-notes/rfc1994.txt.
[ZC98] G. Zorn and S. Cobb, ``Microsoft PPP CHAP Extensions,'' Network Working Group Internet Draft, Mar 1998. http://www.ietf.org/internet-drafts/draft-ietf-pppext-mschap-00.txt.
Источник: http://bezpeka.com/
Виртуализация — не гарантия безопасности
Обновлено: 30.06.2025Одним из преимуществ виртуализации считалась безопасность, однако согласно недавнему исследованию, это уже не так.
Новое вредоносное ПО способно определять, что оно работает внутри виртуальной машины, и в зависимости от этого менять свое поведение. «Скрыть существование ВМ принципиально невозможно», утверждают авторы отчета в ответ на высказываемые некоторыми разработчиками технологии виртуализации и средств безопасности надежды на создание необнаруживаемых ВМ.
Документ, называемый «Совместимость и прозрачность не одно и то же: мифы и реальность обнаружения механизмов управления виртуальными машинами», опубликован поставщикам ПО виртуализации VMware и XenSource совместно с учеными из Стэнфордского и Карнеги-Меллонского университетов. В нем обсуждается возможность использования виртуальных машин (ВМ) в качестве способа перехвата атак руткитов — так называемого хонипотинга — а также для обнаружения червей. Надежды на это опирались на неспособность обычного вредоносного ПО распознать, что оно атакует не реальную, физическую машину.
Авторы отмечают, что «по аналогичным причинам поставщики антивирусов стараются оправдать использование ими ВМ для идентификации новых эксплойтов. Другие предлагают использование виртуализации для агрессии в форме руткитов на базе ВМ в надежде на то, что прозрачность механизмов управления ВМ (VMM) скроет их присутствие и создаст идеальную платформу для атак… Мы считаем, что требуемая для этих целей прозрачность недостижима ни сегодня, ни в будущем».
Согласно отчету, проблема заключается в том, что эти разрабатываемые средства защиты отталкиваются от предположения, будто если все технические характеристики совпадают с реальной машиной, то ПО не может обнаружить, что находится в виртуальной среде. Однако существуют важные признаки, которые выдают присутствие ВМ. «Виртуальная реализация этой архитектуры существенно отличается от физических реализаций… Логические различия состоят в семантических особенностях интерфейсов реальной и виртуальной аппаратуры. Большинство современных методов обнаружения VMM используют особенности интерфейса виртуального ЦП VMM, такого как VMware Player или Microsoft VirtualPC, который нарушает архитектуру х86».
Для подавляющего большинства программ эти и другие различия не имеют значения, поэтому VMM не пытаются скрыть их. Но программы могут обнаруживать различия в ЦП, запоминающих устройствах и драйверах устройств, главным образом потому, что разработчики VMM больше сосредоточены на совместимости и производительности, чем на возможности обнаружения или безопасности в целом.
В результате, заключают авторы, «простота создания новых методов обнаружения предполагает, что обеспечить полную прозрачность VMM практически невозможно».
Источник: http://algonet.ru/
Мониторинг загрузки канала интернет-шлюза на FreeBSD
Обновлено: 30.06.2025
Это вторая версия статьи, редактировано 24.08.2011. Все полностью рабочее, так сказать, с пылу - с жару.
В этой небольшой статье я постараюсь описать простой и часто необходимый способ постороения графиков загрузки интернет-канала (общий график, график www, график pop3, график smtp). Это может быть полезно системным администраторам для того, чтобы они знали, в какое время их офис потребляет много интернета, забита ли их полоса пропускания постоянно или только перед обедом, на что именно расходуется полоса пропускания канала – на просмотр сайтов (тогда, возможно, кто-то качает всякую фигню), на получение почты (тогда, возможно, надо рассмотреть вопрос настройки собственного почтового сервера), на отправку писем (возможно, какой-либо компьютер заражен вирусом и рассылает спам). Применений этому может быть множество. Итак, приступим.
ТРЕБОВАНИЯ
RRDTool - установка и настройка см. здесь и здесь (англ.).
Брандмауэр на шлюзе – в нашем случае рассмотрим ipfw в составе ОС FreeBSD. В общем случае подойдет любая система, которая может считать пакеты и отдавать их значения нашим скриптам.
Apache – веб-сервер для просмотра сгенерированных изображений. Впрочем, это не обязательно, нам главное сгенерировать изображение, а что с ним делать – решать вам.
Будем считать, что rrdtool установлена, apache – тоже, брандмауэр, полагаю, был всегда, так что самое время описать работу нашей схемы.
БРАНДМАУЭР
Итак, нам необходимы правила брандмауэра, которые будут считать трафик www (входящий), pop3 (входящий), smtp (исходящий), imap (входящий) и общий входящий. Вот они:
pif="xl0" # внешний интерфейс cmd="ipfw -q add" # Считаем трафик # SMTP, SMTPS $cmd 0020 count tcp from any to any 25,465 out via $pif # POP3, POP3S $cmd 0021 count tcp from any 110,995 to any in via $pif # WWW $cmd 0022 count tcp from any 80,443,8080 to any in via $pif # ALL $cmd 0023 count all from any to any in via $pif # IMAP, IMAPS $cmd 0024 count tcp from any 143,993 to any in via $pif
Первые две строки – объявления макросов, остальные – понятно, считают соответствующий трафик.
После включения этих правил проверим, считают ли они трафик, идущий через шлюз.
freebsd-host# ipfw show 23
Выдает нам нечто похожее:
00013 146322 109248471 count ip from any to any in via xl0
Нас будет интересовать третья цифра – 109248471 – количество байт, сосчитанное правилом 23, которое в нашем случае считает общий входящий трафик.
RRDTOOL
Считаем RRDTool установленным и, желательно, проверенным хотя бы на тестовом примере, который весьма неплохо описан здесь. Не поленитесь, просмотрите эту статью, несмотря на то, что она на английском. Я не могу сказать про себя, что английский знаю даже средне, но мне там все было понятно.
Расположение файлов в моем примере:
- База RRDTool: /var/rrdtool/db/network_usage.rrd
- Скрипты: /var/rrdtool/scripts/
СКРИПТЫ
Нам будет необходимы следующий скрипты:
- network_usage_create.sh – создает базу данных для хранения значений счетчиков, описанных выше. Запускается один раз.
- network_usage.sh – обновляет базу. Запускается периодиески. Для нашего примера, один раз в минуту.
- network_usage_graph.sh – рисует графики загрузки канала. Запускается один раз в минуту (не обязательно так часто - это просто рисунок, который можно создавать хоть раз в сутки).
- network_usage_update_rrdtool.sh – фактически, этот скрипт просто запускает раз в пять минут network_usage.sh и network_usage_graph.sh. Его содержимое самое очевидное.
Вот их содержимое:
Создаем базу данных RRDTool
network_usage_create.sh
#!/bin/sh rrdtool create /var/rrdtool/db/network_usage.rrd \ --start 1176595200 \ --step 60 \ DS:input_pop3:COUNTER:120:U:U \ DS:input_imap:COUNTER:120:U:U \ DS:output_smtp:COUNTER:120:U:U \ DS:input_www:COUNTER:120:U:U \ DS:input_all:COUNTER:120:U:U \ RRA:AVERAGE:0.5:1:1200 \ RRA:MAX:0.5:1:1200 \
Этим скриптом создаем файл (базу данных) RRDTool "network_usage.rrd". Прокомментирую команды:
- --step 60 - наша база расчитана на прием значений каждые 60 секунд.
- число 120 в строках DS - т.н. heartbeat, обычно ставится как step*2.
- U:U - минимальные и максимальные значения. В нашем случае не определены.
- строки RRA:AVERAGE и RRA:MAX содержат значения 0.5:1:1200 - это означает, что наша база содержит 1200 ячеек для хранения значений счетчиков через каждый 1 step (грубо: 1200 * (1*60 сек) = 50 часов). Параметр 0.5 имеет хитрое определение, я даже приводить его не буду.
Проверяем, появился ли файл /var/rrdtool/db/network_usage.rrd. Если появился, переходим к следующему шагу. Если нет, то проверяем пути запуска rrdtool (возможно, у вас rrdtool запускается не такой командой /usr/local/bin/rrdtool, а как-нибудь иначе). В любом случае, пока база rrdtool не будет создана, дальше идти нельзя.
Заносим новые данные в базу RRDTool
network_usage.sh
#!/bin/sh input_pop3=`/sbin/ipfw show 0021 | awk '{print $3}'` input_imap=`/sbin/ipfw show 0024 | awk '{print $3}'` output_smtp=`/sbin/ipfw show 0020 | awk '{print $3}'` input_www=`/sbin/ipfw show 0022 | awk '{print $3}'` input_all=`/sbin/ipfw show 0023 | awk '{print $3}'` /usr/local/bin/rrdtool update /var/rrdtool/db/network_usage.rrd \ N:$input_pop3:$input_imap:$output_smtp:$input_www:$input_all
Здесь все ясно, через параметры командной строки в базу заносятся текущие значения счетчиков.
Рисуем график интернет-трафика
network_usage_graph.sh
#!/bin/sh WWWPREFIX=/var/www/htdocs/rrdtool/images RRDPREFIX=/var/rrdtool/db DATE="`date +%d.%m.%Y`" HOUR="`date +%H`" MINUTE="`date +%M`" /usr/local/bin/rrdtool graph $WWWPREFIX/network.png \ --width 500 --height 200 --imgformat PNG \ --start -8h \ --end now \ --title "Traffic: last 8 hours ($DATE)" --rigid --color BACK#FAFAFA \ --vertical-label bit/sec \ --base=1024 \ --watermark "(c)2011 BOZZA.RU Ivanov Ilya" \ DEF:tmp_in_pop3=$RRDPREFIX/network_usage.rrd:input_pop3:AVERAGE:step=60 \ DEF:tmp_out_smtp=$RRDPREFIX/network_usage.rrd:output_smtp:AVERAGE:step=60 \ DEF:tmp_in_www=$RRDPREFIX/network_usage.rrd:input_www:AVERAGE:step=60 \ DEF:tmp_in_all=$RRDPREFIX/network_usage.rrd:input_all:AVERAGE:step=60 \ DEF:tmp_in_imap=$RRDPREFIX/network_usage.rrd:input_imap:AVERAGE:step=60 \ CDEF:in_pop3=tmp_in_pop3,8,* \ CDEF:out_smtp=tmp_out_smtp,8,* \ CDEF:in_www=tmp_in_www,8,* \ CDEF:in_all=tmp_in_all,8,* \ CDEF:in_imap=tmp_in_imap,8,* \ VDEF:sum_in_pop3=tmp_in_pop3,TOTAL \ VDEF:sum_out_smtp=tmp_out_smtp,TOTAL \ VDEF:sum_in_www=tmp_in_www,TOTAL \ VDEF:sum_in_all=tmp_in_all,TOTAL \ VDEF:sum_in_imap=tmp_in_imap,TOTAL \ VDEF:max_in_pop3=in_pop3,MAXIMUM \ VDEF:max_out_smtp=out_smtp,MAXIMUM \ VDEF:max_in_www=in_www,MAXIMUM \ VDEF:max_in_all=in_all,MAXIMUM \ VDEF:max_in_imap=in_imap,MAXIMUM \ AREA:in_all#CCCCCC:"ALL (in) " \ GPRINT:max_in_all:"Max=%-8.2lf%sbit/s" \ GPRINT:sum_in_all:"Sum=%-8.2lf %sbytes\l" \ LINE1:in_www#0000FF:"WWW (80,443,8080) " \ GPRINT:max_in_www:"Max=%-8.2lf%sbit/s" \ GPRINT:sum_in_www:"Sum=%-8.2lf %sbytes\l" \ LINE1:in_pop3#FF6600:"POP3 (110,995) " \ GPRINT:max_in_pop3:"Max=%-8.2lf%sbit/s" \ GPRINT:sum_in_pop3:"Sum=%-8.2lf %sbytes\l" \ AREA:out_smtp#FF0000:"SMTP (25,465, out)" \ GPRINT:max_out_smtp:"Max=%-8.2lf%sbit/s" \ GPRINT:sum_out_smtp:"Sum=%-8.2lf %sbytes\l" \ LINE1:in_imap#009900:"IMAP (143,993) " \ GPRINT:max_in_imap:"Max=%-8.2lf%sbit/s" \ GPRINT:sum_in_imap:"Sum=%-8.2lf %sbytes\l" \ COMMENT:" \l" \ COMMENT:"Last update\: $HOUR\:$MINUTE $DATE\l" \
Комментарий:
- WWWPREFIX=/var/www/rrdtool/images – путь до директории, где будет храниться картинка network.png. Отредактируйте этот путь в соответствии с вашим веб-сервером apache или любым другим.
- RRDPREFIX=/var/rrdtool/db – путь до директории, где лежит база данных rrdtool.
-
Наш скрипт отображает загрузку канала за последние 8 часов:
--start -8р – время в часах (символ h после 8). - --base=1024 - мы же страфик считаем, а не килограммы.
- В строках DEF:...:step=60 - не забудьте поставить этот параметр для корректного масштабирования. 60 - это уже знакомые нам 60 секунд.
- В строках CDEF байты преобразуем в биты. Формат такой: a = b,8,* - т.е. a = b*8.
- Обратите внимание на то, что скорость в битах в секунду (bit/s), а сумма трафика - в байтах (bytes). %s указывает порядок - Мега (M), Кило (k) и др. Для того, чтобы понять, откуда ноги растут, внимательно просмотрите создание переменных, а лучше выпишите их на бумагу: tmp_in_all - байты, in_all - биты. Максимумы считают биты (это относится к скорости, бит/сек). Общее (TOTAL) - в байтах. Так нам привычнее. Только и всего.
Данный скрипт не обязательно запускать раз в минуту - он просто рисует картунку на основании базы данных.
Обновляем базу RRDTool и графики регулярно
network_usage_update_rrdtool.sh
#!/bin/sh /var/rrdtool/scripts/network_usage.sh /var/rrdtool/scripts/network_usage_graph.sh
Здесь самое простое место - просто для удобства запускаем два скипта из одного места. В cron мы добавим именно этот скрипт:
# crontab –e */1 * * * * /var/rrdtool/scripts/network_usage_update_rrdtool.sh
ЗАКЛЮЧЕНИЕ
Вот, собственно и все. До помещения чего-либо в cron, лучше проверить в ручном режиме. Разумеется, многое из того, что я описал, я взял из примеров, разбросанных по сети, многое отредактировал сам. Надеюсь, статья будет полезна многим. С уважением, BOZZA.RU
Обновление: ежедневное сохранение статистики в виде изображений
Все здорово - система настроена, рисует график, но есть проблема - статистика исчезнет (точнее говоря, рисунок обновится), как только пройдет 8 часов. А мне надо, чтобы через месяц я мог по дням просмотреть объемы трафика. Это вам не Squid с его логами. Это статистика брандмауэра, тут логи не пишутся. Решение 1: создать отдельные скрипты (и базу данных) для создания не 8-часовой статистики, а, например, за последние 3 месяца. Но мне стало откровенно лень. Решение примитивное - каждый день копировать сгнерированное изображение с именем, например, "01-11-2009.png". Впоследствии можно будет всегда обратиться к нужному изображению и увидеть, какой соотношение почтового трафика было к веб-трафику и пр.
Примечание: мы "рисовали" график для 8 часового отрезка. Чтобы "запечатлеть" сутки, параметр --start
в скрипте network_usage_graph.sh
надо заменить на --start -24h
.
Создаем файл copyTrafStatImage.sh и помещаем его в любую директорию на ваш вкус. Например, в /var/rrdtool/scripts.
Делаем файл исполняемым:
chmod +x /var/rrdtool/scripts/copyTrafStatImage.sh
Далее редактируем файл любым текстовым редактором. Я препочитаю "ee". Например, так:
ee /var/rrdtool/scripts/copyTrafStatImage.sh
Вносим в файл следующее содержимое:
copyTrafStatImage.sh
#!/bin/sh currentDate=`date "+%d-%m-%Y"` fileFrom="/var/www/rrdtool/images/network.png" fileTo="/var/www/rrdtool/images/$currentDate.png" cp $fileFrom $fileTo
Пояснять синтаксис не буду, все очевидно. Для понимания того, как менять формат имени файла (читай, текущей даты) смотрите "man date" - в самом конце мана несколько очевидных примеров. Данный скрипт будет создавать изображения вида 14-05-2009.png в той же директории, где расположен файл network.png.
Выполнение данного скрипта надо поместить в cron:
# crontab –e 0 */12 * * * /var/rrdtool/scripts/copyTrafStatImage.sh
Каждые 12 часов файл будет скопирован. Вы можете сделать так, чтобы в имени файла была не только дата (ежедневное копирование), а например, еще и час суток. Только чистите периодически директорию веб-сервера, да и просматривать будет муторнее.
Разграничение доступа - отличная защита от вирусов
Обновлено: 07.04.2025Это, конечно, очень старая статья, но советы в ней актуальны до сих пор, ведь некоторые вещи не меняются! В отличие, например, от BSD, Windows NT не является многопользовательской операционной системой, поскольку только один пользователь может работать с компьютером в любой момент времени, и прежде чем переключиться на другого, необходимо завершить текущий сеанс, закрыв все приложения, и лишь потом… А вот в BSD все очень просто: нажал Alt-F#, переключился на соседнюю консоль - и все! В Windows XP наконец-то появилась возможность переключения сеансов разных пользователей без завершения, но механизма взаимодействия между пользователями как не было, так и нет.
Восстановление «потерянных» разделов
Обновлено: 30.06.2025Небольшая предыстория - один знакомый товарищ что-то натворил на скорую руку с компом. После чего перестала грузиться Windows. В свою очередь Google подсказал какое-то страшное решение с fixmbr. Но товарищ оказался не из пугливых и вооружившись fixmbr’ом смело ринулся в бой. Собственно что и привело к перезаписи таблицы разделов и соответственно потенциальной потере всех данных на жестком диске.
Но не так безнадежна ситуация, когда под рукой вся мощь Open Source приложений. В частности в этом случае поможет LiveCD дистрибутива RIP Linux и утилита testdisk в его составе. Итак - приступаем. Скачав самую свежую версию RIP Linux (версия 2.6, 71 Мб), записываем на CD из загружаемся.
Вам будем предложены на выбор варианты загрузки. В моем случае авто-конфигурирование и последующий запуск графического режима не сработал, посему сделаем то же самое вручную. Выбираем «Boot Linux rescue system! (initramfs method)»
После чего вам будет предложено выбрать раскладку клавиатуры. Можно согласиться с предлагаемой «US keyboard», а можно нажать «Yes» и выбрать «ru_win». В данном случае это несущественно.
RIP Linux готов к работе - на экран выводится краткая подсказка и приглашение для ввода имени пользователя. Вводим root (пароль на пользователя не установлен)
Истинные джедаи светового меча могут продолжить работу в консоли, а мы с вами настроим и запустим графическую подсистему X Org. Вводим команду xsetup и видим на экране диалог конфигурирования - нас с вами интересует первый пункт «Xorg»
В диалоге настройки параметров монитора выбираем «Auto»
Глубину цвета оставляем по умолчанию - предложенные 24 бита
Среди предложенных разрешений монитора есть смысл выбрать «1024×768», так как этот режим поддерживается большинством современных мониторов
На экран выводится итоговое уведомление о дополнительных возможностях настройки, таких как настройка сетевой и звуковой подсистемы, установка поддержки Flash для интернет-браузера Firefox.
Нажимаем «OK» и в приглашении набираем команду запуска графического сервера Xorg - startx
Щелкаем правой кнопкой мыши на рабочем столе и в иерархическом меню выбираем «Testdisk - Scan and repair disk partitions»
В появившемся окне (эмулятор терминала xterm) выбираем создание нового журнального файла - «Create»
Выбираем интересующий нас жесткий диск - в терминологии ОС Linux первый IDE жесткий диск (Primary Master) будет обозначен как /dev/hda, второй (Primary Slave) как /dev/hdb. По аналогии третий (Secondary Master) и четвертый (Seconday Slave) будут /dev/hdc и /dev/hdd.
В случае с SATA дисками наименование будет начинаться с /dev/sda и далее - /dev/sdb, /dev/sdc, …
Я выбрал первый жесткий диск (/dev/hda). Отдельно стоит отметить, что MBR и таблица разделов на этом жестком диске были предварительно «затерты» командой dd if=/dev/zero of=/dev/hda count=1 bs=512, т о бишь были попросту перезаписаны нулями.
Выбираем тип таблицы разделов «Intel», ибо в данном случае остальные варианты нам не подходят. Небольшое отступление - и ОС Linux и ОС Windows используют так называемую «таблицу разделов MS-DOS».
Да и слову сказать - на аппаратной платформе i386 (Intel-совместимая платформа; речь не о чипе и о не процессоре intel) исключения составляют лишь логические тома Windows и «слайсы» ОС из семейства *BSD. Но это уже за пределами данной статьи.
Нажимаем предложенное «Analyse» и замираем в ожидании. Бескрайний мир Open Source приложений вот вот продемонстрирует вам свою мощь и свои возможности
В моем случае testdisk пожаловался на служебной метки «конца раздела» и попытка вернуть потерянные разделы была продолжена нажатием «Proceed»
На это шаге можно радостно закричать «Ура, Товарисчи!», ибо нашим глазам предстали успешно найденные два раздела
Нажав клавишу «P» можно ознакомиться с содержимым одного из найденных разделов, что и было собственно проделано
На вопрос «А не записать ли нам найденные разделы в таблицу разделов» отвечаем положительно - нажимаем клавишу «Y»
По итогам проделанного вашим глазам предстанет сугубо информативное сообщение « Вам бы надобно перезагрузиться, дабы изменения возымели должный эффект».
Собственно данное предложение было смело мной проигнорировано.
Исходя из желания продемонстрировать успехи утилиты testdisk свеженайденные разделы были успешно подключены командой mount.
Далее приводится вывод команды df -h (disk free) с информацией о свободном месте и подробный вывод команды ls (list) - содержимое подключенного раздела.
По итогам содеянного замечу, что некоммерческая утилита testdisk, по сути своей поделка любителей, успешно справилась с почти катастрофическим положением. К слову сказать - это положение «натворила утилита fixmbr из состава ОС Windows.
Ну да, да! Понятно, что знать надо, что да и зачем делаешь. Я всего лишь хотел высказать ту мысль, что не Windows’ом одним живет компьютерный мир. Ведь помимо коммерческого ПО есть еще и почти мифический Open Source. Который раз уже встречаю навязанное годами убеждение: «Бесплатно - значит нефункционально».
Хотя есть вариант проще и короче - воспользоваться ломанной честно купленной коммерческой софтиной, дабы за нас все сделал автомат. Ну тут уж выбор за вами! Вам решать, дорогие читатели, имеет ли право на жизнь открытый и свободный софт.
Источник: http://rootfox.com/
Работа с DHCP сервером из консоли
Обновлено: 07.04.2025Я сразу предполагаю что DHCP сервер у вас установлен на Windows платформе, вы ознакомились с основными пунктами меню MMC, прочувствовали (особенно если до этого админили например dhcpd под freeBSD).
Настройка штатного файервола Windows через консоль
Обновлено: 30.06.2025Надеюсь с netsh и файерволом windows вы уже знакомы, так что лирического отступления прошу не ожидать. Итак приступим: “C:>netsh ?
Доступны следующие дочерние контексты:
bridge diag firewall interface ras routing winsock
Нас естественно интересует firewall. Набираем и знак вопроса. Не буду флеймить, если интересно сам увидите что там да как.
Команды, наследуемые из контекста “netsh”:
C:
etsh firewall set …
set file - Копирования с потока вывода консоли в файл.
set machine - Установление текущей машины, на которой выполняются операции.
set mode - Установление значения текущего режима.
set allowedprogram - Настройка конфигурации брандмауэра для разрешенной
программы.
set icmpsetting - Настройка конфигурации брандмауэра для протокола ICMP.
set logging - Настройка конфигурации протоколирования брандмауэра.
set multicastbroadcastresponse - Настройка конфигурации брандмауэра для
многоадресных и широковещательных ответов.
set notifications - Настройка конфигурации уведомлений брандмауэра.
set opmode - Настройка рабочей конфигурации брандмауэра.
set portopening - Настройка конфигурации порта брандмауэра.
set service - Настройка конфигурации службы брандмауэра.
Параметр Operational Mode обеспечивает три режима: Disabled отключает брандмауэр, Protected активизирует брандмауэр, а Shielded активизирует брандмауэр, но компьютер оказывается более изолированным от сети, чем в режиме Protected, который позволяет открыть определенные порты. Чтобы перевести компьютер в режим Disabled, Protected или Shielded, следует воспользоваться командой:
C: etsh firewall set opmode
с ключом disabled, enabled или shield.
Таким образом, чтобы надежно защитить сетевой адаптер, следует ввести команду:
C: etsh firewall set opmode shield
Эту команду удобно использовать в командном файле. Можно создать для командного файла ярлык на рабочем столе, назвав его Shield this System, чтобы можно было дважды щелкнуть на нем при любых признаках опасности для сети.
С помощью команды C: etsh firewall show opmode можно узнать режим брандмауэра.
Открываем порты для программ
По умолчанию Windows Firewall блокирует непрошеный входящий трафик, но не исходящий. Такой подход приемлем, если рабочая станция функционирует как клиент, инициирующий обмен данными (например, запрашивая почтовый сервер о наличии сообщений или Web-сервер - об информации). Но он не срабатывает, если рабочая станция предоставляет службы другим компьютерам сети, например, если на рабочей станции размещен почтовый сервер, потому что брандмауэр блокирует попытки клиентов инициировать диалог с серверной программой. Он также непригоден для одноранговых (peer-to-peer, P2P) соединений, таких как Instant Messaging (IM), в которых две или несколько машин обмениваются данными, выполняя обязанности и клиентов, и серверов одновременно. Таким образом, для запуска сервера или организации соединений P2P необходимо открыть некоторые порты.
Но какие именно порты следует открыть? Для ответа на этот вопрос достаточно указать конкретную программу в параметре Define Allowable Programs, и Windows Firewall открывает порты, необходимые данной программе. Пользователь указывает в параметре политики местонахождение программы, определяет ее состояние (активное или блокированное; например, можно составить политику блокирования портов для конкретной программы, если эта программа была “троянским конем”, проникшим в сеть) и открывает соответствующие порты для всего Internet или только для локальной подсети.
Предположим, что на компьютере работает серверная программа C:myprogsserverprog.exe. Неизвестно, какие порты она открывает, но необходимо, чтобы эти порты были открыты только для компьютеров той подсети, в которой расположен сервер. Нужно активизировать параметр Define Allowable Programs, затем щелкнуть на кнопке Show, чтобы на экране появилось диалоговое окно для ввода информации о сервере. В этом диалоговом окне я ввел строку
C:myprogsserverprog.exe:LocalSubnet: enabled: server
которая определяет четыре компонента, каждый из которых отделен от остальных двоеточием. Первый компонент - полный путь к программе. Можно использовать переменные среды, такие как %ProgramFiles%. Следующий компонент, LocalSubnet, указывает на необходимость принять трафик, входящий в порты этого сервера только из систем той же подсети. Третий компонент, enabled, разрешает прохождение трафика. И четвертый компонент, server, представляет собой просто метку, которую Windows Firewall может использовать при составлении отчетов. Число программ не ограничено.
Любую команду можно дополнить ключами profile= и interface=, поэтому, если файл- или принт-службу требуется открыть для проводного Ethernet-соединениия только в случаях, когда система подключена к домену, нужно ввести команду
C: etsh firewall set service type=fileandprint scope=subnet interface=”local area connection” profile=corporate
А чтобы разрешить совместную работу с файлами и принтерами только в локальной подсети, следует ввести команду
C:
etsh firewall ipv4 set service type=fileandprint scope=subnet
Принцип прост - netsh firewall set service
за которой следует type= и имя службы (например, FILEANDPRINT, RPCANDDCOM или UPNP) или scope= с последующими ключами all (для всех IP-адресов) и subnet (для локальной подсети).
Многие в наше время отключают ICMP, по разным причинам, но чаще всего это просто несекьюрно. Иногда же бывает необходимость тестировать соединение например.
ICMP открывается из командной строки:
C: etsh firewall set icmpsetting
с последующим ключом type= и числом (3, 4, 5, 8, 10, 11, 12, 13 или 17) или словом all. Номер указывает один из девяти параметров ICMP, и нам нужен номер 8 - входящий запрос (incoming echo request). Чтобы машина отвечала на сигналы тестирования, необходимо ввести команду
C: etsh firewall set icmpsetting type=8
Команду можно уточнить с помощью ключей profile= и interface=.
Как открыть порт для службы, которая в данной статье не рассматривалась? Для этого можно воспользоваться параметром групповой политики, Define Custom Open Ports. Затем следует указать номер порта Windows Firewall, тип порта (TCP или UDP), область действия (все IP-адреса или только локальная подсеть) и действие (активизировать или блокировать). При желании порту можно присвоить описательное имя. Например, для почтового сервера можно открыть всему миру порт TCP 25:
25:TCP:*:enabled:SMTP
где 25 - номер порта, TCP - протокол, звездочка (*) открывает порт всему миру (не только подсети), ключ enabled открывает, а не закрывает порт, и SMTP - описательная фраза.
В командной строке же нужно ввести:
C: etsh firewall add portopening
с последующими ключами protocol= (варианты - tcp, udp или all), port= (с номером), name= (с именем), mode= (enable или disable) и scope= (all или subnet). Для активизации почтового сервера следует ввести команду
C: etsh firewall add portopening protocol=tcp port=25 name=SMTP mode=enable scope=all
Если режим не указан, то подразумевается enable (активизирован), а если не указан диапазон scope - подразумевается subnet (подсеть).
Чтобы закрыть порт, достаточно ввести команду
C: etsh firewall delete portopening
указав протокол и номер порта, идентифицирующие закрываемый порт. Например, порт почтового сервера закрывается командой
C: etsh firewall ipv4 delete portopening protocol=tcp port=25
В процессе экспериментов могут возникнуть недоразумения - порт был закрыт, но почему-то остается открытым. Такое бывает когда машина находится в домене. Чтобы избежать недоразумений, следует уяснить разницу между поведением брандмауэров, управляемых параметром Group Policy и с помощью командной строки. Команды, подаваемые из командной строки, обычно вступают в силу немедленно. Изменения в Group Policy начинают действовать спустя некоторое время.
Чтобы изменения Group Policy для Windows Firewall вступали в действие сразу же, следует применить команду gpupdate.
Необходимо дождаться, пока обработка команды завершится, затем перейти к функции Services в оснастке Manage Computer и перезапустить службу Internet Connection Firewall
Или из консоли выполнить:
C:>net stop SharedAccess
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” успешно остановлена.
C:>net start SharedAccess
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” запускается.
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” успешно запущена.
Мы рассмотрели некоторые возможности параметров Windows Firewall, но функции командной строки гораздо шире. Следует помнить, что Windows Firewall имеет два профиля: Domain и Mobile. Предположим, нам нужно выяснить, какой профиль используется в данный момент. Следующая команда показывает активный профиль - Domain Profile (corporate) или Mobile Profile (other):
netsh firewall show currentprofile
Команда Set Logging позволяет больше узнать о работе брандмауэра. Она имеет четыре параметра: Filelocation= показывает брандмауэру, куда записать ASCII-файл журнала, а maxfilesize= задает максимальный размер файла. Размер файла указывается в килобайтах, и максимальное допустимое значение - 32767. Параметры droppedpackets= и connections= принимают значения enable или disable и указывают брандмауэру, следует ли регистрировать блокированные и успешные соединения. Например, чтобы записывать как успешные, так и блокированные соединения в файле C:firewallog.txt размером максимум 8 Мбайт, нужно ввести команду
C: etsh firewall set logging filelocation=”C:firelog.txt” maxfilesize=8192 droppedpackets= enable connections=enable
Журнал может быть большим, но если нужно обнаружить взломщика, регулярно предпринимающего попытки атак, полезно иметь полный журнал, в котором отражены все соединения и отказы TCP и UDP. Задать текущий режим регистрации можно с помощью команды
C: etsh firewall show logging
Следующая команда выдает исчерпывающий список параметров брандмауэра:
C: etsh firewall show config
Заменив в данной команде ключ config ключом state, можно получить подробные сведения о действиях, выполняемых брандмауэром. Чтобы получить более компактный отчет, содержащий только информацию об открытых портах, следует заменить config на icmpsetting или portopening.
Для работы с Windows Firewall требуется освоить много новых понятий. Однако если в системе персонального брандмауэра нет, то Windows Firewall поможет защитить машину, придется лишь потратить незначительное время на настройку, чтобы открывать нужные порты. Вознаграждением для администратора будет сознание того, что система за брандмауэром станет куда менее уязвимой.

Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.
Последние комментарии
Популярно:
Разделы статей:
Подскажите. подключение с ПК все работает все ок. Делал по вашей мурзилке.
Но при подключе...