Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

11. Cấu hình firewall (UFW) theo nguyên tắc tối thiểu

ICT

1. Vì sao firewall là lớp bảo vệ bắt buộc?

Ngay cả khi:

  • SSH đã được bảo mật

  • Hệ điều hành đã chuẩn

  • Dịch vụ được cấu hình đúng

Một hệ thống không có firewall vẫn là hệ thống phơi bày toàn bộ bề mặt tấn công.

Firewall không thay thế cho bảo mật ứng dụng, nhưng:

  • Giúp chặn tấn công từ sớm

  • Giảm đáng kể rủi ro bị quét, dò dịch vụ

  • Giữ hệ thống “im lặng” với các cổng không cần thiết

Nguyên tắc:

Dịch vụ nào không cần Internet thì firewall không cho Internet thấy.


2. Vì sao chọn UFW?

UFW (Uncomplicated Firewall) là công cụ firewall mặc định trên Ubuntu:

  • Dễ cấu hình

  • Cú pháp rõ ràng

  • Phù hợp với đa số Web Server đơn lẻ

  • Ít rủi ro cấu hình sai so với iptables trực tiếp

UFW không làm firewall kém an toàn hơn, mà làm:

Firewall dễ quản lý hơn và ít sai sót hơn.


3. Nguyên tắc cấu hình firewall tối thiểu

Trong loạt bài này, firewall được cấu hình theo các nguyên tắc:

  1. Mặc định chặn tất cả kết nối vào

  2. Chỉ mở các port thật sự cần

  3. SSH chỉ cho phép theo port đã đổi

  4. Dễ kiểm tra – dễ khôi phục

Không áp dụng:

  • Rule phức tạp

  • Rule khó hiểu

  • Rule “copy trên mạng”


4. Kiểm tra trạng thái UFW

Trước khi cấu hình:

sudo ufw status

Nếu UFW chưa được bật:

Status: inactive 

5. Thiết lập chính sách mặc định

5.1. Chặn toàn bộ kết nối vào

 
sudo ufw default deny incoming

5.2. Cho phép toàn bộ kết nối ra

 
sudo ufw default allow outgoing

Nguyên tắc:

  • Server chủ động kết nối ra Internet là bình thường

  • Internet chủ động kết nối vào server phải có kiểm soát


6. Mở các port cần thiết

6.1. Mở SSH (theo port đã đổi)

Ví dụ SSH port 2222:

 
sudo ufw allow 2222/tcp

Nếu quên bước này và bật firewall:

Bạn sẽ mất kết nối SSH ngay lập tức.


6.2. Mở HTTP và HTTPS

 
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Hoặc dùng profile:

sudo ufw allow 'Nginx Full' 

7. Bật UFW

Sau khi đã mở đủ các port cần thiết:

 
sudo ufw enable 

Xác nhận khi được hỏi.


8. Kiểm tra lại firewall sau khi bật

sudo ufw status verbose

Kết quả mong đợi:

  • Default: deny (incoming), allow (outgoing)

  • Chỉ có:

    • SSH port

    • 80

    • 443

Nếu thấy port lạ:

Cần rà soát lại ngay.


9. Giới hạn truy cập SSH theo IP (khuyến nghị)

Nếu có IP quản trị cố định:

sudo ufw allow from IP_QUAN_TRI to any port 2222 proto tcp

Sau đó xóa rule SSH mở rộng:

 
sudo ufw delete allow 2222/tcp

Nguyên tắc:

SSH càng ít IP truy cập được càng an toàn.


10. Những sai lầm phổ biến khi cấu hình firewall

  • Bật firewall trước khi mở SSH

  • Mở quá nhiều port “cho chắc”

  • Không kiểm tra lại rule sau khi bật

  • Không ghi lại cấu hình firewall

Những sai lầm này thường dẫn đến:

Mất kết nối hoặc tự làm yếu bảo mật.


11. Checklist firewall cho Web Server production

  •  Default deny incoming

  •  Allow outgoing

  •  Mở SSH đúng port

  •  Mở 80/443

  •  Không có port dư thừa

  •  Ghi lại cấu hình


12. Liên hệ với các bước tiếp theo

Sau bài này:

  • Hệ điều hành đã:

    • Cài đặt chuẩn

    • SSH an toàn

    • User & quyền rõ ràng

    • Firewall hoạt động

Đây là điểm kết thúc phần “nền tảng hệ thống”.


13. Bài tiếp theo

Trong Bài 12, chúng ta sẽ chính thức bắt đầu triển khai dịch vụ:

Tổng quan Nginx trong kiến trúc Web Server

Bài này sẽ giúp:

  • Hiểu rõ vai trò Nginx

  • Chuẩn bị cho cài đặt và cấu hình web server