Sử dụng công cụ rà quét cổng mạng Nmap hiệu quả
Nmap là công cụ mã nguồn mở dùng để phát hiện thiết bị trên mạng, liệt kê cổng đang mở và nhận diện dịch vụ chạy phía sau. Dùng Nmap hiệu quả nghĩa là quét đúng phạm vi bạn được phép, chọn kiểu quét phù hợp mục tiêu (khám phá máy, quét cổng, nhận diện phiên bản), đọc đúng ý nghĩa trạng thái cổng, lưu kết quả để so sánh theo thời gian và biến phát hiện thành hành động: đóng cổng thừa, cập nhật dịch vụ cũ, siết tường lửa.
Lưu ý quan trọng: chỉ quét hệ thống bạn sở hữu hoặc được ủy quyền bằng văn bản. Quét hệ thống của người khác mà không được phép có thể vi phạm pháp luật và điều khoản dịch vụ của nhà cung cấp mạng.
Nmap dùng để làm gì trong công việc phòng thủ
- Kiểm kê tài sản: có bao nhiêu thiết bị đang hoạt động trong mạng, có thiết bị lạ không.
- Xác minh tường lửa: cổng nào thật sự mở nhìn từ Internet, có khớp với chính sách không.
- Phát hiện dịch vụ lỗi thời: phiên bản máy chủ web, SSH, cơ sở dữ liệu đang chạy.
- Theo dõi thay đổi: so sánh kết quả hôm nay với tuần trước để phát hiện cổng mới mở.
- Hỗ trợ rà soát lỗ hổng: bước đầu của quy trình trong bài các bước rà soát lỗ hổng bảo mật.
Trạng thái cổng: đọc cho đúng
| Trạng thái | Ý nghĩa |
|---|---|
| open | Có dịch vụ đang nhận kết nối trên cổng này |
| closed | Máy phản hồi nhưng không có dịch vụ lắng nghe |
| filtered | Không nhận được phản hồi rõ ràng, thường do tường lửa chặn |
| unfiltered | Cổng truy cập được nhưng không xác định mở hay đóng (gặp với một số kiểu quét) |
| open|filtered, closed|filtered | Nmap không phân biệt được giữa hai trạng thái |
Từ góc độ phòng thủ, cổng "filtered" từ Internet thường là điều bạn mong muốn với các dịch vụ nội bộ; cổng "open" cần có lý do kinh doanh rõ ràng.
Các kiểu quét thường dùng
Khám phá máy đang hoạt động
Tùy chọn -sn chỉ kiểm tra máy nào đang bật mà không quét cổng. Hữu ích để kiểm kê nhanh một dải mạng nội bộ, ví dụ tìm thiết bị lạ cắm vào mạng văn phòng.
Quét TCP SYN
Tùy chọn -sS là kiểu quét mặc định khi chạy với quyền quản trị: gửi gói SYN, xem phản hồi, không hoàn tất kết nối. Nhanh và phổ biến cho kiểm kê cổng TCP.
Quét TCP connect
Tùy chọn -sT hoàn tất kết nối TCP đầy đủ, dùng khi không có quyền quản trị. Chậm hơn và để lại nhiều dấu vết trong log dịch vụ.
Quét UDP
Tùy chọn -sU quét cổng UDP như DNS, SNMP, NTP. Thường chậm và kết quả nhiều "open|filtered", nhưng không nên bỏ qua vì dịch vụ UDP cấu hình sai là nguồn rủi ro thực tế.
Nhận diện dịch vụ và phiên bản
Tùy chọn -sV gửi thêm thăm dò để xác định phần mềm và phiên bản. Đây là thông tin quý nhất cho việc vá lỗi: biết máy nào còn chạy phiên bản cũ.
Chọn phạm vi cổng và tốc độ
- Mặc định Nmap quét khoảng 1.000 cổng TCP phổ biến. Dùng -p- để quét toàn bộ 65.535 cổng khi kiểm kê kỹ.
- Tùy chọn --top-ports cho phép quét số cổng phổ biến nhất bạn chọn.
- Mẫu thời gian -T0 đến -T5 điều chỉnh tốc độ; với hệ thống sản xuất nhạy cảm, nên dùng tốc độ vừa phải và quét ngoài giờ cao điểm.
Nmap Scripting Engine (NSE)
NSE là bộ script mở rộng chức năng: lấy thông tin chứng chỉ TLS, liệt kê thuật toán mã hóa SSH, kiểm tra cấu hình HTTP. Script được chia nhóm như "default", "safe", "discovery", "vuln", "intrusive". Với hệ thống đang chạy thật, chỉ dùng nhóm "default" và "safe" trừ khi có kế hoạch kiểm thử rõ ràng, vì một số script có thể gây ảnh hưởng dịch vụ.
Lưu và so sánh kết quả
Tùy chọn -oA lưu kết quả ở ba định dạng: văn bản thường, XML và dạng dễ grep. Định dạng XML có thể dùng với công cụ so sánh đi kèm Nmap (ndiff) để thấy thay đổi giữa hai lần quét. Lập lịch quét định kỳ các dải IP công khai của tổ chức và cảnh báo khi có cổng mới mở là cách đơn giản để phát hiện dịch vụ "bóng tối" do ai đó tự dựng.
Biến kết quả thành hành động
- Với mỗi cổng mở, xác định dịch vụ, người phụ trách và lý do cần mở.
- Đóng dịch vụ không cần thiết; giới hạn dịch vụ quản trị (SSH, RDP, trang admin) chỉ cho IP được phép hoặc qua VPN.
- Cập nhật dịch vụ có phiên bản lỗi thời.
- Kiểm tra quy tắc tường lửa có khớp với kết quả quét.
- Ghi chép vào tài liệu hạ tầng để lần sau so sánh.
Tường lửa hiện đại có thể làm nhiều hơn chặn cổng: nhận diện ứng dụng, kiểm tra nội dung. Cơ chế này được giải thích trong bài cách tường lửa thế hệ mới hoạt động. Cổng mở bất thường cũng có thể là dấu hiệu xâm nhập, xem bài dấu hiệu hệ thống bị cài backdoor.
Góc nhìn từ phía bị quét
Máy chủ công khai trên Internet bị quét liên tục bởi đủ loại công cụ tự động. Bạn sẽ thấy dấu vết này trong log; đó là chuyện bình thường. Điều quan trọng là khi bị quét, hệ thống chỉ lộ ra những gì bạn chủ động muốn lộ. Cách nhận diện hoạt động quét trong log được trình bày ở bài phân tích log máy chủ.
Lưu ý đạo đức và pháp lý
- Có văn bản cho phép trước khi quét hệ thống không thuộc quyền quản lý trực tiếp của bạn, kể cả trong công ty.
- Báo trước cho đội vận hành để hoạt động quét không bị nhầm là tấn công.
- Một số nhà cung cấp đám mây có chính sách riêng về việc quét tài nguyên; đọc kỹ trước khi thực hiện.
- Muốn luyện tập, dùng phòng lab ảo hoặc máy chủ thử nghiệm công khai mà dự án Nmap cho phép quét.
Câu hỏi thường gặp
Quét cổng có phạm pháp không?
Quét hệ thống của chính bạn hoặc được ủy quyền là hoạt động quản trị bình thường. Quét hệ thống của người khác khi không được phép có thể vi phạm pháp luật và điều khoản dịch vụ, nên luôn cần sự cho phép rõ ràng.
Vì sao kết quả quét từ trong và ngoài mạng khác nhau?
Tường lửa biên, NAT và quy tắc truy cập khiến một dịch vụ mở trong mạng nội bộ nhưng bị chặn từ Internet. Nên quét từ cả hai phía để hiểu đúng bề mặt tấn công.
Nmap có phát hiện được lỗ hổng không?
Nmap chủ yếu phát hiện cổng, dịch vụ và phiên bản. Một số script NSE kiểm tra lỗ hổng đã biết, nhưng để đánh giá lỗ hổng toàn diện cần công cụ quét chuyên dụng và rà soát thủ công.
Quét toàn bộ 65.535 cổng có cần thiết không?
Với kiểm kê định kỳ máy chủ quan trọng thì nên, vì dịch vụ có thể chạy ở cổng không phổ biến. Với quét nhanh hằng ngày, các cổng phổ biến là đủ.
Bài liên quan

Bảo mật API trong môi trường phát triển ứng dụng Web
Các nguyên tắc bảo mật API cho lập trình viên web: xác thực, phân quyền theo đối tượng, kiểm tra đầu vào, giới hạn tần suất, quản lý khóa, nhật ký và kiểm thử.

Bảo mật tệp tin cấu hình nhạy cảm tránh bị lộ lọt
Cách bảo vệ tệp .env, config, khóa API, mật khẩu cơ sở dữ liệu: không đưa vào Git, chặn truy cập web, phân quyền tệp, dùng trình quản lý bí mật và xử lý khi lộ.

Các bước cơ bản để rà soát lỗ hổng bảo mật ứng dụng
Quy trình rà soát lỗ hổng ứng dụng web: xác định phạm vi, lập danh mục tài sản, quét tự động, rà soát mã, kiểm thử thủ công và theo dõi khắc phục.

Các chương trình tìm lỗi nhận thưởng Bug Bounty và lưu ý
Bug Bounty hoạt động thế nào, các dạng chương trình, quy tắc phạm vi và safe harbor, cách viết báo cáo tốt và lưu ý pháp lý cho người mới.