Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng & Packet Analysis! Trong 10 bài viết trước, chúng ta đã lột tả mọi góc khuất của các giao thức mạng từ Tầng 1 đến Tầng 7 và phân tích cách hacker thao túng chúng. Giờ là lúc chúng ta chuyển từ thế bị động sang chủ động: Xây dựng các công sự bảo vệ. Hôm nay, chúng ta sẽ bắt đầu với lớp giáp kiên cố nhất của mọi hệ thống: Vành đai Tường lửa (Firewall) và cơ chế ẩn danh nội bộ (NAT).
1. Tường lửa (Firewall) là gì và Vị trí hoạt động
Firewall là một hệ thống bảo mật mạng đóng vai trò như một “màng lọc” khắc nghiệt, kiểm soát toàn bộ lưu lượng dữ liệu đi ra (Outbound) và đi vào (Inbound) giữa mạng nội bộ an toàn và môi trường Internet đầy rẫy hiểm nguy.
Dưới góc độ triển khai, Firewall được chia thành hai loại chính:
- Network Firewall: Thường là thiết bị phần cứng hoặc máy chủ chuyên dụng đặt tại Gateway/Router để bảo vệ cả một mạng doanh nghiệp.
- Host-based Firewall: Chạy trực tiếp trên từng hệ điều hành (như Windows Defender Firewall hoặc
firewalldtrên Linux) để bảo vệ duy nhất chiếc máy tính đó.
Để chặn đứng các mối đe dọa, Firewall có thể hoạt động ở nhiều tầng khác nhau trong mô hình OSI:
- Layer 3 (Network): Lọc dựa trên địa chỉ IP Nguồn/Đích (ví dụ: Chặn IP
157.240.199.35của Facebook). - Layer 4 (Transport): Lọc dựa trên giao thức TCP/UDP và số Cổng (ví dụ: Cấm cổng
22SSH). - Layer 7 (Application): Lọc dựa trên nội dung thực tế của ứng dụng (ví dụ: Chặn các truy vấn DNS độc hại hoặc các HTTP GET mang mã SQL Injection).
2. Nguyên lý hoạt động: ACL, Packet Filtering và Stateful Inspection
Sức mạnh của Firewall nằm ở một danh sách các quy tắc được định nghĩa từ trước gọi là ACL (Access Control List). Khi một gói tin bay tới, Firewall sẽ áp dụng các cơ chế kiểm tra sau:
2.1 Lọc gói tin (Packet Filtering)
Firewall sẽ “soi” trực tiếp vào các lớp vỏ Header (Lớp 3 và Lớp 4) mà chúng ta đã phân tích trên Wireshark ở các bài trước. Nó kiểm tra xem địa chỉ IP và Port này có nằm trong danh sách đen (Blacklist) hay không.
2.2 Kiểm tra trạng thái (Stateful Inspection)
Những thế hệ Firewall thông minh không chỉ soi từng gói tin rời rạc, mà nó còn “nhớ” trạng thái của cả một cuộc hội thoại. Ví dụ: Nếu nó nhớ rằng máy tính của bạn vừa gửi một gói SYN ngỏ lời ra ngoài, nó sẽ tự động cho phép gói SYN-ACK phản hồi từ Server đi xuyên qua tường lửa để trở về máy bạn.
2.3 Phán quyết (Actions)
Sau khi đối chiếu ACL, Firewall sẽ đưa ra một trong ba phán quyết đối với gói tin:
- Allow / Accept: Cho phép gói tin đi qua bình thường.
- Deny / Drop: Tiêu hủy gói tin trong im lặng. Kẻ gửi sẽ không biết gói tin đi đâu, dẫn đến việc Wireshark liên tục báo lỗi
TCP Retransmissiondo chờ mãi không thấy phản hồi. - Reject: Hủy gói tin nhưng lịch sự gửi lại một thông báo lỗi (thường là gói tin ICMP) báo cho kẻ gửi biết rằng “Cửa đã bị khóa”.
3. Thực chiến Firewall và Bắt bệnh trên Wireshark
Để minh họa sự khác biệt của phán quyết, chúng ta dùng firewalld trên Linux để chặn cổng 22 (SSH) bằng cơ chế REJECT và xem hệ thống phản ứng ra sao.
# Kiểm tra danh sách các luật (rules) đang hoạt động trên Firewall
sudo firewall-cmd --list-all
# Thêm một Rich Rule để từ chối mọi kết nối TCP vào cổng 22
sudo firewall-cmd --add-rich-rule='rule family="ipv4" port port="22" protocol="tcp" reject'
# Reload để Tường lửa áp dụng luật mới ngay lập tức
sudo firewall-cmd --reload
Lúc này, nếu có kẻ cố tình truy cập vào cổng 22 của máy bạn (192.168.1.29), Wireshark sẽ không hiện lỗi gửi lại (Retransmission) mà sẽ chộp được ngay một gói tin phản hồi chí mạng ở Lớp 3:
# Gói tin ICMP trả về khi Firewall áp dụng cơ chế REJECT
# Hệ thống trực tiếp đóng sập cửa và thông báo "Host unreachable"
No. Time Source Destination Protocol Info
5 2.204045407 192.168.1.29 192.168.1.29 ICMP Destination unreachable (Host unreachable)
Góc nhìn SOC: Thông điệp
Destination unreachable (Host unreachable)của ICMP chính là cách Firewall “trả lời” kẻ tấn công. Trong thực tế, Blue Team thường ưu tiên dùng quy tắc DROP thay vì REJECT. Việc Drop (hủy trong im lặng) sẽ làm công cụ quét mạng (Scanner) của hacker bị treo và chậm đi đáng kể do phải đợi Timeout, đồng thời không cung cấp cho chúng bất kỳ manh mối nào về việc hệ thống có Firewall hay không.
4. NAT (Network Address Translation): Người hùng giấu mặt
Firewall chặn đứng các cuộc tấn công từ bên ngoài, nhưng còn một kỹ thuật khác giúp hệ thống nội bộ trở nên vô hình trên Internet: NAT. NAT hoạt động chủ yếu ở Tầng 3 và Tầng 4, với nhiệm vụ thay đổi địa chỉ IP trong gói tin khi nó đi qua Router.
Hãy xem quá trình gói tin đi từ máy tính của bạn (IP nội bộ 192.168.1.29) ra máy chủ Facebook (157.240.199.35):
- Gói tin đi ra (Outbound): Máy bạn gửi gói tin từ địa chỉ
192.168.1.29:56375tới157.240.199.35:443. - Tại Router (Quá trình dịch): Router không thể đẩy dải IP
192.168.x.xra Internet vì đây là dải địa chỉ Private không được định tuyến. NAT sẽ “xóa” IP nguồn này và thay bằng IP Public của công ty (ví dụ:113.161.x.x). Đồng thời, nó ghi vào NAT Table một dòng: “Port56375của máy nội bộ.29đang được gán cho kết nối Facebook”. - Gói tin đi về (Inbound): Facebook phản hồi lại địa chỉ Public
113.161.x.x:56375. Router nhận gói tin, dò lại NAT Table, thấy khớp Port nên tự động “dịch” ngược lại IP đích thành192.168.1.29và đẩy vào máy bạn.
Nhờ NAT, dù công ty bạn có hàng nghìn nhân viên, tất cả chỉ cần dùng chung một vài địa chỉ IP Public để lướt web. Hacker đứng ngoài Internet sẽ không thể nào biết được kiến trúc địa chỉ IP thực sự bên trong mạng nội bộ của bạn.
Việc triển khai vững chắc Firewall và NAT giúp che giấu và bảo vệ hạ tầng mạng của tổ chức khỏi 90% các cuộc rà quét tự động của tin tặc. Tuy nhiên, Firewall chỉ có thể soi được lớp vỏ Header, vậy nếu hacker nhét một tệp chứa mã độc vào bên trong một gói tin HTTP hợp lệ thì sao? Ở Bài 12 tiếp theo, chúng ta sẽ lắp đặt thêm “con mắt ma thuật” cho mạng lưới: Phân tích sự khác biệt giữa IDS (Giám sát thụ động) và IPS (Ngăn chặn chủ động) với công cụ Suricata. Đừng bỏ lỡ nhé!