Chmod cho Bo-Blog:
Trước tiên ta sẽ nói đến 1 số khái niệm về Chmod. Chmod viết tắt từ chữ change mode là thuật ngữ để chỉ việc thay đổi quyền hạn cho file hay thư mục trong hệ thống UNIX. Sẽ có 3 nhóm đối tượng tượng trưng cho 3 kí số được đề cập khi nói về Chmod (VD tôi kêu bạn chmod: 777, 755, 644, v.v…..). Ứng với từng con số xếp từ trái qua phải sẽ tượng trưng 1 đối tượng mà cụ thể là user – group – other (vd chmod 777 thì user = 7, group = 7, other = 7 ý nghĩ từng con số kusanagi sẽ nói sau):
– User (hay còn gọi là owner): ám chỉ về chủ sở hữu của dữ liệu, vd bạn login vào ftp host bạn thì bạn đang nắm quyền owner
– Group: là nhóm, 1 group sẽ có nhiều user hơi trừu tượng nhưng nó na ná như admin và god admin vậy ấy (tức là cái thằng sét host cho bạn)
– Other (hay còn gọi là public, world v.v…): Ám chỉ về các đối tượng còn lại,vd bạn là khách truy cập web kus thì bạn đang trong nhóm other
Đồng thời cũng có 3 mức quyền với file và thư mục:
4 = read (quyền đọc file)
2 = write (quyền ghi file)
1 = execute (quyền thực thi lệnh nôm na là cho phép chạy file, cụ thể thư mục ko sét quyền này thì các script trong thư mục sẽ ko có giá trị)
Ngoài ra nâng cao hơn file hay thư mục mang cùng lúc nhiều quyền thì sẽ cộng dồn các giá trị tương ứng:
7 = read, write & execute
6 = read & write
5 = read & execute
Nói đến đây chắc bạn cũng hình dung 1 số ý niệm rồi. Và ý nghĩa khi nhiều người vẫn thường bảo chmod cái thư mục này 777 đi (cho toàn quyền với 3 nhóm). Mặc định khi tạo 1 folder sẽ mang quyền 755 (tức là toàn quyền cho user và chỉ cho phép thực thi + đọc với 2 nhóm còn lại), 1 file sẽ mang quyền 644 (nghĩa là cho phép đọc ghi với quyền user và 2 nhóm còn lại chỉ cho phép đọc cấm ghi, cấm chạy). Như vậy quan niệm muốn ghi được phải sét 777 hay folder và tập tin muốn chạy được chỉ có thể sét 755 và 644 là hòan toàn sai. Tại sao kus phải nhắc lại điều này ở đây? Vì đơn giản chmod rất quan trọng chmod đúng cách sẽ giảm thiểu khả năng bị local attack (một hình thức tấn công khá phổ biến qua đường dẫn ở các trang cùng server). Bằng cách nào đó hacker sẽ upload tool của mình (c99, r57, remreview v.v…) lên website bạn hoặc thông qua 1 trang lân cận lỏng lẻo nào đó. Server config không kĩ sẽ dễ dàng bị dính chưởng.Nôm na đang ở trong 1 khu chung cư và các phòng được thiết kế ở khóa giống nhau, khi anh A bị trộm cũng có nghĩa bạn,chị B,bà C ở cùng chung cư đó sẽ có nguy cơ bị viếng nốt nếu không tìm cho mình 1 ổ khóa khác ngoài cái hiện tại. Có thể vẽ 1 kịch bản như sau khi hacker muốn sử dụng local attack ở trang bạn.
+ Ban đầu hắn sẽ rảo vòng vòng xem trang bạn có chỗ nào cho phép upload không, dĩ nhiên boblog là ko có rồi trừ phi bạn sét thêm quyền cho group đó,hoặc bạn có tạo 1 cái script nào đó để chia sẻ file chạy chung cùng bo-blog… nói chung hãy hạn chế mọi sự giao tiếp giữa người dùng đối với bạn trừ phi nó thật sự cần thiết.
+ Thỉnh thoảng cũng có code exploit nhưng thường những source thông dụng mới hay bị dòm ngó, bo-blog thì kus chưa thấy nhưng cũng ko loại trừ khả năng 1 ngày xấu trời nào đó nó bị phanh phui công khai. Ở trường hợp này hacker sẽ chèn trực tiếp tool vô mã nguồn của bạn (Remote File Inclusion Vulnerability) hay chèn trực tiếp vào address (Local File Inclusion) v.v…
+ Hacker sẽ tìm lỗ hổng ở site lân cận site bạn, ví dụ site đó xài 4rum phpBB phiên bản cũ có lỗi thì hắn sẽ hack trang đó trước sau đó từ chỗ này tấn công sang trang bạn
v.v…..
Dù trong bất kì trường hợp nào bạn cũng cần có trách nhiệm ngăn cản hành động ấy nếu ko muốn thấy dòng chữ: “Site was hacked!” trên trang của mình. Trở lại vấn đề chmod như vậy hacker cũng là 1 trong 3 đối tượng đã nêu (user – group – other). Do đó việc bạn chmod mang ý nghĩa giới hạn lại quyền truy cập của hacker dù hắn local từ bên trong hay bên ngoài vào. Đơn cử với trường hợp bo-blog, nếu có lỡ local trúng trang nào xài source này thì dĩ nhiên hacker rất khoái, có 6 folder attachment, bak, data, lang, post, temp đã được yêu cầu chmod 777 rồi, nhất là dữ liệu trong folder data nó cực kì nhạy cảm. Do đó lời khuyên của kusanagi là hãy chmod 101 với tất cả các folder không lưu cấu hình (admin ,editor, mages, inc, plugin, template) và 103 cho 6 folder vừa nêu. Riêng file chmod 604 cho file thường và 606 cho các file lưu cấu hình (vd các file trong thư mục data/). Tại sao kusanagi làm vậy thì bạn đọc phần trên sẽ hiểu 101 tức là cẩm tuyệt mọi quyền với group chỉ cho phép user và other quyền execute (chạy file). Riêng folder lưu cấu hình 103 cũng y như 101 nhưng cho other thêm 1 quyền ghi nữa (bạn đăng nhập tài khỏan quản trị và thực hiện việc thay đổi cấu hình sau đó lưu lại tức là bạn đang thực hiện trên quyền other). Bo-Blog sẽ chia dữ liệu thành 2 phần 1 phần là nội dung các bài viết, user v,v… sẽ lưu vào database; phần còn lại là cấu hình sẽ được lưu trong folder data/,việc thay đổi cấu hình cho bo-blog diễn ra như cơm bữa nên ko thể khóa quyền các thư mục này lại được. Riêng thư mục bên ngòai chứa bo-blog (vd kusanagi.com/blog) hãy chmod nó là 505 và public_html (thư mục ngòai cùng ấy có thể là httpdocs nếu bạn xài plesk thay vì cpanel – còn chưa biết nó là gì thì hãy hỏi thằng bán host cho bạn) là 111. Lưu ý nếu host bạn ko hỗ trợ chmod 101, 111 thì hãy chmod 701 hoặc 711 nhé. Còn làm sao để biết bạn đã chmod an toàn thì up thử 1 con shell lên host mình test thử là biết, nếu thấy quyền folder hoặc file mà xanh lè hết là chết ngắc rồi he he Dùng r57 hoặc c99 (có thể search trên google với 2 từ khóa r57.txt hoặc c99.php,tìm ra rồi rename lại thành.php và up lên host để kiểm tra, sau khi vọc xong hãy move ngay lập tức nếu ko muốn chết ^^) mà thử del, xóa, rename, change quyền v.v… thấy ko được là ổn.
Chống flood cho Bo-Blog
Bo-Blog đã tích hợp chức năng chống flood (verify images) trong hệ thống bạn có thể sử dụng nó nếu server của bạn hỗ trợ GD image,hãy hỏi chỗ cung cấp host nếu bạn chưa rõ về nó.Bạn vào trang quản trị – > Menu Quản lý chung -> Mục thiết lập blog -> Thiết lập cơ bản. Kiểm tra 4 tùy chọn:
– Khi gửi bài bật mã kiểm tra
– Khi đăng nhập bật mã kiểm tra
– Hiển mã an ninh khi đăng kí
– Hiện mã an ninh khi yêu cầu đặt liên kết
Bật nó lên. Sẽ có trường hợp sau khi bật mà bạn vẫn không sử dụng được, dù nhập đúng nhưng hệ thống vẫn báo sai và nhập nhiều lần vẫn không có gì cải thiện,đăng nhập trang quản trị cũng chẳng xong v.v…. Why? Để giải thích điều này thì đây cũng từng là vấn đề kus gặp phải, làm khốn đốn mấy ngày liền luôn là khác. Cơ chế của hệ thống bảo mật này như sau. Ảnh sẽ được tạo ra bởi file inc/securitycode.php, đồng thời sẽ có 1 session lưu vào thư mục temp/. Điều này đồng nghĩa bạn chmod sao cho session vừa có thể lưu và file inc/securitycode.php cũng có thể chạy. Chmod đã có nói ở trên 604 cho file bình thường và 103 cho các thư mục cần ghi. Còn trường hợp bất khả khảng bạn đã làm đúng mà vẫn ko vào được thì có thể tắt nóng bằng cách vào file data/config.php tìm 4 mục:
$config['validation']='1';
$config['loginvalidation']='1';
$config['registervalidation']='1';
$config['applylinkvalidation']='1';
Và sửa các giá trị về 0
Riêng trường hợp hacker tấn công thẳng vô trang chủ (ddos) thì sao? Ùhm ddos thì khó chống lắm,nói chung thì vẫn chống được nếu có server ngon và config kĩ nhưng vấn đề ko phải mấy ai cũng có khả năng đầu tư cao như vậy và trình độ mỗi người cũng khác nhau. (vd như kus nói trên trời dưới đất nãy giờ chứ cũng chưa từng đụng chạm vô cái server nào hết he he). Đơn giản nhất bạn có thể dùng .htaccess để dựng firewall (sẽ nói sau) nhưng cách này xem ra khá bất tiện, bạn có thể chọn 1 giải pháp là dùng 3rd firewall script để include vô mã nguồn của mình. Lên google kiếm nhé.
Trong bài viết này kusanagi sẽ giới thiệu 1 script rất hay của Nguyen Tuan Dung (InV-Firewall Script) mà bác silveryhat từng giới thiệu (bác này có loạt bài viết bảo mật vbulletin rất hay mà kusanagi vô cùng ngưỡng mộ he he)
Cách cài đặt thì link trên đã nêu rõ rồi kusanagi chỉ nói thêm 1 số điểm. Bạn cần chmod 103 nếu server bạn có hỗ trợ (dĩ nhiên 777 cũng được nhưng kusanagi nói rõ ở trên rồi) để script có thể lưu lại log truy cập. Thỉnh thoảng nhớ delete ip trong này nhé ^^ Một chuyện nữa nếu có include vào thì làm như sau:
Mở file global.php. Nhìn trên đầu:
<?PHP
/* -----------------------------------------------------
Bo-Blog 2: The Blog Reloaded.
Thay lại là:
Quote:
<?PHP
$firewall = 'firewall/firewall.php';
if(file_exists($firewall)){ require_once($firewall); }
/* -----------------------------------------------------
Bo-Blog 2: The Blog Reloaded.
Rồi lưu. Tại sao phải chèn global.php mà ko chèn chỗ khác ? Thì kusanagi giải thích là file global.php chứa biến toàn cục cho toàn bộ hệ thống bo-blog. Khi ddos hacker ko phải lúc nào cũng đánh vào index mà có thể ở nhiều chỗ khác chèn vào global sẽ tác động toàn bộ mã nguồn. Script này rất hay nó cho phép bạn chặn các request gửi liên tục trong 1 thời gian ngắn từ 1 IP,vượt là bị lock he he.
Lưu ý trong cái script có cái file .htaccess nếu bạn đã có sẵn file này trên host đừng chép đè mà copy nội dung trong đó dán vào file cũ là được. Một số chỗ như:
#AuthType Basic
#AuthName "Password Required (User: @inv - Pass:$#)"
#AuthUserFile /wamp/www/ipb217/.htpasswd
#Require valid-user
#RewriteCond %{HTTP_REFERER} !^$
#RewriteCond %{HTTP_REFERER} !^https://(www.)?yourdomain.com/.*$ [NC]
#RewriteRule .(gif|jpg|png|mp3|mpg|avi|mov|swf)$ - [F]
Bạn có thể xóa dấu # để kích hoạt khi muốn dùng. Cái đầu là để khóa folder = pass nhằm chống ddos (nhớ sửa lại đường dẫn hệ thống bạn thay cho giá trị /wamp/www/ipb217/.htpasswd, ko biết thì up file phpinfo.php lên để xem https://us3.php.net/phpinfo). Còn cái thứ hai dùng để chống ăn cắp link. Kusanagi sẽ nói kĩ hơn phần này trong mục sau khi dùng .htaccess để bảo mật
Những ứng dụng của .htaccess:
.htaccess dùng để xét quyền cơ cho file / folder trong hệ thống UNIX/Linux. Nó có rất nhiều ứng dụng hữu ích mà kusanagi có thể liệt kê ra cho bạn thấy:
– Rewrite url: Dùng để ghi lại đường dẫn hiện tại bạn đang dùng. Chắc bạn đã nghe về thuật ngữ SEO (Search engine optimization) nghĩa là tối ưu hóa kết quả tìm kiếm của website bạn trong cách search engine (google, yahoo, v.v…). Các con bot của search engine sẽ dễ dàng tìm ra site bạn khi bạn rewrite đường dẫn của mình về dạng html thay vì php, asp v.v… Như vậy sẽ tăng khả năng mọi người tìm đến website bạn.
– Bạn vào khu quản lý bo-blog: Menu thiết lập khác -> tìm kiếm tối ưu kết nối -> Chức năng rewrite link liên kết nâng cao cho Apache (bật nó lên). Nó sẽ show 1 đống code cứ copy và quăng vô file .htaccess. Bạn có thể tạo mới nếu chưa có (dùng notepad hoặc bất cứ text editor nào lưu nội dung rồi rename tên lại). Lưu ý chức năng này chỉ thực hiện được khi host bạn có hỗ trợ mod_rewrite. Bạn có thể test xem mình có được hỗ trợ hay ko theo hướng dẫn của bo-blog lúc chọn chức năng này.
– Image hotlink protection: Bạn cảm thấy bực bội khi vô số người xem blog bạn và copy bài viết cùng hình ảnh, file tư liệu từ trang bạn để post ở những nơi khác mà ko xin phép, hay cái việc copy ấy đã làm website bạn hao hụt rất nhiều bandwidth ko cần thiết v.v… .htaccess có thể giúp bạn giải quyết vấn đề đó. Code như sau:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?kusanagivn.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bbs.bo-blog.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?itvns.net [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?nghebao.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?nghebao.vn [NC]
RewriteRule .(gif|jpg|png|mp3|mpg|avi|mov|swf)$ https://kyoflash.googlepages.com/1234.gif [NC,R,L]
Các trang trong list là những trang được sử dụng file từ host kusanagi, các truy cập trái phép khác sẽ được thay thế bởi hình https://kyoflash.googlepages.com/1234.gif. Bạn có thể add thêm loại file khác, nhưng nhớ phải để dấu | giữa các loại file
– Detecting illegal file: Chặn quyền các file trái phép. VD như hacker vô tình tìm ra được 1 lỗ hỗng để upload script phá hoại lên folder đó của bạn nhưng rất tiêc hắn ko thể run được script vì folder đó đã được .htaccess xét quyền rồi
<Files ~ "^.*\.(php|cgi|pl|php3|php4|php5|php6|jsp|asp|phtm l|shtml)">
Order allow,deny
Deny from all
</Files>l
Bạn hãy tạo mới 1 file .htaccess với nội dung trên và up nó lên tất cả các thư mục chứa hình ảnh hay các thư mục chỉ chứa file download. Script này có tác dụng vô hiệu hóa mã độc là các file có đuôi mở rông trong list (bạn có thể bổ sung thêm) nếu hacker có upload tool của mình lên được host bạn. Chú ý đừng đặt nó ở những chỗ chạy file hệ thống như khu vực root của blog vì như vậy bạn sẽ không chạy được mã nguồn.
– Blocked IPs: Khóa IP trái phép
Order Deny,Allow
Deny from 192.168.1.1
Deny from 192.168.1.2
Chắc khỏi giải thích cứ tuần tự thêm theo list ^^
– .htaccess authentication: Chức năng này khóa folder như đã nêu ở trên
Tạo file .htaccess:
AuthType Basic
AuthName "Khu vuc nhay cam"
AuthUserFile /path/to/.htpasswd
Require valid-user
/path/to/.htpasswd => là đường dẫn của hệ thống đến file .htpasswd
Bạn cũng tạo luôn 1 file .htpasswd với nội dung:
@admin:QG4uZe3VVJUxs
User và pass bạn dùng là @admin.Bạn có thể thay đổi nó bằng cách dùng tool sau:
https://home.flash.net/cgi-bin/pw.pl
– .htaccess redirection: Thay vì nhọc công tạo 1 trang redirect bằng html bạn có thể dùng.htaccess rất đơn giản hiệu quả
Redirect /index.html http://congtoan.net/blog/
Đoạn code trên sẽ thay cho trang index. Bạn vào site kus truy cập vào domain kusanagivn.com sẽ được đưa thẳng vào blog ^^ Bên cạnh đó cũng có thể dùng nó thay thế cho thông báo lỗi của hệ thống. Ví dụ:
ErrorDocument 404 http://123.com/loithu1.html
ErrorDocument 500 http://123.com/loithu1.html
v.v….. sẽ còn rất nhiều ứng dụng khác mà kusanagi không thể biết được, chắc có lẽ sẽ cần 1 thời gian dài nữa để tìm hiểu. Bạn nào còn thủ thuật hay thì xin chỉ giáo giúp nhé ^^
PS: Bạn có thể xem thêm bài viết cách tạo 2 pass cho khu vực admin của kusanagi vì nó cũng khá hữu ích,nếu bạn lỡ quên logout hoặc bị fake cookies, tần pass thứ 2 sẽ giúp bạn vô hiệu một số hành động của hacker:
Hãy luôn cẩn thận và cảnh giác:
Dĩ nhiên không có gì là tuyệt đối cho dù bạn có làm đầy đủ những gì kusanagi chỉ hoặc hơn cả thế thì site bạn cũng chưa hẳn bất khả xâm phạm. Như việc ddos cho dù phòng bị cỡ nào bạn có chắc sẽ thoát hết không ? Nếu các site lân cận bị tấn cống thì bạn cũng sẽ bị ảnh hưởng. Cho nên lời khuyên ko gây chuyện với ai hết ^^ Rồi còn chuyện bạn ko gây chuyện cũng ko có nghĩa bạn an toàn, chí ít phải biết 1 ít kiến thức để phòng bị script kiddies, đa số script kiddies khá hung hăng và muốn chứng tỏ nên sẽ hạ trang bạn ko cần lý do, bạn cần qua ải này trước đã ^^ Nói chung có vẫn hơn ko đừng đợi mất bò mới lo làm chuồng.
Ngòai kĩ thuật để hack trang bạn bạn nên nhớ hacker luôn luôn rất tinh vi và có nhiều tiểu xảo. Hãy cẩn thận đừng để bị lừa. Một số kịch bản thông dụng VD như tạo trang fake login:
– Hacker gửi cho bạn 1 email với nội dung đại loại một thông báo từ hệ thống yêu cầu bạn verify lại mật khẩu. Đường link hacker đưa sẽ có dạng: https://kusanagivn.com/blog/login.php nếu sơ xuất bạn sẽ rất dễ bị nhầm lẫn. Kusanagi ko dám nhận mình là hacker,coder, v.v… hay bất cứ danh hiệu của 1 tay chuyên nghiệp nào nhưng kus là 1 designer đủ khả năng để nhái “y xi ko sai 1 li” bất kì trang web nào ^^ (chỉ save as sửa link hình và chèn thêm script lấy pass – script thì đầy rẫy trên mạng). Để tránh rất đơn giản hãy tập thói quen xem link qua statusbar (thanh trạng thái) thay vì nhìn trên bài viết như bình thường.
– Passwod hãy lưu ý chế độ pass của bạn, nên sử dụng các kí tự đặc biệt nếu hệ thông cho phép,việc này sẽ giảm khả năng hacker dùng tool scan pass của bạn nếu pass quá ngắn.
– Cấn thận với cookies của mình. Khi lấy được cookies của bạn hacker có thể làm vô số chuyện, ban đầu sẽ reg 1 tài khỏan trong site bạn sau đó dùng thông tin trong cookies của bạn sửa cho tài khoản hacker để leo quyền. Bạn nên clear cookies khi rời khỏi tiệm net,đồng thời chú ý các email do người lạ gửi (gần giống như kiểu thứ 1) có thể trong đó là 1 script chôm cookies (cái này trên mạng nhiều lắm). Lưu ý cập nhật các bản vá vì bất kì lỗ hổng nào cũng có khả năng là chỗ để hacker chèn script độc vào. Cũng chú ý cân nhắc chuyện bật html thậm chí bbcode cho thành viên vì html có thể chèn được vào script chôm cookies còn,bbcode nếu coder code kĩ thì vẫn có thể chèn script độc được (bo-blog ko bị nhưng nếu bạn hack thêm bbcode mới thì biết đâu đáy). Dùng 2 pass (xem bài viết tạo 2 pass của kus) hacker chôm được cookies ko có nghĩa có thể dịch ra được pass, dùng thêm pass nữa chắc ăn hơn.
– Cân nhắc kĩ khi cài 1 plugin hay 1 addons bên ngòai. Bo-Blog thì bạn có thể chế block riêng cho mình và cái này chạy độc lập nhưng lưu ý các plugin yêu cầu setup vào hệ thống thì bạn đừng cài bừa bãi mà hãy cố kiểm soát nó. Tốt nhất nên xài những plugin có nhiều người dùng, phiên bản cao và coder giỏi (chưa hẳn nhưng hãy xem nhận xét và đánh giá của thành viên khi xài nó để quyết định). Cập nhật thường xuyên để biết có bản vá mới hay không.
– Nếu đây là 1 source khác kusanagi sẽ đề nghị bạn mã hóa file cấu hình hoặc mode nó đến vị trí an toàn,nhưng boblog việc ghi cấu hình diễn ra rất thường xuyên có mã hóa thì lúc chỉnh cấu hình lại file mã hóa sẽ bị đè lên lại. Còn config move file đi chỗ khác (tốt nhất là bên ngòai thư mục public_html) thì xem ra hơi mệt. Kus đã từng thử và làm được nhưng phải edit gần như 1/3 số file trong bo-blog rất mất thời gian, chưa kể khi update thì phải làm lại thôi coi như bỏ qua bước này. Nhưng sẽ chỉ bạn 1 cách hiệu quả ko kém là bạn del cài file admin.php đi, khi nào xài thì up lên Nghe có vẻ lạc hậu nhưng hồi vài năm trước kusanagi toàn dùng cách ấy rất hiệu quả đấy nhé ^^ Nếu hacker đã đọat đựơc quyền ftp thì khỏi nói làm gì nhưng hacker đọat được acc admin thôi thì sẽ ko làm được gì hết he he
Nguồn: Kusanagivn.com