Cách kiểm tra các cổng mở trong Linux

Khi đang khắc phục sự cố mạng hoặc tìm cách cải thiện bảo mật cho máy tính Linux, bạn cần biết cổng nào đang mở. Bài viết này sẽ chỉ cho bạn một số cách để kiểm tra cổng mở trong Linux.

Cổng (port) là gì?

Một cổng là một số 16-bit (0-65.535) để giúp xác định một ứng dụng nhất định hoặc tiến trình trên hệ điều hành Linux (Unix). Mỗi một ứng dụng có cổng khác nhau trên hệ thống Linux.

Dưới đây là các loại cổng khác nhau :

  • 0 - 1023 - Được gọi là cổng phổ biến (Well Known Port)
  • 1024 - 49151 – Được gọi là cổng đăng ký (Registered Port)
  • 49152 - 65535 - Được gọi là cổng động (Dynamic Port)

Sử dụng lệnh sau để hiển thị danh sách các ứng dụng và cổng trên Terminal:

cat /etc/services

Danh sách cổng và ứng dụng

TCP: TCP là viết tắt của Transmission Control Protocol. Đây là giao thức được sử dụng phổ biến nhất trên Internet. TCP không chỉ giao tiếp một chiều, thay vào đó nó sẽ gửi các gói trở lại để xác nhận rằng nó nhận được các gói tin của bạn.

UDP: viết tắt của User Datagram Protocol. Nó là một giao thức giao tiếp thay thế cho TCP. Giao thức UDP hoạt động tương tự như TCP. Tuy nhiên, nó bỏ qua tất cả các công cụ kiểm tra lỗi. UDP cần thiết khi muốn tăng tốc mà không quan tâm đến sửa lỗi.

SOCKET: Socket cho phép giao tiếp từ hai tiến trình khác nhau trên cùng một máy hoặc trên các máy khác nhau.

Hãy xem xét các cách khác nhau để liệt kê một cổng mở trong Linux.

1. Lệnh Netstat

Trong phương thức này, chúng ta sẽ sử dụng lệnh netstat -atu để kiểm tra các cổng mở trong Linux.

Sử dụng lệnh netstat -atu

Ở đây chúng ta sử dụng cờ -a, -t và -u cho netstat.

  • -a: hiển thị tất cả các socket
  • -t: hiển thị kết nối TCP
  • -u: hiển thị kết nối UDP

Bạn cũng có thể thêm cờ -p để hiển thị PID của tên chương trình hoặc tiến trình liên quan. 

Hiển thị PID của tên chương trình hoặc tiến trình liên quan

Để chỉ hiển thị các cổng UDP, bạn có thể sử dụng lệnh sau:

netstat -vaun

Sử dụng lệnh netstat -vaun

Ngoài ra, bạn có thể sử dụng lệnh sau để tìm kiếm các cổng TCP:

netstat -vatn

Sử dụng lệnh netstat -vatn

2. Lệnh lsof

Thay vì sử dụng netstat, chúng ta có thể sử dụng lệnh lsof để hiển thị các cổng mở trong Linux:

lsof -i

Sử dụng lệnh lsof -i

Lệnh sau cũng có thể hiển thị các socket mở:

lsof -n -P | grep LISTEN

Sử dụng lệnh lsof -n -P | grep LISTEN

Ngoài ra, bạn có thể sử dụng lệnh dưới đây để liệt kê tất cả các kết nối TCP:

lsof -i tcp

Sử dụng lệnh lsof -i tcp

Bạn có thể sử dụng lệnh sau đây cho các kết nối UDP:

lsof -i udp

3. Lệnh ánh xạ mạng

Trong phương pháp này, chúng ta sẽ sử dụng nmap để phát hiện cổng mở trên hệ thống Linux. Sử dụng lệnh sau để hiển thị các kết nối cổng TCP:

nmap -sT -O localhost

Sử dụng lệnh nmap -sT -O localhost

Cuối cùng, để hiển thị các kết nối cổng UDP, chúng ta có thể sử dụng lệnh sau:

nmap -sU localhost

Sử dụng lệnh nmap -sU localhost

Khi nói đến bảo mật của máy tính Linux, điều đầu tiên cần làm là đóng tất cả các cổng không cần thiết để ngăn chặn truy cập bên ngoài. Với các phương thức được liệt kê ở trên, bạn sẽ có thể dễ dàng kiểm tra các cổng mở trên hệ thống Linux và xác định cổng nào sẽ đóng hoặc mở.

Chúc các bạn thực hiện thành công!

Xem thêm:

Thứ Tư, 11/07/2018 15:27
  • 123