Hướng dẫn cách bảo mật website WordPress.

Như mọi người đã biết WP có ưu điểm là mã nguồn mở nên rất dễ dàng cho việc cài đặt, tùy chỉnh, thêm bớt chức năng. Thậm chí người mới cũng hoàn toàn có thể tạo được 1 website tương đổi chỉ với vài ngày làm quen.

Nhưng vấn đề còn tồn tại lớn nhất của WP là vấn đề bảo mật, cũng như tất cả website mã nguồn mở, mọi thông tin về code đều được phơi bày ra trước mắt hacker. Chưa kể là kho Plugin + Theme có vô số bug được phát hiện hàng ngày. Điều này làm cho WP kém an toàn và rất dễ bị hack.

Nhưng thủ thuật dưới đây chỉ có thể tránh được các hacker tập sự, những cao thủ thường có rất nhiều cách để khai thác nên mình nghĩ sẽ bàn đến trong những bài chuyên sâu hơn.

1. Thường xuyên sao lưu Backup database + source code.

Để giảm thiểu thiệt hại, việc đầu tiên và cần làm nhất là Backup, khi Website bị hack thay đổi giao diện, chèn shell, chèn link… hoặc thậm chị tệ hơn là bị DDoS bạn cũng có thể ngay lập tức khôi phục và vận hành website bình thường.

2. Update thường xuyên.

WP là mã nguồn mở nên thường xuyên được các hacker mũ trăng thông báo các bug mới và việc fix bug cũng được đội ngũ WP rất nhanh chóng thực hiện. Việc của bạn là ngay lập tức update lên phiên bản mới nhất, trước khi thông tin đến tai của Hacker mũ đen.

Chưa hết Plugin + Theme là nơi có chứa nhiều bug nhất, việc update thường xuyên sẽ hạn chế 90% khả năng website bị tấn công. Và đa số các hacker tập sự thường Hack website theo cách này.

3. Bảo mật trang Admin

Việc này ngoài chức năng cơ bản là bảo mật cho website nó còn có chức năng là chống Brute force để đoán mật khẩu. Nên mọi người chú ý nhé.

a. Đổi đường dẫn.

Như mọi người đã biết trang quản trị của mã nguồn WP mặc định là:

domain.com/wp-admin

Việc cúa chúng ta là thay đổi đường dẫn này thành một đường dẫn khó đoán hơn ví dụ như:

domain.com/cam-vao

b. Đăng nhập 2 bước.

Thêm 1 bước đăng nhập nữa, cũng sẽ làm khó Hacker trong việc dò mật khẩu.

Các bạn cũng có thể tham khảo: Cách đặt mật khẩu bảo vệ thử mục trong Nginx.

Ngoài ra các bạn cũng có thể sử dụng Plugin Google Authenticator nó tạo thêm 1 mã xác nhận qua ứng dụng của Google Authenticator, bạn phải cần nhập chính xác user + mật khẩu + code mới đặng nhập được.

Hoặc đơn giản là thêm đoạn sau vào file wp-login.php

Thêm phía dưới: <?php

$config["user"] = "admin"; $config["pass"] = "admin"; if ($_SERVER["PHP_AUTH_USER"] != $config["user"] || $_SERVER["PHP_AUTH_PW"] != $config["pass"]){header("WWW-Authenticate: Basic realm=DangNhap");header("HTTP/1.0 401 Unauthorized"); echo "<center>Access Denied!!!</center>";exit;}

c. Khóa đường dẫn

Việc này đơn giản là chỉ định một IP cụ thể nào đó (ví dụ: 123.456.789.000) mới có quyền truy cập vào wp-admin. Nhưng ở VN đa số IP của user là IP động nên việc này cũng không khã thi lắm.

Với Nginx:

location ~ ^/(wp-admin|wp-login\.php) {
allow 123.456.789.000;
deny all;
}

Với Apache

<FilesMatch ".*">
 Order Deny,Allow
 Deny from all
 Allow from 123.456.789.000
</FilesMatch>

4. Không cho Google index hoặc hacker dò ra các thư mục nhạy cảm.

a. Cấm google index các thư mục nhạy cảm.

Khi một Plugin hoặc Theme có bug việc đầu tiên mà các hacker thường làm nhất đó là dựa vào Google để tìm các website có chứa plugin đó.

Ví dụ:

"Index of" +/wp-content/themes/ten-theme
inurl:/wp-content/themes/ten-theme
...

Giờ thêm đoạn này vào file robots.txt để không cho bot google lập chỉ mục các thư mục trên.

Disallow: /wp-content/themes/*
Disallow: /wp-content/plugins/*

b. Không để hacker dò ra các cấu trúc bên trong thư mục.

Đơn giản là tạo thêm file index.html vào trong thư mục đó. Khi hacker vào đường link ví dụ: domain.com/wp-content/plugins/ten-plugin thì nó sẽ load cái index.html với nội dung trắng kia lên.

5. Cấp quyền chmod cho file và thư mục.

Thư mục root chứa mã nguồn WP: 755 hoặc 750

File cấu hình wp-config.php: 444 hoặc 400

File .htaccess hoặc nginx.conf: 444 hoặc 400

6. Tắt chức năng thông báo lỗi

WP mặc định sẽ hiển thị các thông báo lỗi Debug, điều này vô tình cung cấp cho Hacker rất nhiều thông tin quy giá mỗi khi website WP bị lỗi. vì vậy mà bạn nên ẩn tính năng này đi nhé.

Thêm đoạn này vào wp-config.php

define("WP_DEBUG_DISPLAY",false);
define("WP_DEBUG",false);

7. Không cho phép cài đặt, chỉnh sửa Plugins + Themes

Mặc dù ở bước thứ 3 mình đã bảo mật cho trang admin rồi, nhưng vì một lí do gì đó Hacker vẫn vượt qua được thì sao.

Tất nhiên nếu đã chiếm được quyền quản trị thì những bài post, hình ảnh. các chức năng… hacker có thể kiểm soát hoặc xóa nhưng ở Bước 1 chúng ta đã có file Backup rồi nên cũng yên tâm.

Giờ không cho phep Hacker cài thêm, xóa, chỉnh sửa Plugins + Themes.

Thêm đoạn này vào file wp-config.php

define("DISALLOW_FILE_EDIT",true );
define("DISALLOW_FILE_MODS",true);

8. Thay đổi Security keys cho wp-config.php

Khóa bảo mật thông thường được tự động tạo ra khi bạn cài WP, nó giúp mã hóa cookie và xác thực khi đăng nhập. Bạn có thể thay thế nó khi nào bạn muốn và mỗi khi thay đổi tất cả các user đang đăng nhập sẽ tự động logout.

Vào đây copy toàn bộ nội dung để thay thế cho security keys trong file wp-config.php

Ví dụ:

define('AUTH_KEY', 'vw4 <>pZ/<I7s?/57Y~5^9Y+r#-f+~`!+^$*w>6Mh(;=-&qW=Ha!XArw-w0{*J+s');
define('SECURE_AUTH_KEY', 'k~Hko!GX-Q-@+=ImZw|`A4%HZj?63y(Lh-Uy4P+xo}5k [,:j%pvJbY0nel,nGlH');
define('LOGGED_IN_KEY', 'L~N?E(;H;Hl|*j!rxW9RU,jgd1EQ{`rx2czy Z1b:+ri2j72)f+M{/kUB?uEnniJ');
define('NONCE_KEY', '/8MNwxToZ:vs` &Li)%/Dv-TR:~JO+:lz<mw0&|QDw_ZVC`FPE,2qd7QTO#lwbx|');
define('AUTH_SALT', '$jq_&6Tmd^6_rd**|G&4A<{{}1nZ/([email protected]@T(f<34sOEfSnp.vp');
define('SECURE_AUTH_SALT', 'K`9CO.sa+W!O5Ngn_sUw|C0RY2f2pDG<%r0G5u_e|B)o%M@^n0tU9.r8{Kw2Rygq');
define('LOGGED_IN_SALT', '|qi*Ggn|o [email protected]:nQNlD5c=.N(iw-g|t{xhGGSps_l^pKS5[ly');
define('NONCE_SALT', '/{HF+hpys|SG$80<<pG7XY2n_ $A&I.+LRTNg-5<AG,`P;i3+!K])Zfc8J#-)eUp');

9. Mật khẩu khó đoán.

Việc bạn sử dụng 1 mật khẩu cho nhiều dịch vụ website, thì khi một trong các website bạn đăng kí bị hack đồng nghĩa với việc bạn bị lộ pass.

Mình thường sử dụng mật khẩu ngẫu nhiên RANDOM cho các dịch vụ quan trọng và lưu vào đâu đó an toàn, dễ kiếm khi cần.

Các bạn vào đây để tạo mật khẩu nhé: https://passwordsgenerator.net/

Cố gắng tao 1 password cực mạnh như:

25 ký tự + in thường + in HOA + kí tự đặc biệt + chữ số.

Ví dụ:

TQuk,d>>[aD/w@}F*cmZgx_6h

10. Xóa tất cả các file chứa nội dung là thông tin phiên bản của WP, Plugins, Themes.

Như mình đã nói rất nhiều Plugins, Themes của WP bị dính bug và rất dễ dàng để khai thác, vì đã có tut hướng dẫn rất nhiều trên google. Đa số các Plugin, Themes dính lỗi bảo mật đều được fix nhanh chóng với việc ra mắt phiên bản mới.

Nếu vì lí do gì đó bạn không update kịp, thì cũng không cho cơ hội để Hacker biết là phiên bản bạn đang sử dụng dính lỗi và có thể exploit được.

Nhưng file thường chứa thông tin phiên bản là: readme, license, changelog, history… tìm và xóa nó đi cho nhanh gọn.

 

….

Tiếp tục cập nhật

 

N. Plugin iTHEME

Plugin này có thể làm được tất cả các vấn đề bảo mật ở trên và đang được bán với giá là $150/years.

Bản Free thiếu nhiều chức năng: https://vi.wordpress.org/plugins/better-wp-security/

Bản Full giá $150/y: https://ithemes.com/security/

Nhược điểm:

-Giá quá cáo

-Hơi nặng cho VPS

-Dùng cho nhiều site thì chỉnh hơi bị đuối.

Ưu điểm:

-Đầy đủ chức năng

-Dễ dàng tùy chỉnh

Download miễn phí tại đây.

Chú ý: Share càng nhiều, nhiều người đọc, nhiều comment… thì update sẽ thường xuyên.

Z. Dùng Script của mình tự việt để làm tất cả các việc trên.

Free tại đây: https://github.com/tangduongtrieu/securi-for-wp

Chức năng:

  1. Tự động tìm kiếm tất cả mã nguồn WP trên VPS và tối ưu bảo mật cho nó.
  2. Backup 2 file wp-config.php và wp-login.php trước khi chỉnh sửa.
  3. Bắt đầu chỉnh sửa wp-config.php (Không cho edit Theme + Plugin, Tắt chức năng cài đặt upload Theme + Plugin, Bật chức năng tự động Update Mã nguồn, Bật chức năng tự động Update Plugin, Tắt chức năng Debug và hiển thị Debug, Tắt thanh admin bar.)
  4. Bắt đầu chỉnh sửa wp-login.php, thêm đăng nhập User+Pass cho trang Wp-admin + Wp-login.php.
  5. Xóa tất cả file có tên readme, changelog, history, license.
  6. Chmod 444 wp-config.php
  7. Chmod 444 nginx.conf

Ưu điểm.

-Nhẹ

-Miễn phí

-Update thường xuyên

Nhược điểm

-Khó sử dụng cho người mới.

Video hướng dẫn sử dụng Script:

Tăng Dương Triều © 2017 Frontier Theme