Cấu hình firewall UFW trên Linux server production

Cấu hình UFW Firewall trên Linux server theo chuẩn production

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.

Leave a Comment

Your email address will not be published. Required fields are marked *