Một cổng (port) là một thực thể logic hoạt động như một đầu cuối giao tiếp liên quan đến một ứng dụng hoặc tiến trình trên hệ điều hành Linux. Trước khi sử dụng chúng, việc biết các cổng nào đang mở và dịch vụ đang chạy trên máy mục tiêu rất hữu ích.
Chúng ta có thể dễ dàng liệt kê các cổng mở trong Linux trên máy cục bộ bằng cách sử dụng lệnh netstat hoặc một số lệnh Linux khác như NMAP.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách xác định xem các cổng trên một máy chủ từ xa có thể tiếp cận/mở bằng lệnh đơn giản netcat (gọi tắt là nc).
Netcat (hoặc nc) là một công cụ mạnh mẽ và dễ sử dụng có thể được sử dụng cho hầu hết mọi thứ liên quan đến TCP, UDP hoặc UNIX-domain socket trên Linux.
# yum install nc [On CentOS/RHEL]
# dnf install nc [On Fedora 22+]
$ sudo apt-get install netcat [On Debian/Ubuntu]
Chúng ta có thể sử dụng nó để: mở kết nối TCP, lắng nghe trên các cổng TCP và UDP tùy ý, gửi gói UDP, quét cổng trong cả IPv4 và IPv6 và nhiều hơn nữa.
Bằng cách sử dụng netcat, bạn có thể kiểm tra xem một hoặc nhiều cổng hoặc một dãy cổng mở như sau. Lệnh dưới đây sẽ giúp chúng ta xem xem cổng 22 có đang mở trên máy chủ 192.168.56.10 hay không:
$ nc -zv 192.168.1.15 22
Trong lệnh trên, các tùy chọn:
-z
- thiết lập nc chỉ quét daemons đang lắng nghe, mà không gửi bất kỳ dữ liệu nào đến chúng.
-v
- bật chế độ verbose (chi tiết).
Lệnh kế tiếp sẽ kiểm tra xem các cổng 80, 22 và 21 có đang mở trên máy chủ từ xa 192.168.5.10 (cũng có thể sử dụng tên máy chủ):
nc -zv 192.168.56.10 80 22 21
Cũng có thể chỉ định một dãy cổng để quét:
$ nc -zv 192.168.56.10 20-80
Đó là tất cả. Trong bài viết này, chúng tôi đã giải thích cách kiểm tra xem cổng trên máy chủ từ xa có thể tiếp cận/mở bằng lệnh netcat đơn giản. Sử dụng phần bình luận bên dưới để gửi ý kiến cho chúng tôi về tip này.