『 BangMaple's Blog 』

BangMaple's Blog. Nơi sẻ chia kiến thức!

Xây dựng và kiểm thử hệ thống phát hiện xâm nhập Suricata với tường lửa pfSense

Không có nhận xét nào

Chào các bạn.

Trong bài viết này, mình sẽ hướng dẫn các bạn:

Cấu hình card mạng trên máy ảo Parallels Desktop.
Cấu hình pfSense cho việc định tuyến.
Cấu hình dịch vụ Suricata trên pfSense.
Tạo bộ Rules tuỳ chọn cho việc kiểm thử cụ thể.

Yêu cầu cài đặt sẵn:
- 1 máy Client cho việc kiểm thử và cấu hình giao diện cho pfSense.
- 1 máy Kali Linux sử dụng cho việc xâm nhập máy Client.
- 1 máy ảo cho việc cài đặt pfSense có 2 card mạng. (1 cho NAT để kết nối ra ngoài Internet và 1 là VMNet2 cho việc nội bộ bên phía máy ảo).


Đầu tiên hãy cùng cài đặt máy ảo pfSense:
Chờ một vài giây để khởi động bộ cài đặt pfSense..
Hình 1 - Boot vào bộ cài đặt pfSense
Sau khi boot vào thì các bạn nhấn Enter chọn Accept để chấp nhận điều khoản của phần mềm này.
Hình 2 - Giao diện trình cài đặt pfSense
Nhấn Enter lần nữa để tiếp tục cài đặt.
Hình 3 - Cài đặt pfSense
Nhấn Enter để Select nếu bạn muốn sử dụng bộ gõ mặc định.
Hình 4 - Cài đặt pfSense
Nhấn Enter để trình cài đặt tự động phân vùng cho bạn hoặc bạn có thể chọn Manual nếu muốn tự phân vùng ổ đĩa.
Hình 5 - Cài đặt pfSense
Chờ một vài phút để trình cài đặt có thể tiến hành việc cài đặt.
Hình 6 - Cài đặt pfSense
Giờ đây pfSense đã cài đặt hoàn tất và muốn hỏi bạn muốn mở shell để tinh chỉnh sau khi cài đặt không, mình không cần nên chọn No.
Hình 6 - Cài đặt pfSense
Chọn Reboot để khởi động lại máy.
Hình 7 - Cài đặt pfSense
Hình 8 - Giao diện sau khi cài đặt pfSense
Nếu giao diện card mạng của bạn được thiết lập sẵn IP như thế này là quá tốt. Nhưng nếu bạn muốn tự thiết lập IP cho mình nếu thêm card mạng mới hoặc tinh chỉnh địa chỉ IP?

Chọn số 1 để thiết lập giao diện card mạng.
Hình 9 - Thiết lập giao diện
Ở đây mình không cần thiết lập VLAN trước nên chọn n.

Sau đó chọn giao diện cho mạng WAN, ở đây mình sẽ chọn em0 cho WAN.
Hình 10 - Thiết lập giao diện
Đối với mạng LAN thì mình để em1 là card mạng thứ 2. Bạn nào muốn thiết lập cho vùng DMZ thì có thể thêm card mạng nữa..
Hình 11 - Thiết lập giao diện
Để xác nhận thiết lập giao diện thì mình chọn y để hoàn tất.
Hình 12 - Thiết lập giao diện
Thế là hoàn tất thiết lập cho giao diện card mạng. 
Giờ mình sẽ thiết lập IP cho từng card mạng.
Hình 13 - Thiết lập IP cho giao diện
Mình sẽ chọn giao diện WAN để cấu hình IP đầu tiên.
Hình 14 - Thiết lập IP cho giao diện
Để cho khỏi bị trùng hoặc sai cấu trúc địa chỉ IP WAN thì mình sẽ để thiết lập thông qua DHCP để ra ngoài Internet. Mình chọn y.
Hình 15 - Thiết lập IP cho giao diện
Mình không dùng IPv6 nên không cần thiết lập và không cần revert sang HTTP nên chọn n.
Hình 16 - Thiết lập IP cho giao diện
Thành công. Sau đó mình sẽ thiết lập IP cho giao diện mạng LAN.
Hình 17 - Thiết lập IP cho giao diện
Thiết lập IPv4 cho giao diện mạng LAN, mình sẽ nhập địa chỉ 172.16.205.1

