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

Прелюдия.

Однажды широко известный в узких кругах никсоидных параноиков Лёха Монтанов в статье журнала BSD 3/2010 на странице 14 обнаружил нечто, сильно взбудоражившее его воспаленное воображение, несмотря на английский язык изложения. Сначала он хотел просто сделать перевод, потом затеять переписку с настолько (как оказалось) близкими по духу людьми по ту сторону океана, но в итоге получилось что-то в очень вольном изложении. Авторы посоветовали в VMware сервере на WindowsXP хосте поднять OpenBSD, в которой есть встроенный сетевой экран (файрвол), через который и пустить весь трафик.

Мы целиком и полностью согласны с такой реализацией идеи, но для подтверждения универсальности принципа выбрали Windows 7, в которой в VirtualBox поселим FreeBSDcтем же самым PF. В дополнение всего эта машина будет стартовать из автостарта втемную и втихую.

Intro (от Л. Монтанова).

Все прелести использование виртуального файрвола изначально были изложены еще в 2005 году Василисом Превалакисом, профессором забугорного университета (Drexel University, Philadelphia). Наш бывший соотечественник предлагал использовать в качестве виртуального файрвола PF и OpenBSD 3.7, работающей при помощи бесплатного VMPlayer. Много времени прошло с тех пор. Pf был портирован и удачно работает во FreeBSD, а на горизонтах виртуализации стабильно развивается проект от Sun Microsystems под названием VirtualBox. Их как раз и будем использовать. Чтобы не разочаровывать пользователей длинной и нудной работой (для кого это и праздник в принципе:) в консоли FreeBSD, был взят дистрибутив PfSense, включающий в себя непосредственно FreeBSD и уже минимально настроенный файрвол. Плюс ко всему возможность настройки маршрутизатора через веб-интерфейс, что несомненно облегчит жизнь 95% пользователей.

Вопрос из зала: "А зачем это все надо-то? Мой штатный брандмауэр Windows итак прекрасно справляется со всеми задачами!" Ответим на данный вопрос. О том как сломать и обойти Ваш брандмауэр сидит и думает ежедневно не одна тысяча человек, в виде упомянутых выше ловких парней и девчат иностранного (китайского в основном) и российского происхождения. И они постоянно успешно справляются с поставленной задачей, всячески помогая вредоносному программному обеспечению (читай вирусам, троянам, червям и прочему) беспрепятственно проникать в Вашу операционную систему. И это лишь один из многих его недостатков. Если злоумышленник проводит атаку на Windows-машину, значит он обязательно ищет пути обхода штатного файрвола. Ситуацию усугубляет уязвимость стека TCP/IP в Windows. 

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

  Собсно, сабж.

 Имеем Windows 7, интернет. Необходимо скачать последний VirtualBox и PFsense – дистрибутив FreeBSD в виде LiveCD , в который включен портированный из OpenBSD сетевой экран pf.

Качаем, ставим VirtualBox. Запускаем его, создаем новую машину pfsense с динамическим диском 2 Гб, 128 Мб памяти, как на картинке.

После создания не торопимся её запускать. Настраиваем сетевые интерфейсы. Первый – внешний (WAN), он включается мостом к реальному сетевому адаптеру.

 

Второй – внутренний (LAN), направлен на виртуальный адаптер хоста.

При этом необходимо записать последние четыре цифры mac-адреса каждого сетевого интерфейса. В нашем случае – WAN=6106, а LAN=6EA7. Последним штрихом подключаем образ pfsense.iso к виртуальному CD.

Теперь надо настроить реальные интерфейсы хоста. Пуск-Панель управления-Центр управления сетями и общим доступом. Там выбираем изменение параметров адаптера. Видим два (как минимум, нужных нам) адаптера.

Для реального адаптера (в моем случае – это Realtek) отключаем все, кроме VirtualBox драйвера,

а для виртуального адаптера (VirtualBoxHost-OnlyNetwork) оставляем все,

 

только донастраиваем TCP протокол так, чтобы наш компьютер для выхода в сеть использовал виртуальную машину и как шлюз, и как DNS сервер.

Например, в моем случае, для интерфейса компьютера я оставил адрес 192.168.56.1, а для локального интерфейса PFsense – 192.168.56.2, который станет для меня и шлюзом и DNSсервером.

Внимание!!! После этих настроек у Вас пропадет интернет до окончания установки и настройки PFsense.

Для ускорения запуска виртуальной машины можно отключить FDD привод, Аудио драйвер, все COMи USB порты.

Вот теперь можно запустить машинку. До появления вопроса о VLAN ничего не делаем. Про VLAN отвечаем n (нет).

На этом же рисунке мы видим несколько интересных моментов. Красной рамкой обведены сетевые интерфейсы, которые определила система, и мы видим, что WAN=em0 (61-06), а LAN=em1 (6E-A7). В зеленой рамке, как уже упоминалось- отказ от настройки VLANа, а ниже (в синенькой) вопрос о соответствии интерфейсов. Как раз здесь-то и надо указать em1 (вообще-то, указывать ничего не обязательно, можно выбрать «а» - автоопределение, уж чего определит – то и ладно, поскольку нам на первом этапе это не критично, правильное сопоставление нужно только после установки, но запомнить соответствие WAN=em0 (61-06), а LAN=em1 (6E-A7) – надо). Далее спросят про WAN – там (как ни странно) пишем em0.

