Công cụ thành viên

Công cụ trang web


nukeviet:security

Đây là một phiên bản cũ của tài liệu!


Hướng dẫn Bảo mật hệ thống NukeViet

NukeViet 3 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. 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 3.

Hãy luôn cập nhật phiên bản mới 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 module.

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 site xem).

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 có 1 Người quản trị tối cao (God admin)1).
  • 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. 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ách được các lỗi (bug) tiềm ẩn trong bản thân module và block.

Nếu module nào không sử dụng, bạn cần tiến hành xóa trong công cụ quản trị của NukeViet.

Chặn truy cập thư mục không được phép

Cách này nhằm tránh những người có chủ tâm không tốt khai thác thông tin về site của bạn, rồi dùng thông tin đó để dò lỗi và khai thác. Rất nhiều 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. Tuy nhiên, bạn nên loại bỏ khả năng xem nội dung thư mục bằng cách tạo file file index.html trong tất cả các thư mục. Ngoài ra bạn cần thêm file .htaccess có nội dung: “deny from all” cho tất cả các thư mục không cho phép truy cập trực tiếp (chú ý khi dùng file .htaccess này tất cả các file trong thư mục này sẽ không truy cập trực tiếp được). 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/admin
modules/about/blocks
modules/about/funcs
modules/about/language

(Chú ý cách bảo vệ thư mục bằng file .htaccess chỉ áp dụng được cho hosting dùng máy chủ web Apache, các máy chủ dùng IIS sẽ không được bảo vệ, vì vậy nếu có thể, bạn nên chuyển sang dùng hệ điều hành linux dùng máy chủ web Apache).

Ngoài ra bạn nên chặn các loại bots dò tới các thư mục nhạy cảm của bạn bằng cách chèn code sau vào file robots.txt trên thư mục root:

Disallow: /dir_name/
Disallow: /file_name.ext

Vấn đề Chmod

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.

Thông tin Admin

Thường thì mặc địch user của quản trị viên là admin và không thay đổi được, điều này làm cho các hacker chỉ cần đoán pass, việc cần làm là thay đổi tên admin. Do đó bạn nên đổi tên tài khoản admin thành 1 tên riêng nào đó chỉ có site bạn sử dụng. Ngoài ra bạn có thể bảo vệ khu vực admin 1 hoặc nhiều cách sau:

Đổ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ụ adm2457 Khi đó bạn cần sửa file includes/constants.php, tìm đến dòng

//Ten thu muc admin
define( "NV_ADMINDIR", "admin" );
 
//Ten thu muc editors
define( "NV_EDITORSDIR", "admin/editors" );

Sửa thành:

//Ten thu muc admin
define( "NV_ADMINDIR", "adm2457" );
 
//Ten thu muc editors
define( "NV_EDITORSDIR", "adm2457/editors" );

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

Bạn có thể chọn chết độ đă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 → Cấu hình chung. Hình 9: Bật chế độ Kiểm tra IP khi truy cập khu vực admin

Bật chế độ Kiểm tra IP 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: Quản trị → Cấu hình site.

Để 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 Hình 10: Thêm địa chỉ IP.

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. Hình 11: Sửa cấu hình kiểm tra IP.

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ị.

Giấu file config.php

File config.php là file chứa tất cả những gì quan trọng nhất, vì vậy việc không view được source của file này rất quan trọng. đó đó bạn nên đổi tên file di chuyển đến 1 vị trí người khác 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 config
define( "NV_CONFIG_FILENAME", "config.php" );

Edit lại cho phù hợp với đường dẫn và tên file config.php 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 cfg.nkv và di chuyển nó ra ngoài thư mục /public_htm/ (khi đó file cfg.nkv 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", "../cfg.nkv" );

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 để nếu bị xem thông tin sẽ khó mà giải mã được (khó không có nghĩa là không thể). Các file bạn cần thiết mã hoá là config.phpincludes/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 30 ngày (tương đương 30 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.

Sao lưu các dữ liệu dạng file có trên site

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 đủ

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.

Cập nhật thông tin từ diễn đàn nukeviet.vn

Hãy cập nhật những thông tin mới nhất từ diễn đàn http://nukeviet.vn, việc này sẽ giúp bạn nắm bắt được thông tin về việc cập nhật phiên bản, tình trạng báo lỗi cũng như phát hành phiên bản của NukeViet.

Hướng dẫn xử lý website sau khi bị hack

Dù bạn có bảo mật website như thế nào đi chăng nữa thì không có nghĩa là nó đã được an toàn tuyệt đối. Và sự thật là website của bạn vẫn có thể bị tấn công, bị hack! Nó cũng giống như việc mang laptop ra đường là có thể bị mất cắp vậy, không thể tránh được! Tuy nhiên nhờ việc “phòng thủ” kỹ như đã hướng dẫn ở trên, chúng ta hoàn toàn có thể kiểm soát sự cố. Tùy tùng trường hợp bị hack mà bạn cần có phương án đối phó vụ thể. Với trường hợp nặng và khó chống đỡ nhất là site của bạn bị hack local thì bạn cần thực hiện ngay biện pháp sau:

  • Báo nhà cung cấp host để được hỗ trợ.
  • Nếu họ không hỗ trợ, bạn cần làm các bước tiếp theo:
  • Đóng của site ngay lập tức (nếu là Share hosting thì bỏ qua bước này, nếu là VPS hoặc Server thì đóng của tất cả các dịch vụ: web, FTP, mail…. trên cùng máy chủ).
  • Không sửa đổi hoặc xóa bất kể file nào.
  • Sao lưu đầy đủ (backup full) toàn bộ code, CSDL, và logs (file logs của hosting rất quan trọng, giúp chúng ta truy tìm nguyên nhân hoặc dấu viết của hacker) của hosting của site cũ và tải về máy của bạn để có thể khôi phục lại nó.
  • Đổi mọi mật khẩu tài khoản, mật khẩu email, mật khẩu hosting, mật khẩu cơ sở dữ liệu, mật khẩu FTP, mật khẩu mail sử dụng dịch vụ SMTP…, quét virus máy tính của bạn cẩn thận đề phòng máy tính bị dính virus và các phần mềm gián điệp.
  • Xóa sạch hosting để đảm bảo host của bạn sạch (không có nghĩa là host của bạn đã an toàn nếu bị hack local).
  • Cài lại bằng một bản NukeViet tương ứng, đảm bảo nó sạch bằng cách tải về từ đây: http://code.nukeviet.vn.
  • Sau đó sử dụng cơ sở dữ liệu và các tệp tin dữ liệu của site cũ để chuyển sang site mới, hãy đảm bảo không bị sót shell trên site.
  • Cuối cùng đừng quên nâng cấp lên bản NukeViet mới nhất.
  • Nếu sử dụng share hosting mà bị hack local, tốt nhất hãy đổi nhà cung cấp host.
  • Nếu bạn không đủ khả năng kiểm tra bị hack như thế nào liên hệ với Ban Quản Trị NukeViet để được giúp đỡ.

Lưu ý: Các hosting dùng chung (Share hosting) thường dễ bị hack hơn các máy chủ ảo (Virtual private server - VPS) hoặc máy chủ riêng (Dedicated Server). Vì với các hosting dùng chung, chỉ cần một site bị hack là tất cả các site dùng chung server đều có thể bị tấn công thông qua phương thức hack local.

Xem thêm

1)
Tài khoản cài đặt site là tài khoản quản trị tối cao (God admin). Tài khoản này rất nhiều đặc quyền, ngoài việc được phép toàn quyền hệ thống (sửa, xóa site…không thể khôi phục) tài khoản này còn được phép cài đặt module, block, theme lên site (mà rất có thể trong các bộ cài này có chứa mã độc có thể sử dụng để theo dõi, tấn công hoặc gây hại hệ thống), do đó bạn cần tuyệt đối giữ gìn bảo mật tài khoản này. Ngoài việc thực hiện các quy tắc bảo mật thông thường, bạn cần lưu ý thêm khi phân quyền quản trị.
nukeviet/security.1338513868.txt.gz · Sửa đổi lần cuối: 2012/06/01 08:24 bởi laser