
Это мини-файрвол, который полностью изолирует целевое устройство от локальной сети.
Это мини-межсетевой экран, который полностью изолирует целевое устройство от локальной сети. Он предназначен для того, чтобы заражённые машины имели доступ в Интернет, но при этом не подвергали опасности локальную сеть.
Этот проект зависит от libpcap и, конечно же, от компилятора C.
На Debian должно работать следующее:
# apt-get install git gcc make libpcap-dev
# git clone https://github.com/robertdavidgraham/isowall
# cd isowall
# make
В результате двоичный файл isowall появится в локальном каталоге isowall/bin.
Это также должно работать в Windows, Mac OS X, xBSD и практически в любой операционной системе, поддерживающей libpcap.
Сначала настройте машину с тремя сетевыми интерфейсами.
Первый сетевой интерфейс (например, eth0) будет настроен обычным образом, со стеком TCP/IP,
чтобы вы могли подключиться к нему по SSH.
Два других сетевых интерфейса должны быть без стека TCP/IP, без IP-адреса и без чего-либо ещё. Это самый важный шаг настройки, и именно здесь вы чаще всего ошибётесь. Например, DHCP-программное обеспечение на машине может быть настроено на автоматическую отправку DHCP-запросов через эти дополнительные интерфейсы. Вам придётся это исправить, чтобы к этим интерфейсам ничего не было привязано.
Для запуска просто введите:
# ./bin/isowall --internal eth1 --external eth2 -c xxxx.conf
где xxxx.conf содержит вашу конфигурацию, описанную ниже.
Ниже показан типичный файл конфигурации
internal = eth1
internal.target.ip = 10.0.0.129
internal.target.mac = 02:60:8c:37:87:f3
external = eth2
external.router.ip = 10.0.0.1
external.router.mac = 66:55:44:33:22:11
allow = 0.0.0.0/0
block = 192.168.0.0/16
block = 10.0.0.0/8
block = 224.0.0.0-255.255.255.255
Целевое устройство, которое мы изолируем, имеет указанные IP- и MAC-адреса.
Пропускаются только пакеты IPv4 и ARP.
Исходящие пакеты должны соответствовать следующим условиям:
internal.target.macexternal.router.macinternal.target.ipallow, но не в диапазоне blockexternal.router.ipВходящие пакеты должны соответствовать следующим условиям:
internal.target.macexternal.router.macinternal.target.ipallow, но не в диапазоне blockexternal.router.ipНикакой гарантии, разумеется, нет, но у этой программы довольно хорошая безопасность.
Безопасность основана на том факте, что к адаптерам не привязан IP-стек.
Это означает, что заражённая целевая машина никак не может воздействовать на машину
межсетевого экрана, кроме как в рамках, разрешённых функцией is_allowed().
Эта функция представляет собой основную часть поверхности атаки на машину межсетевого экрана.
И, как можно понять, прочитав функцию, в ней почти нет функциональности, а значит,
поверхность атаки действительно очень мала.
Существует несколько теоретических атак, которые могут произойти на физическом уровне, но по большей части нам не нужно о них беспокоиться.