
이것은 대상 장치를 로컬 네트워크에서 완전히 격리하는 미니 방화벽입니다.
이것은 대상 장치를 로컬 네트워크에서 완전히 격리하는 미니 방화벽입니다. 감염된 기계에 인터넷 액세스를 허용하지만, 로컬 네트워크를 위험에 빠뜨리지 않기 위한 것입니다.
이 프로젝트는 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.mac와 일치external.router.mac와 일치internal.target.ip와 일치allow 범위 내에 있으며 block 범위에 없어야 함external.router.ip와 같아야 함인바운드 패킷은 다음 조건을 충족해야 합니다:
internal.target.mac와 일치external.router.mac와 일치internal.target.ip와 일치allow 범위 내에 있으며 block 범위에 없어야 함external.router.ip와 같아야 함물론 보장은 없지만, 이 프로그램은 상당히 좋은 보안을 제공합니다.
보안은 어댑터에 바인딩된 IP 스택이 없다는 사실에 기반합니다.
즉, 감염된 대상은 is_allowed() 함수에서 허용된 경우를 제외하고는 방화벽 머신에 전혀 접근할 수 없습니다.
해당 함수는 방화벽 머신의 대부분의 공격 표면을 나타냅니다.
그리고 함수를 읽어보면 알 수 있듯이, 거의 기능이 없어 공격 표면이 실제로 매우 작습니다.
물리 계층에서 발생할 수 있는 몇 가지 이론적 공격이 있지만, 대부분의 경우 걱정할 필요가 없습니다.