Bắt đầu và vận hành

Cấu hình tường lửa và mở port an toàn trên Linux (ufw/firewalld)

Cấu hình tường lửa và mở port an toàn trên Linux (ufw/firewalld)
Chia sẻ

Hướng dẫn cấu hình tường lửa ufw (Ubuntu) và firewalld (AlmaLinux): mở/đóng port an toàn theo nguyên tắc tối thiểu, kèm mẹo rule theo dịch vụ

Mục lục1. Trước khi bắt đầu2. Lưu ý quan trọng trước khi bật tường lửa3. Cấu hình ufw trên Ubuntu4. Cấu hình firewalld trên AlmaLinux5. Nguyên tắc mở port an toàn6. Phần nâng cao: rule theo dịch vụ và ghi log7. Xử lý lỗi thường gặp8. Câu hỏi thường gặp8.1. ufw và firewalld: nên dùng cái nào?8.2. Chỉ cần đóng hết cổng là máy chủ đã an toàn?8.3. Làm sao biết máy chủ đang mở những cổng nào?9. Kết luận

1. Trước khi bắt đầu

  • Đã đăng nhập VPS Linux qua SSH với quyền sudo.
  • Biết các cổng dịch vụ mình cần mở (ví dụ SSH 22, web 80/443).
  • Nắm cách truy cập console/KVM của nhà cung cấp để khôi phục nếu lỡ chặn nhầm SSH.

2. Lưu ý quan trọng trước khi bật tường lửa

Sai lầm phổ biến là bật tường lửa mà quên cho phép SSH, khiến bạn tự khóa mình khỏi máy chủ. Vì vậy, luôn cho phép cổng SSH (hoặc cổng SSH tùy chỉnh của bạn) trước khi bật tường lửa.

3. Cấu hình ufw trên Ubuntu

ufw (Uncomplicated Firewall) là công cụ tường lửa đơn giản của Ubuntu:

  1. Cho phép SSH trước tiên: sudo ufw allow OpenSSH (hoặc sudo ufw allow 22).
  2. Mở cổng cần thiết: ví dụ web: sudo ufw allow 80 và sudo ufw allow 443.
  3. Bật tường lửa: sudo ufw enable.
  4. Kiểm tra trạng thái và rule: sudo ufw status verbose.
  5. Đóng cổng khi không cần: sudo ufw delete allow 80.

Mặc định ufw chặn kết nối vào không được phép, đúng nguyên tắc "chỉ mở những gì cần".

4. Cấu hình firewalld trên AlmaLinux

firewalld quản lý theo "zone" và dịch vụ:

  1. Cho phép SSH: sudo firewall-cmd --permanent --add-service=ssh.
  2. Mở cổng/dịch vụ web: sudo firewall-cmd --permanent --add-service=http và --add-service=https.
  3. Áp dụng thay đổi: sudo firewall-cmd --reload.
  4. Kiểm tra: sudo firewall-cmd --list-all.
  5. Đóng dịch vụ khi không cần: --permanent --remove-service=... rồi reload.

Dùng --permanent để rule giữ nguyên sau khi khởi động lại; không có nó thì rule chỉ áp dụng tạm.

Nguyên tắc mở port an toàn trên Linux
Nguyên tắc mở port an toàn trên Linux

5. Nguyên tắc mở port an toàn

  • Tối thiểu hóa: chỉ mở cổng cho dịch vụ thực sự chạy; đóng mọi cổng không dùng.
  • Không mở cổng quản trị cho cả thế giới: với SSH và cổng quản trị, cân nhắc giới hạn theo IP nguồn tin cậy thay vì mở cho mọi nơi.
  • Rà soát định kỳ: kiểm tra danh sách cổng đang mở theo chu kỳ; đóng những gì không còn dùng.
  • Kết hợp với các lớp khác: tường lửa là một lớp; nên đi kèm SSH an toàn, cập nhật hệ thống và giám sát.

6. Phần nâng cao: rule theo dịch vụ và ghi log

  • Giới hạn IP nguồn: cho phép SSH chỉ từ IP văn phòng/nhà quản trị viên; với ufw dùng cú pháp from, với firewalld dùng rich rules.
  • Ghi log kết nối bị chặn: bật ghi log để phát hiện các đợt dò quét và điều chỉnh rule.
  • Rate limiting cho SSH: ufw hỗ trợ limit để làm chậm các nỗ lực kết nối dồn dập tới SSH.

Với truy cập quản trị, an toàn hơn cả là đưa SSH vào sau VPN thay vì mở ra Internet; xem bài Truy cập máy chủ an toàn: dùng VPN thay vì mở RDP/SSH ra Internet bên chuyên mục An ninh.

