Để cấu hình tường lửa cho VPS, bạn có thể sử dụng UFW trên Ubuntu/Debian hoặc firewalld trên AlmaLinux/Rocky Linux. Cách thực hiện cơ bản là cho phép các cổng cần thiết như SSH, HTTP, HTTPS, thiết lập quy tắc chặn kết nối không mong muốn, sau đó kích hoạt tường lửa.
Việc cấu hình đúng giúp hạn chế truy cập trái phép và giảm nguy cơ máy chủ bị khai thác qua những dịch vụ không cần thiết. Tuy nhiên, chỉ một thao tác sai cũng có thể khiến bạn mất kết nối SSH. Hãy cùng Tino tìm hiểu cách thực hiện chính xác nhé!
Tường lửa VPS là gì? Tại sao cần cấu hình?
Tường lửa VPS (VPS Firewall) là cơ chế bảo mật giúp kiểm soát lưu lượng mạng đi vào và đi ra khỏi máy chủ ảo dựa trên những quy tắc được thiết lập sẵn.
Bạn có thể hình dung tường lửa giống như một nhân viên bảo vệ tại cổng ra vào của máy chủ. Khi có yêu cầu kết nối, hệ thống sẽ kiểm tra địa chỉ IP, cổng kết nối, giao thức và các điều kiện liên quan để quyết định cho phép hay từ chối lưu lượng.
Ví dụ, một VPS được sử dụng để chạy website thường cần mở cổng 80 (HTTP) và 443 (HTTPS). Trong khi đó, cổng 22 (SSH) dành cho quản trị máy chủ nên được giới hạn quyền truy cập khi có thể.

Việc cấu hình tường lửa mang lại những lợi ích chính:
- Hạn chế truy cập trái phép: Kiểm soát những kết nối được phép đến các dịch vụ trên VPS.
- Giảm bề mặt tấn công: Đóng hoặc hạn chế truy cập các cổng không cần thiết.
- Bảo vệ dịch vụ nội bộ: Giúp hạn chế truy cập trực tiếp vào database, bảng điều khiển quản trị và ứng dụng nội bộ.
- Kiểm soát kết nối: Có thể thiết lập quy tắc theo IP, cổng và giao thức.
- Hỗ trợ quản trị bảo mật: Giúp theo dõi, kiểm tra và điều chỉnh quyền truy cập khi triển khai dịch vụ mới.
Tuy nhiên, cần lưu ý rằng tường lửa không thể thay thế việc cập nhật phần mềm, quản lý mật khẩu, cấu hình SSH an toàn hoặc các biện pháp bảo mật ứng dụng.
Nên sử dụng công cụ tường lửa nào cho VPS?
UFW là lựa chọn phù hợp cho người mới sử dụng VPS Ubuntu hoặc Debian. Đối với AlmaLinux, Rocky Linux và các hệ điều hành thuộc họ RHEL, firewalld thường được sử dụng để quản lý quy tắc mạng.
Dưới đây là bảng so sánh nhanh:
Công cụ Hệ điều hành phù hợp Đặc điểm UFW Ubuntu, Debian Cú pháp đơn giản, dễ quản lý cổng và địa chỉ IP firewalld AlmaLinux, Rocky Linux, RHEL, Fedora Quản lý theo zone, service và port iptables/nftables Linux Hỗ trợ cấu hình chuyên sâu, yêu cầu kiến thức mạng tốt hơn Windows Defender Firewall Windows Server Quản lý qua giao diện hoặc PowerShell
Trong đó:
- UFW (Uncomplicated Firewall): Cung cấp giao diện dòng lệnh đơn giản để quản lý những quy tắc tường lửa trên Linux.
- firewalld: Hỗ trợ quản lý tường lửa theo vùng mạng (zone), cho phép áp dụng chính sách khác nhau cho từng nhóm kết nối.
- iptables/nftables: Là những công cụ quản lý cơ chế lọc gói tin trên Linux, phù hợp hơn với người quản trị có kinh nghiệm.
- Windows Defender Firewall: Là thành phần tường lửa tích hợp trong Windows Server.
Trong phạm vi bài viết, chúng ta sẽ ưu tiên hướng dẫn UFW trên Ubuntu/Debian, sau đó giới thiệu cách thực hiện tương ứng trên AlmaLinux/Rocky Linux và Windows Server.
Cần chuẩn bị gì trước khi cấu hình tường lửa VPS?
Trước khi bắt đầu, bạn cần đảm bảo có quyền quản trị máy chủ và xác định chính xác các cổng đang được sử dụng.
Những yêu cầu cơ bản gồm:
- VPS đang hoạt động và có thể kết nối từ xa.
- Tài khoản root hoặc tài khoản có quyền sudo trên Linux.
- Công cụ SSH như Xshell, PuTTY hoặc Terminal để truy cập VPS Linux.
- Xác định cổng SSH hiện tại, mặc định thường là 22.
- Biết những dịch vụ cần truy cập từ Internet.
- Có phương án truy cập máy chủ qua Console hoặc Rescue Mode của nhà cung cấp nếu xảy ra sự cố.

