Saturday, June 6, 2020

오픈소스 무료 방화벽(Firewall) - OPNsense




오랜 조사와 고민 끝에 Home Firewall로 OPNsense를 드디어 설치했다.
여러 오픈소스 무료 방화벽 중에 후보로 pfSense, OPNsense, Untangle, Sophos UTM가 올랐다. 처음엔 상용 벤더이면서 무료 버전에 가장 후한 기능을 제공하는 Sophos UTM을 고려했으나, 아래와 같은 몇 가지 이유로 OPNsense로 결정했다.

▶ 오픈 소스 기반
오픈 소스 기반이라 각종 Plugins, Packages를 올릴 수 있다. Suricata IDS, Squid, Bind, Sensei, Maltrail 같은 추가적인 소프트웨어를 add-on 할 수 있는 장점이 크다.

▶ 뛰어난 UI
모태가 pfSense 지만, 더 풍부한 UI를 제공한다.

▶ 2FA 지원
무료인데도 OpenVPN에 Two Factor Authentication을 적용할 수 있다. OpenVPN을 2FA로 설정하고 아이폰에 Microsoft Authenticator 앱을 설치하여 2차 인증을 한다. OpenVPN은 macOS에서 Tunnelblick이라는 VPN 소프트웨어를 통해서 접속한다.
<Microsoft Authenticator>

OPNsense가 제공하는 핵심 기능(Core Features)만 나열해도 아래와 같다.

• Traffic Shaper
• Captive portal

 - Voucher support
 - Template manager
 - Multi zone support
• Forward Caching Proxy
 - Transparent mode supported
 - Blacklist support
• Virtual Private Network
 - Site to site
 - Road warrior
 - IPsec
 - OpenVPN
• High Availability & Hardware Failover
 - Includes configuration synchronization & synchronized state tables
 - Moving virtual IPs
• Intrusion Detection and Inline Prevention
 - Built-in support for Emerging Threats rules
 - Simple setup by use of rule categories
 - Scheduler for period automatic updates
• Built-in reporting and monitoring tools
 - System Health, the modern take on RRD Graphs
 - Packet Capture
 - Netflow
• Support for plugins
• DNS Server & DNS Forwarder
• DHCP Server and Relay
• Dynamic DNS

• Backup & Restore
 - Encrypted cloud backup to Google Drive and Nextcloud
 - Configuration history with colored diff support
 - Local drive backup & restore
• Stateful inspection firewall
• Granular control over state table
• 802.1Q VLAN support

and more…
 
팔로알토(PAN) 방화벽과 같은 상용 수준과는 비교할 수 없지만, 무료 가정용으로 이만하면 쓸만하다.

  • 하드웨어 요구사항

OPNsense는 X86 서버에 설치하면 된다. 32비트도 지원하지만, 64비트 버전을 사용하길 권장한다. OPNsense 공식 웹사이트에서는 아래와 같이 최소(Minimum), 적정(Reasonable), 권장(Recommended) 사양을 제시하고 있다.
Hardware requirements


보통은 네트워크 NIC 카드가 2개 달린 미니 PC(예: 인텔 NUC)를 구입해서 설치하면 되는데, 시중에는 이미 오픈소스 방화벽을 설치할 수 있는 하드웨어도 전용으로 판매하고 있다. 이런 제품들은 소형이고 팬이 없는 제품이라 조용하다.
분석맨은 Protectli라는 사이트에서 위 사진과 같은 하드웨어를 아래 사양으로 구매를 했다.

FW4B - 4 Port Intel ® J3160
Memory: 8GB DDR3L, Storage (mSATA SSD): 240GB Kingston UV500

아마존에서 구매하지 않고 이 사이트에서 구매한 이유는 맞춤형 선택을 할 수 있기 때문이다. 메모리, 하드 디스크 용량을 선택할 수 있을 뿐만 아니라 O/S도 OPNsense와 Ubuntu Desktop 중에 선택을 하면 미리 설치를 해서 배송해준다. 추가로 무선 모듈이나 LTE 모뎀도 추가할 수 있다.
따라서 받은 후 추가 설치없이, 바로 WAN(인터넷)과 LAN 포트에 케이블을 연결하고 웹브라우저로 들어가서 필요한 설정한 후에 바로 사용할 수 있다.

※ OPNsense 이외에 추가로, Sensei와 같은 추가 소프트웨어를 올릴 경우 더 고사양이 필요하다. 장비별, 대역폭별 Sensei가 요구하는 사양은 아래 링크에 나와 있는데, 가능하면 메모리는 16 GB 이상을 설치하길 권장한다.
▶ Sensei: Hardware Requirements


Sensei
는 아래와 같은 차세대 방화벽(Next-Gen Firewall) 기능을 제공한다.
• Application Control
• Web 2.0 Controls
• TLS Inspection (Port-agnostic)
• Extensive Reporting
• Active Directory Integration

  • 설치

설치 방법은 다양하므로 아래 공식 사이트를 참고하시기 바란다. 아키텍처에 맞는 ISO 파일을 다운로드한 후 설치한다.
▶ Installation Method

한글로 된 설치 가이드는 아래 링크를 참고하시라.
OPNsense 설치 [단계별]
OPNsense 방화벽을 설치하는 방법 (VirtualBox)

  • OpenVPN과 2FA 설정 방법

분석맨은 아래 OPNsense 공식 사이트 매뉴얼과 유튜브를 참고했다.

Setup SSL VPN Road Warrior

Opnsense 2FA and SSL VPN setup
유튜브 57:24, https://www.youtube.com/watch?v=AyaNoSe1ero

OpenVPN용 클라이언트 소프트웨어는 공식 사이트에서 유료인 Viscosity를 사용해서 설명되어 있는데, 분석맨은 macOS용 Tunnelblick을 예전부터 사용해오고 있어서 그대로 사용하였다.

How To Setup OpenVPN (tunnelblick) on macOS Mac OS X

  • 악성코드 탐지 도구 Maltrail

Maltrail은 정적인 룰을 이용하여 악성코드를 탐지하는 오픈소스 시스템으로 OPNsense에서 쉽게 가동할 수 있다. Maltrail에 대한 내용은 아래 유튜브에서 잘 보여주고 있다.

(침해대응, 해킹) Maltrail 파이썬 오픈 소스 도구를 이용한 악의적인 행위 탐지 시스템 활용
유튜브 12:42, https://youtu.be/sLKM4QDmAIw



No comments:

Post a Comment