2020/03/19

Partial MAC address-based firewall to WAN on pfSense

Quay trở lại đóng vai là một sinh viên ngành mạng máy tính.


Đề bài: Filter traffic tới WAN dựa trên MAC address trong pfSense



Vừa rồi thì mình đã thiếp lập một mạng ảo và một vài máy ảo trên phần cứng chạy host ESXi 6.7 nhằm phục vụ 1 số mục đích. Trong hệ thống ảo hoá này có nhiều máy chạy một số phần mềm không được phép ra ngoài mạng internet. Còn lại các máy khác thì vẫn được kết nối bình thường.

Network Stack của mình là:
ESXi (vmk0) --> Router (eth5) --> Internet
PC  (eth0) --> Router (eth4)


Lý do chọn pfSense: trước đây thì mình có tham gia một dự án phát triển Firewall dựa trên một fork của pfSense là OPNsense nhưng không may là dự án đã đổ bể và mình lại chuyển sang làm pentest 😰


Trước đó, mình cũng sử dụng 2 phần mềm ảo hoá là VirtualBox (VB) và VMware Workstation (VM)

https://en.wikipedia.org/wiki/Virtualization
Nếu dựa theo phân loại như trên thì cả VB và VM đều thuộc nhóm Hypervisor Type 2 hay Hypervsior Hosted. Đặc điểm chung của Hypervisor Type 2 là thành phần giám sát ảo hoá sẽ chạy phụ thuộc vào hệ điều hành chứ không nằm độc lập như loại 1 (ESXi là 1 trong số các loại hypervisor như vậy).
Lý do chọn ESXi chứ không phải là KVM, Hyper-V vì ESXi được cung cấp bởi VMware nên dễ đồng bộ với các máy khác đang cài VM. Ngoài ra đối với phần cứng loại server/enterprise (OEM  brand như DELL, HP) được hỗ trợ đầy đủ. Everything is working.


Vấn đề của pfSense:
Ở version stable latest 2.4.4-p3, pfSense được xây dựng trên FreeBSD. Phần core xử lý packet là "pf" không handle được các gói tin layer 2 (xử lý MAC address). Đây là vấn đề nhiều người gặp phải [1,2,3,4,5,6,7].
Qua tìm hiểu và gợi ý từ một người anh soviet thì có 2 giải pháp cho vấn đề này:
- Sử dụng Captive Portal.
- Tạo rule thủ công.
Điều kiện thực hiện:
- Switch hỗ trợ Port Security hoặc Sticky MAC hoặc đối với ESXi vSwitch áp dụng Allow MAC changes (No)

ESXi : Các tuỳ chọn có thể được kế thừa từ vSwitch xuống Port Groups.


Static ARP

Phân biệt Static ARP và DHCP Static Reservation:
+ Static ARP gắn IP address với MAC address: 1 IP address  chỉ liên hệ với 1 MAC address, nhưng 1 MAC address có thể liên hệ tới nhiều IP address
+ DHCP Static Reservation: Gắn 1 MAC address với 1 IP address khi MAC address gửi yêu cần xin cấp IP.
Sau khi tạo Static ARP thì 1 thiết bị với MAC address khác sẽ không thể lấy được IP address của MAC address nằm trong Static ARP table.

Đọc theo hướng dẫn sử dụng : https://docs.netgate.com/pfsense/en/latest/captiveportal/captive-portal.html và Sách https://docs.netgate.com/pfsense/en/latest/book/captiveportal/mac-address-control.html





Sau khi đã có liên kết 1-1 giữa IP address và MAC address thì có thể tiếp tục cấu hình theo 2 cách
Sử dụng Captive Portal


Chặn traffic từ MAC Address không cho xác thực



Ưu điểm: nhanh
Nhược điểm: Cần authen qua captive portal. Nếu không cấu hình rule chi tiết thì chỉ có thể sử dụng như Switch On/Off WAN access

Tạo rule thủ công: Chặn tất cả. Đối với host cần truy cập vào mạng internet thì tạo rule cho phép. 

Ưu điểm: chính xác, chi tiết.
Nhược điểm: cầu hiểu biết về cách cấu hình firewall rule.


Các vấn đề khác:
Không kiểm soát được traffic trong LAN: bởi vì traffic trong LAN chỉ tới switch mà không đến được pfSense.
Nếu client có thể spoof MAC address và IP address thì việc filter dựa trên MAC based không có ý nghĩa.
Bypass bằng truy vấn DNS: gateway pfSense mặc định cung cấp dịch vụ resolve DNS và có thể dùng làm bàn đạp chuyển traffic ra ngoài.

Hope it help.
Liệu networking có trở lại thời kì vàng hay không?

https://www.youtube.com/watch?v=mr6i9XfwnVk

Refs:
1 [Firewalling MAC addresses | Netgate Forum](https://forum.netgate.com/topic/103460/firewalling-mac-addresses/4)
2 [Block internet access by MAC Address | Netgate Forum](https://forum.netgate.com/topic/109639/block-internet-access-by-mac-address)
3 [Firewall Rule to Allow Access by MAC Address](https://forum.opnsense.org/index.php?topic=2790.0)
4 [[SOLVED] Block mac address](https://forum.opnsense.org/index.php?topic=1486.0)
5 [Instead of IP address use mac address to allow internet in firewall rules | Netgate Forum](https://forum.netgate.com/topic/71780/instead-of-ip-address-use-mac-address-to-allow-internet-in-firewall-rules)
6 [Block via MAC or DHCP list | Netgate Forum](https://forum.netgate.com/topic/64447/block-via-mac-or-dhcp-list)
7 [Firewalling MAC addresses | Netgate Forum](https://forum.netgate.com/topic/103460/firewalling-mac-addresses)

No comments:

Post a Comment