Kiểm tra port đang mở trên máy chủ Linux

Kiểm tra file /etc/services

Bên cạnh đó cũng cần lưu ý, file này chỉ chứa thông tin khai báo cho các port thông dụng (well-known port) không liên quan đến việc port đó có đang mở, bị khoá hay tình trạng như thế nào trên hệ thống.

cat /etc/services | grep ^http | grep 80

http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
http-mgmt 280/tcp # http-mgmt
http-mgmt 280/udp # http-mgmt
httpx 4180/tcp # HTTPX
httpx 4180/udp # HTTPXSử dụng chương trình lệnh “NETSTAT”
“Netstat” là viết tắt của từ Network Statistic, một chương trình có trên cả hệ điều hành Windows và Linux. Chương trình netstat sẽ giúp bạn thống kê được các thông tin liên quan đến mạng, các kết nối đang thiết lập, các port đang được mở trên hệ thống Linux,… Cũng xin lưu ý là trên các hệ thống Systemd như CentOS 7 hay Ubuntu 16.04 thì chương trình này mặc định không được cài đặt (thường các nhà cung cấp cài sẵn rồi, trừ khi bạn cài tay máy chủ thật).
Sau đây là một số ví dụ của “netstat” giúp kiểm tra các cổng kết nối đang được sử dụng trên Linux.

  • Kiểm tra port TCP đang mở

netstat -ltnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 28302/nginx: maste
tcp 0 0 0.0.0.0:2712 0.0.0.0:* LISTEN 904/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1401/master
tcp 0 0 125.212.218.80:443 0.0.0.0:* LISTEN 28302/nginx: maste
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 4700/mysqld
tcp6 0 0 :::80 :::* LISTEN 28302/nginx: maste
tcp6 0 0 :::21 :::* LISTEN 12736/vsftpd
tcp6 0 0 :::2712 :::* LISTEN 904/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1401/master

  • Kiểm tra port UDP đang mở

netstat -lunp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:161 0.0.0.0:* 25778/snmpd

Với cả 2 output trên dành cho các cổng kết nối TCP và UDP, bạn sẽ thấy cột trạng thái “State” là “LISTEN” và cả tên tiến trình đang hoạt động lắng nghe kết nối trên các port đang được sử dụng đó.Sử dụng chương trình lệnh “SS”
Chương trình lệnh ss có khả năng cung cấp thông tin về network/socket kết nối hay hơn và nhanh hơn nhiều so với công cụ truyền thống ‘netstat‘. Cũng với một vài option đơn giản thì bạn sẽ biết ngay port dịch vụ nào đang được mở trên Linux.

  • Kiểm tra port TCP đang sử dụng

ss -lnt

State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 511 *:80 *:*
LISTEN 0 128 *:2712 *:*
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 511 125.212.218.80:443 :
LISTEN 0 80 127.0.0.1:3306 :
LISTEN 0 511 :::80 :::*
LISTEN 0 32 :::21 :::*
LISTEN 0 128 :::2712 :::*
LISTEN 0 100 ::1:25 :::*

  • Kiểm tra port UDP đang sử dụng

ss -lnu

State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:46951 *:*
UNCONN 0 0 *:68 *:*
UNCONN 0 0 *:161 *:*Sử dụng chương trình lệnh “telnet”


Sử dụng “telnet” để kiểm tra các cổng kết nối có được mở trên máy chủ Linux không là một phương pháp vô cùng phổ biến. Hoạt động của nó là mở một kết nối đến port dịch vụ ta cần kiểm tra, nếu không mở được tức port dịch vụ đó không mở.
Cấu trúc sử dụng “telnet“

telnet [ip máy chủ] [số port]

Ví dụ 1:
– Bạn kiểm tra port SSH (22) của máy chủ remote. Kết quả dưới là có port 22 có mở.

telnet 103.63.213.61 22

Trying 103.63.213.61…
Connected to 103.63.213.61.
Escape character is ‘^]’.
SSH-2.0-OpenSSH_5.3

– Bạn kiểm tra port SSH (22) của máy chủ remote. Kết quả dưới là có port 22 không có mở.

telnet 103.63.213.62 22

Trying 103.63.213.62…
telnet: connect to address 103.63.213.62: Connection timed out

Ví dụ 2:
– Bạn kiểm tra port HTTP (80) của máy chủ remote. Kết quả dưới là có port 80 có mở.

telnet 103.63.213.61 80

Trying 103.63.213.61…
Connected to 103.63.213.61.
Escape character is ‘^]’.

– Bạn kiểm tra port HTTP (80) của máy chủ remote. Kết quả dưới là có port 80 không có mở.

telnet 103.63.213.62 80

Trying 103.63.213.62…
telnet: connect to address 103.63.213.62: Connection timed out

Kiểm tra port đang mở trên máy chủ Linux – Technology Diver

4. Sử dụng chương trình lệnh “nmap”

Nmap là một công cụ dùng cho hoạt động kiểm tra bảo mật hệ thống. Nhiệm vụ chính của nó là quét ra thông tin giúp kiểm tra port đang mở trên một máy chủ. Từ đó có thể xác định các dịch vụ mạng đang được lắng nghe thông qua cổng kết nối được mở trên hệ thống đó.

Bạn cần cài đặt chương trình “nmap” như sau :

+ CentOS# yum install -y nmap

1# yum install -y nmap

+ Ubuntu# apt-get install -y namp

1# apt-get install -y namp

Cấu trúc lệnh “nmap”# nmap [option] [ip may chu]

1# nmap [option] [ip may chu]

Hãy chạy lệnh “nmap” với option như sau để kiểm tra port đang mở trên máy chủ dịch vụ nhé.# nmap 103.63.213.61 Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-20 13:55 +07 Nmap scan report for no-ptr.ehost.vn (103.63.213.61) Host is up (0.0018s latency). Not shown: 984 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 143/tcp open imap 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 2222/tcp open EtherNet/IP-1 8000/tcp closed http-alt 35500/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 27.79 seconds

12345678910111213141516171819202122232425# nmap 103.63.213.61 Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-20 13:55 +07Nmap scan report for no-ptr.ehost.vn (103.63.213.61)Host is up (0.0018s latency).Not shown: 984 filtered portsPORT STATE SERVICE20/tcp closed ftp-data21/tcp open ftp22/tcp open ssh25/tcp open smtp53/tcp open domain80/tcp open http110/tcp open pop3143/tcp open imap443/tcp open https465/tcp open smtps587/tcp open submission993/tcp open imaps995/tcp open pop3s2222/tcp open EtherNet/IP-18000/tcp closed http-alt35500/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 27.79 seconds

Wow, với một lần chạy lệnh thôi mà “nmap” đã giúp bạn xác định được bao nhiêu port đang được mở trên máy chủ dịch vụ.

  1. Sử dụng các website trực tuyến kiểm tra port đang mở
    Đôi khi do lười hoặc không có quyền hạn truy cập hệ thống của 1 website hay 1 VPS thì bạn khó mà kiểm tra được các port nào đang được mở trên hệ thống Linux đó. Thì có thể đơn giản là chỉ cần sử dụng các dịch vụ trung gian giúp quét các port thông dụng được mở trên server Linux đó.
    Sau đây là một số website giúp bạn scan port trực tuyến. Bạn chỉ cần nhập địa chỉ IP hoặc tên miền của máy chủ mà bạn cần quét port:
  • Pentest-tools
    Link : https://pentest-tools.com/network-vulnerability-scanning/tcp-port-scanner-online-nmap
  • Mxtoolbox
    Link : https://mxtoolbox.com/PortScan.aspx

Leave a Reply