Kiểm tra các port đang mở Ubuntu
Chào các bạn, hẳn khi bạn đang quản lý một server Linux như VPS/Cloud Server hoặc cả 1 con máy chủ vật lý. Thì bạn nghiễm nhiên rất muốn kiểm tra theo dõi xem các cổng kết nối nào trên hệ thống tương ứng dịch vụ chương trình nào đang lắng nghe hoạt động. Vậy “cuongquach.com” sẽ cung cấp cho các bạn 5 cách để kiểm tra port đang mở trên máy chủ Linux như CentOS hay Ubuntu nhé. Show Một số lệnh được sử dụng trong quá trình kiểm tra port đang mở trên Linux :
Kiểm tra file /etc/services File này sẽ quy định việc chuyển đổi thông tin cổng kết nối và giao thức liên quan tương ứng của cổng đó trên hệ thống Linux. Nên nếu khi sử dụng các chương trình lệnh quản lý mạng, mà chương trình không tự map tên giao thức với port thì chứng tỏ không có thông tin port-giao thức được khai báo trong 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 # HTTPX
Contents
1. Sử 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 Hình minh hoạ: + 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 Hình minh hoạ: 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 đó. 2. 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 :::* Hình minh hoạ: + 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 *:* Hình minh hoạ: 3. 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: # 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 Hình minh hoạ: – 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 Hình minh hoạ: Ví dụ 2: # telnet 103.63.213.61 80 Trying 103.63.213.61... Connected to 103.63.213.61. Escape character is '^]'. Hình minh hoạ: – 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 Hình minh hoạ: 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 + Ubuntu # apt-get install -y namp Cấu trúc lệnh “nmap” # 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 Hình minh hoạ: 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ụ. 5. 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 + Mxtoolbox Như vậy là qua bài viết này với 5 cách trên , hy vọng bạn đã có thể tự kiểm tra port đang mở trên máy chủ Linux (CentOS/Ubuntu) của bạn rồi. Nếu có bất cứ vấn đề cần trao đổi thì đừng ngại comment bên dưới để “cuongquach.com” hỗ trợ bạn nhé. |