1. Giới thiệu
Đối với nhiều người dùng Ubuntu, việc quản lý các cổng là một khía cạnh quan trọng để duy trì bảo mật hệ thống và hiệu suất mạng. Đặc biệt, kiểm tra các cổng mở là cần thiết để ngăn chặn truy cập trái phép khi chạy dịch vụ hoặc xử lý giao tiếp mạng. Ngoài ra, việc kiểm tra cổng còn giúp khắc phục sự cố và tối ưu cấu hình mạng.
Bài viết này cung cấp giải thích chi tiết về cách kiểm tra các cổng trên Ubuntu và giới thiệu các phương pháp dựa trên lệnh để thực hiện. Dù bạn là người mới bắt đầu hay người dùng Ubuntu trung cấp, thông tin ở đây sẽ rất hữu ích.
2. Cổng là gì?
Số cổng hoạt động như một “cổng vào” cho phép máy tính gửi dữ liệu tới một dịch vụ hoặc tiến trình cụ thể trong quá trình giao tiếp. Giao tiếp mạng chủ yếu sử dụng hai loại giao thức: TCP và UDP. TCP là giao thức có kết nối, thiết lập kết nối trước khi truyền dữ liệu để đảm bảo độ tin cậy. UDP, ngược lại, là giao thức không kết nối, gửi dữ liệu mà không cần thiết lập kết nối, cho phép truyền tải nhanh hơn.
Sự khác biệt giữa TCP và UDP
- TCP (Transmission Control Protocol) : Giao thức được thiết kế cho việc truyền thông tin đáng tin cậy, đảm bảo dữ liệu đến đúng cách. Thường được dùng cho các dịch vụ như máy chủ web (HTTP/HTTPS) và SSH.
- UDP (User Datagram Protocol) : Không đảm bảo truyền thông tin đáng tin cậy như TCP, nhưng cho phép truyền dữ liệu độ trễ thấp. Thường được dùng cho các dịch vụ thời gian thực như streaming và VoIP.
Hiểu rõ các số cổng đóng vai trò quan trọng trong việc quản lý bảo mật và hiệu suất mạng.
3. Danh sách các lệnh để kiểm tra cổng trên Ubuntu
Ubuntu cung cấp một số lệnh để kiểm tra các cổng đang mở. Dưới đây là một số lệnh thường được sử dụng.
1. Lệnh netstat
netstat là một lệnh mạnh mẽ hiển thị thông tin về các kết nối mạng, bảng định tuyến và thống kê giao diện. Bạn có thể dùng lệnh sau để kiểm tra các cổng đang lắng nghe:
sudo netstat -lntu
-l: Chỉ hiển thị các cổng đang lắng nghe-n: Hiển thị địa chỉ IP và số cổng ở dạng số-t: Hiển thị các cổng TCP-u: Hiển thị các cổng UDP
2. Lệnh ss
ss được sử dụng rộng rãi như một sự thay thế cho netstat và có thể hiển thị các cổng đang lắng nghe một cách hiệu quả hơn. Dùng lệnh sau:
ss -lntu
ss được coi là vượt trội hơn netstat nhờ khả năng truy xuất nhanh thông tin chi tiết về các socket mạng.
3. Lệnh lsof
lsof liệt kê các tiến trình đã mở file, và cũng có thể dùng để kiểm tra các tiến trình đang sử dụng cổng mạng:
sudo lsof -i
4. Lệnh nmap
nmap là công cụ nổi tiếng trong bảo mật mạng để quét các cổng mở và xác định dịch vụ. Lệnh sau sẽ quét tất cả các cổng trên localhost:
sudo nmap -n -PN -sT -sU -p- localhost

4. Mở và Đóng Cổng
Bạn có thể tăng cường bảo mật hệ thống Ubuntu bằng cách mở hoặc đóng các cổng. Ubuntu đi kèm với công cụ tường lửa đơn giản gọi là ufw (Uncomplicated Firewall), cho phép quản lý cổng một cách dễ dàng.
Mở Cổng bằng ufw
Ví dụ, để cho phép lưu lượng HTTP trên cổng 80, sử dụng lệnh dưới đây:
sudo ufw allow 80
Bạn cũng có thể mở cổng SSH (22) theo cách tương tự:
sudo ufw allow 22
Đóng Cổng bằng ufw
Để đóng một cổng đang mở, sử dụng lệnh sau:
sudo ufw delete allow 80
Lệnh này sẽ xóa quy tắc cho phép cổng 80.
5. Ví dụ Thực tế: Kiểm tra Cổng Cụ thể
Dưới đây là một ví dụ thực tế về việc kiểm tra một cổng cụ thể. Ví dụ, để xác nhận SSH đang lắng nghe trên cổng 22, dùng lệnh netstat hoặc ss như sau:
ss -lnt | grep :22
Bạn cũng có thể kiểm tra bằng lsof:
sudo lsof -i :22
Kết quả sẽ xác nhận rằng dịch vụ SSH đang lắng nghe trên cổng 22.
6. Các vấn đề thường gặp và giải pháp
Có một số vấn đề phổ biến có thể phát sinh khi kiểm tra hoặc mở cổng. Dưới đây là các vấn đề điển hình và giải pháp của chúng.
Cổng Không Mở
Nếu một cổng dường như không mở, trước tiên hãy xác minh rằng cài đặt tường lửa là chính xác. Để kiểm tra trạng thái của ufw, sử dụng lệnh dưới đây:
sudo ufw status
Nếu tường lửa không chặn cổng, thì hãy xác nhận xem dịch vụ liên quan có đang chạy đúng cách không. Ví dụ, để xác minh hoạt động SSH, sử dụng lệnh này:
sudo systemctl status ssh
7. Kết Luận
Bài viết này đã giải thích các lệnh và phương pháp thiết yếu để kiểm tra cổng trong Ubuntu. Việc kiểm tra cổng rất quan trọng để duy trì an ninh mạng và sự ổn định của hệ thống. Đặc biệt, việc quản lý các cổng đang lắng nghe có thể truy cập từ bên ngoài là rất quan trọng để giảm thiểu lỗ hổng. Hãy làm theo các bước được giới thiệu ở đây để quản lý và bảo mật đúng cách các cổng hệ thống của bạn trong Ubuntu.