а на вопрос о дополнительных интерфейсах не отвечать ничего (просто нажать ввод), тогда мы получим запрос подтверждения правильности сопоставления интерфейсов. 

Теперь попадаем в меню, где выбираем 99 – установка на жесткий диск.

Тут же начинается установка, в первом окне спрашивается про локализацию шрифтов, я зачем-то выбрал так, как на картинке,

но подозреваю, что и при дефолтных установках результат будет тот же. Следующий экран – выбор способа установки.

На картинке выбран Custom (путь самурая). Нам достаточно “Quick/EasyInstall”. Далее количество процессоров. Не буду объяснять почему – просто выбираем один.

Операционка установится, потом скажет приготовьтесь и перезагрузите компьютер.

Если внимательно приглядеться, то там также написано: «Когда компьютер выключится, можно достать диск из CDпривода. Я бы сказал, когда включится, но еще не начнет загружаться с диска. То есть во время тестирования BIOS надо изъять диск,

а то загрузка опять начнется с него. После загрузки получаем такое меню.

Если система неправильно определила соответствие LAN/WANинтерфейсов, тогда жмем 1) AssignInterfaces – назначить интерфейсы. Далее важно правильно указать адрес LAN для PFsense. Выбираем пункт 2 и далее, как на картинке.

Почему адрес именно 192.168.56.2 – смотри выше. Он пишет, что теперь Вы можете попасть в консоль администрирования по адресу http://192.168.56.2 и просит нажать «Ввод». Нажимаем ввод и вбиваем в браузер этот адрес. Если все было сделано правильно, тогда мы попадаем на web интерфейс. Имя пользователя – admin, пароль – pfsense. После первого входа пароль надо, конечно, сменить. При первом входе мы попадаем в мастер общей настройки. Сначала ввод DNS серверов. Если внешний адрес динамический (получаем по DHCP) – указывать ничего не надо. Если статический – тогда указываем сервера (или как у меня – один сервер).

Следующий экран – настройка WAN.

Если WAN – динамический, то просто выбираем в чек-боксе dhcp, если статический, тогда выбираем static и указываем адрес, маску и шлюз. Если у Вас мудреный интернет, здесь же всю эту мудрость тоже можно отобразить, но это частности, отвлекаться не будем. Далее – Настройка LAN, мы его уже настроили, здесь трогать ничего не надо.

Последнее окно – смена пароля. Не мне Вам советовать, что делать. Если уж Вы дочитали до этого места, значит, поступите так, как надо. После этого Ваш браузер должен заиграть всеми красками интернета, но уже будучи загнанным в узкое русло сетевого экрана pf.

По умолчанию входящие соединения запрещены, исходящие – разрешены. Такие настройки как раз подходят для простого пользователя, который опасается за свою безопасность, особенно при подключении с ноута в неизвестную локалку (аэропорт, кафе, гостиница). Но это еще не все. Чудесность VirtualBox заключается еще и в том, что в папке установки лежит утилита VBoxHeadless.exe, запуск которой с определенными параметрами, например, VBoxHeadless -s pfsense -v on -p 3000 -a 127.0.0.1 вызовет «безголовый» (безоконный) запуск виртуальной машины с названием pfsense, к которой при желании можно будет подключиться по RDP на адрес 127.0.0.1 (localhostи порт 3000. Создаем батник с этой строкой, кидаем его в автозапуск и через несколько минут после входа пользователя у Вас появляется интернет, проходящий через OpenBSD-ишный фаейрвол, портированный в FreeBSD, запущенной втихую и втемную на VirtualBoxе, захостенном на Виндовой Семерке. Осознание самого этого факта преисполняет нормального параноика благоговением и душевным покоем. Дальнейшее совершенствование приветствуется. Настройка сетевого экрана как через веб-интерфейс, так и из консоли не знает границ.

Заключение.

Почему именно PF? Потому что он достаточно хорош, гибок и надежен для данной задачи. Если понять смысл данного метода, то использовать можно любую другую систему, будь то например Linux+iptables или же FreeBSD+ipfw+ngcar. Дело вкуса и знаний, но в любом случае получится неординарное решение, которое по надежности и устойчивости ко взлому даст фору как штатному, так и стороннему фаерволлам для Windows.

Цена вопроса. Стоимость всего использованного в статье ПО в сумме составляет НОЛЬ (долларов, у.е., рублей, тенге...чего угодно). Но, тем не менее, за все надо платить. В данном случае Вы расплачиваетесь 128 Мб оперативной памяти, необходимой для работы виртуальной машины. При нынешних объемах ОЗУ(по 2,3,4Гб и более) это капля в море. 

Ну и в самом конце хотелось бы добавить ссылки, которые помогут Вам далее развить данную тему самостоятельно:

1. Журал BSD Magazine Vol.3 2010(9) - яз. английский.

2. Статья Василиса Превалакиса - яз. английский.

3. Создание сетевого шлюза на базе OpenBSD: "Часть 1. Простейший маршрутизатор", "Часть 2. Настройка pf""Часть 3. DNS, DHCP, Dynamic DNS""Часть 4. NTP, DynDNS". - яз. русский.

4. Детальное изучение BSD систем от Е.Миньковского -яз. русский.

Вопросы в комменты.

You have no rights to post comments