Lưu ý quan trọng:
- Không kích hoạt chính sách chặn kết nối trước khi cho phép cổng SSH đang sử dụng. Nếu cấu hình sai, bạn có thể mất quyền truy cập VPS từ xa.
- Đối với VPS đang vận hành website hoặc ứng dụng quan trọng, nên sao lưu cấu hình và thực hiện trong thời gian bảo trì phù hợp.
Hướng dẫn cấu hình tường lửa cho VPS Ubuntu/Debian bằng UFW
Để cấu hình Firewall trên Ubuntu hoặc Debian, bạn chỉ cần cài đặt UFW, mở cổng SSH và những cổng dịch vụ cần thiết, thiết lập chính sách mặc định, sau đó bật tường lửa.
Các bước sau áp dụng cho VPS Linux sử dụng trình quản lý gói APT.
Bước 1: Kết nối SSH và kiểm tra trạng thái tường lửa
Trước tiên, mở Xshell, PuTTY hoặc Terminal trên máy tính và đăng nhập vào VPS bằng địa chỉ IP, tài khoản quản trị và thông tin xác thực được cung cấp.
Sau khi kết nối thành công, nhập lệnh:
sudo ufw status verbose
Nếu màn hình hiển thị:
Status: inactive
Điều này có nghĩa UFW hiện chưa được kích hoạt.
Nếu xuất hiện:
Status: active
UFW đang hoạt động. Bạn cần kiểm tra những quy tắc hiện tại trước khi thay đổi để tránh ảnh hưởng đến các dịch vụ đang chạy.
Trường hợp hệ thống báo ufw: command not found, bạn cần cài đặt công cụ ở bước tiếp theo.
Tiếp theo, kiểm tra các cổng TCP đang lắng nghe trên VPS:
sudo ss -lntp
Trong kết quả, hãy xác định cổng SSH đang được sử dụng, chẳng hạn :22 hoặc :2222.

Cần đối chiếu thêm với cổng đang sử dụng trong ứng dụng SSH. Nếu cổng quản trị không phải 22, các lệnh ở những bước tiếp theo phải được điều chỉnh tương ứng.
Bước 2: Cài đặt UFW trên VPS
Nếu VPS chưa được cài đặt UFW, hãy cập nhật danh sách gói phần mềm:
sudo apt update
Sau đó, tiến hành cài đặt:
sudo apt install ufw -y
Khi quá trình cài đặt hoàn tất, kiểm tra lại:
sudo ufw status
Nếu UFW đã được cài đặt thành công, lệnh sẽ hiển thị trạng thái hiện tại của tường lửa.
Bạn chưa cần kích hoạt UFW ở bước này.

