- WIPFW — легендарный IPFW для Windows
- Добро пожаловать на сайт WIPFW!
- Что такое WIPFW?
- Новости проекта
- Проект разморожен, разработка продолжена (2011-06-21)
- Релиз WIPFW v0.2.8 (2006-12-12)
- Firewall для Windows (ipfw)
- Unified Write Filter в Windows 10
- Установка фильтра
- Включение и настройка фильтра
- Проверка работы фильтра
- Сохранение изменений
- Исключения
- Стандартные исключения
- Сервисный режим и обновление
- Отключение фильтра
- Сброс настроек
- Мониторинг
- Режим HORM
- Заключение
WIPFW — легендарный IPFW для Windows
Классический брандмауэр для операционной системы FreeBSD — ipfw. Он встроен в систему по умолчанию и знаком большинству администраторов этой системы. Для тех, кто желает использовать этот брандмауэр для защиты сервера под Windows, есть свободный аналог WIPFW. В настоящее время он не обладает такой широкой функцинальностью, как его старший брат в FreeBSD, но старт дан, проект существует уже довольно давно. WIPFW поддерживает динамическую фильтрацию.
Конечно, это не Outpost Firewall, но у WIPFW есть свои преимущества перед более «навороченными» и серьезными продуктами:
- бесплатный брандмауэр под Windows
- в отличие от тогоже Outpost, в рекомендациях которого сказано, что ставить на сервер его не рекомендуется из-за возникающих сложностей в работе сетевых служб (Outpost использует контроль компонентов и прочие фишки, которые могут быть полезны на рабочей станции, но не на сервере), WIPFW подходит для использования на файловых серверах , которые часто являются незащищенными. Чтобы просто запретить любой трафик от прокси-сервера к файловому серверу (а зачем файловому серверу ходить в интернет?!) WIPFW более чем достаточно. Просмотрев обзоры нескольких брандмауэров на http://www.firewallleaktester.com/, я пришел к выводу, что рынок простых и функциональных брандмауэров для использования на сервере сейчас практически отсутствует. Большинство современных брандмауэров осуществляют контроль компонентов, мониторинг реестра и еще всякие штуки для безопасности рабочей станции, что может привести к сбоям в работе файлового сервера, контроллера домена и т.п.
- зачастую выход в интернет контролируется прокси-сервером FreeBSD (Linux, OpenBSD. ), а сама сеть построена на основе домена Microsoft. При этом большинство системных администраторов таких сетей знакомы хотя бы с основами конфигурации брандмауэров ipfw, что положительно скажется на настройке брандмауэра WIPFW
- в силу простоты WIPFW возможно написание скриптов для управления этим брандмауэром не только на файловом сервере Windows, но и для управления WIPFW на рабочих станциях. Да-да, защита рабочих станций тоже не последнее дело даже в небольших сетях. Особо отмечу, что тягаться на равных с такими лидерами, как Outpost, для защиты рабочих станций, WIPFW не сможет, но спросите себя — а установлены ли в вашей сети (кроме прокси-сервера, коенчно) брандмауэры вообще? Думаю, что нет. Так что использовать WIPFW для рабочей станции так же вполне возможно и уж точно не испортит политику безпасности вашей сети
Подведя некую черту, могу сказать, что я давно искал простой, легкий, бесплатный и понятный мне брандмауэр для защиты файловых серверов и рабочих станций. И нашел. Это- WIPFW. Перед массовым использованием (если, конечно, вообще хоть каким-то использованием ;)) протестируйте WIPFW на своей рабочей станции!
Добро пожаловать на сайт WIPFW!
Что такое WIPFW?
WIPFW это MS Windows версия IPFW входящего в состав FreeBSD OS. Вы можете использовать и конфигурировать его так же, как и в работе с IPFW.
IPFW это система фильтрации и учета пакетов, находящаяся в ядре и снабженная пользовательской утилитой настройки, ipfw. Вместе они позволяют определять и просматривать правила, используемые ядром в решении прохождения пакетов.
IPFW состоит из двух связанных частей. Межсетевой экран осуществляет фильтрацию пакетов. Часть, занимающаяся учетом IP пакетов, отслеживает использование маршрутизатора на основе правил подобных тем, что используются в части межсетевого экрана. Это позволяет администратору определять, например, объем трафика, полученного маршрутизатором от определенного компьютера, или объем пересылаемого WWW трафика.
Благодаря тому, как реализован IPFW, вы можете использовать его и на компьютерах, не являющихся маршрутизаторами для фильтрации входящих и исходящих соединений. Это особый случай более общего использования IPFW, и в этой ситуации используются те же команды и техника.
Новости проекта
Проект разморожен, разработка продолжена (2011-06-21)
- Лучше поздно, чем никогда. Начаты работы над переносом под Windows7. Устранение недоработок инсталлятора x64-битной версии. Переработка GUI-интерфейса.
Релиз WIPFW v0.2.8 (2006-12-12)
- Добавлена опция «sysctl» для возможности конфигурирования параметров фаервола. Это поможет менять переменные относящиеся к динамическим правилам. Поддерживаются 64-битные платформы.
В версии 0.2.8 изменен алгоритм назначения номеров интерфейсов (за исключением ppp/wan-интерфейсов). Теперь они назначаются по расположению в реестре, поэтому их наименование-номер не изменяется динамически при отключении-включении интерфейса. Эта версия показала высокую стабильность.
Firewall для Windows (ipfw)
И все-таки он существует, нормальный firewall для windows. IPFW изначально написан для OS FreeBSD, но его портировали на windows и теперь его можно использовать в данной ОС.
После того как архив скачан, нужно распаковать его в нужную директорию, в которой он и будет находиться.
Для установки необходимо запустить install-deny.cmd. Правда я не рекомендую сразу его запускать, ибо Вы отрубите все текущие соединения, т.е. если вы работаете удаленно, то потеряете хост. Есть просто install.cmd, но мне нужно было правило по умолчанию — deny. Далее подкладываем свой конфиг. У меня была стандартная задача с одного ip разрешить любой трафик, разрешить входящее соединение для подключения по RDP, а остальное все отключить, у меня получилась следующая конфигурация:
После запуска install-deny.cmd он установится, создастся соответствующая служба и будет прочитан файл wipfw.conf, после чего правила начнут работать. В моем случае я получил:
1. Правило, которое было по умолчанию для loopback я не трогал
2. для ip 10.8.1.160 у нас полный доступ;
3. разрешены соединения на порт 3389 с сети 10.0.0.0/8;
4. разрешены все, уже установленные, соединения
5. правило по умолчанию у нас deny, т.е. все остальное в сад.
6. все события логируются
Ipfw умеет и NAT и много чего, читайте документацию. Для просмотра правил можно использовать команду:
ipfw list, а если нужна более подробная инфа со счетчиками, то ipfw show,
ipfw умеет и по умолчанию ведет лог, эти правила можно удалить, но мне это оказалось нужным. Но вот проблема, дневной лог обычного компа, весит около 200 мегабайт, а логи складываются в C:\WINDOWS\security\logs, что может привести к переполнению диска C:\, поэтому я на скорую руку написал скрипт на VBScript для удаления старых файлов, у меня логи хранятся 5 дней.
Вот такой примитивный logrotate, возможно в будущем сделаю скрипт с упаковкой старых логов.
Unified Write Filter в Windows 10
Защита данных является крайне важной задачей и сегодня речь пойдет о унифицированном фильтре записи (Unified Write Filter, UWF), который позволит защитить ваши данные практически от любых нежелательных изменений.
Принцип работы UWF заключается в том, в том, что он перехватывает все операции записи на файловую систему и в системный реестр и перенаправляет их в изолированное виртуальное пространство (оверлей), в котором они сохраняются до ближайшей перезагрузки. После перезагрузки содержимое оверлея очищается, все произведенные изменения исчезают и система возвращается к исходному состоянию, в котором находилась на момент включения фильтра.
В операционных системах Windows фильтр UWF (или EWF) используется достаточно давно, однако раньше он был доступен только в редакциях Embedded, предназначенных для встроенных систем (банкоматы, POS-терминалы и т.п.). На данный момент фильтр входит в состав операционных систем Windows 10 редакций Enterprise (включая LTSB) и Education.
Установка фильтра
Фильтр UWF устанавливается как дополнительный компонент операционной системы. Установить его можно как из Панели управления, так и с помощью PowerShell.
Для установки из графической оснастки нажимаем Win+R и выполняем команду appwiz.cpl.
В открывшемся окне выбираем «Turn Windows features on or off» и в разделе «Device Lockdown» отмечаем компонент «Unified Write Filter».
Для установки с помощью PowerShell открываем консоль от имени администратора и выполняем команду:
Enable-WindowsOptionalFeature -Online -FeatureName ″Client-UnifiedWriteFilter″ -All
Вне зависимости от выбранного способа после установки необходимо перезагрузить систему.
Включение и настройка фильтра
Для управления UWF предназначена специальная утилита командной строки uwfmgr.exe. Вывести справку по ней можно командой uwfmgr, запущенной без дополнительных параметров. Как видно из справки, все команды сгруппированы по разделам, каждый из которых отвечает за управление частью функционала. Например раздел filter отвечает за глобальные настройки UWF, раздел overlay — за настройки оверлея, и т.д. Впрочем обо всем по порядку.
После установки компонента фильтр не активен, и первым делом его необходимо включить. Делается это следующей командой:
uwfmgr filter enable
Затем необходимо перезагрузить компьютер и фильтр готов к работе.
Нужно знать, что при активации фильтра UWF в системе автоматически производятся определенные действия, направленные на оптимизацию его работы:
• Отключаются файлы подкачки;
• Отключается восстановление системы;
• Отключается служба SuperFetch;
• Отключается служба индексации файлов;
• Отключается режим быстрого запуска (Fast start-up);
• Останавливается дефрагментация дисков;
• В BCD для настройки bootstatuspolicy устанавливается значение ignoreallfailures, что означает отключение режима автоматического восстановления при перезагрузке.
После включения некоторые настройки можно вернуть обратно, конечно с учетом особенностей UWF. Например можно включить файл подкачки, предварительно перенеся его на незащищенный раздел диска. А вот быстрый запуск UWF не поддерживает и включать его нельзя.
Следующее, что необходимо сделать после включения — это настроить виртуальный оверлей, в котором будет хранить данные фильтр. Вывести текущие настройки оверлея можно командой:
uwfmgr overlay get-config
• Type — тип оверлея. Определяет, где будут храниться данные — в оперативной памяти (RAM) или на диске (DISK);
• Maximum size — максимальный размер оверлея;
• Warning Threshold — объем данных в оверлее, при достижении которого будет выдано предупреждение;
• Critical Threshold — объем данных в оверлее, при достижении которого будет выдано сообщение об ошибке;
• Freespace Passthrough — разрешает писать данные в любое свободное место на диске, не перенаправляя их в специально отведенный для этого файл. Этот параметр используется только при дисковом типе оверлея.
Что интересно, выводится два набора параметров, текущий и тот, который будет применен после перезагрузки.
Приступим к настройке. Тип оверлея по умолчанию RAM, его и оставим. Зададим максимальный размер оверлея в 4Гб:
uwfmgr overlay set-size 4096
Критический размер сделаем таким же:
uwfmgr overlay set-criticalthreshold 4096
а для предупреждения зададим размер в 3Гб:
uwfmgr overlay set-warningthreshold 3072
Теперь можно включать защиту. В качестве объекта защиты нельзя указывать отдельные файлы\папки, только весь диск целиком. Включим защиту для диска С командой:
uwfmgr volume protect C:
После включения защиты перезагружаем компьютер. Затем открываем командную консоль и проверяем состояние защиты выбранного диска:
uwfmgr volume get-config C:
Как видите, состояние диска Protected, т.е. диск C находится под защитой фильтра.
Проверка работы фильтра
Мы произвели базовую настройку UWF, теперь можно протестировать его работу. Для этого создадим самый обычный текстовый файл с именем TestUWF и сохраним его на диске С, в папке Documents.
Проверим, что файл успешно сохранен и перезагрузим компьютер.
После перезагрузки зайдем в папку Documents и убедимся, что файла там нет. Это и есть результат работы фильтра.
Сохранение изменений
Как видно из предыдущего примера, фильтр предотвращает любые изменения на защищаемом диске. Поэтому, если вам необходимо сохранить созданный файл, то изменения можно подтвердить (commit) командой, например:
uwfmgr file commit C:\Documents\TestUWF.txt
После этого систему можно смело перезагружать, файл никуда не денется. Более того, теперь его так просто не удалить, ведь после перезагрузки он опять появится на своем месте. Удаление файла возможно только через UWF, командой:
uwfmgr file commit-delete C:\Documents\TestUWF.txt
Эта команда окончательно удалит файл как с диска, так и из оверлея.
Подобным образом можно сохранить изменения только для одного конкретного файла. Если указать директорию или раздел диска, то будет выдана ошибка.
То же самое можно сделать и с изменениями в реестре. Например так мы сохраним созданный параметр TestUWF:
uwfmgr registry commit HKLM\SOFTWARE\TestUWF TestUWF
а так удалим его:
uwfmgr registry commit-delete HKLM\SOFTWARE\TestUWF TestUWF
Исключения
Каждый раз подтверждать изменения довольно утомительно, кроме того можно забыть это сделать и потерять результаты своей работы. На этот случай фильтр предоставляет возможность вывести отдельные файлы и папки из под защиты, добавив их в исключения (exclusions). Однако здесь есть ограничения, так в исключения нельзя добавлять следующие системные объекты:
• \Windows;
• \Windows\System32;
• \Windows\System32\Drivers;
• \Windows\System32\config\DEFAULT;
• \Windows\System32\config\SAM;
• \Windows\System32\config\SECURITY;
• \Windows\System32\config\SOFTWARE;
• \Windows\System32\config\SYSTEM;
• \Users\ \NTUSER.DAT;
• Корень диска (напр. C: или D:);
• Файлы подкачки (pagefile.sys).
Все остальное можно добавить в исключения. Для примера добавим в исключения фильтра папку C:\UWF_Exclusion командой:
uwfmgr file add-exclusion C:\UWF_Exclusion
Проверить текущие исключения фильтра можно такой командой:
uwfmgr file get-exclusions
Удалить исключения можно такой командой:
uwfmgr file remove-exclusion C:\UWF_Exclusion
Примечание. Обратите внимание, что для применения изменений в настройках фильтра практически всегда требуется рестарт.
В исключения можно добавлять и содержимое реестра, но не все, а только находящиеся в следующих разделах:
• HKEY_LOCAL_MACHINE\BCD
• HKEY_LOCAL_MACHINE\SYSTEM
• HKEY_LOCAL_MACHINE\SOFTWARE
• HKEY_LOCAL_MACHINE\SAM
• HKEY_LOCAL_MACHINE\SECURITY
• HKEY_LOCAL_MACHINE\COMPONENTS
Для примера попробуем добавить в исключения раздел реестра HKCU\System\CurrentControlSet\Policies:
uwfmgr registry add-exclusion HKCU\System\CurrentControlSet\Policies
И получим ошибку. А вот раздел HKLM\System\CurrentControlSet\Policies добавится без проблем, поскольку он находится в нужном месте.
Просмотр исключений реестра производится командой:
uwfmgr registry get-exclusions
Ну а для удаления исключений воспользуемся такой командой:
uwfmgr registry remove-exclusion HKLM\System\CurrentControlSet\Policies
Стандартные исключения
Существуют стандартные, рекомендуемые Microsoft наборы исключений фильтра, необходимые для работы важных (или не очень) компонентов системы.
Windows Defender
• C:\Program Files\Windows Defender;
• C:\ProgramData\Microsoft\Windows Defender;
• C:\Windows\WindowsUpdate.log;
• C:\Windows\Temp\MpCmdRun.log;
• HKLM\SOFTWARE\Microsoft\Windows Defender;
Background Intelligent Transfer Service (BITS)
Сеть
Для возможности корректного добавления компьютера в проводные и беспроводные сети также необходимо добавить исключения.
Для беспроводных сетей:
• HKLM\SOFTWARE\Policies\Microsoft\Windows\Wireless\GPTWirelessPolicy;
• C:\Windows\wlansvc\Policies;
• HKLM\SOFTWARE\Microsoft\wlansvc;
• C:\ProgramData\Microsoft\wlansvc\Profiles\Interfaces\< >\<
>.xml;
• HKLM\SYSTEM\CurrentControlSet\services\Wlansvc;
• HKLM\SYSTEM\CurrentControlSet\services\WwanSvc.
Для проводных сетей:
• HKLM\SOFTWARE\Policies\Microsoft\Windows\WiredL2\GP_Policy;
• C:\Windows\dot2svc\Policies;
• HKLM\SOFTWARE\Microsoft\dot3svc;
• C:\ProgramData\Microsoft\dot3svc\Profiles\Interfaces\< >\<
Daylight saving time (DST)
DST — механизм автоматического переключения на летнее\зимнее время. В России на данный момент неактуален, но на всякий случай.
• HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones;
• HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.
Customer Experience Improvement Program (CEIP)
CEIP — программа улучшения качества обслуживания. Если вы вдруг случайно 🙂 согласились на участие в ней при установке системы, то потребуется внести следующие исключения:
• HKLM\SOFTWARE\Policies\Microsoft\SQMClient\Windows\CEIPEnable;
• HKLM\SOFTWARE\Microsoft\SQMClient\Windows\CEIPEnable;
• HKLM\SOFTWARE\Microsoft\SQMClient\UploadDisableFlag.
Кроме того, необходимо найти все папки, содержащие файлы с расширением .sqm, и также добавить их в исключения.
Примечание. Все настройки UWF также хранятся в реестре. Настройки автоматически добавляются в исключения фильтра и не отображаются в текущих исключениях.
Сервисный режим и обновление
Поскольку фильтр предотвращает внесение любых изменений, то установка обновлений становится весьма затруднительной. Поэтому для обновления операционной системы у UWF имеется специальный сервисный режим, для включения которого надо выполнить команду:
uwfmgr servicing enable
и перезагрузить систему.
При загрузке в сервисном режиме запускаются специальные скрипты обслуживания и начинается установка обновлений. Никакого дополнительного вмешательства не требуется, надо только дождаться окончания установки.
Что интересно, для загрузки в сервисном режиме создается специальный пользователь UWF-Servicing, под которым и производится установка обновлений. Пароль этого пользователя неизвестен и зайти под ним просто так нельзя,
но можно зайти под другим пользователем с административными правами и сбросить его пароль.
Впрочем, делать это стоит разве что из любопытства, поскольку никаких действий в сервисном режиме производить нельзя. Единственное, что вы увидите, войдя под этим пользователем — это процесс выполнения сервисных скриптов.
По окончании установки обновлений система автоматически перезагрузится и выйдет из сервисного режима. Убедиться в этом можно командой:
uwfmgr servicing get-config
Обновления можно установить и без перехода в сервисный режим. Для этого надо выполнить команду:
uwfmgr servicing update-windows
В таком варианте надо только дождаться завершения команды и вручную перезагрузить компьютер.
Примечание. Честно говоря, большой разницы между сервисным режимом и установкой обновлений в текущей сессии я не нашел. Вроде как и там и там запускается один и тот же скрипт. Хотя в документации Microsoft рекомендуется для обновления по возможности использовать сервисный режим.
Отключение фильтра
При необходимости фильтр можно отключить, частично или полностью. К примеру для остановки защиты диска C выполним команду:
uwfmgr volume unprotect C:
А полностью отключить фильтр можно такой командой:
uwfmgr filter disable
Также отключить UWF можно через реестр. Для этого надо:
• В разделе HKLM\SYSTEM\ControlSet001\Services\uwfvol изменить значение параметра start на 4 ;
• В разделе HKLM\SYSTEM\ControlSet001\Control\Class\<71a27cdd-812a-11d0-bec7-08002be2092f>\Lower Filters удалить значение параметра uwfwol.
Такой способ может помочь в том случае, если система неработоспособна в результате работы фильтра.
Сброс настроек
Иногда может потребоваться вернуть настройки фильтра к первоначальным, которые были на момент включения. Произвести сброс настроек можно командой:
uwfmgr filter reset-settings
Мониторинг
При использовании фильтра крайне важно помнить, что оверлей имеет ограниченный размер и при его превышении вас ждут неприятности. К примеру, если попытаться скопировать на защищенный диск файл, объемом превышающий размер оверлея, то по мере его заполнения процесс копирования остановится а система просто наглухо зависнет и перестанет отвечать на любые действия.
Для проверки оставшегося в оверлее места служит такая команда:
uwfmgr overlay get-availablespace
А вывести текущий объем данных в оверлее можно так:
uwfmgr overlay get-consumption
Также при настройке оверлея мы указываем параметры Warning Threshold и Critical Threshold, которые определяют уровень заполнения оверлея. Соответственно при достижении этих значений в системный журнал записывается соответствующее событие.
Обратите внимание, что кроме записи в журнал никаких сообщений или оповещений не выдается, поэтому о переполнении оверлея можно догадаться только по зависанию системы. Если вы хотите этого избежать, то придется придумывать какой либо механизм для проверки заполнения оверлея и выдачи предупреждений, поскольку штатных средств не предусмотрено.
Режим HORM
Расшифровывается HORM как Hibernate Once/Resume Many и является достаточно новой фичей, которая появилась в Windows 10 версии 1709. Суть HORM заключается в том, что с его помощью можно сохранить определенное состояние системы, включая запущенные программы, открытые файлы и т.п., и затем при перезагрузке каждый раз возвращаться к этому состоянию.
HORM имеет достаточно много ограничений:
• При использовании HORM все фиксированные диски должны быть защищены фильтром;
• Не допускается использование исключений для файлов, папок или разделов реестра;
• Оверлей должен работать только в режиме RAM, поскольку HORM не поддерживает работу с дисковым оверлеем.
Также необходимо отключить все функции, способные изменить файл гибернации, такие как гибридный спящий режим и режим быстрого запуска. Это необходимо для того, чтобы сохраненное в файле гибернации состояние оставалось неизменным.
Перед включением HORM необходимо убедится в том, что режим гибернации включен, после чего активировать режим командой:
uwfmgr filter enable-horm
После включения HORM надо создать привычную рабочую среду, после чего отправить компьютер в гибернацию, для создания исходного файла. Затем надо вывести компьютер из гибернации и перезагрузить его, и после перезагрузки вы получите свою рабочую среду, сохраненную фильтром.
Еще одним важным моментом является то, что при включенном режиме HORM нельзя изменять настройки фильтра или отключать его. Если необходимо произвести какие либо действия с UWF, то сначала необходимо отключить HORM:
uwfmgr filter disable-horm
Примечание. Более подробно об использовании HORM можно узнать здесь.
Заключение
В заключение попробуем подвести итог, выделить плюсы и минусы использования UWF. К плюсам можно отнести:
+ Практически абсолютная защита системы от любого вида вредоносных воздействий. С системой можно производить любые эксперименты, ведь все изменения бесследно исчезнут после перезагрузки;
+ Ускорение работы системы при использовании RAM оверлея. Все дисковые операции производятся в оперативной памяти, что существенно ускорит работу.
Но есть и существенные минусы:
— Основной минус — это невозможность полноценной работы. Конечно, можно каждый раз подтверждать изменения или использовать исключения, но это достаточно неудобно. А установка какого либо ПО при работающем фильтре становится неразрешимой задачей;
— При использовании RAM оверлея необходимо иметь достаточное количество оперативной памяти. Также требуется самостоятельно отслеживать заполнение оверлея;
— Требуется тщательная настройка системы, отключение компонентов, использующих временные файлы.
— Функционал доступен только в старших редакциях Windows 10.