Tăng cường bảo mật cho Website NukeViet

Thứ hai - 27/07/2015 09:53
Bài viết này tổng hợp và chia sẻ kinh nghiệm cũng như giải pháp bảo mật cho website sử dụng mã nguồn mở NukeViet 4.
PHP security
PHP security
NukeViet 4 cung cấp nhiều công cụ và giải pháp bảo mật giúp người quản trị có những công cụ hữu hiệu nhằm tùy biến hệ thống, giúp hệ thống trở lên kín đáo và an toàn hơn trước sự soi mói của các hacker. Sau đây là một vài chia sẻ nhỏ.

Luôn luôn cập nhật

Việc đầu tiên bạn cần làm đó là luôn cập nhật các phiên bản mới nhất của NukeViet việc này là hoàn toàn miễn phí và giúp chúng ta sửa chữa các lỗi ở phiên bản cũ, cập nhật thêm các tính năng mới cho hệ thống và các modules.

Ngoài cách cập nhật các phiên bản phát hành, bạn có thể cập nhật các bản cập nhật hàng ngày theo chức năng cập nhật phiên bản.
Một chú ý trong việc phát triển thêm tính năng của site, bạn không nên hiển thị các thông tin của phiên bản NukeViet bạn đang sử dụng (chỉ hiển thị cho người điều hành tối cao của website).


Phân quyền người dùng một cách hợp lý

Hệ thống NukeViet là hệ thống rất mạnh về việc phân quyền quản trị site, nếu một cách hợp lý bạn có thể ngăn ngừa các nguy cơ “tấn công nội bộ” hoặc “tấn công vào các tài khoản quản trị”. Sau đây là một số lưu ý:

+ Không tạo thêm tài khoản quản trị tối cao. Bạn không nên tạo nhiều tài khoản này bằng cách sửa cơ sở dữ liệu. Không phải tự dưng mà NukeViet chỉ cho phép duy nhất một Quản trị tối cao (God admin).

+ Không nên sử dụng tài khoản quản trị tối cao cho những hoạt động thông thường (Ví dụ đăng tin, post bài…). Thay vào đó bạn nên tạo thêm tài khoản khác để sử dụng riêng cho nhu cầu này. Điều này giúp hạn chế khả năng dò tìm username của Quản trị tối cao để tấn công dạng Brute-force.
Ví dụ: Việc tạo thêm cho mình một tài khoản Điều hành chung hoặc với quyền thấp hơn là Người điều hành module (tất cả module) để xử lý các công việc này, đây là một ý tưởng không tồi (đừng quên là sử dụng các mật khẩu đủ mạnh và khác nhau).
Không nên trao quá nhiều quyền không cần thiết cho một tài khoản nào đó. Chỉ cấp quyền truy cập cho họ vào những khu vực phù hợp.

Hạn chế sử dụng các module và block

Hãy sử dụng các module và block một cách hạn chế, có nghĩa là chỉ cài những module và block nào thật cần thiết, sẽ tránhđược các lỗi (bug) tiềm ẩn trong bản thân module và block.
Nếu bắt buộc phải sử dụng, hãy đảm bảo bạn biết rõ xuất xứ, nguồn gốc của modules/blocks đó. Đừng tải lên cả mã độc.
Module nào không sử dụng có thể tiến hành xóa trong công cụ quản trị của NukeViet.

Chặn truy cập thư mục trái phép