Bước 3: Cho phép kết nối SSH
Trước khi bật tường lửa, cần cho phép kết nối đến đúng cổng SSH đang sử dụng. Nếu VPS dùng cổng SSH mặc định là 22, nhập lệnh:
sudo ufw allow 22/tcp
Trong đó:
- allow: Cho phép kết nối.
- 22: Số cổng SSH.
- tcp: Giao thức kết nối.

Nếu trước đó bạn đã chuyển SSH sang cổng 2222, sử dụng:
sudo ufw allow 2222/tcp
Lưu ý: Cổng 2222 chỉ là ví dụ. Không chạy lệnh mở cổng 2222 nếu máy chủ đang sử dụng cổng khác.
Sau khi thêm quy tắc, có thể kiểm tra bằng lệnh:
sudo ufw show added
Lệnh sẽ liệt kê những quy tắc đã được thêm thông qua giao diện UFW, kể cả khi tường lửa chưa được bật.
Bước 4: Thiết lập chính sách tường lửa mặc định
Sau khi cho phép SSH, bạn có thể thiết lập chính sách mặc định để từ chối kết nối đến không được cấp quyền.
Nhập lệnh:
sudo ufw default deny incoming
Lệnh trên thiết lập chính sách từ chối những kết nối mới đi vào VPS nếu không có quy tắc cho phép phù hợp.
Tiếp theo, cho phép lưu lượng đi ra ngoài:
sudo ufw default allow outgoing
Cách cấu hình này phù hợp với nhiều VPS chạy website hoặc ứng dụng thông thường.
Ví dụ, máy chủ vẫn có thể kết nối đến kho phần mềm để tải bản cập nhật, trong khi những kết nối mới từ Internet vào các cổng không được cho phép sẽ bị hạn chế.

Lưu ý rằng đây là chính sách cơ bản, chưa phải cấu hình hạn chế tất cả lưu lượng đi ra ngoài. Nếu VPS đang có UFW hoạt động, cần kiểm tra đầy đủ các quy tắc trước khi thay đổi chính sách mặc định.
Bước 5: Mở các cổng dịch vụ cần thiết
Nếu VPS được sử dụng để chạy website, bạn cần cho phép truy cập HTTP và HTTPS.
Mở cổng HTTP:
sudo ufw allow 80/tcp
Mở cổng HTTPS:
sudo ufw allow 443/tcp
Nếu triển khai một ứng dụng chạy trực tiếp trên cổng 8080 và thực sự cần truy cập từ bên ngoài, có thể mở thêm:
sudo ufw allow 8080/tcp
Không cần mở cổng 8080 nếu dịch vụ chỉ sử dụng nội bộ hoặc truy cập thông qua Reverse Proxy.

Dưới đây là bảng tham khảo những cổng thường gặp:
Dịch vụ Cổng mặc định/thường dùng Khuyến nghị SSH 22/TCP Cho phép, ưu tiên giới hạn IP quản trị HTTP 80/TCP Mở khi cung cấp website HTTP hoặc chuyển hướng sang HTTPS HTTPS 443/TCP Mở khi cung cấp website HTTPS MySQL 3306/TCP Không mở công khai nếu không cần thiết PostgreSQL 5432/TCP Ưu tiên kết nối nội bộ Redis 6379/TCP Không công khai trực tiếp lên Internet Ứng dụng web tùy chỉnh 8080/TCP hoặc cổng khác Chỉ mở khi thực sự cần truy cập từ bên ngoài
Các cổng trong bảng là giá trị phổ biến, không phải cấu hình bắt buộc của mọi ứng dụng.
Nguyên tắc nên áp dụng: Chỉ cho phép những cổng thực sự cần thiết cho hoạt động của VPS.
Bước 6: Kích hoạt tường lửa UFW
Sau khi đã cho phép SSH và các dịch vụ cần thiết, bạn có thể kích hoạt UFW:
sudo ufw enable
Nếu đang truy cập qua SSH, hệ thống có thể hiển thị thông báo:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Hãy xác nhận rằng cổng SSH đã được cho phép, sau đó nhập y xong nhấn Enter để tiếp tục.