7. Xử lý lỗi thường gặp

  • Tự khóa mình khỏi SSH sau khi bật tường lửa: dùng console/KVM của nhà cung cấp để vào máy chủ và mở lại cổng SSH.
  • Dịch vụ không truy cập được từ ngoài: kiểm tra đã mở đúng cổng trên tường lửa và dịch vụ đang lắng nghe đúng cổng đó (ss -tulpn).
  • Rule không giữ sau khi reboot (firewalld): kiểm tra đã dùng --permanent và --reload.

8. Câu hỏi thường gặp

8.1. ufw và firewalld: nên dùng cái nào?

Tùy bản phân phối: ufw là công cụ mặc định tiện dụng trên Ubuntu, firewalld phổ biến trên AlmaLinux/RHEL. Cả hai đều là lớp giao diện cho iptables/nftables bên dưới. Dùng công cụ đi kèm distro của bạn cho đơn giản.

8.2. Chỉ cần đóng hết cổng là máy chủ đã an toàn?

Không hẳn, và bạn vẫn cần mở ít nhất cổng để quản trị (SSH) và cổng dịch vụ. Tường lửa giảm bề mặt tấn công nhưng cần kết hợp SSH an toàn, cập nhật và giám sát để bảo vệ nhiều lớp.

8.3. Làm sao biết máy chủ đang mở những cổng nào?

Dùng ss -tulpn để xem cổng đang lắng nghe và dịch vụ tương ứng, kết hợp với ufw status hoặc firewall-cmd --list-all để xem rule tường lửa. Đối chiếu hai thông tin này giúp phát hiện cổng mở thừa.

9. Kết luận

Cấu hình tường lửa đúng cách là một trong những bước bảo vệ máy chủ Linux hiệu quả và ít tốn công nhất: chỉ mở đúng cổng cần, luôn cho phép SSH trước khi bật, và rà soát định kỳ. Trên Ubuntu dùng ufw, trên AlmaLinux dùng firewalld, nguyên tắc đều là tối thiểu hóa cổng mở. Kết hợp tường lửa với SSH an toàn và giám sát sẽ tạo thành lớp phòng vệ vững chắc cho máy chủ của bạn. Đây cũng là một mục trong checklist Những việc cần làm ngay sau khi nhận VPS mới cùng nhóm.

Cần hỗ trợ kỹ thuật? Nếu cần hỗ trợ cấu hình tường lửa hoặc bảo mật truy cập máy chủ Linux, đội ngũ Cloudzone sẵn sàng trao đổi trực tiếp với bạn.

Chat với Cloudzone

Chia sẻ

Bài viết liên quan

Lộ trình tự học quản trị VPS Linux: từ lúc nhận máy chủ đến lúc yên tâm ngủ ngon

Lộ trình tự học quản trị VPS Linux: từ lúc nhận máy chủ đến lúc yên tâm ngủ ngon

Vấn đề của người mới khi sử dụng máy chủ Linux không phải là thiếu hướng dẫn, mà là không biết đọc cái nào trước. Đây là lộ trình sáu bước: mỗi bước giải thích vì sao cần làm, bỏ qua thì gặp phải những rủi ro gì, và những giải thích chi tiết.

Cài đặt và cấu hình Linux server (Ubuntu/AlmaLinux) cơ bản

Cài đặt và cấu hình Linux server (Ubuntu/AlmaLinux) cơ bản

Hướng dẫn cấu hình ban đầu cho Linux server Ubuntu/AlmaLinux: cập nhật, đặt hostname, múi giờ, swap và chuẩn hóa cấu hình cho người mới

Quản lý máy chủ vật lý từ xa qua IPMI/iDRAC/iLO

Quản lý máy chủ vật lý từ xa qua IPMI/iDRAC/iLO

Hướng dẫn dùng IPMI, iDRAC, iLO để quản lý máy chủ vật lý từ xa: bật/tắt nguồn, KVM-over-IP, cài lại OS và bảo mật cổng quản trị out-of-band

Ảo hóa là gì? Các nền tảng ảo hóa phổ biến

Ảo hóa là gì? Các nền tảng ảo hóa phổ biến

Giải thích ảo hóa là gì, phân biệt hypervisor loại 1 và loại 2, giới thiệu VMware, Proxmox, Hyper-V, KVM và cách chọn nền tảng theo nhu cầu

Hướng dẫn tạo và quản lý máy ảo trên Proxmox VE

Hướng dẫn tạo và quản lý máy ảo trên Proxmox VE

Hướng dẫn cài Proxmox VE, tạo máy ảo (VM) và container (LXC), cấu hình mạng, ổ đĩa và các thao tác quản lý cơ bản cho người mới

Kết nối VPS Linux bằng SSH: hướng dẫn PuTTY và terminal

Kết nối VPS Linux bằng SSH: hướng dẫn PuTTY và terminal

Hướng dẫn kết nối VPS Linux qua SSH bằng PuTTY trên Windows và terminal trên macOS/Linux, kèm cách dùng khóa SSH an toàn hơn mật khẩu