Cách xem Port đang ở trạng thái Listening trong Linux
Trong bài này mình sẽ hướng dẫn các bạn 4 cách xem port nào đang ở trạng thái listening trong Linux Server, giúp bạn kiểm soát được các dịch vụ trên Server để đảm bảo an toàn hơn.
Trên server, mỗi port sẽ có 4 trạng thái gồm: open, filtered, closed, và unfiltered. Một port được cho là đang open nếu một ứng dụng nào đó trên máy đang lắng nghe (listening) các connection / package trên port đó.
Nội dung bài viết này mình sẽ giải thích bốn cách để kiểm tra các cổng đang mở, và cũng chỉ cho bạn cách tìm ứng dụng nào đang lắng nghe trên cổng nào trong Linux.
1. Sử dụng Netstat Command
Netstat là một công cụ được sử dụng thường xuyên để truy vấn thông tin về hệ thống Linux Network. Bạn có thể sử dụng nó để tìm tất cả các cổng đang mở như sau:
Bài viết này được đăng tại [free tuts .net]
$ sudo netstat -ltup
Trong đó:
-l
để yêu cầu liệt kê tất cả các listening sockets.-t
hiển thị tất cả TCP connection-u
hiển thị UDP connection-p
để in tên của ứng dụng đang lắng nghê trên port.
Để in thông tin là cá số (địa chỉ IP) thì ta sử dụng lệnh sau.
$ sudo netstat -lntup
Ngoài ra, bạn cũng có thể sử dụng lệnh grep để xem ứng dụng nào đang nghe trên một port như sau:
$ sudo netstat -lntup | grep "nginx"
Bạn cũng có thể chỉ định rõ là cần tìm trên cổng nào như sau.
$ sudo netstat -lntup | grep ":80"
2. Sử dụng ss Command
Lệnh ss là một công cụ hữu ích khác để hiển thị thông tin về sockets.
Lệnh sau sẽ hiển thị tất cả các listening port cho các connect TCP và UDP ở dạng số.
$ sudo ss -lntu
3. Sử dụng Nmap Command
Nmap là một công cụ dùng để quét các network và port rất mạnh mẽ và phổ biến. Để cài đặt nmap thì hãy sử dụng các ứng dụng trình quản lý package mặc định sau:
$ sudo apt install nmap [On Debian/Ubuntu] $ sudo yum install nmap [On CentOS/RHEL] $ sudo dnf install nmap [On Fedora 22+]
Để quét tất cả open/listening ports trong hệ thống Linux thì hãy chạy lệnh sau (có thể mất nhiều thời gian để hoàn thành).
$ sudo nmap -n -PN -sT -sU -p- localhost
4. Sử dụng lsof Command
Công cụ cuối cùng mình muốn giới thiệu đến các bạn đó là lsof, đây là công cụ command line được sử dụng để liệt kê các file đang mở trong Linux. Vì mọi thứ đều là tệp trong Unix / Linux, tệp đang mở có thể là một luồng hoặc tệp mạng.
Vì mọi thứ trong Unix / Linux đều được xem là file, và file đang open tức là nó đang được mở stream hoặc một network file.
Để liệt kê tất cả các Internet và Network file thì hãy sử dụng tùy chọn -i
. Lưu ý rằng lệnh này hiển thị kết hợp tên dịch vụ và port.
$ sudo lsof -i
Để tìm ứng dụng nào đang nghe trên một cổng cụ thể, hãy chạy lsof trong ví dụ này:
$ sudo lsof -i :80
Trên là 4 cách để xem cổng nào đang ở trạng thái listening trên Linux Server. Bạn có thể sử dụng các cách này để quản lý VPS / Server, bật / tắt những cổng không cần thiết giúp hệ thống được an toàn hơn.