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ụ
Tường lửa là lớp bảo vệ cơ bản của mọi máy chủ: nó quyết định cổng (port) nào được mở cho bên ngoài kết nối, cổng nào bị chặn. Một máy chủ mở quá nhiều cổng không cần thiết chính là mời gọi dò quét và tấn công. Nguyên tắc an toàn rất đơn giản: chỉ mở đúng những gì cần, chặn phần còn lại. Bài viết hướng dẫn cấu hình tường lửa trên hai bản Linux phổ biến: ufw (Ubuntu) và firewalld (AlmaLinux), theo hướng mở port an toàn cho người mới. Cuối bài là phần nâng cao về rule theo dịch vụ và ghi log.

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, liên hệ đội ngũ kỹ thuật Cloudzone qua hotline/Zalo 0906.489.647 hoặc email support@cloudzone.vn.

Chia sẻ

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *