Các website sử dụng mã nguồn mở như Joomla, WordPress, Nuke… mở rất dễ bị tấn công, đơn giản là vì nó quá phổ biến. Khi phát hiện một lỗ hổng bảo mật, các hacker sẽ tận dụng nó với ý đồ xấu, thường là website của bạn sẽ bị chèn mã độc, lợi dụng để quảng cáo, lừa đảo…
Khi tải website lên máy chủ Share Hosting, bạn cần lưu ý thiết lập các bảo mật cần thiết vì nhà cung cấp dịch vụ sẽ không thể giúp bạn được nhiều, một khi website đã bị hack và chèn đủ thứ vào tập tin và database.
Những nguyên nhân dẫn đến website Joomla bị hack
- Quyền trên các folder/file không bảo mật
- Mật khẩu Backend (tức Administrator) quá dễ để dò ra
- Không có Password Protect thư mục Backend
- Sử dụng các Module/Extension của một cá nhân/hãng nào đó lập trình kém, sử dụng bản crack/null (đã chứa sẵn shell script ) được tung lên mạng
Các thiết lập cần thiết
Bảo mật cho Website Joomla là một nhân tố quan trọng góp phần bảo vệ Website trước các âm mưu tấn công có chủ đích cũng như vô tình, giúp cho Website luôn hoạt động ổn định và bền vững. Nhiều quản trị Website chỉ đặt trọng tâm vào việc thiết kế, cập nhật nội dung và giành thứ hạng cao trong các kết quả tìm kiếm mà quên đi việc đảm bảo an toàn cho Website, tới khi sự việc xảy ra thì đã quá muộn. Bài viết dưới đây sẽ giới thiệu tới các bạn 20 bước để bảo mật cho Website Joomla và giảm thiểu các nguy cơ tấn công từ Internet.
01. Luôn cập nhật phiên bản mới nhất (Joomla 1.0.x, Joomla 1.5)
02. Chỉ nên download Joomla! từ website chính thức Joomlacode.org và kiểm tra mã xác thực MD5 (nếu có)
03. Xóa thẳng tay những thư mục hoặc file không còn sử dụng. Sau khi cài đặt thành công Joomla, bạn phải xóa toàn bộ thư mục “installation”. Nếu bạn upload lên Host bộ cài Joomla ở định dạng nén (*.zip), bạn cũng cần phải xóa bỏ file nén này. Tốt nhất là không nên để lại file hoặc thư mục gì ngoài gói Joomla.
04. Tăng cường bảo vệ cho file cấu hình “configuration.php” bằng cách chuyển nó ra khỏi thư mục public (thường có tên là public_html) và đổi quyền hạn sang CHMOD 644.
05. Đổi tên tài khoản truy nhập Joomla thay vì tài khoản mặc định “admin”. Bước này tưởng chừng rất đơn giản nhưng lại ngăn chặn được khá nhiều cuộc tấn công. [Xem thêm]
06. Chặn các truy vấn nguy hiểm nhờ file “.htaccess”
07. Bảo vệ các thư mục nhậy cảm, chẳng hạn thư mục “administrator” thông qua file “.htaccess”
08. Giới hạn các IP truy cập tới các thư mục nhậy cảm thông qua file “.htaccess”
09. Chọn Host có hỗ trợ PHP5.
10. Sử dụng các công cụ nổi tiếng như PHPsuExec, php_suexec và suPHP.
11. Nếu có thể, hãy yêu cầu Server nạp các module mod_security và mod_rewrite để lọc và chặn các truy vấn nguy hiểm.
12. Sử dụng tài khoản MySQL đã được thiết lập quyền giới hạn (không sử dụng tài khoản root).
13. Cố gắng nâng cấp các đoạn mã sang PHP5. Riêng gói Joomla thì bạn không cần lo lắng vì ngay từ ban đầu nó đã được thiết kế tương thích với PHP5.
14. Cố gắng không sử dụng các thành phần mở rộng yêu cầu “safe_mode” của PHP.
15. Joomla! Register Globals Emulation.
Bạn cần phải chắc chắn rằng biến “register global emulation” được thiết lập thành OFF. Hãy mở tệp “global.php”, tìm dòng define(‘RG_EMULATION’, 1) và đổi nó thành
define(‘RG_EMULATION’, 0)
Register Globals
Đảm bảo rằng Register Globals được thiết lập thành OFF. Nếu không hãy liên hệ với Server của bạn để đổi nó thành OFF hoặc mở tệp .htaccess và thêm vào đoạn mã sau
php_flag register_globals off.
16. Thiết lập quyền truy cập (CHMOD) các thư mục sang 755, các file sang 644. Bạn có thể vào Site –> Global Configuration –> Server để thiết lập các quyền này cho thư mục và file. Bạn cũng có thể sử dụng một công cụ FTP như FileZilla, SmartFTP, WS_FTP, Net2FTP… để CHMOD. Lưu ý: Một số thành phần mở rộng trong quá trình cài đặt có thể yêu cầu quyền truy cập 777.
17. Xóa bỏ toàn bộ các template không sử dụng khỏi thư mục “templates” và không đặt bất cứ đoạn mã nhạy cảm nào vào các file trong template.
18. Thuê một chuyên gia bảo mật Joomla! để kiểm tra toàn bộ Website của bạn.
19. Sao lưu toàn bộ Website theo định kỳ
Điều đầu tiên và cũng là quan trọng nhất là bạn phải thường xuyên sao lưu toàn bộ Website bao gồm cả thư mục chứa Joomla và cơ sở dữ liệu MySQL. Hãy lập lịch ít nhất một lần trong tuần (khuyến cáo là mỗi ngày một lần) để thực hiện sao lưu. Bạn sẽ tiết kiệm được rất nhiều công sức và tiền của khi Website bị tấn công và chỉ mất vài phút hoặc vài chục phút để khôi phục lại gần như toàn bộ.
20. Kiểm tra các thành phần mở rộng (module, component, mambot/plugin) của các hãng thứ ba
Một số Website có thể bị tấn công thông qua các lỗi bảo mật nằm trong các thành phần mở rộng được cài đặt thêm từ hãng thứ ba. Do vậy bạn cũng luôn phải chắc chắn rằng nếu mình có cài đặt các thành phần mở rộng từ hãng thứ ba thì đó phải là các phiên bản mới nhất.
Khuyến cáo: Hãy hạn chế tới mức tối đa việc cài đặt các thành phần mở rộng từ hãng thứ ba. Ngoài ra khi bạn quyết định gỡ một thành phần mở rộng nào đó khỏi hệ thống thì bạn cũng xóa cả các bảng cơ sở dữ liệu liên quan.
Hướng dẫn Chmod an toàn, bảo mật cho website chạy shared hosting
1.CHMOD thư mục Public_html thành 710 thay vì 750 mặc định việc này sẽ giúp bạn bảo vệ được cấu trúc Website của mình.
2.CHMOD thư mục là 701 và cố gắng đừng bao giờ CHMOD 777, có một số folder ko quan trọng, bạn có thể CHMOD 755 để có thể hiện thị đúng và đầy đủ một số nội dung trong Folder đó .
3.CHMOD tập tin config và các file index.php của site thành 400 thay vì 644 thường dùng, điều này chống hacker local và view source của tập tin này
4.Các file index.htm, index.html, hay các tập tin .html hãy cố gắng chmod thành 404 (nếu lỗi thì set 444) thay vì mặc định là 644
-Thay đổi cấu trúc, tên file mặc định có chứa các thông tin quan trọng . Nếu có thể hãy thay đổi cả cấu trúc CSDL nếu bạn làm được .
-Thiết lập các tường lửa truy cập Admin mà ko sử dụng đến CSDL, mã hóa User/Pass thì càng tốt, ngoài ra có hệ thống kiểm tra tác vụ của MOD, Admin … nếu quyền hạn xác nhận mới được thực hiện
5. Mã hóa các file config kết nối database, FTP… bằng phương pháp Zend. Xem hướng dẫn mã hóa tại đây