Catalog
pfSense
pfSense
| Pack name | pfSense |
| Version | 1.0.0 |
| Vendor | Netgate |
| Capabilities | Parser · Streaming Rules · Correlation Rules · Dashboard |
| Categories | Firewall · Network · Perimeter Security |
Overview
Pack cung cấp khả năng giám sát perimeter từ pfSense firewall, bao gồm:
- Parser — chuẩn hóa log
filterlog(IPv4/IPv6) sang ECS - 7 streaming rules — phát hiện blocked inbound, SSH/RDP/SMB probe, high-risk ports, ICMP recon, egress violation
- 2 correlation rules — SSH brute-force campaign, inbound port scan
- 1 dashboard — 12 chart giám sát SOC perimeter
Yêu cầu trước khi cài đặt
| Yêu cầu | Chi tiết |
|---|---|
| pfSense 2.5+ | Bật remote syslog: Status → System Logs → Settings → Enable Remote Logging, tick Firewall Events |
| Log shipper | Filebeat/rsyslog/syslog-ng đẩy log dạng JSON-wrapped về SecOps |
| Tag log source | vendor = pfsense và service = filterlog |
| Quyền platform | Role Content Pack Manager |
Định dạng log bắt buộc
{
"message": "<raw pfSense syslog line chứa filterlog CSV>",
"timestamp": "2026-03-04T09:15:22.445Z",
"host": "pfsense.corp"
}
Parser đọc field
timestamp(không phải@timestamp),host→observer.hostname,message→ toàn bộ CSV.
Ví dụ log hợp lệ
IPv4 TCP — Blocked Inbound (SSH probe):
{"@timestamp":"2026-03-04T09:15:22.445Z","message":"<134>1 2026-03-04T09:15:22+07:00 pfsense.corp filterlog 1234 - - 12,,,b2e74a92,em0,match,block,in,4,0x0,,64,54321,0,DF,6,tcp,60,203.0.113.45,192.168.10.10,44523,22,0,S","timestamp":"2026-03-04T09:15:22.445Z","host":"pfsense.corp"}
IPv4 UDP — Blocked Inbound:
{"@timestamp":"2026-03-04T11:05:45.789Z","message":"<134>1 2026-03-04T11:05:45+07:00 pfsense.corp filterlog 1234 - - 99,,,deadbeef,em0,match,block,in,4,0x0,,64,67890,0,none,17,udp,28,198.51.100.22,192.168.1.1,50000,53,28","timestamp":"2026-03-04T11:05:45.789Z","host":"pfsense.corp"}
IPv4 TCP — Allowed Outbound:
{"@timestamp":"2026-03-04T10:30:00.120Z","message":"<134>1 2026-03-04T10:30:00+07:00 pfsense.corp filterlog 1234 - - 58,,,a1b2c3d4,em1,match,pass,out,4,0x0,,64,12345,0,DF,6,tcp,60,192.168.10.50,8.8.8.8,55210,443,0,S","timestamp":"2026-03-04T10:30:00.120Z","host":"pfsense.corp"}
IPv6 TCP — Blocked Inbound (RDP):
{"@timestamp":"2026-03-04T14:20:10.333Z","message":"<134>1 2026-03-04T14:20:10+07:00 pfsense.corp filterlog 1234 - - 7,,,11223344,em0,match,block,in,6,0x00000000,64,6,tcp,52,2001:db8::1,2001:db8::100,55000,3389,0,S","timestamp":"2026-03-04T14:20:10.333Z","host":"pfsense.corp"}
Lưu ý: Message phải chứa từ khóa
filterlog— parser bỏ qua các dòng không có từ khóa này. IPv6 có layout CSV khác IPv4 (source IP ở field 15 thay vì 18), parser tự động phân biệt qua field 8 (IP version).
Cài đặt
- Vào Marketplace → tìm "pfSense Security" → Install
- Kiểm tra Parsers →
pfsense-parserđang active - Kiểm tra Detection Rules → filter tag pfSense → 9 rules đang enabled
- Mở Dashboards → pfSense Security Overview
Parser — Các trường ECS chính
| ECS Field | Nguồn | Mô tả |
|---|---|---|
event.action | CSV field 6 | allowed / denied |
network.direction | CSV field 7 | inbound / outbound |
network.transport | Derived | tcp, udp, icmp, icmp6 |
source.ip / source.port | CSV field 18/20 (IPv4), 15/17 (IPv6) | IP và port nguồn |
destination.ip / destination.port | CSV field 19/21 (IPv4), 16/18 (IPv6) | IP và port đích |
observer.hostname | .host | Tên pfSense |
observer.ingress.interface.name | CSV field 4 | Interface nhận gói |
rule.id | CSV field 0 | Rule number pfSense |
IPv4 và IPv6 có field layout khác nhau — parser tự động phát hiện qua field 8 (IP version).
Detection Rules
Streaming Rules (7 rules — real-time)
| # | Rule | Severity | Mô tả |
|---|---|---|---|
| 1 | Inbound Traffic Blocked | Medium | Bất kỳ kết nối inbound nào bị pfSense block (TCP/UDP/ICMP, IPv4/IPv6) |
| 2 | SSH Port Blocked | Medium | Kết nối TCP đến port 22 bị block — phát hiện brute-force hoặc unauthorized SSH |
| 3 | RDP Port Blocked | High | Kết nối TCP đến port 3389 bị block — RDP là vector ransomware phổ biến |
| 4 | SMB Lateral Movement Blocked | High | Kết nối TCP đến port 445/139 bị block — dấu hiệu lateral movement hoặc ransomware |
| 5 | High-Risk Port Probe Blocked | High | Kết nối đến các port nguy hiểm bị block: Telnet (23), MSSQL (1433), Oracle (1521), VNC (5900), MySQL (3306) |
| 6 | ICMP Blocked Inbound | Medium | ICMP/ICMPv6 inbound bị block — phát hiện ping flood, host discovery, covert channel |
| 7 | Outbound Egress Violation | High | Kết nối outbound từ host nội bộ bị block — chỉ báo C2 malware hoặc exfiltration |
Correlation Rules (2 rules — pattern)
| # | Rule | Severity | Mô tả | Ngưỡng | Lookback |
|---|---|---|---|---|---|
| 8 | SSH Brute Force | High | Nhiều lần bị block SSH liên tiếp từ cùng IP nguồn | > 10 lần | 15 phút |
| 9 | Inbound Port Scan | High | Hàng loạt kết nối inbound bị deny từ cùng IP — dấu hiệu nmap/masscan | > 50 lần | 5 phút |
Dashboard — pfSense Security Overview
| # | Chart | Loại | Mô tả |
|---|---|---|---|
| 1 | Traffic Events Trend | LINE | Trend allowed/denied theo thời gian |
| 2 | Total Firewall Events | METRIC | Tổng số sự kiện |
| 3 | Blocked Inbound Events | METRIC | Tổng inbound bị block |
| 4 | Blocked Outbound Events | METRIC | Tổng outbound bị block |
| 5 | Unique Attacker IPs | METRIC | Số IP nguồn khác nhau |
| 6 | Event Action Distribution | PIE | Allowed vs Denied |
| 7 | Traffic Direction Distribution | PIE | Inbound vs Outbound |
| 8 | Top Blocked Source IPs | BAR | IP tấn công nhiều nhất |
| 9 | Top Targeted Destination Ports | BAR | Port bị probe nhiều nhất |
| 10 | Top Targeted Destination IPs | BAR | IP nội bộ bị nhắm nhiều nhất |
| 11 | Recent Blocked Inbound Traffic | TABLE | 20 sự kiện inbound bị block gần nhất |
| 12 | Recent Egress Violations | TABLE | 20 sự kiện outbound vi phạm gần nhất |
SOC Triage nhanh:
- Metrics 2–5 → đánh giá mức độ tổng quan
- Chart 8 → một IP chiếm đa số → targeted attacker
- Chart 9 → port 22/3389/445 → brute-force/ransomware recon
- Tables 11–12 → xác nhận IP tấn công và host bị ảnh hưởng
Troubleshooting
| Triệu chứng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Không có event | Sai tag log source | Kiểm tra vendor = pfsense và service = filterlog |
| Event có nhưng field trống | Thiếu từ filterlog trong message | Bật Firewall Events trong pfSense syslog settings |
source.ip trống | Sai field CSV | Kiểm tra pfSense log format chuẩn (không custom) |
| IPv6 không parse | Sai IP version detection | Field 8 trong CSV phải là 6 cho IPv6 |
| Parser không khớp | Parser bị tắt | Kiểm tra pfsense-parser.yaml đang active trong Parsers |
Checklist parser:
- Tag
vendor = pfsense+service = filterlog - JSON có đủ
message,timestamp(ISO 8601 +.000Z),host -
messagechứa từ khóafilterlog -
pfsense-parser.yamlđang active
Hỗ trợ
- Lỗi platform: Mở ticket tại SecOps support portal
- Góp ý pack: Dùng tính năng feedback trên trang Marketplace
- Tuning rule: Slack
#detection-engineering
Last updated: 2026-06-03 · Vendor: Netgate · Author: secops-team