Làm như thế nào mình biết được nhập IP như thế nào?
Các bạn vào cấu hình card mạng của máy ảo để xem. Ở đây địa chỉ đường mạng của mình là 172.16.205.0
Hình 18 - Card mạng VMNet2
Nhập địa chỉ IP vào đây.
Hình 19 - Thiết lập IP cho giao diện
Chọn Subnet mask cho giao diện, ở đây mình chọn 24 số bit.
Hình 20 - Thiết lập địa chỉ IP cho giao diện
Mình muốn hiệu lực hoá DHCP và chọn dãy IP 172.16.205.2 - 172.16.205.254 cho DHCP.
Hình 21 - Thiết lập địa chỉ IP cho giao diện
Hình 22 - Thiết lập địa chỉ IP cho giao diện
Bạn sẽ dùng địa chỉ https://172.16.205.1/ để truy cập vào trang giao diện web của pfSense để cài đặt và cấu hình các dịch vụ.

Mình sẽ qua máy ảo Client đang chạy Windows 7 để thiết lập cho cùng dãy địa chỉ với giao diện mạng LAN bên pfSense. Bằng cách chọn card mạng VMNet2 để dùng chung.
Hình 23 - Thay đổi card mạng của máy client
Kiểm tra xem Windows 7 có được cấp phát đúng dãy IP hay không. Nếu không thì bạn phải nhập IP thủ công và kiểm tra lại set card mạng ảo đúng chưa đấy.
Hình 24 - Kiểm tra IP cấp phát cho Windows 7
Sử dụng địa chỉ mình có đính ở trên hoặc theo của bạn được cấp phát, vào bằng trình duyệt.

Đăng nhập với tên người dùng: admin, mật khẩu là: pfsense
Hình 25 - Truy cập web giao diện pfSense
Nhấn Next để tiếp tục.
Hình 26 - Cửa sổ thiết lập pfSense
Hình 27 - Cửa sổ thiết lập pfSense
Mình sẽ đặt DNS theo IP LAN máy pfSense và IP của Cloudflare.
Hình 28 - Cửa sổ thiết lập pfSense
Chuyển múi giờ nếu bạn muốn.
Hình 29 - Cửa sổ thiết lập pfSense
Kéo xuống dưới cùng và nhấn Next.
Hình 30 - Cửa sổ thiết lập pfSense


Hình 31 - Cửa sổ thiết lập pfSense
Thiết lập mật khẩu cho giao diện web pfSense, ở đây mình sẽ đặt là: admin
Hình 32 - Cửa sổ thiét lập pfSense
Sau khi thiết lập hoàn tất thì hãy nhấn Reload để áp dụng thay đổi mới.
Hình 32 - Cửa sổ thiết lập pfSense
Hình 33 - Cửa sổ thiết lập pfSense
Cấu hình hoàn tất. Bạn sẽ được đưa về trang chính.
Hình 34 - Cửa số thiết lập pfSense
Ngay ở màn hình chính, chọn mục System và sau đó chọn Package Manager
Hình 35 - Cài đặt dịch vụ
Qua mục Available packages và tìm kiếm "suricata" và sau đó chọn Install.

Hình 36 - Cài đặt dịch vụ
Xác nhận cài đặt dịch vụ Suricata.
Hình 37 - Cài đặt dịch vụ
Hãy chờ một vài phút để dịch vụ Suricata được cài đặt.
Hình 38 - Cài đặt dịch vụ
Dịch vụ Suricata được cài đặt hoàn tất.
Hình 39 - Cài đặt dịch vụ
Sau khi cài đặt thành công dịch vụ Suricata, bạn hãy nhìn lên thanh menu chọn Services và chọn Suricata để bắt đầu cấu hình dịch vụ.
Hình 40 - Thiết lập dịch vụ Suricata
Trong phần Interfaces, hãy chọn Add để thêm giao diện cho Suricata quản lý.
Hình 41 - Thiết lập dịch vụ Suricata
Ở đây mình sẽ quản lý qua mạng LAN nên là sẽ sửa Interface thành LANDescription cũng vậy,
Hình 42 - Thiết lập giao diện LAN cho dịch vụ
Kéo xuống dưới cùng và nhấn Save.
Hình 43 - Thiết lập giao diện LAN cho dịch vụ
Mình chọn qua tab Global Settings, tích vào phần Snort free Registered User or paid Subscribe rules rồi chọn Sign up for a free Registered Users Account để lấy Oinkcode cho phần dưới.
Hình 44 - Thiết lập dịch vụ Suricata
Sau khi đăng ký và xác nhận tài khoản Snort thì bạn vào đường dẫn https://www.snort.org/oinkcodes để lấy Oinkcode như hình.
Hình 45 - Lấy Oinkcode
Dán oinkcoderules filename vào và sau đó bật luôn Install Snort GPLV2 Community Rules.
Hình 46 - Thiết lập dịch vụ Suricata
Kéo xuống cùng và nhấn Save để lưu lại cấu hình.
Hình 47 - Thiết lập dịch vụ Suricata
Bạn đã nhận được màn hình trắng, nhưng không sao hãy quay lại trang chủ của pfSense và quay lại Suricata.

