Cấu hình UFW trên Ubuntu VPS: Hướng dẫn từ A đến Z
Tìm hiểu cách cấu hình UFW Ubuntu để kiểm soát kết nối đến máy chủ, thiết lập quy tắc tường lửa cơ bản và mở cổng an toàn trên VPS.
- 8 phút đọc
- 2 lượt xem

CÔNG TY TNHH CÔNG NGHỆ INUX
Tìm hiểu cách cấu hình UFW Ubuntu để kiểm soát kết nối đến máy chủ, thiết lập quy tắc tường lửa cơ bản và mở cổng an toàn trên VPS.

Hướng dẫn cài PostgreSQL trên Ubuntu VPS, tạo người dùng và cơ sở dữ liệu đầu tiên, sau đó kiểm tra kết nối an toàn bằng dòng lệnh.
Khởi tạo tự động ngay sau khi thanh toán, chuyển khoản bằng mã QR, bật tắt và cài lại máy chủ trong trang quản lý.
UFW (Uncomplicated Firewall) là công cụ giúp quản lý tường lửa trên Ubuntu bằng các lệnh dễ nhớ. Bạn có thể dùng UFW để kiểm soát kết nối đến máy chủ, chỉ cho phép dịch vụ cần thiết và hạn chế những truy cập không mong muốn. Đây là bước quan trọng khi vận hành tường lửa VPS, nhất là máy chủ chạy website, ứng dụng hoặc dịch vụ từ xa.
Trong bài viết này, VibeVPS hướng dẫn cách cấu hình UFW Ubuntu theo các bước cơ bản: chuẩn bị quyền truy cập, thiết lập chính sách mặc định, mở cổng UFW, kiểm tra và điều chỉnh quy tắc. Hãy thực hiện lần lượt để tránh tự khóa kết nối SSH hoặc làm gián đoạn dịch vụ đang hoạt động.

UFW là giao diện quản lý tường lửa đơn giản dành cho Ubuntu. Thay vì phải thao tác trực tiếp với các quy tắc mạng phức tạp, quản trị viên có thể dùng những câu lệnh như ufw allow để cho phép kết nối hoặc ufw deny để từ chối kết nối. UFW thường được quản lý bằng sudo vì việc thay đổi tường lửa cần quyền quản trị hệ thống.
Tường lửa giúp lọc lưu lượng mạng theo các quy tắc đã cấu hình. Với máy chủ web, chẳng hạn, bạn thường cần cho phép kết nối đến cổng SSH để quản trị và cổng web để khách truy cập website. Các cổng không cần thiết có thể được giữ ở trạng thái chặn. Cấu hình phù hợp giúp giảm bề mặt truy cập, nhưng không thay thế cho việc cập nhật hệ điều hành, dùng mật khẩu mạnh hoặc bảo vệ ứng dụng.
Trước khi bắt đầu, hãy xác định:
Đăng nhập VPS bằng tài khoản có quyền sudo, sau đó kiểm tra trạng thái UFW:
sudo ufw statusNếu hệ thống chưa có UFW, cài đặt bằng trình quản lý gói:
sudo apt update
sudo apt install ufwTrước khi bật tường lửa, hãy cho phép cổng SSH đang sử dụng. SSH mặc định thường dùng cổng 22, nhưng máy chủ của bạn có thể đã được cấu hình cổng khác. Nếu SSH đang dùng cổng 22, chạy:
sudo ufw allow 22/tcpNếu SSH dùng cổng khác, thay 22 bằng số cổng thực tế. Có thể kiểm tra cấu hình SSH trong tệp /etc/ssh/sshd_config hoặc xác nhận với quản trị viên. Đừng bật UFW khi chưa chắc quy tắc SSH phù hợp: nếu cổng đăng nhập bị chặn, phiên kết nối mới có thể không vào được VPS.
Nếu bạn đang kết nối qua SSH, hãy giữ nguyên phiên hiện tại trong lúc cấu hình và thử đăng nhập bằng một phiên mới sau khi bật tường lửa. Cách này giúp phát hiện sớm lỗi mà không làm mất đường truy cập đang có.

Một cấu hình cơ bản thường chặn kết nối đến không được cho phép và cho phép kết nối đi từ máy chủ. Thiết lập các chính sách mặc định bằng lệnh:
sudo ufw default deny incoming
sudo ufw default allow outgoingdeny incoming từ chối kết nối đến nếu chưa có quy tắc cho phép tương ứng. allow outgoing cho phép VPS chủ động kết nối ra ngoài, chẳng hạn tải bản cập nhật hoặc truy vấn dịch vụ bên ngoài. Đây là cấu hình phổ biến cho máy chủ thông thường, nhưng cần điều chỉnh nếu hệ thống của bạn có yêu cầu mạng đặc biệt.
Sau khi đã cho phép SSH và những dịch vụ cần thiết, bật UFW:
sudo ufw enableUFW có thể hiển thị cảnh báo về kết nối SSH. Nếu bạn đã thêm đúng quy tắc cho cổng quản trị, xác nhận để tiếp tục. Kiểm tra lại trạng thái cùng các quy tắc đang áp dụng:
sudo ufw status verboseKhi UFW hoạt động, cấu hình sẽ được áp dụng tự động sau khi khởi động lại hệ thống. Nếu muốn tắt tường lửa để xử lý sự cố, dùng sudo ufw disable; tuy nhiên, không nên để máy chủ hoạt động lâu dài mà thiếu các biện pháp kiểm soát truy cập phù hợp.

Để cho phép lưu lượng đến một cổng cụ thể, sử dụng cú pháp:
sudo ufw allow <cổng>/<giao_thức>Ví dụ, để mở cổng 80 và 443 cho website sử dụng HTTP và HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpNếu dịch vụ cần giao thức TCP, hãy ghi rõ /tcp. Với dịch vụ dùng UDP, thay bằng /udp. Chỉ mở đúng cổng và giao thức mà ứng dụng cần; không nên cho phép mọi lưu lượng chỉ để xử lý nhanh một lỗi kết nối.
UFW cũng có thể dùng tên ứng dụng được định nghĩa trong hồ sơ của hệ thống. Liệt kê các hồ sơ hiện có bằng lệnh:
sudo ufw app listXem thông tin cổng mà một hồ sơ sử dụng:
sudo ufw app info 'OpenSSH'Nếu hồ sơ phù hợp, có thể cho phép ứng dụng bằng tên, chẳng hạn:
sudo ufw allow 'OpenSSH'Tên hồ sơ tùy thuộc gói phần mềm đã cài. Hãy kiểm tra danh sách và thông tin trước khi áp dụng, thay vì đoán tên ứng dụng hoặc cổng.
Trong một số trường hợp, bạn chỉ muốn cho phép một địa chỉ IP quản trị truy cập SSH. Có thể tạo quy tắc giới hạn như sau:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcpThay 203.0.113.10 bằng địa chỉ IP thực tế được phép truy cập. Nếu IP quản trị thay đổi, hãy cập nhật quy tắc để tránh mất quyền truy cập. Địa chỉ 203.0.113.10 trong ví dụ chỉ dùng minh họa, không phải IP để áp dụng nguyên trạng.
Sau khi mở cổng UFW, kiểm tra danh sách quy tắc:
sudo ufw status numberedLệnh này hiển thị các quy tắc kèm số thứ tự, thuận tiện khi cần xóa. Ví dụ, để xóa quy tắc số 3, chạy:
sudo ufw delete 3Hãy kiểm tra danh sách hiện tại trước khi xóa vì số thứ tự có thể thay đổi sau mỗi lần thêm hoặc gỡ quy tắc. Bạn cũng có thể xóa quy tắc theo nội dung, chẳng hạn:
sudo ufw delete allow 80/tcpĐể kiểm tra trạng thái chi tiết, gồm chính sách mặc định và ghi nhật ký:
sudo ufw status verboseNếu vừa thay đổi quy tắc và cần nạp lại cấu hình, có thể dùng:
sudo ufw reloadTrong nhiều trường hợp, lệnh thêm hoặc xóa quy tắc sẽ được áp dụng ngay. Sau khi thay đổi, hãy thử truy cập dịch vụ từ một kết nối bên ngoài VPS, đồng thời kiểm tra trạng thái dịch vụ trên máy chủ. Tường lửa chỉ xử lý lưu lượng mạng; ứng dụng vẫn cần đang chạy và lắng nghe trên đúng địa chỉ, cổng.
Không mở tất cả cổng để thử nghiệm. Quy tắc cho phép toàn bộ lưu lượng có thể khiến các dịch vụ quản trị hoặc ứng dụng nội bộ bị lộ ra Internet. Hãy xác định nhu cầu thực tế và chỉ tạo ngoại lệ cần thiết.
Cẩn trọng với IPv6. Nếu VPS sử dụng IPv6, hãy kiểm tra cấu hình UFW và các quy tắc có áp dụng cho IPv6 hay không. Có thể xem thiết lập trong /etc/default/ufw, với mục IPV6. Sau khi thay đổi cấu hình, nạp lại tường lửa và xác minh lại trạng thái. Không nên cho rằng IPv4 đã được bảo vệ thì IPv6 cũng tự động có quy tắc như mong muốn.
Phân biệt tường lửa hệ điều hành và tường lửa bên ngoài. Một số môi trường có thêm lớp lọc mạng ở cấp hạ tầng hoặc bảng điều khiển. Khi cổng đã được cho phép trong UFW nhưng vẫn không kết nối được, hãy kiểm tra cả dịch vụ, địa chỉ IP, cấu hình mạng và chính sách lọc bên ngoài nếu có.
Ghi lại thay đổi. Với máy chủ phục vụ ứng dụng, lưu danh sách cổng cần thiết và lý do mở cổng sẽ giúp việc bảo trì an toàn hơn. Trước khi triển khai thay đổi lớn, nên chuẩn bị cách khôi phục truy cập và xác minh cấu hình trong thời gian có thể xử lý sự cố.
Cấu hình UFW Ubuntu giúp bạn kiểm soát kết nối đến VPS bằng những quy tắc tương đối dễ quản lý. Hãy bắt đầu bằng việc bảo đảm SSH được cho phép, đặt chính sách mặc định phù hợp, rồi chỉ mở các cổng mà dịch vụ thực sự cần. Cuối cùng, kiểm tra trạng thái và thử kết nối để xác nhận cấu hình hoạt động đúng.
Nếu đang triển khai website hoặc ứng dụng cần môi trường máy chủ riêng, bạn có thể tham khảo các gói VPS AMD EPYC Gen 3 hoặc VPS Platinum Gen 2 của VibeVPS, hiện có các gói từ 81.000đ/tháng. Hãy lựa chọn tài nguyên phù hợp với nhu cầu và tiếp tục quản lý tường lửa cẩn thận để máy chủ vận hành an toàn.
Hướng dẫn thiết lập GitHub Actions để kiểm tra mã nguồn và tự động cập nhật ứng dụng trên VPS mỗi khi có thay đổi trên nhánh chính. Có ví dụ workflow, cách cấu hình SSH và lưu ý bảo mật.
Hướng dẫn cài WireGuard trên VPS Ubuntu, cấu hình đường hầm VPN và kết nối máy tính hoặc điện thoại. Có hướng dẫn mở cổng, kiểm tra kết nối và xử lý lỗi thường gặp.