Trong cuộc hành trình không ngừng để biến trang web của bạn thành một nơi đáng trải nghiệm cho khách hàng và người dùng, hai yếu tố không thể thiếu là tối ưu hóa tốc độ và bảo mật. Chúng ta đã đi qua bảy phần trước của loạt bài viết “Hướng dẫn tối ưu tăng tốc độ website nâng cao”, đào sâu vào các khía cạnh quan trọng của việc tối ưu hóa hiệu suất trang web. Tuy nhiên, trong phần 8 này, chúng ta sẽ thảo luận về một khía cạnh quan trọng khác, đó là kết hợp tối ưu hóa tốc độ và bảo mật.
Bảo mật trang web ngày càng trở nên quan trọng hơn khi các mối đe dọa trực tuyến ngày càng tinh vi. Đồng thời, việc tối ưu hóa tốc độ làm cho trang web của bạn nhanh hơn và hấp dẫn hơn đối với người dùng. Trong phần này, chúng ta sẽ khám phá cách cân nhắc và thực hiện cả hai yếu tố này một cách thông minh để đảm bảo rằng trang web của bạn không chỉ nhanh chóng mà còn an toàn. Hãy cùng chúng tôi khám phá chi tiết trong bài viết dưới đây.
Giới thiệu
Hack và các cuộc tấn công mạng có thể gây ra các vấn đề lớn về hiệu suất máy chủ, thậm chí có thể dẫn đến gián đoạn hoàn toàn. Rất nhiều người không biết rằng máy chủ thường xuyên bị tấn công vì họ không bao giờ kiểm tra các bản ghi nhật ký. Tôi có thể đảm bảo bạn rằng mỗi máy chủ sẽ bị tấn công hàng ngàn lần (đôi khi trong vòng một giờ) hàng tháng. Trang web của bạn có thể đang bị tấn công ngay lúc này, nhưng bạn không hề biết đấy.
Để bảo vệ trước những cuộc tấn công này, cần có một sự cân nhắc tỉ mỉ. Bạn không muốn có một máy chủ cho phép hacker tự do tấn công vào cổng và tài nguyên của bạn. Nhưng bạn cũng không muốn có một máy chủ quá bảo mật và kiểm tra quá mức tất cả lưu lượng, làm chậm người dùng hoặc tồi tệ hơn (chặn người dùng hợp lệ). Trong danh sách gợi ý dưới đây, hãy tuân theo những điều bạn có quyền truy cập.
Máy chủ chỉ chứa dữ liệu của bạn hoặc vài người thuê:
- Dễ dàng để bảo mật hơn vì có ít trang web để tấn công và bạn có thể an toàn tắt nhiều cổng mà không ảnh hưởng đến trang web của bạn.
- Khó bảo mật hơn nếu bạn tự quản lý nó và thiếu kinh nghiệm.
Máy chủ chứa nhiều người thuê:
- Dễ dàng để bảo mật hơn nếu đã có quản trị viên đang theo dõi máy chủ. Nhiều cuộc tấn công thông thường đã được bảo vệ.
- Khó bảo mật hơn nếu nhiều dịch vụ cần mở để phục vụ cho các trường hợp sử dụng của nhiều khách hàng khác nhau. Do đó, có nhiều trang web và dịch vụ sẽ mời gọi hacker tấn công.
Tắt các dịch vụ máy chủ không cần thiết
Bạn có thể xem các dịch vụ không sử dụng như những chiếc điện thoại hoặc tài khoản email không sử dụng. Chúng chỉ đứng đó tiêu thụ tài nguyên (BỘ NHỚ) và tạo ra các kết nối không mong muốn (RÁC, HACKER), lãng phí thời gian của bạn. Bất kỳ thứ gì bạn không sử dụng, hãy tắt nó trên máy chủ của bạn!
- DNS – tắt nếu bạn đang sử dụng máy chủ DNS bên ngoài. (Cloudflare, DNSME, v.v.)
- Email – tắt nếu bạn đang sử dụng dịch vụ email của bên thứ ba. (G-Suite, MXroute, v.v.)
- FTP/SFTP – tắt nếu bạn không sử dụng.
- Các proxy khác – như Varnish.
Nhiều trong số các dịch vụ này đã được kích hoạt theo mặc định trong ngăn xếp máy chủ hoặc bảng điều khiển điều khiển của bạn. Bạn có thể đọc tài liệu hướng dẫn của họ để có danh sách. Đối với các dịch vụ cần phải chạy, bạn có thể giới hạn sự tiếp xúc của chúng với lưu lượng xấu bằng cách sử dụng tường lửa.
Cấu hình tường lửa máy chủ
Hầu hết các cấu hình tường lửa mặc định thường được thiết lập quá lỏng lẻo để tránh gây ra vấn đề. Bạn nên can thiệp và chặn càng nhiều càng tốt. Dưới đây là một số logic ví dụ:
- Các cổng được sử dụng bởi những người cụ thể (SSH, FTP) – chỉ bạn hoặc một vài người khác. Hãy thực hiện danh sách trắng IP và chặn các IP còn lại.
- Các cổng được sử dụng bởi một số quốc gia cụ thể (POP3, IMAP, FTP) – nếu một số dịch vụ chỉ được sử dụng từ trong một quốc gia, bạn có thể chặn tất cả các quốc gia khác. Tuy nhiên, hãy cẩn thận vì người nào đó đang đi du lịch có thể mất quyền truy cập!
- Các cổng bị tấn công chỉ từ một số quốc gia cụ thể – nếu bạn nhận thấy có nhiều cuộc tấn công đến từ các quốc gia hoặc khu vực cụ thể, bạn có thể cấm theo quốc gia hoặc toàn bộ dải địa chỉ IP.
Có nhiều tường lửa máy chủ khác nhau. Mỗi tường lửa có ưu điểm và nhược điểm riêng và được đề xuất cho các trường hợp sử dụng khác nhau. Bạn có thể tìm hiểu cách người khác sử dụng và cấu hình chúng trực tuyến. Điều đơn giản nhất là bắt đầu với tường lửa mặc định đi kèm với ngăn xếp của bạn.
Bảo vệ khỏi tấn công brute-force cho máy chủ
Bảo vệ khỏi tấn công brute-force giống như một tường lửa thông minh. Nó để lại các dịch vụ và cổng mở nhưng tự động chặn những kẻ vi phạm rõ ràng.
- Nó tự động cấm bất kỳ ai nhập sai thông tin xác thực hoặc sử dụng tên người dùng chung đã bị đưa vào danh sách đen, v.v.
Chúng dễ thiết lập và rất mạnh mẽ. Nhưng hãy cẩn thận để chúng không chặn người dùng/lưu lượng hợp lệ. Bạn có thể kiểm tra xem máy chủ của bạn đi kèm với bảo vệ brute-force hoặc DDOS và kích hoạt nó. Có thể bạn không nên thiết lập nó quá nghiêm ngặt nếu bạn có nhiều người dùng trên máy chủ này.
Bảo vệ trước tấn công brute-force trên trang wp-login.php
Trang đăng nhập quản trị WordPress thường bị các bot tấn công bằng cách thử các tên người dùng và mật khẩu ngẫu nhiên để tiến vào. Mặc dù họ có thể không thành công, nhưng việc liên tục thử này sẽ tiêu tốn nhiều tài nguyên. Có một số cách để ngăn chúng, mỗi cách đều có ưu điểm và nhược điểm riêng.
- Bảo vệ brute force ở mức máy chủ – dễ dàng và hiệu quả nhưng có thể khóa người dùng hợp lệ trên máy chủ bận rộn có trang web sử dụng Cloudflare. Vấn đề là việc khóa brute-force được thực hiện theo địa chỉ IP và các khách truy cập thông qua Cloudflare thường chia sẻ cùng một địa chỉ IP (proxy). Tất nhiên, bạn có thể cấu hình để chuyển đúng địa chỉ IP của người dùng qua tiêu đề Cloudflare, nhưng điều này làm chậm tải trang!
- Bảo vệ brute force ở mức ứng dụng – nhiều plugin bảo mật WordPress có thể thực hiện điều này. Chúng bảo vệ trang đăng nhập bằng cách cấm người dùng có thông tin đăng nhập sai.
- Một số plugin ẩn trang đăng nhập – di chuyển nó đến một URL khác. Chỉ cần đảm bảo rằng URL đăng nhập tiêu chuẩn đã bị chặn hoặc được lưu trữ tạm thời để ngăn chặn việc truy cập sử dụng tài nguyên.
- Các plugin khác bảo vệ biểu mẫu đăng nhập bằng cách thêm CAPTCHA và cấm một số robot, trình duyệt web, thiết bị. Điều này có thể hoạt động tốt nhưng có thể làm phiền hoặc gây sai lầm cho người dùng hợp lệ.
Hiện tại, máy chủ duy nhất mà tôi biết có bảo vệ native brute-force trên wp-login.php là LiteSpeed. Tất cả các máy chủ khác (Apache & NGINX) sẽ cần phải kích hoạt nó bằng cách sử dụng plugin bảo mật hoặc http auth.
Xác thực HTTP
Bạn có các trang cụ thể bị tấn công mạnh và không có cách thuận tiện nào để chặn quyền truy cập đến chúng? Xác thực HTTP là một cách nhanh và không tốn thời gian để khóa tất cả người dùng. Vấn đề duy nhất là nó có thể gây một chút phiền phức cho người dùng hợp lệ. Hầu hết các hướng dẫn sẽ chỉ bạn cách bảo vệ thư mục wp-admin, nhưng bạn cũng có thể bảo vệ các trang thường xuyên được truy cập khác.
Tắt giao thức XML-RPC
Giao thức XML-RPC cho phép các ứng dụng bên ngoài (như ứng dụng di động) đăng nhập vào WordPress của bạn và chỉnh sửa nội dung hoặc xem doanh số bán hàng WooCommerce. Thật không may, nó thường bị khai thác bởi các hacker và bot tấn công brute-force vào trang web của bạn.
Nếu bạn không sử dụng nó, việc tắt XML-RPC sẽ ngăn chặn việc máy chủ giảm tốc do hàng ngàn yêu cầu tấn công XML-RPC. Nếu bạn cần phải bật nó, bạn có thể thêm địa chỉ IP của bạn vào danh sách trắng.
Cấu hình plugin bảo mật
Nếu bạn không có quyền truy cập vào máy chủ của mình, bạn có thể sử dụng các plugin bảo mật. Đúng vậy, bảo mật thường hoạt động hiệu quả hơn ở mức máy chủ (gần với sức mạnh xử lý tính toán cơ bản) hơn là ở mức ứng dụng (xử lý PHP chậm hơn)… nhưng đôi khi, việc thiết lập quy tắc bảo mật toàn cầu khó khăn khi bạn có nhiều khách hàng/trang web và mỗi trang web cần điều gì đó khác biệt.
Tuy nhiên, một plugin bảo mật ở mức phần mềm như WordFence vẫn là một lựa chọn hữu ích để chặn các cuộc tấn công mà máy chủ không thể làm được, và/hoặc ngăn các trang web bị xâm nhập gây ra thiệt hại lớn hơn.
- Plugin bảo mật WordPress yêu thích của tôi là WordFence.
- Tính năng quan trọng nhất của plugin bảo mật theo quan điểm của tôi là quét malware. Quét thủ công hoặc lên lịch vào các giờ lưu lượng thấp. Tính năng này không nhất thiết làm tăng tốc độ trang web, nó phát hiện các lỗ hổng trong hệ thống và ngăn chúng sử dụng tài nguyên (lưu trữ các trang web rác hoặc tấn công các máy chủ khác).
- Các tính năng tường lửa trên plugin bảo mật có lẽ không cần thiết nếu bạn đã có một tường lửa máy chủ. Tường lửa được kích hoạt ở mức PHP sẽ làm chậm các yêu cầu đến.
Vấn đề về hiệu suất với các plugin bảo mật là do A) chặn mọi lưu lượng đến quá mức và B) quét quá thường xuyên. Cả hai đều tiêu thụ nhiều tài nguyên, đặc biệt là trên các trang web lớn với nhiều trang và lượt truy cập. Tôi đề xuất không sử dụng tường lửa phần mềm và đặt quét malware của bạn ở tốc độ chậm hơn.
Cấu hình bảo mật tại mức edge-level DNS
Nhớ lại như tôi nói rằng việc bảo mật thường hiệu quả hơn ở mức máy chủ hơn là ở mức ứng dụng? Nhưng việc thực hiện nó ở mức edge (mức DNS) có thể hiệu quả hơn cả ở mức máy chủ của bạn vì nó sử dụng máy chủ của người khác. Có một số tác động về hiệu suất khi xử lý bảo mật ở mức edge so với trên máy chủ của bạn. Bạn có thể quyết định xem điều gì hoạt động tốt nhất cho trường hợp sử dụng của bạn.
- Việc xử lý bảo mật trên máy chủ của bạn có thể thuận tiện hơn vì bạn có nhiều quyền kiểm soát hơn. Bạn có thể tối ưu hóa cho việc sử dụng cụ thể của bạn. Nhược điểm duy nhất là nó sử dụng tài nguyên máy chủ của bạn và bạn cần có kỹ năng quản trị viên.
- Việc xử lý bảo mật thông qua một máy chủ khác (như DNS proxy, Cloudflare) hoặc dịch vụ bảo mật (Sucuri) giữ tài nguyên quý báu của máy chủ của bạn nhưng có thể gây ra vấn đề trễ tải nhỏ vì khách truy cập phải đi qua một proxy bổ sung trước khi đến máy chủ web của bạn.
Nếu máy chủ của bạn yếu và kỹ năng quản trị viên máy chủ của bạn cũng yếu, thì dịch vụ bảo mật có thể hiệu quả hơn trong việc chặn các yêu cầu DDOS. Tuy nhiên, đối với trang web nhỏ, bạn có thể không gặp nhiều vấn đề về bảo mật. Dù bạn làm gì, ĐỪNG thử đặt bảo mật DDOS quá quyết liệt ở cả hai mức (DNS & máy chủ). Điều này có thể gây ra trường hợp chặn người dùng hợp lệ vì tất cả người dùng (tốt và xấu) đều chia sẻ cùng một địa chỉ IP khi đi qua một proxy.
- Hầu hết mọi người không cần lo lắng về các cuộc tấn công DDOS, ok?
- Hầu hết các cuộc tấn công DDOS cấp thấp có thể dễ dàng được xử lý bởi máy chủ của bạn.
- Các cuộc tấn công DDOS cấp cao nhất là những cuộc tấn công làm cho máy chủ quá tải (ngay cả với bảo mật tốt) nhưng chúng tốn tiền và nỗ lực tập trung từ phía hacker. Trừ khi có ai đó đặc biệt nhắm vào bạn, bạn không cần phải lo lắng về chúng.
- Cách dễ nhất để xử lý các cuộc tấn công DDOS cấp cao là đăng ký ngay lập tức với một công ty bảo mật chuyên nghiệp như Sucuri (khi nó xảy ra).
- Tôi không khuyến nghị trả tiền cho các dịch vụ bảo mật phức tạp mà bạn hầu hết sẽ không cần.
HTTPS và chuyển hướng HTTPS
- Bạn nên tuyệt đối sử dụng HTTPS. (Đó là cách duy nhất để có được lợi ích của giao thức HTTP/2.)
- Thiết lập 301 chuyển hướng HTTPS trên máy chủ của bạn để người truy cập nhanh chóng được chuyển hướng đến phiên bản HTTPS đúng đắn và phiên bản tên miền của trang web của bạn (có hoặc không có “www”). Nếu không có các chuyển hướng máy chủ này, WordPress vẫn có thể làm điều đó nhưng mất một chút thời gian hơn.
Hãy đảm bảo rằng tất cả các URL nội bộ của bạn đang sử dụng HTTPS (tuân theo bước 3). Đừng phụ thuộc vào các plugin SSL (không cần thiết) hoặc WordPress (chậm) để chuyển hướng bạn. Đặt các chuyển hướng từ máy chủ!
- Mẹo thêm: nếu bạn đang sử dụng Cloudflare, hãy đặt một luật trang để thực hiện các chuyển hướng HTTPS 301 từ đó luôn. (Nhanh hơn cả từ máy chủ cục bộ!)
Tường lửa ứng dụng web, còn gọi là “WAF”
- WAF được kích hoạt thông qua ngăn xếp bảo mật máy chủ của bạn.
- Cách dễ nhất để chặn bot mà không làm giảm hiệu suất là thủ công thông qua htaccess hoặc cấu hình máy chủ toàn cầu. Nhưng điều này có thể làm quá nhiều công việc thủ công khi quản lý nhiều trang web. Do đó, nó an toàn hơn khi sử dụng WAF cho họ.
- Nếu bạn đang sử dụng ModSecurity, hãy xem các gợi ý về hiệu suất ModSecurity này từ Trustwave và Packt.
- Bạn cũng có thể kích hoạt một WAF hiệu suất cao thông qua các luật bảo mật của Cloudflare hoặc dịch vụ bảo mật trả phí của bên thứ ba… như Sucuri.
Hầu hết mọi người không biết sự khác biệt giữa tường lửa mạng và tường lửa ứng dụng web (WAF). Tường lửa mạng dùng để mở và đóng cổng. WAF dùng để chặn bot thông qua các cổng mở. Bạn phải cẩn trọng với bảo mật của WAF vì nó có thể làm chậm máy chủ của bạn vì nó kiểm tra tất cả lưu lượng vào (bất kể là lưu lượng tốt hay xấu). Vì lý do hiệu suất, tôi thường tránh WAF nếu có thể, nhưng phong cách quản lý máy chủ của tôi có thể không thực hiện được cho người khác.
Hẹn gặp các bạn ở phần sau!








