Bảo mật cho WordPress


Hôm qua, nói chuyện với anh bạn viết blog WordPress mới thấy là không quan tâm lắm đến vấn đề bảo mật cho blog wordpress của mình. Khi mình làm gì thì luôn quan tâm tới vấn đề an toàn như backup, tăng cường bảo mật, mã hóa, … để website đạt độ ổn định nhất, tránh những nhòm ngó không cần thiết.

Mình viết bài viết này dành cho các bạn dùng  WordPress cài đặt trên host riêng, chứ không phải là trên wordpress.com. Bản thân mình dùng  Linux cũng được tầm 1 năm rồi, nên cũng hiểu sơ sơ cơ chế của server, các chức năng đơn giản của nó. Trình độ còn chưa cao, cần phải luyện thêm nhiều. Mình chỉ xin viết một vài chú ý đáng quan trọng mà chúng ta nên để ý.

Thủ Thuật Bảo Mật Cho WordPressThủ Thuật Bảo Mật Cho WordPress

1. Về chmod các thư mục và file

Không bao giờ chmod các thư mục thành 777, nếu cần thiết chmod thành 777 thì làm xong phải quay lại setting cũ ngay. Chmod là set quyền cho 3 đối tượng: owner (người tạo ra file đó, cũng chính là user của host), group (những user nằm cùng trong shared host của bạn đó), others (là tất cả các cái còn lại như trình duyệt web, …)

Các quyền được set theo thứ tự bao gồm: read (quyền đọc), write(quyền ghi), execute (quyền thực thi). Khi enable một quyền nào đó thì nó sẽ có giá trị 1. Quyền cho mỗi user sẽ là một số nhị phân gồm 3 bit theo thứ tự: đọc, ghi, thực thi. Ví dụ, owner có quyền đọc, ghi, thực thi giá trị sẽ bằng: 111, giá trị thập phân = 7.

Như vậy, chỉ đọc và thực thi sẽ có quyền là 101 = 5, chỉ đọc thôi sẽ có quyền là 100 = 4.

Tổng hợp lại, ta có quyền cho 1 file hoặc 1 thư mục có dạng: XXX với X là quyền cho mỗi nhóm: owner, group, others.

Chú ý khi chmod: Đừng bao giờ cho group cái quyền gì cả, như thế sẽ tránh được sự nhòm ngó từ các user khác, cũng như phòng chống tấn công gọi là: local attack. Cái này xảy ra khi user trong cùng 1 host cài đặt shell script trên host của họ, để thực thi các lệnh như xóa, … đối với các thư mục và host của mình.

Khi chmod 1 cái nào đó thành 777 tức là tự giết mình, ai cũng có thể ghi cái gì đó vào thư mục hoặc file này. Nếu có chmod để upload thì nên học thêm cách đặt script khác để tránh ng dùng upload shell script lên. Cái này bàn sau.

Nói dài dòng, giờ quay lại cái host cho WordPress:

– Chmod các file wp-config.php và .htaccess thành 404 (chỉ cho phép đọc thôi) để nhỡ mà server hoặc wordpress có lỗi gì đó thì các thông tin của database không bị lộ, và không bị mất hay đánh cắp dữ liệu quan trọng.

– Cố gắng chmod cái thư mục chứa wordpress thành 101, nếu mà không được thì chmod thành 701. Như thế thằng nào vào ngó thì cũng chả thấy gì cả =)) . Khi muốn chỉnh sửa hoặc ghi vào thư mục / thì chmod lại, sửa xong lại chmod như cũ là được.

2. Về database

Khi tạo database bao giờ cũng có cái bảng set quyền cho user như sau:

hb 003 Bảo mật cho Blog WordPress

Đừng chọn quyền Drop cho user của database. Cái này có tác dụng là nếu thông tin của database bị lộ thì cũng chỉ bị đọc thôi, chứ không sợ bị phá đâu vì không có quyền drop mà. Nên yên tâm một phần :)