Khi kích hoạt thành công, bạn có thể nhận được thông báo cho biết tường lửa đang hoạt động.
Quan trọng: Giữ nguyên phiên SSH hiện tại và thử mở một phiên SSH mới từ máy tính. Chỉ đóng phiên cũ khi đã chắc chắn phiên mới kết nối thành công.
Bước 7: Kiểm tra và xác nhận cấu hình
Sau khi kích hoạt, kiểm tra trạng thái UFW:
sudo ufw status verbose
Với một VPS chạy website thông thường, kết quả tham khảo có thể hiển thị như sau:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
Đây chỉ là ví dụ minh họa. Kết quả thực tế có thể khác tùy phiên bản, chế độ ghi nhật ký và cấu hình IPv6.

Bạn cần kiểm tra ba thông tin quan trọng:
- Status: active: UFW đang được kích hoạt.
- deny (incoming): Chính sách mặc định đối với kết nối đi vào.
- Những cổng SSH và dịch vụ cần thiết xuất hiện trong danh sách cho phép.
Cuối cùng, kiểm tra lại kết nối SSH và truy cập website từ một thiết bị bên ngoài VPS.
Nếu SSH hoạt động bình thường, website truy cập được và những cổng không cần thiết không còn được phép truy cập, cấu hình cơ bản đã đáp ứng mục tiêu đề ra.
Cách quản lý các quy tắc tường lửa UFW
Sau khi kích hoạt UFW, bạn có thể bổ sung, chỉnh sửa hoặc xóa những quy tắc theo nhu cầu thực tế mà không cần cài đặt lại tường lửa.
Cho phép truy cập từ một địa chỉ IP cụ thể
Nếu chỉ muốn một máy tính có quyền SSH vào VPS, bạn có thể giới hạn kết nối dựa trên địa chỉ IP nguồn.
Ví dụ, cho phép địa chỉ IP 203.0.113.10 truy cập cổng SSH 22:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
Lưu ý: 203.0.113.10 là địa chỉ IP minh họa. Cần thay bằng địa chỉ IP public thực tế của máy tính hoặc mạng quản trị.

Nếu đã tồn tại quy tắc cho phép mọi địa chỉ IP truy cập SSH, bạn cần kiểm tra và xóa quy tắc rộng hơn sau khi xác nhận quy tắc giới hạn IP hoạt động.
Ví dụ, nếu trước đó đã tạo quy tắc allow 22/tcp, có thể xóa bằng:
sudo ufw delete allow 22/tcp
Trước khi xóa, hãy thử kết nối SSH bằng một phiên mới từ IP được cấp quyền.

Chú ý: Nếu đang sử dụng Internet có IP public thay đổi thường xuyên, việc giới hạn một IP cố định có thể khiến bạn không thể truy cập VPS sau khi địa chỉ IP thay đổi.
Chặn địa chỉ IP và cổng không mong muốn
Khi phát hiện một địa chỉ IP không mong muốn liên tục truy cập VPS, bạn có thể thêm quy tắc từ chối. Ví dụ:
sudo ufw insert 1 deny from 198.51.100.25
Lệnh trên thêm quy tắc chặn địa chỉ IP minh họa 198.51.100.25 ở đầu danh sách quy tắc người dùng, giúp ưu tiên kiểm tra quy tắc này trước các quy tắc cho phép thông thường được thêm sau.
Cần thay địa chỉ ví dụ bằng IP thực tế và đảm bảo không chặn nhầm IP quản trị hoặc hệ thống giám sát hợp lệ.

