Site icon Cung cấp dịch vụ Cloud VPS, Server, Hosting Việt Nam & Thế giới

Cách Dò Tìm Cổng Mở Bằng Nmap: Từ Cơ Bản Đến Nâng Cao

Cách Dò Tìm Cổng Mở Bằng Nmap: Từ Cơ Bản Đến Nâng Cao

Networking (mạng máy tính) là một chủ đề rộng lớn và đôi khi gây bối rối cho những quản trị viên hệ thống mới. Có vô số tầng, giao thức và giao diện, cùng với rất nhiều công cụ và tiện ích mà bạn cần phải làm chủ để hiểu được chúng.

Trong giao thức TCP/IP và UDP, các cổng (ports) là các điểm cuối logic cho việc giao tiếp. Một địa chỉ IP duy nhất có thể chạy nhiều dịch vụ khác nhau, chẳng hạn như máy chủ web, máy chủ ứng dụng hay máy chủ file. Để mỗi dịch vụ này có thể giao tiếp, chúng đều “lắng nghe” và giao tiếp qua một cổng cụ thể. Khi bạn kết nối tới một máy chủ, bạn đang kết nối tới địa chỉ IP và một cổng nhất định.

Trong nhiều trường hợp, phần mềm bạn sử dụng sẽ tự động chỉ định cổng cho bạn. Ví dụ, khi bạn truy cập vào https://dataonline.vn/, bạn thực sự đang kết nối tới máy chủ dataonline.com qua cổng 443 – cổng mặc định cho lưu lượng web bảo mật. Do đó, trình duyệt của bạn tự động thêm cổng này.

Để quản lý và bảo mật hệ thống mạng hiệu quả, việc sử dụng Nmap là không thể thiếu. Nếu bạn đang tìm kiếm giải pháp tối ưu hóa mạng, hãy khám phá VPS Việt Nam tại DataOnline. Các gói VPS chất lượng cao giúp bạn triển khai hệ thống an toàn và ổn định, đáp ứng mọi nhu cầu.

Trong hướng dẫn này, bạn sẽ khám phá chi tiết về các cổng. Bạn sẽ sử dụng chương trình netstat để xác định các cổng mở, sau đó dùng chương trình nmap để thu thập thông tin về trạng thái của các cổng trên một máy trong mạng. Khi hoàn thành, bạn sẽ có khả năng nhận biết các cổng phổ biến và quét hệ thống của mình để phát hiện các cổng mở.

Lưu ý: Hướng dẫn này tập trung vào bảo mật IPv4. Trên Linux, bảo mật IPv6 được duy trì riêng biệt với IPv4. Ví dụ, lệnh nmap mặc định quét các địa chỉ IPv4 nhưng cũng có thể quét IPv6 nếu bạn truyền đúng tham số (ví dụ: nmap -6).

Nếu VPS của bạn được cấu hình hỗ trợ IPv6, hãy nhớ bảo mật cả giao diện mạng IPv4 và IPv6 với các công cụ thích hợp. Để biết thêm thông tin về công cụ IPv6, hãy tham khảo hướng dẫn: How To Configure Tools to Use IPv6 on a Linux VPS.

Hiểu về các cổng

Có nhiều tầng trong mô hình OSI của mạng. Tầng truyền tải (transport layer) là tầng chủ yếu liên quan đến giao tiếp giữa các dịch vụ và ứng dụng.

Chính tầng này liên quan trực tiếp tới các cổng.

Để hiểu cấu hình cổng, bạn cần nắm một số thuật ngữ sau:

Xác định các Port phổ biến

Các cổng được chỉ định bằng một số từ 1 đến 65535.

Do số lượng cổng có sẵn rất lớn, bạn sẽ không bao giờ phải lo lắng quá nhiều về phần lớn các dịch vụ thường gán kết tới các cổng cụ thể.

Tuy nhiên, có một số cổng đáng lưu ý do tính phổ biến của chúng. Danh sách dưới đây chỉ là một ví dụ không đầy đủ:

Những cổng này chỉ là một vài ví dụ về các dịch vụ thường gắn liền với các cổng. Bạn có thể tìm thấy cổng phù hợp cho từng ứng dụng bạn cần cấu hình trong tài liệu hướng dẫn của chúng.

Hầu hết các dịch vụ có thể được cấu hình sử dụng cổng khác với mặc định, nhưng bạn phải đảm bảo rằng cả phía khách hàng và máy chủ đều được cấu hình sử dụng cổng không chuẩn đó.

Bạn có thể xem danh sách một số cổng phổ biến bằng cách mở file /etc/services:

less /etc/services

File này sẽ hiển thị danh sách các cổng phổ biến và các dịch vụ liên quan:

Output:

. . .
tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
daytime         13/tcp
daytime         13/udp
netstat         15/tcp
qotd            17/tcp          quote
msp             18/tcp                          # message send protocol
. . .

Tùy vào hệ thống của bạn, file này có thể hiển thị nhiều trang. Nhấn phím SPACE để xem trang tiếp theo hoặc phím Q để thoát về prompt.

Lưu ý: Đây không phải là danh sách đầy đủ; bạn sẽ nhận ra điều đó ngay sau vài trang.

Kiểm tra các cổng mở

Có rất nhiều công cụ bạn có thể sử dụng để quét các cổng mở. Một công cụ được cài đặt mặc định trên hầu hết các bản phân phối Linux là netstat.

Bạn có thể nhanh chóng xác định các dịch vụ đang chạy trên hệ thống bằng cách chạy lệnh sau với các tham số thích hợp:

sudo netstat -plunt

Bạn sẽ thấy kết quả như sau:

Output:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      785/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      785/sshd

Kết quả hiển thị cổng và socket đang lắng nghe liên kết với dịch vụ, liệt kê cả giao thức UDP và TCP.

Một công cụ khác mà bạn có thể sử dụng để xác định cổng là nmap.

Sử dụng Nmap

Một phần của việc bảo mật mạng là tiến hành kiểm tra lỗ hổng bảo mật (vulnerability testing). Điều này có nghĩa là bạn cố gắng “xâm nhập” vào mạng của mình để tìm ra các điểm yếu giống như cách mà kẻ tấn công có thể làm.

Trong số các công cụ có sẵn, nmap có lẽ là công cụ phổ biến và mạnh mẽ nhất. Bạn có thể cài đặt nmap trên máy Ubuntu hoặc Debian bằng cách chạy:

sudo apt-get update
sudo apt-get install nmap

Một lợi ích phụ của việc cài đặt phần mềm này là bạn sẽ có được một file ánh xạ cổng (port mapping file) được cải thiện. Bạn có thể xem mối liên hệ chi tiết giữa các cổng và dịch vụ bằng cách mở file sau:

less /usr/share/nmap/nmap-services

Bạn sẽ thấy đầu ra tương tự như sau:

Output:

. . .
tcpmux  1/tcp   0.001995        # TCP Port Service Multiplexer [rfc-1078]
tcpmux  1/udp   0.001236        # TCP Port Service Multiplexer
compressnet     2/tcp   0.000013        # Management Utility
compressnet     2/udp   0.001845        # Management Utility
compressnet     3/tcp   0.001242        # Compression Process
compressnet     3/udp   0.001532        # Compression Process
unknown 4/tcp   0.000477
rje     5/udp   0.000593        # Remote Job Entry
unknown 6/tcp   0.000502
echo    7/tcp   0.004855
echo    7/udp   0.024679
echo    7/sctp  0.000000
. . .

File này có gần 20.000 dòng và chứa thêm các trường thông tin, chẳng hạn như cột thứ ba liệt kê tần suất mở của cổng dựa trên các lần quét trên Internet.

Quét cổng với Nmap

Nmap có thể cung cấp rất nhiều thông tin về một host. Tuy nhiên, nó cũng có thể khiến quản trị viên hệ thống của host bị nghi ngờ có ý đồ xâm nhập. Vì lý do này, chỉ nên thử nghiệm trên các máy chủ của bạn hoặc trong các trường hợp mà bạn đã thông báo cho chủ sở hữu.

Các tác giả của nmap cung cấp một máy chủ kiểm tra tại địa chỉ scanme.nmap.org. Đây, hoặc chính máy chủ của bạn, là mục tiêu tốt để luyện tập với nmap.

Dưới đây là một số thao tác phổ biến với nmap. Chúng ta sẽ chạy các lệnh này với quyền sudo để tránh việc trả về kết quả không đầy đủ đối với một số truy vấn. Một số lệnh có thể mất một khoảng thời gian để hoàn thành:

sudo nmap -O scanme.nmap.org
sudo nmap -PN scanme.nmap.org
sudo nmap -n scanme.nmap.org
sudo nmap -p 80 scanme.nmap.org
sudo nmap -sT scanme.nmap.org
sudo nmap -sU scanme.nmap.org
sudo nmap -n -PN -sT -sU -p- scanme.nmap.org

Một TCP “SYN” scan khai thác cách TCP thiết lập kết nối. Để bắt đầu kết nối TCP, máy gửi yêu cầu sẽ gửi một gói tin “synchronize request” tới máy chủ. Máy chủ sau đó gửi trả về một gói “synchronize acknowledgment”, và cuối cùng, máy gửi ban đầu gửi lại một gói “acknowledgment” để hoàn tất kết nối.

Tuy nhiên, trong một SYN scan, kết nối sẽ bị hủy ngay khi nhận được gói tin đầu tiên từ máy chủ. Đây được gọi là quét “nửa mở” (half-open scan) và trước đây được quảng bá như một cách quét cổng một cách “ẩn” vì ứng dụng liên quan không nhận được lưu lượng do kết nối chưa hoàn thành.

Tuy nhiên, với sự phát triển của các firewall hiện đại và việc theo dõi các yêu cầu SYN không đầy đủ, phương pháp này không còn được xem là “ẩn” nữa.

sudo nmap -sS scanme.nmap.org
sudo nmap -PN -p 80 -sN scanme.nmap.org
sudo nmap -PN -p 80 -sV scanme.nmap.org
sudo nmap -PN xxx.xxx.xxx.xxx-yyy
sudo nmap -sP xxx.xxx.xxx.xxx-yyy

Có rất nhiều tổ hợp lệnh khác nhau mà bạn có thể sử dụng, nhưng những lệnh trên sẽ giúp bạn bắt đầu khám phá các lỗ hổng trong mạng của mình.

Kết luận

Việc hiểu cấu hình cổng và cách phát hiện các điểm tấn công trên máy chủ là một bước quan trọng để bảo mật thông tin và VPS của bạn. Đây là một kỹ năng thiết yếu – biết được các cổng mở và thông tin có thể thu thập từ các dịch vụ chấp nhận kết nối sẽ cung cấp cho bạn thông tin cần thiết để khóa chặt máy chủ. Bất kỳ thông tin thừa nào bị rò rỉ ra ngoài có thể bị kẻ tấn công lợi dụng để khai thác các lỗ hổng đã biết hoặc phát triển những phương thức tấn công mới. Càng ít thông tin cho kẻ tấn công biết, hệ thống của bạn càng an toàn.

Khi quét cổng bằng Nmap, một máy chủ mạnh mẽ là yếu tố then chốt. Hãy cân nhắc thuê máy chủ VPS từ DataOnline để đảm bảo hiệu suất và bảo mật. Với VPS Việt Nam, bạn sẽ có hạ tầng đáng tin cậy, hỗ trợ tối ưu cho các tác vụ quản trị mạng.

Exit mobile version