Cái tiếp nữa là prefix_ của database cho wordpress trong file wp_config.php mặc định là wp_ nên các table sẽ có dạng wp_xxxx gì đó. Khi mới lập wordpress thì nên thay đổi cái này thành bất cứ cái gì cũng được, sẽ tăng tính bảo mật của blog của bạn.

3. Bảo mật thư mục

Mấy ông bảo mật kinh khủng thì có mà không tài nào có thể xác định được thư mục đặt blog nằm ở chỗ nào cả. Việc này tránh được tấn công local, khi browse vào sẽ chả biết nằm ở đâu cả, dẫn đến tốn thời gian mò mẫm. Vì thế, khi assign cái domain vào host thì nên vứt vào subfoder với càng nhiều tầng càng tốt, riêng với thằng bluehost nó chỉ cho 1 tầng thôi :) .

Ví dụ: assign cái domain.com vào thư mục: public_html/a/d/c/g/e chẳng hạn, có thể thay chữ cái đó thành bất cứ cái gì cũng được. Và nhớ chmod các thư mục mẹ thành 101 cho tuyệt đối an toàn, và đừng quyên đặt file index.php hoặc index.html vào mỗi thư mục đó.

Nói về đặt index.html mới nhớ là mặc định khi cài WordPress thì các thư mục này rất dễ dàng có thể xem được mà k ngại gì cả: /wp-admin/includes, /wp-contents/themes, /wp-admin/plugins . Như vậy ai mà browse cái này cũng biết được bạn dùng plugin gì và từ đó dựa vào lỗ hổng của plugin để tấn công thôi. Do đó, đặt file index.php vào các thư mục này cho chắc ăn.

Review plugin GD Press Tools cho blog WordPress ở mục security bạn có thể tự động chèn file index.php đê forward sang thư mục chủ.

Báo cáo error

Cái này là gì ? Là báo cáo khi một plugins hay là một cái gì đó bị sai, như là không thể đọc được một file .php nào đó chẳng hạn, thì nó sẽ hiện lên đường dẫn của file đó trong host. Như vậy, sẽ biết chính xác được host của bạn nằm ở thư mục gì, nằm ở box nào trong server (vì shared server nó chia theo box).

Việc này được thực hiện bằng cách chỉnh sửa file php.ini hay là cấu hình tham số của php. Nhưng cách nhanh nhất và hiệu quả là bạn sửa trong wp-config.php. Thêm các dòng sau vào trong file này:

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/example.com/logs/php_error.log');
/* That's all, stop editing! Happy blogging. */

Xem thêm về các cấu hình nâng cao khác quan trọng trong wp-config.php tại đây

4. User admin

Thông thường khi tạo wordpress thì user admin có toàn quyền sẽ có ID  = 1 với tên là admin. Như vậy, khi tấn công vào host sẽ chủ yếu tìm xem và khai thác user này, vì nếu có tài khoản của admin thì còn gì bằng nữa.

Vì thế, hãy đổi thành bất cứ cái gì cũng được tùy theo ý của bạn như Mike chẳng hạn, hoặc tên người yêu cũng được =)) . Sau đó, nhớ là đổi display name ở trong profile thành tên bạn muốn hiển thị, nên khác với tên đăng nhập, như thế sẽ tung hỏa mù hehe.

Sau đó, tạo ra một user có tên là admin, với quyền thấp nhất, để cho bọn nó nếu có được user, pass cũng chẳng làm gì =))

Review plugin GD Press Tools cho blog WordPress ở mục security bạn có thể thay đổi tài khoản admin theo ý của bạn, rất tiện lợi, không phải chỉnh sửa database.

Nếu sửa database thì vào database và xem user có id=1 và sửa tên username thành cái khác là được.

Không biết còn gì viết nữa không, sẽ bổ sung tiếp sau. Mong ý kiến đóng góp của bạn đang dùng WordPress.

Các bạn có thể góp ý tại đây hoặc góp ý trực tiếp trên blog của Mr. Bac để được giải đáp kịp thời nhé.

Tác giả: Ngô Hải Bắc

Advertisements

One comment on “Bảo mật cho WordPress

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s