Đối với cổng không cần sử dụng, bạn có thể thiết lập quy tắc từ chối, chẳng hạn:
sudo ufw deny 3306/tcp
Tuy nhiên, nếu chính sách mặc định đã là deny incoming và không tồn tại quy tắc cho phép cổng 3306, bạn không cần thêm quy tắc từ chối riêng.
Nếu trước đó đã tạo quy tắc mở cổng MySQL cho mọi nguồn, cần xóa hoặc chỉnh sửa quy tắc cho phép tương ứng. Một quy tắc từ chối được thêm sau chưa chắc có thể ghi đè quy tắc cho phép đứng trước.
Xóa quy tắc và quản lý nhật ký tường lửa
Để xem danh sách quy tắc kèm số thứ tự, nhập:
sudo ufw status numbered
Ví dụ, nếu muốn xóa quy tắc số 5, sử dụng:
sudo ufw delete 5
Sau đó, kiểm tra lại danh sách để xác nhận quy tắc đã được xóa.
Số thứ tự có thể thay đổi sau mỗi lần thêm hoặc xóa quy tắc. Vì vậy, cần kiểm tra lại trước khi thực hiện thao tác tiếp theo.

Bạn cũng có thể xóa quy tắc theo nội dung. Ví dụ, xóa quy tắc cho phép cổng 8080:
sudo ufw delete allow 8080/tcp
Lệnh này áp dụng khi quy tắc tương ứng đã tồn tại. Để bật ghi nhật ký UFW:
sudo ufw logging on
Để xem trạng thái và mức độ ghi nhật ký:
sudo ufw status verbose
Nhật ký hỗ trợ người quản trị tìm hiểu những kết nối bị chặn hoặc hoạt động mạng đáng chú ý. Tuy nhiên, cần theo dõi dung lượng lưu trữ nếu lưu lượng truy cập lớn.

Cấu hình tường lửa cho VPS AlmaLinux/Rocky Linux bằng firewalld
Đối với VPS chạy AlmaLinux hoặc Rocky Linux, bạn có thể sử dụng firewalld để quản lý những dịch vụ và cổng mạng được phép truy cập.
Khác với UFW, firewalld sử dụng khái niệm zone để nhóm các quy tắc theo mức độ tin cậy của mạng hoặc giao diện.
Trước tiên, kết nối SSH vào VPS và kiểm tra phiên bản hệ điều hành:
cat /etc/os-release

Bước 1: Cài đặt firewalld
Nếu chưa cài đặt, nhập:
sudo dnf install -y firewalld
Kiểm tra dịch vụ có đang chạy hay không:
sudo systemctl is-active firewalld
Bước 2: Cấu hình quy tắc trước khi khởi chạy
Nếu kết quả là inactive, nên cấu hình quyền truy cập SSH trước khi bật dịch vụ.
Với cổng SSH mặc định 22:
sudo firewall-offline-cmd --add-service=ssh
Nếu SSH sử dụng cổng tùy chỉnh, chẳng hạn 2222, cần mở thêm đúng cổng:
sudo firewall-offline-cmd --add-port=2222/tcp

Đối với VPS chạy website, cho phép HTTP và HTTPS:
sudo firewall-offline-cmd --add-service=http
sudo firewall-offline-cmd --add-service=https
Những lệnh trên cấu hình zone mặc định khi firewalld chưa hoạt động. Nếu giao diện mạng được gán cho zone khác, cần sử dụng đúng zone tương ứng.
Bước 3: Kích hoạt firewalld
Sau khi chuẩn bị các quy tắc cần thiết:
sudo systemctl enable --now firewalld
Lệnh sẽ khởi chạy firewalld và thiết lập dịch vụ khởi động cùng hệ thống.
Nếu firewalld đã hoạt động từ trước, không sử dụng các lệnh firewall-offline-cmd phía trên. Thay vào đó, bạn có thể bổ sung quy tắc bằng firewall-cmd.
Ví dụ, mở HTTP và HTTPS trong zone mặc định:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Bước 4: Kiểm tra kết quả
Kiểm tra những zone đang hoạt động:
sudo firewall-cmd --get-active-zones
Sau đó, xem các quy tắc trong zone mặc định:
sudo firewall-cmd --list-all
Nếu giao diện mạng sử dụng zone khác zone mặc định, hãy kiểm tra zone thực tế bằng:
sudo firewall-cmd --zone=public --list-all
Trong ví dụ này, public cần được thay bằng zone đang gắn với giao diện mạng của VPS.

Khi sử dụng –permanent, các thay đổi được lưu lại để sử dụng sau khi khởi động lại hoặc tải lại firewalld. Những thay đổi này chưa có hiệu lực tức thì nếu chưa được áp dụng vào cấu hình runtime.
Lưu ý: Không nên đồng thời quản lý cùng một bộ quy tắc mạng bằng UFW, firewalld và những công cụ cấu hình cấp thấp khác nếu chưa hiểu rõ cách các quy tắc tương tác với nhau.
Cấu hình tường lửa cho VPS Windows Server
Đối với VPS Windows Server, bạn có thể sử dụng Windows Defender Firewall để quản lý các kết nối mà không cần cài đặt UFW.
Cách đơn giản cho người mới là sử dụng giao diện Windows Firewall with Advanced Security.
Bước 1: Kết nối vào VPS Windows Server bằng Remote Desktop và đăng nhập bằng tài khoản có quyền quản trị.
Bước 2: Nhấn Windows + R, nhập wf.msc.
Sau đó, nhấn Enter để mở công cụ quản lý tường lửa.
Bước 3: Chọn Inbound Rules ở menu bên trái, sau đó nhấp New Rule….

Bước 4: Chọn loại quy tắc Port, nhấn Next.
Bước 5: Chọn giao thức TCP và mục Specific local ports.
Ví dụ, nếu muốn mở cổng 80 và 443 cho website, nhập:
80,443
Nhấn Next để tiếp tục.
Bước 6: Chọn Allow the connection, sau đó lựa chọn những network profile phù hợp với cấu hình máy chủ.
Bước 7: Đặt tên dễ nhận biết, chẳng hạn Allow Web HTTP HTTPS, rồi nhấn Finish.

Quy tắc mới sẽ xuất hiện trong danh sách Inbound Rules.
Bạn cũng có thể tạo quy tắc bằng PowerShell với quyền Administrator. Ví dụ, cho phép kết nối TCP vào cổng 80:
New-NetFirewallRule -DisplayName "Allow HTTP 80" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80
Đặc biệt lưu ý: Trước khi thay đổi chính sách tường lửa trên Windows Server, phải đảm bảo cổng Remote Desktop đang sử dụng vẫn được cho phép. Cổng RDP mặc định là 3389/TCP nhưng có thể đã được thay đổi.
Đối với VPS Windows đang sử dụng thực tế, nên ưu tiên giới hạn quyền RDP theo địa chỉ IP nguồn hoặc thông qua VPN, thay vì mở cho toàn bộ Internet.
Cách kiểm tra và khắc phục lỗi tường lửa VPS
Khi VPS không thể kết nối SSH hoặc website ngừng truy cập sau khi cấu hình tường lửa, cần xác định nguyên nhân trước khi thực hiện thay đổi.
Những sự cố phổ biến bao gồm:
Tình trạng Nguyên nhân có thể xảy ra Cách xử lý Không kết nối được SSH Chưa cho phép đúng cổng SSH hoặc IP quản trị Kiểm tra quy tắc SSH và địa chỉ nguồn Website không truy cập được Chưa mở cổng 80/443 hoặc web server gặp lỗi Kiểm tra UFW và dịch vụ web Đã mở port nhưng vẫn không kết nối được Dịch vụ chưa lắng nghe hoặc tường lửa nhà cung cấp đang chặn Kiểm tra cổng lắng nghe và firewall bên ngoài VPS Không thể truy cập bằng IPv6 Quy tắc IPv6 chưa được áp dụng phù hợp Kiểm tra cấu hình IPv6 và các quy tắc tương ứng Truy cập được trước khi bật UFW nhưng bị lỗi sau đó Quy tắc cho phép chưa đầy đủ hoặc xung đột Rà soát danh sách quy tắc và thứ tự áp dụng
Để kiểm tra cổng TCP đang lắng nghe trên VPS Linux, sử dụng:
sudo ss -lntp
Nếu ứng dụng chưa lắng nghe trên cổng cần thiết, việc mở cổng trong tường lửa cũng không thể giúp truy cập dịch vụ thành công.
Đối với máy tính Windows, có thể mở PowerShell để kiểm tra khả năng kết nối đến cổng SSH:
Test-NetConnection -ComputerName 203.0.113.20 -Port 22
Thay 203.0.113.20 bằng IP public của VPS và 22 bằng cổng SSH thực tế.
Nếu đã mất kết nối SSH do cấu hình UFW, bạn nên thực hiện theo thứ tự:
- Truy cập VPS qua Console, VNC hoặc Rescue Mode do nhà cung cấp hỗ trợ, nếu có.
- Kiểm tra trạng thái bằng sudo ufw status verbose.
- Bổ sung đúng quy tắc cho phép SSH và IP quản trị.
- Kiểm tra kết nối từ máy tính trước khi đóng Console.
Trong trường hợp khẩn cấp và đã xác định UFW là nguyên nhân, có thể tạm thời vô hiệu hóa từ Console:
sudo ufw disable
Sau đó, kiểm tra và cấu hình lại các quy tắc cần thiết trước khi bật UFW trở lại.
Không nên duy trì trạng thái tắt tường lửa lâu dài khi chưa có biện pháp kiểm soát truy cập thay thế phù hợp.
Những lưu ý quan trọng khi cấu hình Firewall VPS
Để tường lửa hoạt động hiệu quả mà không ảnh hưởng đến dịch vụ, bạn nên ghi nhớ những nguyên tắc sau:
- Luôn cho phép SSH trước khi kích hoạt tường lửa: Đảm bảo cổng và IP quản trị được cấu hình chính xác.
- Chỉ mở những cổng cần thiết: Hạn chế công khai các dịch vụ database, Redis hoặc giao diện quản trị.
- Kiểm tra cả IPv4 và IPv6: Nếu VPS có địa chỉ IPv6 public, cần đảm bảo chính sách tường lửa cũng áp dụng phù hợp cho IPv6.
- Kiểm tra tường lửa của nhà cung cấp: VPS có thể đồng thời chịu ảnh hưởng từ firewall tại hệ điều hành và hệ thống mạng của nhà cung cấp.
- Thận trọng khi sử dụng Docker: Các cổng được công khai qua Docker có thể đi qua quy tắc mạng riêng và không chịu sự kiểm soát như mong đợi của UFW.
- Lưu lại phương án khôi phục: Nên biết cách truy cập Console hoặc Rescue Mode trước khi thay đổi quy tắc quan trọng.
- Thường xuyên rà soát quy tắc: Xóa những cổng không còn sử dụng và hạn chế quyền truy cập theo nhu cầu thực tế.

Lưu ý riêng đối với VPS chạy Docker, n8n hoặc AI Agent:
Nếu Docker công khai một cổng bằng cấu hình như:
ports:
- "5678:5678"
Cổng này có thể được truy cập từ bên ngoài máy chủ, tùy cấu hình mạng và các lớp bảo mật liên quan. Đặc biệt, Docker có thể xử lý lưu lượng trước những quy tắc UFW thông thường.
Nếu ứng dụng chỉ cần được truy cập qua Reverse Proxy trên cùng VPS, một cách cấu hình phù hợp hơn là:
ports:
- "127.0.0.1:5678:5678"
Cách ánh xạ này giới hạn cổng xuất bản vào giao diện loopback IPv4 của máy chủ trong mô hình Docker bridge thông thường. Reverse Proxy có thể tiếp nhận yêu cầu từ bên ngoài qua HTTPS và chuyển tiếp đến ứng dụng nội bộ.

Với môi trường có nhiều container, VPN hoặc mạng tùy chỉnh, cần đánh giá thêm quy tắc Docker và cấu hình mạng thực tế trước khi triển khai.
Kết luận
Cấu hình tường lửa cho VPS là bước cơ bản nhưng quan trọng để kiểm soát truy cập và giảm rủi ro bảo mật. Với Ubuntu/Debian, UFW giúp người mới dễ dàng quản lý những cổng cần thiết; trong khi firewalld phù hợp với các hệ điều hành thuộc họ RHEL.
Điều quan trọng nhất là luôn cho phép cổng quản trị trước khi bật tường lửa, chỉ công khai dịch vụ thực sự cần thiết và kiểm tra lại khả năng kết nối sau mỗi thay đổi.
Nếu đang tìm kiếm máy chủ để triển khai website hoặc ứng dụng riêng, bạn có thể tham khảo dịch vụ VPS của Tino để lựa chọn môi trường phù hợp với nhu cầu sử dụng.
Những câu hỏi thường gặp
Có cần cấu hình tường lửa cho VPS mới mua không?
Có. Khi triển khai VPS mới, bạn nên kiểm tra những cổng đang được mở và thiết lập chính sách truy cập phù hợp. Tuy nhiên, không nên mặc định rằng VPS chưa có bất kỳ cơ chế bảo vệ nào, vì một số nhà cung cấp đã áp dụng tường lửa ở lớp hạ tầng. Cần kiểm tra cả hai lớp trước khi thay đổi.
Bật UFW có làm mất kết nối SSH không?
Có thể, nếu cổng SSH hoặc địa chỉ IP quản trị chưa được cho phép. Trước khi chạy sudo ufw enable, hãy thêm quy tắc phù hợp với cổng SSH thực tế. Sau khi bật, giữ nguyên phiên SSH hiện tại và mở thêm một phiên mới để kiểm tra trước khi ngắt kết nối cũ.
Vì sao đã mở cổng 80 và 443 nhưng website vẫn không truy cập được?
Mở cổng tường lửa chỉ cho phép lưu lượng đi qua, không đảm bảo website đang hoạt động. Bạn cần kiểm tra Nginx, Apache hoặc ứng dụng web có đang chạy và lắng nghe đúng cổng hay không. Ngoài ra, cần kiểm tra địa chỉ IP, DNS, cấu hình Reverse Proxy và quy tắc firewall của nhà cung cấp.
Khi chạy Docker, chỉ bật UFW đã đủ bảo vệ các cổng container chưa?
Chưa đủ. Docker có thể tạo những quy tắc mạng riêng khi công khai cổng container, khiến một số lưu lượng không chịu sự kiểm soát của UFW như mong đợi. Bạn cần kiểm tra cấu hình ports, giới hạn địa chỉ bind phù hợp, đồng thời sử dụng firewall ở lớp hạ tầng hoặc các quy tắc Docker chuyên biệt khi cần.
Có cần cấu hình tường lửa riêng cho IPv6 không?
Có, nếu VPS sử dụng IPv6. UFW có thể hỗ trợ quy tắc cho cả IPv4 và IPv6 khi tính năng IPv6 được bật trong cấu hình tương ứng. Bạn nên kiểm tra kết quả sudo ufw status verbose và thử truy cập bằng IPv6 nếu máy chủ có địa chỉ IPv6 public, tránh bỏ sót đường kết nối ngoài ý muốn.
Cấu hình tường lửa có giúp VPS chống mọi cuộc tấn công mạng không?
Không. Tường lửa giúp lọc lưu lượng và giảm khả năng truy cập các dịch vụ không cần thiết, nhưng không thể ngăn chặn mọi hình thức tấn công. VPS vẫn cần cập nhật phần mềm, xác thực SSH an toàn, bảo vệ ứng dụng, sao lưu dữ liệu và sử dụng giải pháp chống DDoS ở lớp hạ tầng khi cần thiết.