Việc vô hiệu hoá khả năng liệt kê danh sách các file trong một thư mục có ý nghĩa khá to lớn khi ai đó có ý xấu đang cố gắng tìm một lỗ hổng từ mã nguồn của bạn.
Đôi khi nhà cung câp dịch vụ Hosting hay Webmaster để ngầm định chế độ cho phép xem danh sách các file của thư mục, điều này khá nguy hiểm.
Bạn có thể loại bỏ khả năng liệt kê nội dung thư mục bằng một mẹo nhỏ, đó là tạo file file index.html có nội dung rỗng trong tất cả các thư mục.
Nếu máy chủ web của bạn có hỗ trợ .htaccess, hãy tận dụng chúng.File .htaccess với nội dung: “deny from all” giúp cấm truy cập trực tiếp các thư mục không cho phép. Nếu là người phát triển module bạn nên lưu ý không cho truy cập trực tiếp các thư mục sau của mỗi module:
modules/about/adminmodules/about/blocksmodules/about/funcsmodules/about/language
Hiện tại, cấu hình thông qua .htaccess chỉ được hỗ trợ trên máy chủ web Apache, máy chủ nginx dù chạy trên nền Linux cũng không hoàn toàn hỗ trợ. Tương tự đối với máy chủ IIS, .htaccess cũng không hoạt động. Do đó bạn nên lưu ý đến vấn đề này khi chọn bảo mật bằng cách cấu hình .htaccess.

Đối với các bọ tìm kiếm, bots ... thì bạn có thể chặn chúng truy cập đến các thư mục hoặc file tương ứng thông qua cấu hình file robots.txt nằm trong thư mục gốc của website, với cấu trúc như sau:
Disallow: /dir_name/Disallow: /file_name.ext
CHMOD chính xác và thận trọng

CHMOD thư mục public_html thành 710 và các thư mục còn lại thành 701, việc này sẽ giúp bạn bảo vệ được cấu trúc website của mình. Các thư mục cache, data , files, logs, sess, tmp, uploads (và tất cả các thư mục con của chúng) cần CHMOD 755 (một số host cần CHMOD 777) để hệ thống có thể ghi file.

CHMOD tập tin config.php thành 400, điều này chống hacker local và view source của tập tin này.


Đừng cho ai biết Admin là Admin

Thường thì chúng ta vẫn đặt tên tài khoản quản trị là admin hoặc administrator. Như vậy thay vì phải dò cả tên đăng nhập và mật khẩu thì giờ đây hacker chỉ cần đoán được mật khẩu là có thể vào được site của bạn. Do đó bạn nên đổi tên tài khoản admin thành tên riêng nào đó chỉ có site bạn sử dụng.

Đổi tên thư mục admin

Bạn hãy đổi tên thư mục admin thành 1 cái tên nào đó mà chỉ bạn và các thành viên ban quản trị site được biết ví dụ webadmin Khi đó bạn cần sửa file includes/constants.php, tìm đến dòng

//Ten thu muc admindefine( "NV_ADMINDIR", "admin" );
Sửa thành:
//Ten thu muc admindefine( "NV_ADMINDIR", "webadmin" );

Bật chế độ captcha trong khi đăng nhập

Bạn có thể chọn chế độ đăng nhập có yêu cầu captcha tùy theo nhu cầu bảo vệ site bằng cách cấu hình hiển thị captcha trong phần Cấu hình => Thiết lập an ninh. 

Tăng cường bảo mật khi truy cập khu vực admin
Nếu Bạn có IP tĩnh, hoặc chỉ truy cập site trong giải IP cố định, bạn có thể cấu hình chức năng này trong phần:
Tài khoản => Quản trị => Cấu hình.
Để thực hiện việc này bạn cần thêm địa chỉ IP hoặc dải IP truy cập vào admin vào phần dưới


IP table

Sau đó sửa phần cấu hình Kiểm tra IP khi truy cập khu vực admin và lưu lại.

 

IP admin

Ngoài ra, bạn cũng có thể cấu hình chặn IP hoặc dải IP nhất định, không cho phép truy cập vào trang admin thông qua cấu hình chặn IP. Chức năng này cũng nằm trong cấu hình an ninh của ACP.


IP block
 

Bảo vệ thư mục admin bằng chức năng bảo vệ thư mục của hosting

