I. Tổng quan nội dung thực hành
Bài thực hành bao gồm ba lĩnh vực chính: cấu hình tường lửa, phát hiện xâm nhập và phân tích quy tắc của gateway mật mạng:
- Cấu hình tường lửa: Sử dụng công cụ iptables trên nền tảng Linux để lọc gói tin ICMP, ngăn chặn máy chủ nhận phản hồi Ping; thiết lập kiểm soát truy cập dịch vụ mạng dựa trên địa chỉ IP, chỉ cho phép các máy chủ cụ thể truy cập dịch vụ nhất định.
- Phát hiện xâm nhập Snort: Sử dụng Snort để phân tích tệp pcap đã lưu, phát hiện các hành vi tấn công như quét cổng, giả mạo ARP, phân tích nhật ký cảnh báo và xác định loại tấn công được phát hiện.
- Phân tích quy tắc gateway mật mạng: Phân tích cấu hình tường lửa và quy tắc IDS/IPS của gateway mật mạng trong môi trường mạng an ninh, giải thích cách gateway mật mạng sử dụng công nghệ tường lửa và phát hiện xâm nhập để thực hiện việc thu thập và kiểm soát dữ liệu tấn công.
II. Quy trình thực hành
2.1 Chuẩn bị môi trường thực hành
Thông tin thiết bị
Bài thực hành sử dụng ba máy ảo để thực hiện các thao tác chính, kết hợp với gateway mật mạng để phân tích quy tắc, thông tin IP và tài khoản của các nút như sau:
| Tên máy ảo | Địa chỉ IP | Tài khoản/Password | Vai trò chính |
|---|---|---|---|
| Kali Linux | 192.168.200.3 | kali/kali | Máy tấn công, máy thực thi phát hiện Snort |
| WinXPattacker | 192.168.200.4 | administrator/mima1234 | Máy tấn công so sánh |
| SeedUbuntu9 | 192.168.200.6 | seed/dees | Máy mục tiêu, máy cấu hình tường lửa iptables |
| Gateway mật mạng | - | roo/honey | Đối tượng phân tích quy tắc tường lửa và IDS/IPS |
Tất cả các máy ảo đều nằm trong cùng một mạng cục bộ VMnet8, trước khi thực hành đã xác nhận kết nối mạng ban đầu giữa các nút bình thường, SeedUbuntu9 và Kali đã hoàn thành cập nhật nguồn apt, đảm bảo môi trường cài đặt công cụ cơ bản.
2.2 Thực hành 1: Cấu hình tường lửa iptables
Lĩnh vực này thực hiện hai quy tắc tường lửa chính trên máy SeedUbuntu9 bằng công cụ iptables, kiểm tra chức năng cơ bản của tường lửa lọc gói tin trên nền tảng Linux.
2.2.1 Lọc gói tin ICMP để máy không nhận Ping
Kiểm tra môi trường trước thực hành
Kiểm tra trạng thái công cụ iptables
Trên máy SeedUbuntu9 chạy lệnh sau để xác minh việc cài đặt iptables và xem quy tắc mặc định:
# Xác minh phiên bản iptables, xác nhận công cụ đã cài đặt
sudo iptables --version
# Xem quy tắc tường lửa mặc định
sudo iptables -L
Kết quả chạy lệnh cho thấy SeedUbuntu9 đã cài đặt sẵn iptables, và ba chuỗi INPUT, FORWARD, OUTPUT có chính sách mặc định là ACCEPT, không có quy tắc lọc tùy chỉnh nào.
Thiết lập quy tắc lọc ICMP
Trên máy SeedUbuntu9 chạy lệnh sau để thêm quy tắc loại bỏ gói tin ICMP:
sudo iptables -A INPUT -p icmp -j DROP
Giải thích tham số lệnh:
-A INPUT: Thêm quy tắc mới vào cuối chuỗi INPUT-p icmp: Chỉ định giao thức khớp là ICMP (giao thức chính của lệnh Ping)-j DROP: Thực hiện loại bỏ trực tiếp gói tin khớp, không trả về bất kỳ phản hồi nào
Sau khi thêm quy tắc, chạy lại sudo iptables -L, có thể thấy quy tắc mới được thêm vào chuỗi INPUT, xác nhận quy tắc được ghi thành công.
Kiểm tra hiệu quả quy tắc
Thử nghiệm kết nối Ping
Trên máy Kali chạy ping 192.168.200.6, terminal không nhận được bất kỳ gói phản hồi ICMP nào, các gói yêu cầu gửi liên tục bị mất 100%, quy tắc tường lửa hoạt động.
Kiểm tra bắt gói
Trên Kali mở Wireshark, bắt gói trên giao diện eth0, có thể thấy Kali liên tục gửi gói ICMP Echo Request đến 192.168.200.6 nhưng không nhận được gói Echo Response nào, xác nhận SeedUbuntu9 đã chặn hoàn toàn và loại bỏ gói tin ICMP đầu vào.
Kết thúc thực hành
Sau khi kiểm tra quy tắc, trên SeedUbuntu9 chạy lệnh sau để xóa quy tắc tùy chỉnh đã thêm, khôi phục trạng thái ban đầu của tường lửa:
sudo iptables -F
2.2.2 Cấu hình chỉ cho phép IP nhất định truy cập dịch vụ mạng
Lĩnh vực này lấy dịch vụ FTP làm ví dụ, cấu hình quy tắc tường lửa để: chỉ cho phép Kali (192.168.200.3) truy cập dịch vụ FTP trên SeedUbuntu9, WinXPattacker (192.168.200.4) không thể truy cập.
Môi trường dịch vụ FTP
Cài đặt và khởi động dịch vụ FTP
Trên máy SeedUbuntu9 chạy lệnh sau để cài đặt dịch vụ vsftpd và khởi động:
# Cài đặt máy chủ vsftpd
sudo apt-get install vsftpd
# Khởi động dịch vụ FTP
sudo service vsftpd start
# Kiểm tra trạng thái dịch vụ, xác nhận khởi động thành công
sudo service vsftpd status
Kết quả chạy lệnh cho thấy dịch vụ vsftpd đã khởi động thành công, trạng thái là running.
Kiểm tra quyền truy cập ban đầu
Chạy lệnh FTP trên cả Kali và WinXPattacker để kiểm tra quyền truy cập ban đầu, cả hai máy đều có thể truy cập bình thường:
ftp 192.168.200.6
Cả hai máy đều kết nối thành công đến cổng 21 của SeedUbuntu9, nhập tài khoản seed và mật khẩu dees có thể đăng nhập, quyền truy cập ban đầu không bị giới hạn.
Ghi chú: Cách ngắt kết nối FTP
- Giao diện tương tác FTP trên terminal Linux: nhập lệnh
quit/bye, hoặc dùng phím tắt Ctrl+D- Giao diện tương tác FTP trên terminal Windows XP: nhập lệnh
quitđể thoát kết nối
Thiết lập quy tắc kiểm soát IP
Thiết lập chính sách từ chối mặc định
Trên máy SeedUbuntu9 chạy lệnh sau để thiết lập chính sách mặc định của chuỗi INPUT là DROP, từ chối mọi luồng đầu vào không khớp quy tắc:
sudo iptables -P INPUT DROP
Sau khi thiết lập chính sách, cả Kali và WinXPattacker đều không thể kết nối dịch vụ FTP, đáp ứng kỳ vọng.
Thêm quy tắc danh sách trắng
Chạy lệnh sau để chỉ cho phép luồng TCP từ IP nguồn là 192.168.200.3 (máy Kali) đi vào:
sudo iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT
Giải thích tham số lệnh:
-p tcp: khớp luồng giao thức TCP (dịch vụ FTP dựa trên giao thức TCP)-s 192.168.200.3: chỉ định quy tắc chỉ khớp luồng có IP nguồn là máy Kali-j ACCEPT: thực hiện hành động cho phép các gói khớp
Kiểm tra quyền truy cập
Thử nghiệm truy cập từ Kali
Trên terminal Kali chạy lại ftp 192.168.200.6, có thể kết nối dịch vụ FTP thành công, nhập tài khoản mật khẩu bình thường đăng nhập, chức năng truyền tệp không có vấn đề, quy tắc danh sách trắng hoạt động.
Thử nghiệm truy cập từ WinXPattacker
Trên terminal WinXPattacker chạy ftp 192.168.200.6, terminal hiển thị ftp: connect: lỗi không xác định, không thể thiết lập kết nối TCP, truy cập bị tường lửa chặn thành công.
Kết thúc thực hành
Sau khi kiểm tra, trên SeedUbuntu9 chạy lệnh sau để xóa quy tắc và khôi phục chính sách mặc định, tránh ảnh hưởng đến các thí nghiệm sau:
# Xóa tất cả quy tắc tùy chỉnh
sudo iptables -F
# Khôi phục chính sách mặc định của chuỗi INPUT
sudo iptables -P INPUT ACCEPT
2.3 Thực hành 2: Thực hành phát hiện xâm nhập bằng Snort
Lĩnh vực này dựa trên máy Kali, sử dụng Snort để phân tích tệp pcap đã lưu, hoàn thành việc phát hiện hành vi tấn công và phân tích nhật ký.
2.3.1 Chuẩn bị môi trường trước thực hành
Kiểm tra cài đặt Snort
Trên terminal Kali chạy lệnh sau để xác minh Snort đã được cài đặt:
sudo apt-get install snort
Chuẩn bị tệp kiểm tra
Đặt tệp lưu lượng mạng listen.pcap đã chuẩn bị trên máy Kali, đường dẫn là /home/kali/Desktop/listen.pcap, chuẩn bị cho việc kiểm tra offline. Tệp này nên được tải từ học thông.
2.3.2 Thực hiện kiểm tra xâm nhập offline bằng Snort
Trên terminal Kali chạy lệnh sau để phân tích tệp pcap và xuất nhật ký cảnh báo:
sudo snort -r /home/kali/Desktop/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort
Giải thích tham số lệnh:
-r: chỉ định đọc dữ liệu lưu lượng mạng từ tệp pcap offline-c: chỉ định tệp cấu hình Snort, tải tập quy tắc phát hiện-A alert_fast: thiết lập chế độ cảnh báo nhanh, đơn giản hóa định dạng nhật ký-l: chỉ định thư mục xuất nhật ký cảnh báo, thư mục mặc định là/var/log/snort
2.3.3 Phân tích kết quả phát hiện
Kết quả thống kê lưu lượng
Sau khi chạy lệnh, terminal hiển thị thông tin giải mã lưu lượng: tổng cộng đã phân tích 135580 gói tin, trong đó có 135580 khung Ethernet, 135560 gói IPv4, 135512 gói TCP (chiếm 99.95%), 3 gói UDP, 20 gói ARP, lưu lượng chủ yếu là giao thức TCP.
Đồng thời terminal hiển thị kết quả kiểm tra module: phát hiện các hành vi đáng ngờ như quét cổng, giả mạo ARP, yêu cầu HTTP bất thường, kích hoạt các quy tắc phát hiện port_scan, arp_spoof.
Xem nhật ký cảnh báo
Chạy lệnh sau để vào thư mục nhật ký, xem thông tin tấn công chi tiết:
# Vào thư mục nhật ký
cd /var/log/snort
# Xem tệp nhật ký cảnh báo
vim alert
Tệp nhật ký sẽ ghi lại thông tin tấn công đầy đủ, bao gồm thời gian tấn công, IP nguồn, IP đích, loại tấn công, ID quy tắc, v.v. Ví dụ, phát hiện loại tấn công quét cổng SCAN nmap XMAS, xác định rõ IP máy chủ và máy đích, cổng sử dụng và đặc điểm quét, hoàn thành việc phát hiện xâm nhập và truy nguyên lưu lượng offline.
2.4 Thực hành 3: Phân tích cấu hình quy tắc tường lửa và IDS/IPS của gateway mật mạng
Lĩnh vực này dựa trên gateway mật mạng, phân tích cấu hình quy tắc tường lửa và hệ thống phát hiện/ phòng thủ xâm nhập, làm rõ nguyên lý kỹ thuật mà gateway mật mạng thực hiện việc thu thập dữ liệu tấn công và kiểm soát lưu lượng.
2.4.1 Đăng nhập gateway mật mạng và chuyển quyền
Mở máy ảo gateway mật mạng, sử dụng tài khoản roo và mật khẩu honey để đăng nhập, chạy lệnh su - để chuyển sang quyền root, đảm bảo có thể đọc tệp cấu hình hệ thống:
2.4.2 Phân tích quy tắc cấu hình tường lửa
Chạy lệnh sau để mở tệp cấu hình tường lửa chính của gateway mật mạng, xem logic định nghĩa quy tắc:
vim /etc/init.d/rc.firewall
Trong tệp cấu hình, thông qua các hàm chính định nghĩa hệ thống quy tắc tường lửa, nội dung chính như sau:
Hàm create_chains()
Tạo ba chuỗi quy tắc chính, bao gồm BlackList (danh sách đen, cấm giao tiếp IP cụ thể), WhiteList (danh sách trắng, cho phép lưu lượng IP đáng tin cậy), FenceList (danh sách bảo vệ, giới hạn IP nguy hiểm truy cập ra ngoài từ máy nhện); đồng thời tạo các chuỗi xử lý riêng biệt cho giao thức như tcpHandler, udpHandler, icmpHandler, thực hiện quản lý chi tiết lưu lượng theo giao thức.
Hàm load_modules()
Tải các mô đun nhân như iptable_filter, iptable_nat, ipt_LOG, cung cấp chức năng lọc gói tin, chuyển đổi địa chỉ, ghi nhật ký cho tường lửa.
Hàm default_policy()
Thiết lập chính sách mặc định của tường lửa, đặt chính sách mặc định của ba chuỗi FORWARD, INPUT, OUTPUT đều là DROP, tuân theo nguyên tắc quyền hạn tối thiểu, chỉ cho phép lưu lượng được cấu hình rõ ràng.
Hàm management_policy()
Định nghĩa quy tắc truy cập cổng quản lý, chỉ cho phép mạng quản lý được chỉ định truy cập giao diện quản lý gateway qua giao thức SSH, HTTPS, hạn chế truy cập quản lý trái phép, đảm bảo an toàn cho gateway.
Hàm localhost_policy()
Cho phép lưu lượng cổng loopback lo, đảm bảo dịch vụ địa phương của gateway hoạt động bình thường.
Chạy lệnh sau để xem bảng quy tắc đã hoạt động, xác minh chính sách mặc định và cấu hình quy tắc:
iptables -t filter -L | less
Kết quả chạy lệnh cho thấy chính sách mặc định của các chuỗi INPUT, FORWARD, OUTPUT đều là DROP, chỉ cho phép lưu lượng mạng quản lý SSH, HTTPS, và lưu lượng kết nối TCP đã thiết lập; lưu lượng đầu vào từ mạng máy nhện được ghi nhật ký và quản lý chuyển tiếp chi tiết, đáp ứng nhu cầu kiểm soát lưu lượng của gateway mật mạng.
2.4.3 Phân tích quy tắc cấu hình IDS/IPS
Phân tích tham số chạy Snort IDS
Chạy lệnh sau để xem tệp khởi động Snort, thu thập tham số chạy chính:
vim /etc/rc.d/init.d/snortd
Trong script định nghĩa các tham số khởi động chính của Snort: mặc định theo dõi giao diện eth0, tải tập quy tắc phát hiện từ /etc/snort/snort.conf, chạy ở chế độ tiến trình nền, xuất nhật ký cảnh báo đến thư mục xác định, thực hiện phát hiện xâm nhập thời gian thực cho lưu lượng mật mạng.
Phân tích tham số chạy Snort_inline IPS
Chạy lệnh sau để xem script khởi động Snort_inline, phân tích cơ chế phòng thủ:
vim /etc/init.d/hw-snort_inline
Trong script định nghĩa các tham số khởi động chính của Snort_inline: chạy ở chế độ tiến trình nền -D, tải tệp cấu hình -c, mở chế độ QUEUE -Q, liên động với iptables để thực hiện chặn lưu lượng thời gian thực. Trong chế độ này, Snort_inline không chỉ phát hiện tấn công mà còn trực tiếp loại bỏ gói tin độc hại, chặn kết nối tấn công, thực hiện chức năng phòng thủ xâm nhập.
Xem trạng thái tự khởi động dịch vụ
Chạy lệnh sau để xem cấu hình tự khởi động của dịch vụ tường lửa và IDS/IPS:
chkconfig --list | grep iptables
chkconfig --list | grep snort
Kết quả chạy lệnh cho thấy: dịch vụ iptables và hw-snort_inline ở các cấp độ 2/3/4/5 đều là on, khởi động tự động khi bật máy; dịch vụ snortd mặc định tắt, khởi động thủ công khi cần. Điều này cho thấy gateway mật mạng mặc định bật tường lửa và chức năng phòng thủ xâm nhập, đảm bảo môi trường mật mạng được bảo vệ liên tục.
Xem cấu hình cập nhật quy tắc
Chạy lệnh sau để xem tệp cấu hình toàn cục của gateway mật mạng, xác minh chiến lược cập nhật quy tắc Snort:
vim /etc/honeywall.conf
Trong tệp cấu hình hiển thị, quy tắc phát hiện Snort mặc định đóng cập nhật tự động, có thể cấu hình thủ công máy chủ cập nhật và chu kỳ cập nhật, đồng thời định nghĩa các cấu hình chính như mạng máy nhện, danh sách trắng cổng quản lý, danh sách trắng máy chủ DNS, cung cấp tham số cấu hình cơ bản cho tường lửa và IDS/IPS.
III. Vấn đề gặp phải trong quá trình học
Vấn đề 1: Không tìm thấy tệp pcap trong tài liệu bài tập năm 5 trên học thông
Giải pháp: Tệp này sử dụng cùng một tệp như trước, vì vậy không nằm trong thư mục bài tập năm 5. Nếu chưa xóa, vẫn còn trên desktop.
IV. Kết luận thực hành
Gateway mật mạng thông qua sự phối hợp giữa tường lửa và IDS/IPS đã hoàn thành yêu cầu cốt lõi về thu thập dữ liệu tấn công và kiểm soát hành vi tấn công, logic cụ thể như sau:
- Hướng dẫn lưu lượng và kiểm soát truy cập: Thông qua quy tắc chuyển đổi địa chỉ và chuyển tiếp của tường lửa, dẫn lưu lượng của kẻ tấn công chính xác đến máy nhện, đồng thời thông qua danh sách đen/trắng, chính sách từ chối mặc định, lọc lưu lượng bất hợp pháp, chỉ giữ lại lưu lượng liên quan đến tấn công vào mật mạng, đảm bảo tính kiểm soát của môi trường mật mạng.
- Thu thập toàn bộ dữ liệu tấn công: Thông qua quy tắc ghi nhật ký của tường lửa, ghi lại toàn bộ lưu lượng ra vào mật mạng; đồng thời Snort IDS phân tích sâu lưu lượng, ghi lại thông tin toàn diện như IP nguồn tấn công, loại tấn công, tải trọng tấn công, thời gian tấn công, v.v., thực hiện việc thu thập dữ liệu tấn công toàn diện.
- Kiểm soát hành vi tấn công thời gian thực: Snort_inline IPS và tường lửa iptables liên động, chặn lưu lượng tấn công độc hại được phát hiện thời gian thực, hạn chế hành vi xuyên suốt, ngoại liên của máy nhện, ngăn chặn kẻ tấn công sử dụng máy nhện làm điểm phát triển tấn công các mục tiêu khác, thực hiện kiểm soát hành vi tấn công vòng kín.
- Bảo vệ an toàn cho gateway bản thân: Thông qua giới hạn truy cập cổng quản lý, chính sách loopback địa phương, quy tắc từ chối mặc định, thu hẹp tối đa mặt tấn công, đảm bảo gateway mật mạng bản thân không bị tấn công, cung cấp môi trường cơ sở ổn định cho việc thu thập dữ liệu và kiểm soát tấn công.
V. Tài liệu tham khảo
- 《Công nghệ An ninh Mạng và Thực hành》