Mở port trên firewall Linux chính là quá trình cấu hình các quy tắc bảo mật nhằm chấp nhận các kết nối mạng đến một cổng (port) nhất định trên server. Việc này giúp đảm bảo các dịch vụ như HTTP hay SSH có thể hoạt động mà không bị chặn bởi tường lửa hệ thống. Trong bài viết này, mình sẽ cung cấp hướng dẫn chi tiết về cách mở port trên firewall của Linux an toàn và hiệu quả bằng công cụ UFW.
Những điểm chính
- Tìm hiểu về UFW: Biết được UFW là gì và tại sao UFW là công cụ đơn giản, hiệu quả để quản lý tường lửa trên Linux.
- Chuẩn bị môi trường: Nắm được cách kiểm tra và cài đặt UFW, đảm bảo hệ thống sẵn sàng để cấu hình mà không gặp xung đột.
- Quy trình cấu hình cơ bản: Thành thạo các lệnh thiết yếu để kiểm tra trạng thái, kích hoạt UFW, mở cổng đơn lẻ, dải cổng và cho phép truy cập từ một IP,…
- Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các tình huống thực tế như chọn giao thức, xử lý xung đột quy tắc và các lưu ý bảo mật nâng cao.
UFW là gì?
UFW (Uncomplicated Firewall) là một công cụ quản lý tường lửa trên hệ điều hành Linux cung cấp giao diện dòng lệnh đơn giản, giúp người dùng dễ dàng thiết lập và kiểm soát các quy tắc bảo mật mạng mà không cần thao tác phức tạp với iptables. Tác dụng chính của UFW là kiểm soát lưu lượng mạng ra vào máy chủ, bảo vệ các dịch vụ và ngăn truy cập trái phép thông qua việc cho phép (allow) hoặc chặn (deny) các cổng hoặc địa chỉ IP cụ thể.

Cách cài đặt UFW
UFW có sẵn mặc định trên tất cả các phiên bản Ubuntu từ 8.04 LTS trở đi. Để kiểm tra xem UFW đã được cài đặt và hoạt động hay chưa, bạn có thể sử dụng các lệnh sau:
sudo ufw statusHoặc:
which ufwNếu kết quả là Status: inactive nghĩa là tường lửa đang tắt. Còn nếu kết quả là Status: active thì tức là tường lửa đang bật và sẽ hiển thị danh sách các quy tắc hiện có.
Nếu UFW chưa được cài đặt trên hệ thống của bạn (ví dụ như trên Debian), bạn có thể dễ dàng cài đặt bằng trình quản lý gói:
sudo apt install ufw
Lưu ý
Trước khi sử dụng UFW, bạn cần đảm bảo rằng không có ứng dụng quản lý tường lửa nào khác đang hoạt động song song (ví dụ: firewalld trên các hệ thống dựa trên Fedora/RHEL). Việc sử dụng đồng thời hai ứng dụng cùng quản lý iptables có thể gây ra xung đột hệ thống và các hành vi không mong muốn.
Cách mở port trên Firewall Linux bằng UWF
1. Kiểm tra trạng thái UFW
Lệnh dưới đây sẽ cho biết tường lửa đang bật hay tắt (active/inactive) và liệt kê các quy tắc hiện tại:
sudo ufw status
Nếu muốn xem thông tin chi tiết hơn, bạn dùng lệnh sau đây:
sudo ufw status verboseĐầu ra của lệnh sẽ hiển thị các quy tắc (mở/đóng cổng, giao thức), trạng thái logging,…
2. Kích hoạt tường lửa UFW
Để kích hoạt tường lửa UFW trên hệ điều hành Linux hoặc Ubuntu, bạn thực hiện lệnh sau:
sudo ufw enableSau khi thực hiện lệnh này, UFW sẽ bắt đầu kiểm soát và lọc lưu lượng truy cập mạng dựa trên các quy tắc bạn đã thiết lập (mở/rào cổng, giới hạn IP,…). Cụ thể, kết quả sẽ hiển thị như sau:

3. Mở cổng trên UFW
Bạn có thể dùng lệnh sau để mở cổng 80 (HTTP) trên firewall UFW:
sudo ufw allow 80/tcpCâu lệnh này sẽ cho phép các bất kì kết nối nối nào kết nối tới server tại cổng 80 tcp, thường dùng khi triển khai web server (Apache, Nginx) để khách truy cập có thể vào website qua địa chỉ IP hoặc tên miền.

4. Mở một dải cổng trên UFW
Giả sử, bạn muốn mở một dải cổng từ 1000 đến 1500 trên firewall UFW để cho phép các kết nối TCP đến các cổng này trên server, hãy chạy lệnh sau:
sudo ufw allow 1000:1500/tcpLệnh này sẽ cho phép các bất kì kết nối nối nào kết nối tới server tại cổng 1000 đến 1500 tcp. Bạn có thể thay đổi dải port hoặc giao thức (tcp/udp) tùy theo yêu cầu thực tế. Kết quả hiển thị sau khi chạy lệnh như sau:

5. Cho phép IP cụ thể truy cập đến server
Để cho phép 1 địa chỉ IP cụ thể (ví dụ như: 14.225.254.186) truy cập vào tất cả các port đã mở trên server thông qua firewall UFW, bạn có thể sử dụng lệnh sau:
sudo ufw allow from 14.225.254.186Kết quả hiển thị sau khi chạy lệnh như sau:

6. Cho phép IP cụ thể đến cổng cụ thể
Ví dụ, bạn cần cho phép địa chỉ IP 14.225.254.186 truy cập vào server qua cổng 22 (SSH) thông qua firewall UFW, hãy chạy lệnh sau:
sudo ufw allow from 14.225.254.186 to any port 22Kết quả hiển thị sau khi chạy lệnh:

Cú pháp này giúp kiểm soát truy cập chặt chẽ, tránh brute force hoặc truy cập trái phép SSH nên đặc biệt hữu ích cho VPS và server độc lập đang chạy dịch vụ SSH.
7. Kiểm tra số thứ tự quy tắc của UFW
Lệnh sudo ufw status numbered dùng để hiển thị danh sách các quy tắc (rules) của UFW kèm theo số thứ tự. Mỗi rule sẽ có một số thứ tự riêng, giúp bạn dễ dàng xác định và thao tác với rule cụ thể:
sudo ufw status numberedKết quả hiển thị như sau:

Quy tắc của UFW được xử lý tuần tự từ trên xuống dưới. Nếu bạn thiết lập một rule chặn toàn bộ truy cập trước, sau đó lại cho phép một IP cụ thể truy cập nhưng rule cho phép đó nằm dưới rule chặn, thì IP này vẫn sẽ bị chặn. Vì vậy, bạn cần cân nhắc và sắp xếp thứ tự các rule sao cho phù hợp với mục đích bảo mật và truy cập hệ thống.
8. Chèn quy tắc trên ufw
Lệnh sau dùng để chèn một quy tắc mở cổng 8080 (TCP) vào đúng vị trí số 1 trong danh sách rule của UFW.
sudo ufw insert 1 allow 8080/tcpQuy tắc này sẽ cho phép truy cập đến cổng 8080 trên server và vị trí nằm ở số 1. Kết quả hiển thị sau khi chạy lệnh trên như sau:

9. Xóa quy tắc trên ufw
Bạn chạy lệnh dưới đây để xóa một rule (quy tắc) cụ thể trong danh sách rule của firewall UFW, dựa theo số thứ tự hiển thị khi bạn kiểm tra bằng lệnh sudo ufw status numbered.
sudo ufw delete [number]Lệnh trên sẽ xóa quy tắc ở vị trị chỉ định, kết quả hiển thị như sau:

10. Reset UFW về mặt định
Lệnh sau dùng để đặt lại toàn bộ cấu hình firewall UFW về trạng thái mặc định ban đầu, bao gồm việc xóa sạch tất cả các quy tắc, cấu hình, hay thiết lập mà bạn đã thêm.
sudo ufw resetKết quả hiển thị như sau:

Câu hỏi thường gặp
Nên sử dụng giao thức TCP hay UDP khi mở port trên UFW?
Web server, SSH, MySQL thường sử dụng TCP; trong khi các ứng dụng streaming, voice chat hay VPN có thể dùng UDP. Việc xác định đúng giao thức giúp firewall chặn/phép đúng luồng dữ liệu cần thiết và tăng hiệu quả bảo mật.
Nếu có nhiều rule cho cùng một port nhưng khác IP, UFW sẽ xử lý như thế nào?
UFW xử lý rule theo thứ tự từ trên xuống. Nếu rule deny nằm trước allow thì truy cập sẽ bị chặn, ngược lại, truy cập được chấp thuận. Vì vậy bạn cần ưu tiên, sắp xếp thứ tự rule đúng mục tiêu kiểm soát truy cập từng IP hoặc subnet.
Có nên mở tất cả các port cho một IP tin cậy không?
Dù IP đó tin cậy, việc mở toàn bộ port vẫn tiềm ẩn rủi ro nếu hệ thống hoặc máy của người dùng bị kiểm soát trái phép. Bạn chỉ nên mở các port thật sự cần thiết, đồng thời duy trì audit và theo dõi truy cập định kỳ.
Hy vọng bài viết này đã giúp bạn hiểu rõ cách mở port trên firewall Linux bằng công cụ UFW. Đây là bước quan trọng để đảm bảo dịch vụ trên máy chủ hoạt động ổn định và bảo mật. Nếu bạn muốn mở rộng hiểu biết về cách điều hành hệ thống qua dòng lệnh, hãy tham khảo các bài viết khác dưới đây:




