Cài đặt tường lửa máy chủ là quá trình chỉ mở những cổng cần thiết và chặn tất cả các truy cập không cần thiết; nó tạo thành lớp phòng thủ đầu tiên chống lại các cuộc tấn công DDoS, brute force và lưu lượng bot độc hại. Mục tiêu thực tế là hạn chế quyền truy cập SSH, mở các dịch vụ web một cách có kiểm soát, áp dụng giới hạn cho các yêu cầu nghi ngờ, theo dõi các log và nếu có thể, lọc lưu lượng truy cập trước khi đến máy chủ bằng cách sử dụng các biện pháp bảo vệ cấp cao như CDN hoặc WAF.
Khi bạn mở một máy chủ web ra internet, chỉ trong vài phút, bạn có thể sẽ gặp các cuộc quét cổng, thử nghiệm SSH, bot khai thác lỗ hổng và các tác nhân người dùng giả mạo. Đối với các cấu trúc chạy WordPress, thương mại điện tử, bảng điều khiển, API hoặc máy chủ trò chơi, tường lửa không chỉ là một lựa chọn kỹ thuật mà còn là điều kiện cần thiết để duy trì an ninh. Trong hướng dẫn này, chúng ta sẽ thiết lập một kiến trúc tường lửa từng bước cho các máy chủ Linux; cùng thảo luận về UFW, firewalld, nftables, Fail2ban, tường lửa ứng dụng web và các phương pháp giảm thiểu DDoS.
Hãy bắt đầu với một thực tế quan trọng: Tường lửa máy chủ nội bộ không thể ngăn chặn các cuộc tấn công DDoS lớn. Khi một cuộc tấn công với lưu lượng từ 20 Gbps, 80 Gbps hoặc cao hơn đến được trung tâm dữ liệu hoặc hạ tầng mạng, các gói tin có thể làm đầy băng thông trước khi đến được tập hợp quy tắc trong hệ điều hành của bạn. Do đó, cách tiếp cận đúng đắn là bảo mật nhiều lớp: bảo vệ DDoS ở cấp nhà cung cấp, CDN/WAF, tường lửa hệ điều hành, giới hạn tỷ lệ ứng dụng và phân tích log định kỳ phải phối hợp hoạt động cùng nhau. Có thể tham khảo Giải pháp máy chủ VPS và VDS Hostragons cho lựa chọn hạ tầng phù hợp và Gói hosting web Hostragons cho những lựa chọn lưu trữ an toàn ở phía website.
Tường Lửa Máy Chủ Có Tác Dụng Gì?
Tường lửa máy chủ là một lớp bảo mật lọc lưu lượng mạng dựa trên IP nguồn, IP đích, cổng, giao thức, trạng thái kết nối và trong một số trường hợp, các đặc điểm gói tin. Một ví dụ đơn giản là: cổng 80 và 443 phải được mở cho website của bạn, nhưng cổng 3306 của cơ sở dữ liệu không nên mở cho internet. Thay vì cho phép mọi người thử nghiệm cổng 22 cho SSH, tốt hơn là chỉ cho phép kết nối từ địa chỉ IP văn phòng của bạn.
Mục tiêu chính của tường lửa không phải là tiêu diệt tất cả các cuộc tấn công một cách kỳ diệu. Mục tiêu thực sự là giảm thiểu bề mặt tấn công. Bề mặt tấn công càng nhỏ, càng ít tùy chọn cho kẻ tấn công. Ví dụ, một máy chủ Linux mới được cài đặt có thể mở cùng lúc SSH, bảng điều khiển web, dịch vụ email, cơ sở dữ liệu, tác nhân giám sát và dịch vụ thử nghiệm. Mỗi dịch vụ trong số này sẽ tạo ra một rủi ro riêng. Một tường lửa được cấu hình tốt hoạt động theo nguyên tắc “mặc định từ chối, cho phép những gì cần thiết”.
Hiểu Về DDoS và Lưu Lượng Bot
Tại Sao Các Cuộc Tấn Công DDoS Lại Khác Nhau?
DDoS, hay cuộc tấn công từ chối dịch vụ phân tán, nhằm mục đích làm cho dịch vụ mục tiêu trở nên không thể truy cập được bằng cách gửi lưu lượng từ nhiều nguồn khác nhau. Cuộc tấn công đôi khi làm đầy băng thông, đôi khi tiêu tốn tài nguyên CPU và RAM của máy chủ, và đôi khi kích hoạt các quy trình tốn kém ở lớp ứng dụng. Ví dụ, một máy chủ ứng dụng nhỏ nhận 50.000 yêu cầu HTTP mỗi giây có thể không thể phản hồi ngay cả khi băng thông mạng không bị đầy do PHP-FPM, Node.js hoặc kết nối cơ sở dữ liệu.
Bot Có Luôn Là Xấu Không?
Không. Googlebot, Bingbot và một số bot theo dõi là hữu ích. Tuy nhiên, các bot độc hại thực hiện quét bảng điều khiển quản trị, tìm kiếm thư mục mở, spam biểu mẫu, sao chép nội dung, lạm dụng XML-RPC, tạo tài khoản giả mạo và thử đăng nhập. Do đó, trong quản lý bot, mục tiêu không phải là chặn tất cả bot mà là phân loại theo hành vi. Tỷ lệ lỗi cao, quá nhiều yêu cầu trong thời gian ngắn, tiêu đề không giống như trình duyệt thực và các mẫu URL nghi ngờ đều là những tín hiệu quan trọng.
Danh Sách Kiểm Tra Trước Khi Bắt Đầu Cài Đặt
Khi viết quy tắc tường lửa trên một máy chủ đang hoạt động, rủi ro lớn nhất là tự khóa mình ra khỏi máy chủ. Do đó, trước khi thực hiện bất kỳ thay đổi nào, cần có một chút chuẩn bị. Danh sách kiểm tra dưới đây là một phương pháp khởi đầu an toàn thường được sử dụng trong môi trường sản xuất.
- Không đóng phiên SSH đang hoạt động; hãy thử nghiệm với một terminal thứ hai.
- Đảm bảo rằng nhà cung cấp máy chủ của bạn cung cấp quyền truy cập vào console, VNC hoặc phục hồi.
- Liệt kê các cổng đang mở: xem đầu ra của ss -tulpn hoặc netstat -tulpn.
- Ghi chú các cổng mà dịch vụ web, email, DNS, cơ sở dữ liệu, bảng điều khiển và giám sát đang sử dụng.
- Nếu bạn đang sử dụng IPv6, hãy lập kế hoạch cho các quy tắc tường lửa IPv6.
- Đầu tiên hãy áp dụng các quy tắc cho phép, sau đó là các quy tắc chặn.
- Đảm bảo rằng tập hợp quy tắc là vĩnh viễn; nó không nên biến mất khi máy chủ khởi động lại.
Ví dụ, trong một máy chủ điển hình chỉ lưu trữ website, các cổng cần mở thường là 80, 443 và một cổng SSH hạn chế. Nếu máy chủ email không hoạt động, các cổng như 25, 465, 587, 993 không cần phải mở. Nếu cơ sở dữ liệu chỉ được sử dụng từ cùng một máy chủ, các cổng 3306 hoặc 5432 nên được đóng với thế giới bên ngoài.
Bạn Nên Chọn Công Cụ Tường Lửa Nào?
Trong thế giới Linux có nhiều công cụ khác nhau và hầu hết trong số chúng quản lý cùng một hạ tầng lọc lõi với các mức độ dễ sử dụng khác nhau. Đối với người mới bắt đầu, UFW đơn giản và nhanh chóng. Trong các hệ thống doanh nghiệp hoặc dựa trên Red Hat, firewalld phổ biến hơn. Trong các kịch bản phức tạp hơn, nftables cung cấp một cấu trúc hiện đại và linh hoạt. Bảng dưới đây giúp bạn dễ dàng đưa ra lựa chọn.
| Công Cụ | Sử Dụng Tốt Nhất | Lợi Thế | Điểm Cần Lưu Ý |
|---|---|---|---|
| UFW | Máy chủ web đơn giản dựa trên Ubuntu và Debian | Cú pháp dễ dàng, cài đặt nhanh chóng | Có thể bị giới hạn trong các tập hợp quy tắc rất phức tạp |
| firewalld | AlmaLinux, Rocky Linux, CentOS Stream, RHEL | Logic Zone, quy tắc vĩnh viễn, hồ sơ dịch vụ | Phải hiểu rõ sự khác biệt giữa Runtime và Permanent |
| nftables | Bảo mật mạng Linux nâng cao | Hiện đại, hiệu suất cao, linh hoạt | Các quy tắc viết sai có thể dẫn đến gián đoạn truy cập |
| Các nhóm bảo mật trên đám mây | VPS, môi trường máy chủ đám mây và trung tâm dữ liệu | Lọc lưu lượng trước khi đến máy chủ | Phải được sử dụng bên cạnh chứ không phải thay thế tường lửa OS |
| WAF/CDN | Các cuộc tấn công ứng dụng web và HTTP | Giảm thiểu bot, HTTP flood và quét lỗ hổng | Cần cấu hình DNS và IP thực tế chính xác |
Các Bước Cài Đặt Tường Lửa Máy Chủ
1. Xác Định Các Cổng và Dịch Vụ Đang Mở
Bước đầu tiên là xem những gì đang mở. Lệnh ss -tulpn trên máy chủ Linux sẽ cho biết dịch vụ nào đang lắng nghe trên cổng nào. Ví dụ, nếu nginx đang lắng nghe trên 0.0.0.0:80 và 0.0.0.0:443, điều đó có nghĩa là lưu lượng web được chấp nhận từ tất cả các giao diện. Nếu MariaDB đang lắng nghe trên 0.0.0.0:3306, điều này thường là rủi ro; hầu hết các website nên chạy cơ sở dữ liệu trên 127.0.0.1.
Quy tắc thực tế ở đây là: Không dịch vụ nào không cần truy cập từ internet nên lắng nghe trên 0.0.0.0. Tốt hơn nên sửa đổi cấu hình dịch vụ trước, sau đó đóng nó bằng tường lửa. Bởi vì ngay cả khi tường lửa bị vô hiệu hóa, dịch vụ vẫn không nên mở cho thế giới bên ngoài.
2. Đặt Chính Sách Mặc Định Là Đóng
Trong các tập hợp quy tắc an toàn, lưu lượng đến mặc định bị từ chối, trong khi lưu lượng đi được tự do mở theo nhu cầu. Cách tiếp cận này ngăn chặn việc các dịch vụ mới được cài đặt tự động mở ra cho internet. Trên một máy chủ Ubuntu sử dụng UFW, logic như sau: trước tiên cho phép SSH, sau đó mở 80 và 443, sau đó đặt chính sách đến mặc định là deny và kích hoạt tường lửa.
Dòng chảy ví dụ: cho phép IP địa chỉ quản trị viên của bạn cho SSH, mở lưu lượng HTTP và HTTPS, đóng các cổng không cần thiết, sau đó kích hoạt. Mở tường lửa mà không cho phép quyền SSH là một trong những lỗi phổ biến nhất xảy ra, đặc biệt trên các máy chủ từ xa.
3. Hạn Chế Quyền Truy Cập SSH
SSH là một trong những dịch vụ mà kẻ tấn công thường nhắm đến nhất. Một máy chủ với cổng 22 mặc định mở có thể thấy hàng trăm hoặc hàng ngàn lần thử mật khẩu mỗi ngày. Cách tiếp cận an toàn nhất là hạn chế quyền truy cập SSH chỉ cho các địa chỉ IP cụ thể. Nếu bạn sử dụng IP tĩnh, hãy chỉ cho phép địa chỉ IP văn phòng hoặc VPN của bạn. Nếu không có IP tĩnh, ít nhất hãy sử dụng xác thực dựa trên khóa và tắt việc nhập mật khẩu.
- Đóng quyền truy cập SSH trực tiếp bằng tài khoản root.
- Sử dụng khóa SSH thay vì mật khẩu.
- Giới hạn người dùng với AllowUsers hoặc AllowGroups.
- Chặn tự động các lần thử không thành công bằng Fail2ban.
- Nếu bạn sử dụng bảng điều khiển quản trị, hãy áp dụng giới hạn IP cho cổng bảng điều khiển.
Việc chỉ thay đổi cổng không tự động đảm bảo an ninh, nhưng có thể giảm bớt tiếng ồn từ bot tự động. Tuy nhiên, sự bảo vệ thực sự được đảm bảo bằng việc giới hạn IP, xác thực mạnh mẽ và theo dõi log.
4. Mở Cổng Web Một Cách Có Kiểm Soát
Đối với hầu hết các máy chủ phát hành website, cổng 80 và 443 là cần thiết. Tuy nhiên, ngày nay cổng 443 (HTTPS) nên là cổng chính cho lưu lượng, trong khi cổng 80 chỉ nên được sử dụng cho việc chuyển hướng HTTPS. Các trang web không có chứng chỉ SSL sẽ ảnh hưởng tiêu cực đến sự tin tưởng của người dùng và hiệu suất SEO. Tại điểm này, Chứng chỉ SSL Hostragons là một cơ hội liên kết nội bộ tự nhiên để hướng người đọc đến việc thiết lập HTTPS an toàn.
Khi mở các cổng web, hãy chú ý đến hành vi IP thực tế. Nếu bạn đang sử dụng CDN hoặc proxy ngược, tốt hơn là chỉ cho phép lưu lượng từ các dải IP của CDN đến cổng 80 và 443 thay vì mở trực tiếp cho toàn bộ internet. Điều này đảm bảo rằng ngay cả khi kẻ tấn công biết địa chỉ IP thực của máy chủ, họ cũng không thể truy cập trực tiếp vào dịch vụ web.
5. Đóng Cửa Cơ Sở Dữ Liệu và Dịch Vụ Nội Bộ Với Internet
Các dịch vụ như MySQL, MariaDB, PostgreSQL, Redis, Elasticsearch, MongoDB và tương tự có thể gây ra rủi ro nghiêm trọng khi mở ra internet. Thiếu xác thực cho Redis, quyền truy cập chỉ mục không được phép cho Elasticsearch hoặc cổng quản trị mở cho MongoDB đã dẫn đến nhiều vụ rò rỉ dữ liệu trong quá khứ. Những dịch vụ này nên lắng nghe chỉ từ localhost hoặc mạng riêng nếu có thể.
Ví dụ, cho một trang WordPress chạy trên cùng một máy chủ, cơ sở dữ liệu chỉ cần hoạt động trên 127.0.0.1 là đủ. Nếu bạn sử dụng một máy chủ ứng dụng và máy chủ cơ sở dữ liệu riêng biệt, chỉ cho phép địa chỉ IP riêng của máy chủ ứng dụng. Việc để cổng 3306 hoặc 5432 mở cho internet công cộng là một sai lầm mà bot thường xuyên quét.
6. Ngăn Chặn Các Cuộc Tấn Công Brute Force Với Fail2ban
Fail2ban theo dõi các log và phát hiện các lần thử đăng nhập không thành công lặp đi lặp lại và tạm thời chặn địa chỉ IP liên quan. Có thể định nghĩa các quy tắc jail cho SSH, nginx, Apache, Postfix, Dovecot, đăng nhập WordPress và một số dịch vụ bảng điều khiển. Ví dụ, chặn địa chỉ IP đã thực hiện 5 lần thử SSH không thành công trong 10 phút trong 1 giờ là một khởi đầu đơn giản nhưng hiệu quả.
Khi cấu hình Fail2ban, hãy cẩn thận với các quy tắc quá mức. Mẫu log không chính xác có thể chặn cả người dùng thực. Vì vậy, trong giai đoạn đầu, giữ giá trị bantime hợp lý, theo dõi log và sau đó thực hiện việc thắt chặt dần dần sẽ an toàn hơn.
7. Thêm Giới Hạn Tỷ Lệ và Giới Hạn Kết Nối
Giới hạn tỷ lệ ở cấp độ hệ điều hành có thể giúp chống lại lưu lượng DDoS và bot. Ví dụ, nếu có quá nhiều kết nối mới từ cùng một địa chỉ IP trong mỗi giây, có thể áp dụng giới hạn. Tại phía máy chủ web, có thể sử dụng các mô-đun limit_req và limit_conn cho nginx, hoặc mod_evasive cho Apache. Tại phía ứng dụng, cần đặt giới hạn tỷ lệ cho các điểm cuối đăng nhập, tìm kiếm, giỏ hàng, thanh toán và API.
Một ví dụ cụ thể: trên một trang đăng nhập, 10 lần thử từ một địa chỉ IP trong một phút là hợp lý. Một điểm cuối tìm kiếm có thể đủ với 2-5 yêu cầu mỗi giây. Nếu bạn cung cấp API, cần thiết kế giới hạn dựa trên người dùng, giới hạn IP và phân tích hành vi cùng nhau. Điều này giúp kẻ tấn công không thể vượt qua tất cả các giới hạn chỉ bằng cách thay đổi IP.
Kịch Bản Cài Đặt An Toàn Mẫu Với UFW
Trên một máy chủ web dựa trên Ubuntu hoặc Debian, một kịch bản khởi đầu an toàn đơn giản có thể được thiết lập như sau: trước tiên kiểm tra các dịch vụ hiện có, cho phép quyền truy cập SSH từ địa chỉ IP quản trị viên của bạn, mở các cổng 80 và 443, từ chối lưu lượng đến mặc định và xác nhận trạng thái UFW. Nếu quyền truy cập SSH của bạn không thể bị hạn chế bằng IP tĩnh, bạn có thể tạm thời cho phép SSH từ tất cả các IP và sau đó chuyển sang giải pháp VPN hoặc IP tĩnh.
Tập hợp quyết định ví dụ như sau: địa chỉ IP quản trị viên là 203.0.113.10. SSH chỉ đến từ IP này. Lưu lượng web sẽ mở cho tất cả qua 80 và 443. Cơ sở dữ liệu, Redis, bảng điều khiển và các cổng thử nghiệm sẽ bị đóng với bên ngoài. Cấu trúc này là một khởi đầu tốt cho nhiều trang web doanh nghiệp nhỏ và vừa. Để thực hiện định tuyến chính xác ở phía miền và DNS, có thể tham khảo Tra cứu tên miền và đăng ký Hostragons.
Logic Zone Với firewalld
firewalld được sử dụng phổ biến trên các máy chủ dựa trên AlmaLinux, Rocky Linux và RHEL. firewalld hoạt động với khái niệm zone. Zone công cộng được sử dụng cho các giao diện mở ra internet, zone tin cậy cho các mạng riêng đáng tin cậy, zone drop được sử dụng để giảm thiểu lưu lượng không mong muốn một cách im lặng. Điểm quan trọng nhất là sự khác biệt giữa quy tắc runtime và permanent. Quy tắc runtime được áp dụng ngay lập tức nhưng có thể bị mất khi khởi động lại; quy tắc permanent là vĩnh viễn nhưng có thể cần tải lại.
Khi sử dụng firewalld trong môi trường doanh nghiệp, việc định nghĩa dựa trên dịch vụ sẽ giúp công việc dễ dàng hơn. Ví dụ, bạn có thể mở dịch vụ http và https trên zone công cộng, và đảm bảo rằng dịch vụ ssh chỉ có thể truy cập từ các địa chỉ IP nguồn cụ thể. Nếu mạng quản lý, mạng sao lưu và lưu lượng người dùng nằm trên các giao diện khác nhau, cấu trúc zone sẽ tăng cường bảo mật và khả năng đọc hiểu.
Bảo Vệ DDoS Cấp Nhà Cung Cấp, CDN và WAF
Tường lửa nội bộ quyết định sau khi các gói tin đã đến máy chủ. Trong các cuộc tấn công DDoS lớn, mục tiêu là lọc lưu lượng trước khi đến máy chủ. CDN, WAF và bảo vệ DDoS cấp nhà cung cấp do đó rất quan trọng. CDN cung cấp nội dung tĩnh tại các vị trí gần, WAF lọc các yêu cầu độc hại ở lớp ứng dụng, và bảo vệ nhà cung cấp hấp thụ hoặc làm sạch các cuộc tấn công lớn ở cấp độ mạng.
Trong mô hình lý tưởng, các bản ghi DNS của bạn đi qua CDN, địa chỉ IP thực của máy chủ được ẩn, và tường lửa máy chủ của bạn chỉ chấp nhận lưu lượng từ các dải IP của CDN trên 80 và 443. Các cổng quản trị có thể được truy cập qua VPN hoặc địa chỉ IP tĩnh. Một mô hình như vậy giảm thiểu khả năng tấn công trực tiếp vào IP và cho phép bạn lọc lưu lượng bot trước khi nó đến ứng dụng. Để tìm hiểu về các nội dung liên quan đến bảo mật web và hiệu suất, bạn có thể tham khảo Hướng dẫn tăng tốc và bảo mật website.
Các Biện Pháp Ở Lớp Ứng Dụng Chống Bot

Ngăn chặn bot không chỉ đơn giản là danh sách cấm IP. Các bot hiện đại có thể sử dụng proxy, mạng di động, địa chỉ IP trung tâm dữ liệu và các tác nhân người dùng biến đổi. Do đó, cần có một cách tiếp cận dựa trên hành vi. Nên phân tích các lần thử đăng nhập từ cùng một IP trong thời gian ngắn, quét tạo ra 404 liên tục, tần suất truy cập vào wp-login.php hoặc xmlrpc.php, và các mẫu nhấp chuột nghi ngờ khác biệt với người dùng bình thường.
- Sử dụng giới hạn tỷ lệ trên các biểu mẫu đăng nhập và đăng ký.
- Đóng hoặc giới hạn truy cập XML-RPC không cần thiết.
- Bảo vệ bảng điều khiển quản trị với URL khác, giới hạn IP và xác thực đa yếu tố.
- Lọc các mẫu user-agent và referer nghi ngờ ở cấp độ WAF.
- Sử dụng CAPTCHA hoặc cơ chế xác thực bot ẩn một cách cân bằng trên các biểu mẫu.
- Thêm kiểm tra khóa, chữ ký, hạn mức và dấu thời gian cho các điểm cuối API.
Trong quản lý bot, việc không làm giảm trải nghiệm người dùng là rất quan trọng. Việc sử dụng quá mức CAPTCHA, chặn quá mức hoặc các khối quốc gia sai có thể gây hại cho khách hàng thực sự của bạn. Do đó, đo lường, thử nghiệm và thắt chặt dần dần là phương pháp an toàn nhất.
Theo Dõi Log và Quy Tắc Cảnh Báo
Thật sai lầm khi nghĩ rằng quá trình cài đặt đã hoàn tất. Tường lửa là một hệ thống sống và cần được theo dõi định kỳ. Các thử nghiệm SSH trong auth.log hoặc secure, lưu lượng yêu cầu không bình thường trong log truy cập nginx, sự gia tăng 404 và 500 trong log lỗi, và theo dõi số liệu hệ thống như CPU và số kết nối đều phải được kiểm tra. Một cảnh báo đơn giản cũng có thể tiết kiệm được vài phút khi một cuộc tấn công bắt đầu.
Các ngưỡng ví dụ cho khởi đầu có thể như sau: hơn 100 yêu cầu 404 từ cùng một IP trong 5 phút, hơn 20 lần thử trên trang đăng nhập trong 1 phút, mức sử dụng CPU trên 90% trong 10 phút, số kết nối gấp 3 lần mức bình thường. Những ngưỡng này sẽ thay đổi tùy theo từng trang; điều quan trọng là hiểu rõ hồ sơ lưu lượng bình thường của bạn.
Các Sai Lầm Thường Gặp và Cách Tránh
- Kích hoạt tường lửa mà không cho phép quyền truy cập SSH: Có thể khiến bạn mất quyền truy cập vào máy chủ từ xa. Luôn kiểm tra bằng một phiên thứ hai.
- Quên IPv6: Khi IPv4 bị đóng, dịch vụ vẫn có thể mở trên IPv6.
- Để cơ sở dữ liệu mở cho internet: Các cổng như 3306, 5432, 6379 và 9200 bị bot quét liên tục.
- Sử dụng CDN nhưng để lộ IP thực: Kẻ tấn công có thể bỏ qua CDN và tấn công trực tiếp vào máy chủ.
- Thay đổi quy tắc mà không ghi lại: Trong trường hợp khẩn cấp, sẽ khó xác định quy tắc nào đang hoạt động.
- Không tạo kế hoạch truy cập dự phòng: Nếu không có quyền truy cập vào console trong trường hợp có quy tắc sai, thời gian gián đoạn sẽ kéo dài.
Ví Dụ Chính Sách Tường Lửa Thực Tế
Đối với một trang web doanh nghiệp nhỏ, chính sách tóm tắt khả thi có thể như sau: lưu lượng đến mặc định sẽ bị chặn; cổng 443 sẽ mở cho tất cả khách truy cập; cổng 80 chỉ mở cho việc chuyển hướng HTTPS; SSH chỉ có thể truy cập từ địa chỉ IP quản trị viên tĩnh hoặc VPN; cơ sở dữ liệu nằm trên localhost hoặc mạng riêng; nếu sử dụng CDN, các cổng 80 và 443 chỉ cho phép dải IP của CDN; Fail2ban theo dõi các lần thử đăng nhập SSH và web; log sẽ được gửi đến một công cụ giám sát trung tâm.
Đối với một trang thương mại điện tử quy mô trung bình, có thể thêm vào đó các IP callback thanh toán sẽ được cho phép, bảng điều khiển sẽ được đưa vào sau VPN, áp dụng giới hạn người dùng cho API, kích hoạt các quy tắc SQL injection và XSS trên WAF, và chuẩn bị một kế hoạch lọc tạm thời dựa trên quốc gia hoặc ASN. Điều quan trọng là kế hoạch này phải được viết ra; thực hiện quy trình đã được xác định trước thay vì quyết định vào thời điểm tấn công giúp giảm thời gian gián đoạn.
Kiểm Tra: Quy Tắc Có Thực Sự Hoạt Động Không?
Sau khi cài đặt tường lửa, cần phải kiểm tra. Hãy quét cổng mở từ một mạng khác, xác nhận rằng quyền truy cập SSH chỉ hoạt động từ các IP được phép, kiểm tra rằng website có thể truy cập qua HTTPS, và đảm bảo rằng cổng cơ sở dữ liệu đóng với bên ngoài. Nếu bạn đang sử dụng CDN, hãy gửi yêu cầu HTTP trực tiếp đến địa chỉ IP thực của máy chủ để xác nhận rằng nó đã bị chặn.
Trong quá trình kiểm tra, tránh thực hiện các quét quá mức có thể gây hại cho hệ thống sản xuất. Mục đích là để xác minh tính an toàn. Ngoài ra, sau mỗi thay đổi, xuất tập hợp quy tắc ra bên ngoài hoặc ghi chú lại. Điều này sẽ giúp bạn dễ dàng quay lại cấu hình khỏe mạnh trước đó khi xảy ra sự cố.
Kế Hoạch Bảo Trì và Cập Nhật
Bảo mật máy chủ không phải là một lần cài đặt mà là một quá trình bảo trì định kỳ. Khi có dịch vụ mới được thêm vào, cần xem xét lại nhu cầu cổng, khi dịch vụ cũ bị xóa, các quyền liên quan phải được xóa bỏ, cập nhật bảo mật phải được thực hiện kịp thời và log cần được kiểm tra định kỳ. Kiểm tra các cổng mở ít nhất một lần mỗi tháng và xem xét tập hợp quy tắc tường lửa mỗi ba tháng là một khởi đầu tốt.
Thêm vào đó, kế hoạch sao lưu là một phần của chiến lược bảo mật. Các cuộc tấn công DDoS có thể cắt đứt quyền truy cập, nhưng ransomware hoặc truy cập trái phép có thể gây mất dữ liệu. Lưu trữ an toàn, SSL, quản lý miền và sao lưu nên được xem xét cùng nhau. Trong bối cảnh này, Những điều cần chú ý khi chọn hosting an toàn và Cách thực hiện cài đặt chứng chỉ SSL là các liên kết tiếp nối tự nhiên.
Kết Luận
Cài đặt tường lửa máy chủ không làm cho máy chủ hoàn toàn vô hình trước DDoS và bot; nhưng nó giảm đáng kể bề mặt tấn công, giảm rủi ro truy cập trái phép và cho phép bạn can thiệp vào các sự cố một cách có kiểm soát hơn. Kết quả đúng đắn nhất đạt được là sự kết hợp của bảo vệ DDoS cấp nhà cung cấp, CDN/WAF, chính sách cổng chặt chẽ, hạn chế SSH, Fail2ban, giới hạn tỷ lệ và theo dõi log định kỳ.
Nếu bạn đang triển khai một dự án mới, lập kế hoạch chính sách tường lửa ngay từ đầu dễ dàng hơn là sửa chữa sau này. Khi đánh giá hạ tầng máy chủ, lưu trữ, miền và SSL trên Hostragons, hãy cân nhắc đến các nhu cầu bảo mật của bạn để tạo ra một môi trường web bền bỉ hơn. Nếu cần thiết, hãy bắt đầu với một danh sách kiểm tra nhỏ: đóng các cổng mở, hạn chế SSH, yêu cầu HTTPS và theo dõi log.
Các Câu Hỏi Thường Gặp
Tường lửa máy chủ có hoàn toàn ngăn chặn cuộc tấn công DDoS không?
Không. Tường lửa nội bộ có thể giảm bớt các cuộc tấn công nhỏ và một số cuộc tấn công ở mức giao thức, nhưng trong các cuộc tấn công DDoS lớn, cần phải sử dụng bảo vệ DDoS cấp nhà cung cấp, CDN và WAF.
Các cổng nào nên mở trên máy chủ web?
Trên một máy chủ web điển hình, các cổng 80 và 443 sẽ được mở. Cổng SSH chỉ nên được phép cho các địa chỉ IP quản trị.
Tôi nên sử dụng UFW hay firewalld?
UFW cung cấp một khởi đầu dễ dàng hơn cho các hệ thống Ubuntu và Debian. firewalld phổ biến trên các hệ thống AlmaLinux, Rocky Linux và RHEL. Trong các kịch bản nâng cao và đặc biệt, nftables có thể được ưa chuộng.
Tôi có thể chỉ bằng cách chặn IP để dừng lưu lượng bot không?
Thông thường là không. Các bot hiện đại sử dụng nhiều IP và proxy khác nhau. Ngoài việc chặn IP, cần phải áp dụng giới hạn tỷ lệ, quy tắc WAF, phân tích hành vi, CAPTCHA và các hạn mức dựa trên ứng dụng.
Rủi ro lớn nhất khi cài đặt tường lửa là gì?
Rủi ro lớn nhất là bạn có thể chặn quyền truy cập SSH của chính mình do quy tắc sai. Vì vậy, trước tiên bạn nên xác định quyền SSH, thử nghiệm bằng một phiên thứ hai và đảm bảo rằng quyền truy cập console của nhà cung cấp luôn sẵn sàng.