Nếu hosting của bạn có hỗ trợ chức năng bảo vệ thư mục bằng tài khoản và mật khẩu, bạn nên dùng chức năng này để bảo vệ thư mục admin. Nếu hosting của bạn không hỗ trợ bạn có thể dùng chức năng Kiểm tra tường lửa cho khu vực admin trong phần cấu hình của menu quản trị.
Bạn cũng có thể tham khảo chức năng .htpasswd để đặt mật khẩu cho khu vực Admin.

Giấu file config.php

File config.php là file chứa rất nhiều thông tin quan trọng.Bạn nên đổi tên file này di chuyển đến một vị trí người khó đoán ra. Sau khi đổi tên và đổi đường dẫn file config.php, các bạn tìm file includes/constants.php Tìm đến dòng:

 
//Ten file configdefine( "NV_CONFIG_FILENAME", "config.php" );
Điều chỉnh lại đường dẫn, tên file cho phù hợp.
Ví dụ: trên hosting các file được đặt trong thư mục /public_html/ , bạn có thể đổi tên file config.php thành system.fig và di chuyển nó ra ngoài thư mục /public_htm/ (khi đó file system.fig nằm ngang hàng với thư mục /public_html/) và dòng lệnh:
define( "NV_CONFIG_FILENAME", "config.php" );
sẽ được sửa thành:
define( "NV_CONFIG_FILENAME", "../system.fig" );


Thay đổi đường dẫn tới các thư mục hệ thống

Các thư mục sau bạn nên đổi tên: cache, data , files, logs, sess, tmp sau khi đổi tên các thư mục này bạn cần khai báo lại các thông số này vào file includes/constants.php


Mã hoá file cấu hình hệ thống

Để hóa các file php bạn có thể chọn IonCube và ZendGuard 5. Việc mã hóa file làm cho hacker khó khăn hơn khi muốn đọc nội dung các file này. Các file bạn cần thiết mã hoá là config.php và includes/constants.php. Nếu có điều kiện bạn có thể mã hóa tất cả các file *.php của site.

Thường xuyên sao lưu website
Bạn hãy lên lịch định kỳ hàng tuần thậm chí là hàng ngày thực hiện việc sao lưu website (bao gồm cơ sở dữ liệu site và dữ liệu dạng file có trên hệ thống).Hàng tháng hãy thực hiện một bản sao lưu đầy đủ, toàn diện site (backup full).
Hãy giữ các bản sao lưu ở đâu đó an toàn (tất nhiên không phải trên server chạy web của bạn rồi).

Sao lưu cơ sở dữ liệu

NukeViet đã có sẵn chức năng sao lưu cơ sở dữ liệu (database) và chức năng này mặc định được kích hoạt hàng ngày hệ thống sẽ tự động sao lưu và lưu trữ trên site, bạn hãy tải nó về. Cơ sở dữ liệu sao lưu sẽ được lưu trữ trên site tối đa 40 ngày (tương đương 40 file sao lưu) trước khi nó tự động bị xóa đi. NukeViet cũng có chức năng giúp bạn sao lưu cơ sở dữ liệu thủ công (sao lưu tức thời) để bạn sử dụng bất cứ lúc nào.

Ngoài cơ sở dữ liệu, NukeViet còn lưu trên website các dữ liệu dạng file khác, bao gồm tập tin được upload lên, tập tin cấu hình, các dữ liệu mà hệ thống bóc tách được và lưu trực dạng file thay cho dạng cơ sở dữ liệu MySQL… bạn cần tải các dữ liệu này về thông qua trình FTP.


Sao lưu đầy đủ mã nguồn

Tải toàn bộ dữ liệu trên server về, bao gồm cả code và các dữ liệu tạm trên site, bạn sẽ có một bản sao lưu đầy đủ nhất. Bản sau lưu đầy đủ này đặc biệt hữu ích khi site bạn bị hack, có thể nó chứa thông tin giúp dò ra dấu vết của hacker.

Nguồn tin: Thao khảo từ dangdinhtu.com, biên tập tại seoera.info

Tổng số điểm của bài viết là: 19 trong 4 đánh giá

Xếp hạng: 4.8 - 4 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Mã bảo mật   
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây