Thiết kế web Wordpress

Hướng dẫn thiết lập bảo mật cho website WordPress

WordPress là một CMS mã nguồn mở, đó vừa là lợi thế về số người dùng và cộng đồng hỗ trợ nhưng cũng là 1 điểm yếu bởi hacker có thể vọc vạch mọi ngóc ngách của mã nguồn để tìm ra lỗ hỏng và khai thác nó. Do đó ngoài lớp bảo mật mặc định của WordPress bạn cũng nên tăng cường thêm nhiều “hàng rào” để bảo về site của mình. Dưới đây là một số gợi ý từ để bảo mật cho website của bạn.

Thường xuyên cập nhật phiên bản WordPress mới nhất

Như đã nói ở trên chính tính năng mở của WordPress khiến cho hacker nắm rất rõ cơ chế xác thực người dùng, cách vận hành của quy trình upload dữ liệu nên chuyện hacker phát hiện ra 1 lỗ hỏng nào đó ở 1 phiên bản WordPress là sớm muộn nên bạn phải luôn cập nhật WordPress của mình lên phiên bản mới nhất bởi khi có 1 lỗ hỏng nghiêm trọng được công khai các nhà phát triển sẽ ngay lập tức vá nó bằng 1 bản cập nhật WordPress mới.

Sao Lưu Cơ Sở Dữ Liệu

Backup là bước bảo mật đầu tiên chống lại bất kỳ cuộc tấn công nào. Hãy nhớ rằng, không có gì là 100% an toàn. Những trang web chính phủ còn bị tấn công, thì bạn cũng vậy.

Backup cho phép bạn nhanh chóng khôi phục trang WordPress với một số thứ tồi tệ xảy ra.

Có rất nhiều WordPress backup plugin miễn phí và trả phí mà bạn có thể chọn. Điều quan trọng là bạn cần hiểu khi nào nói đến backup có nghĩa là bạn cần phải thường xuyên sao lưu toàn bộ website sang một điểm khác (không phải trên hosting account).

Tôi khuyên bạn lưu trữ nó trên một dịch vụ đám mây như: Amazon, Dropbox, hay một đám mây cá nhân như Stash.

Dựa trên mức độ thường xuyên trang update trang web của bạn, thiết lập lý tưởng là hàng ngày hoặc sao lưu theo thời gian thực.

Rất may là dễ dàng thực hiện điều bằng cách sử dụng plugin như VaultPress or BackupBuddy. Cả 2 đều rất đáng tin dùng và đều quan trọng là dễ dàng sử dụng (không cần code)

Phân quyền cho file/thư mục trên host bằng lệnh CHMOD

CHMOD (phân quyền)  xem, xóa và chỉnh sửa các dữ liệu trên hosting của bạn. Nếu CHMOD không được kỹ và an toàn thì khả năng các file nằm trên host có thể dễ dàng được chỉnh sửa bởi hacker.

Vì thế để tăng bảo mật website và giảm thiểu nguy cơ bị tấn công, cần phải CHMOD thật tối ưu cho các file và folder.

•    CHMOD can thiệp thay đổi những quyền sau:

– Read (đọc): Viết tắt là “r” và được biểu diễn bằng số 4
– Write (chỉnh sửa): Viết tắt là “w” và được biểu diễn bằng số 2
– Execute (thực thi): Viết tắt là “x” và được biểu diễn bằng số 1

•    CHMOD thay đổi quyền hạn cho các đối tượng sau

– “Owner”: Chủ sở hữu của file/thư mục
– “Group”:  Nhóm mà Owner là thành viên
– “Public / Others/ Everybody”: Những người còn lại

Để CHMOD bạn có 2 cách.

•    Cách 1
Mở trình upload FTP lên, ấn chuột phải vào thư mục/tập tin cần CHMOD và chọn CHMOD.

•    Cách 2
Vào phần File Manager trong trang quản trị hosting và chọn Change Permission

File đầu tiên chúng ta cần bảo vệ đó là wp-config.php vì file này lưu giữ những thông tin đăng nhập vào cơ sở dữ liệu của mình.

Nếu như các bạn ít khi chỉnh sửa file này thì hãy CHMOD là 444 cho wp-config. Điều này có nghĩa tất cả các nhóm người dùng chỉ có thể đọc chứ không chỉnh sửa hay thực thi được, kể cả chủ sỡ hữu. Và sau khi đưa về 444, chúng ta không thể chỉnh sửa nội dung file này, nếu muốn chỉnh sửa thì hãy đưa nó về 644.

Các file còn lại thì bạn có thể CHMOD là 644 và 755 cho các folder.

Nếu bạn muốn tối ưu hơn nữa, hãy CHMOD folder wp-adminwp-includes thành 101. Tuy nhiên để CHMOD thành 101thì bạn không thể CHMOD trên FTP được mà phải vào File Manager để làm việc này.

Sau khi CHMOD thành 101, bạn đăng nhập vào FTP sẽ không thể nhìn thấy các folder đã được CHMOD, điều này đồng nghĩa bạn không thể làm gì được ngoại trừ truy cập bằng trình duyệt.

Tiếp đến là CHMOD cho tất cả các file thành 400 (ngoại trừ các file trong thư mục theme).
Nếu trong một số trường hợp máy chủ không cho phép CHMOD 400 thì bạn có thể đổi thành 404.

Nếu như bạn thấy khó khăn trong việc CHMOD thì plugin File Permissions & Size Check sẽ giúp bạn CHMOD và theo dõi các tập tin/thư mục dễ dàng trong trang quản trị WordPress.

Dùng bảo mật 2 lớp

Bảo mật 2 lớp – Two Factor Authentication, là phương pháp chống tấn công Brute Force rất hiệu quả, sau khi login bằng user/ pass chính xác, còn cần phải cung cấp mã xác thực được gởi vào điện thoại hoặc email nữa, nên có bị lộ password cũng không vấn đề gì, thậm chí nhờ có thông báo mã xác thực (lớp thứ 2) mà ta biết được site đang bị dò mật khẩu.

Cài đặt Mật khẩu 2 lớp cho WordPress

Để cài Two Factor Authentication cho WordPress, bạn có thể dùng plugin tích hợp tính năng này của Google cho WordPress:

Google Autehnticator plugin

Nếu dùng iThemes Security Pro thì tính năng này đã có sẵn – chỉ cần kích hoạt!

Sử Dụng Plugin Bảo Mật WordPres

Sau khi backups, điều tiếp theo bạn cần quan tâm đó là cài đặt một hệ thống theo dõi và kiểm tra mọi thứ xảy ra trên website của mình.

Điều này bao gồm giám sát tình trạng của file, cảnh báo truy cập trái phép, quét phần mềm độc hại..v…

May mắn là tất cả những gì bạn cần làm là cài đặt Sucuri Security plugin miễn phí. Để biết thêm nhiều thông tin chi tiết cách cài đặt plugin…..

Sucuri Menu
Generate API key
Harden

Để kích hoạt plugin, bạn cần đi đến Sucuri Menu trong bảng điều khiển WordPress
Điều đầu tiên bạn sẽ được yêu cầu làm đó là Tạo một API key miễn phí. Điều này cho phép bạn kiểm duyệt đăng nhập, integrity checking, thông báo email, và những tính năng quan trọng khác.
Điều tiếp theo, bạn cần làm là click vào Hardening tab từ Sucuri Menu. Lướt qua tất cả tùy chọn và click vào nút “Harden”.
Với tùy chọn này giúp bạn khóa lại khu vực trung tâm thường được sử dụng trong các cuộc tấn công. Chỉ với tính năng hardening được cung cấp trong phiên bản trả phí là một Web Application Firewall nơi chúng ta giải thích trong vài bước tiếp theo..

Chúng cũng sẽ bàn về tùy chon “Hardening” sau bài viết này cho những ai muốn làm điều dó mà không cần sử dụng một plugin hoặc những người yêu cầu bổ sung thêm những bước như “Database Prefix change” hay “ Thay đổi Tên Truy cập Admin

Sau phần hardening, phần lớn thiết lập mặc định của plugin đều rất tốt và không cần thay đổi. Một điều duy nhất tôi khuyên bạn là tùy chỉnh Cảnh báo qua Email.

Alerts Setting

Các thiết lập cảnh báo mặc định sẽ khiến email box của bạn bị lộn xộn. Chúng tôi khuyên bạn nhận cảnh báo với hoạt động chính như thay đổi plugin, đăng ký người dùng mới,etc. Bạn dễ dãng tùy chình cảnh báo bằng cách đi đến Sucuri Settings » Alerts.
Plugin bảo mật này vô cùng mạnh mẽ, vì vậy bạn có thể lướt qua tất cả các tab và các cài đặt để xem tất cả như: Malware scanning, Audit logs. Failed Login Attempt tracking, v..v…

Một Số Phương Pháp Cải Thiện Bảo Mật WordPress

Nếu bạn đã làm tất cả những thứ tôi nói ở trên, thì bạn đang có tình trạng an ninh khá tốt rồi đấy.

Nhưng vẫn như mọi khi, có nhiều thứ bạn có thể làm tốt hơn với Bảo Mật WordPress website của mình

Một số bước có thể sẽ yêu cầu một chú hiểu biết về code.

1. Thay Đổi Tên Truy Cập “admin” Mặc Định

Những phiên bản trước đây, tên truy cập mặc định của admin là “admin”. Biết được tên truy cập là đồng nghĩa với việc các hacker có thể tiến hành tấn công trang web bằng brute-force attacks (đoán mật khẩu)

Nhưng rất may, WordPress đã thay đổi nó và bây giờ yêu cầu bạn chọn tên truy cập ngay ở lần cài đặt đầu tiên.

Cài đặt WordPress

Tuy nhiên, với cách cài đặt WordPress bằng 1-click duy nhất, thì vẫn chọn tên admin username mặc định là “admin”.

Mặc dù mặc định WordPress không cho phép bạn thay đổi username, nhưng vẫn có vài cách để bạn thay đổi username.

  1. Tạo mới một admin username và xóa người dung cũ đi
  2. Sử dụng Plugin thay đổi tên người dùng
  3. Cập nhật tên người dùng từ phpMyAdmin

Tôi đã nói vẫn đề này ở bài Làm thế nào để thay đổi tên truy cập “Admin” trong WordPress hãy đọc để xem hướng dẫn chi tiết nhé.

*Lưu ý: Chúng ta đang nói về username gọi là “admin”, chứ không phải là vai trò quản trị viên

2. Vô Hiêu Hóa File Editing

WordPress đi cùng với một built-in code editor mà cho phép bạn chỉnh sửa giao diện và plugin files ngay tại khu vực admin của WordPress. Nếu vào tay người xấu, tính năng này có thể gây nguy hiểm đến bảo mật WordPress cho nên chúng tôi khuyên bạn nên vô hiệu hóa nó.

File Editor

Bạn có thể làm điều đó một cách dễ dàng bằng cách thêm đoạn code sau vào file wp-config.php

// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );

Hoặc bạn có thể làm điều đó với 1-click bằng cách sử dung tính năng Hardening trong Sucuri free mà tôi nói ở trên

3. Vô Hiệu Hóa PHP Trong Một Vài Thư Mục WordPress

Một cách khác để năng cao bảo mật WordPress là vô hiệu hóa PHP file execution in directories mà không cần thiết như /wp-content/uploads.

Để làm điều đó hãy mở notepad lên và dán đoạn code này vào:

<Files *.php>
deny from all
</Files>

Tiếp theo, bạn cần lưu file nay dưới dạng .htaccess và upload nó vào folders /wp-content/uploads trên website của bạn bằng cách sử dụng FTP client.

4. Giới Hạn Số Lần Đăng Nhập

Với thiết lập mặc định WordPress cho phép người dùng đăng nhập bao nhiều lần tùy thích. Nó khiến WordPress site dễ dàng thành mục tiêu của các cuộc tấn công brute force. Hackers có gắng bẻ khóa mật khẩu của bạn bằng cách cố gắng đăng nhập với những mật khẩu kết hợp khách nhau.

Điều này có thể dễ dàng khắc phục bằng giới hạn số lần đăng nhập lỗi mà người dùng có thể thử. Nếu bạn sử dụng giải pháp web application firewall nói ở trên, thì nó sẽ tự động xử lý vấn đề này cho bạn.

Tuy nhiên, nếu bạn không cài đặt tường lửa, thì xử lý vấn đề này bằng những bước sau đây.

Đầu tiên, bạn cần cài đặt và kích hoạt Login LockDown plugin.

Login LockDown Options

Sau khi kích hoạt xong, đi đến Settings » Login LockDown để cài đặt plugin

5. Thay Đổi WordPress Database Prefix

Mặc định, WordPress sử dụng wp_ như là tiền tố cho tất cả các tables trong cơ sở dữ liệu. Nếu trang WordPress bạn đang sử dụng tiền tố mặc định trong cơ sở dữ liệu, thì nó thể dễ dàng để hacker có thể đoán được table name. Đó là lý chúng tôi khuyến khích bạn nên thay đổi nó.

WordPress Database Prefix

Bạn có thể thay đổi tiền tố trên bảng cơ sở dữ liệu bằng cách sử làm theo hướng dẫn từng bước sau đây: Làm thế nào để bảo vệ và tối ưu hóa cơ sở dữ liệu WordPress?

*Lưu ý: Nó có thế làm hư hại đến website của bạn nếu không được thực hiện một cách chính xác. Chỉ thực hiện nó khi bạn cảm thấy tự tin về khả năng code của mình nhé.

6. Mật khẩu bảo vệ khu vực Admin và wp-admin

Bình thường, các hacker có thể request đến thư mục wp-admin và login page của bạn nếu không có bất kỳ hạn chế nào. Điều này cho phép hacker cố gắng sử dụng thủ thuật hãy tấn công DDoS.

Vì vậy trước tiên, bạn cần đổi địa chỉ đăng nhập vào trang quản trị bằng cách sử dụng plugin iTheme Security để tăng cường bảo mật cho WordPress, trong đó có chức năng đổi đường dẫn mặc định của trang quản trị thành đường dẫn bất kỳ mà bạn muốn. Sau khi cài đặt, vào Security -> Hide và điền tên của đường dẫn mới của trang quản trị, trang đăng nhập và trang đăng ký.

Mật khẩu bảo vệ khu vực Admin và trang đăng nhập

7. Vô hiệu hóa Directory Indexing and Browsing

Directory Indexing and Browsing

Directory browsing có thể được lợi dụng bởi hacker để tìm những file mà bạn có với các lỗ hổng có thể tìm thấy, vì vậy họ tận dụng những tập tin này để tấn công website.

Directory browsing có thể được sử dụng bởi người khác để nhìn vào cái file của bạn, để sao chép hình ảnh, các thông tin khác. Đây là lý do tại sao tôi khuyến khích bạn tắt chúng đi.

Bạn cần kết nối website của mình bằng cách sử dụng FTP hay cPanel’s file manager. Tiếp theo xác định vị trí của file .htaccess trong website.

Sau đó, bạn thêm dòng dưới đây ở cuối file .htaccess:

Options - Indexes

Đừng quên lưu và upload lại file .htaccess vào website của mình.

8. Vô hiệu hóa XML-RPC in WordPress

XML-RPC được kích hoạt trong thiết lập mặc định của WordPress bởi vì nó giúp kết nối trang WordPress với web và mobile apps.

Tuy nhiên chức năng quá mạnh mẽ này, XML- RPC có thể khuếch đại cuộc tấn công brute-force đáng kể.

Ví dụ: theo cách truyền thống một hacker muốn thử 500 mật khẩu khác nhau với trang web của bạn, họ sẽ phải tạo 500 lần đăng nhập riêng biệt và sẽ bị chặn bởi giới hạn số lần đăng nhập.

Nhưng với XML-RPC, một hacker có thể chức năng này để thử hàng ngàn mật khẩu chỉ với 20 hoặc 50 requestes. Đó là lý do tại nếu bạn không sử dụng XML-RPC, thì hãy nên vô hiệu hóa nó.

Để vô hiệu hóa XML-RPC bạn vào file functions.php của theme và thêm filter sau

add_filter( 'xmlrpc_enabled', '__return_false' );

9. Tự động log-out user khi không hoạt động

Người dùng đã đăng nhập vào Dashboard đôi khi họ có thể đi đâu đó, và nó có thể gây nguy hiểm đến bảo mật wordpress website của bạn. Một người nào đó có lợi dụng nó để chiếm quyền điều khiển, thay đổi mật khẩu, hãy thay đổi thông tin tài khoản của bạn.

Đó là lý do tại sao rất nhiều các trang web ngân hàng và tài chính đều tự động đăng xuất với người dùng không hoạt động. Bạn có thể thực hiện chức năng tương tự trên trang WordPress của bạn.

Bạn cần cài đặt và kích hoạt Idle User Logout plugin. Sau khi kích hoạt, đi đến Settings » Idle User Logout để tùy chỉnh plugin.

Idle User Logout

Đơn giản chọn thời gian chờ và bỏ tích ở tùy chọn “Disable in WP Admin” cho tính bảo mật tốt hơn. Đừng quên bấm vào nút lưu các thay đổi nhé.

10. Thêm câu hỏi bảo mật vào màn hình đăng nhập WordPress

Câu hỏi bảo mật

Thêm những câu hỏi bảo mật vào màn hình đăng nhập làm để nó trở nên khó khăn hơn cho một người nào đó có ý định truy cập trái phép.

Bạn có thể thêm câu hỏi bảo mật bằng cách cài đặt WP Security Questions plugin. Sau khi kích hoạt, bạn cần vào phần Settings » Security Question để thiết lập cài đặt