Nếu server Linux mở nhiều port không kiểm soát, nguy cơ scan, brute-force và khai thác lỗ hổng tăng rất nhanh. Với hệ thống vừa và nhỏ, UFW (Uncomplicated Firewall) là giải pháp dễ quản lý và đủ mạnh để tạo lớp bảo vệ đầu tiên.
Bài này hướng dẫn cách cấu hình UFW theo tư duy production: chặn theo mặc định, chỉ mở dịch vụ cần thiết, có checklist kiểm tra sau khi triển khai.
Vì sao UFW vẫn đáng dùng trong production?
- Cú pháp đơn giản, dễ audit
- Giảm sai sót so với chỉnh iptables thủ công
- Phù hợp Ubuntu/Debian server phổ biến
- Dễ kết hợp với fail2ban và SSH hardening
Thiết lập baseline an toàn
sudo apt update
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
Nguyên tắc quan trọng: deny incoming theo mặc định, sau đó chỉ mở các port thật sự cần.
Mở dịch vụ thiết yếu đúng cách
# SSH
sudo ufw allow 22/tcp
# Web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Nếu đổi cổng SSH, hãy mở cổng mới trước khi enable firewall để tránh khóa chính mình khỏi server.
Enable UFW an toàn trên máy đang remote
sudo ufw status verbose
sudo ufw enable
sudo ufw status numbered
Giới hạn brute-force cho SSH
sudo ufw limit 22/tcp
Lệnh này giúp giảm tần suất attempt liên tục vào SSH, đặc biệt hữu ích với VPS public IP.
Quản lý rule và dọn rule thừa
sudo ufw status numbered
sudo ufw delete 3
Troubleshooting nhanh
- Không SSH được sau khi bật UFW: kiểm tra rule SSH, security group/cloud firewall
- Web timeout: kiểm tra đã mở 80/443 chưa
- App nội bộ lỗi kết nối: xác định đúng port và protocol
Checklist production
- Deny incoming mặc định
- Chỉ mở port cần thiết
- SSH đã limit hoặc allow theo IP quản trị
- Có runbook rollback rule khi sự cố
- Kết hợp fail2ban để tăng hiệu quả phòng thủ
Kết luận
UFW là lớp bảo vệ cơ bản nhưng cực kỳ quan trọng cho Linux server. Cấu hình đúng ngay từ đầu sẽ giảm rủi ro tấn công và giúp hệ thống vận hành ổn định hơn.