Qua tab Update và sau đó nhấn Force Update để cập nhật Rules của Suricata.
Hình 48 - Thiết lập dịch vụ Suricata
Chờ giây lát để Suricata cập nhật Rules.
Hình 49 - Thiết lập dịch vụ Suricata
Cập nhật thành công Rules.
Hình 50 - Thiết lập dịch vụ Suricata
Quay về tab Interface, sau đó sửa Interface LAN này bằng cách chọn vào icon bút chì.
Hình 50 - Thiết lập dịch vụ Suricata
Sau đó qua tab LAN Rules, chọn Category để thêm một số Rules custom.
Hình 51 - Thiết lập dịch vụ Suricata

Dưới đây là bộ Rules của phần Scan:
alert tcp any any -> any any (msg:"SYN FIN Scan"; flags: SF;sid:9000000;)
alert tcp any any -> any any (msg:"FIN Scan"; flags: F;sid:9000001;)
alert tcp any any -> any any (msg:"NULL Scan"; flags: 0;sid:9000002;)
alert tcp any any -> any any (msg:"XMAS Scan"; flags: FPU;sid:9000003;)
alert tcp any any -> any any (msg:"Full XMAS Scan"; flags: SRAFPU;sid:9000004;)
alert tcp any any -> any any (msg:"URG Scan"; flags: U;sid:9000005;)
alert tcp any any -> any any (msg:"URG FIN Scan"; flags: FU;sid:9000006;)
alert tcp any any -> any any (msg:"PUSH FIN Scan"; flags: FP;sid:9000007;)
alert tcp any any -> any any (msg:"URG PUSH Scan"; flags: PU;sid:9000008;)
alert tcp any any -> any any (flags: A; ack: 0; msg:"NMAP TCP ping!";sid:9000009;)

Dưới đây là bộ Rules của phần Ping:
alert icmp any any -> any any (msg:"ICMP Packet found";sid:9000000;)
alert icmp any any -> any any (itype: 0; msg: "ICMP Echo Reply";sid:9000001;)
alert icmp any any -> any any (itype: 3; msg: "ICMP Destination Unreachable";sid:9000002;)
alert icmp any any -> any any (itype: 4; msg: "ICMP Source Quench Message received";sid:9000003;)
alert icmp any any -> any any (itype: 5; msg: "ICMP Redirect message";sid:9000004;)
alert icmp any any -> any any (itype: 8; msg: "ICMP Echo Request";sid:9000005;)
alert icmp any any -> any any (itype: 11; msg: "ICMP Time Exceeded";sid:9000006;)

Bạn dán bộ Rules vào cho việc kiểm thử xâm nhập, mình sẽ dán bộ Rules cho phần Scan vào và sau đó nhấn Save để lưu rules.

Sau đó chọn Category: Active Rules để kiểm tra xem rules được thêm chưa nhé.
Hình 52 - Thiết lập dịch vụ Suricata
Mình đã thành công thiết lập custom rules cho dịch vụ Suricata, hãy cùng mở máy để tấn công. Mình sẽ mở máy Kali Linux, lưu ý là phải để cùng card mạng nhé! (VMNet2).

Khởi động ZenMap lên. Mình biết được địa chỉ IP của máy Client Windows 7 là 172.16.205.3.

Mình có một số lệnh dùng cho nmap:

NULL Scan: nmap -sN -T4 -v 172.16.205.3
SYN FIN Scan: nmap -sS --scanflag SYNFIN -T4 -v 172.16.205.3
FIN Scan: nmap -sS --scanflag FIN -T4 -v 172.16.205.3
XMAS Scan: nmap -sX -T4 -v 172.16.205.3
URG Scan: nmap -sS --scanflag URG -T4 -v 172.16.205.3
URG FIN Scan: nmap -sS --scanflag URG -T4 -v 172.16.205.3
PUSH FIN Scan: nmap -sS --scanflag PSHFIN -T4 -v 172.16.205.3
URG PUSH Scan: nmap -sS --scanflag URGPSH -T4 -v 172.16.205.3

Hình 51 - Thực hiện lệnh nmap
Quay lại cửa sổ web pfSense và vào tab Alerts để xem ai xâm nhập.
Hình 52 - Cảnh báo xâm nhập
Bạn cũng có thể vào Logs View để xem ghi nhận lại sự cố xâm nhập nữa đấy.
Hình 53 - Xem ghi nhận xâm nhập
Bạn có thể kiểm thử tiếp các lệnh nmap ở trên mình cung cấp nhé.

Và thế là bạn đã hoàn tất xây dựng và kiểm thử hệ thống phát hiện xâm nhập với dịch vụ Suricata bằng tường lửa pfSense rồi đó.

Chúc các bạn học tốt!