Đây là loại công cụ bảo mật cần thiết chúng ta cần phải có trong quá trình hoạt động của website. Cho ví dụ: một hacker đặt backdoor lên server của bạn, hay thay đổi thông tin mã nguồn như mẫu đăng nhập, mẫu mua bán hàng,...các thông tin người dùng, khách hàng sẽ tự động được gửi tới Email của hacker, và sẽ bị chiếm dụng mà chúng ta không hề biết.
Để phòng tránh phương pháp tấn công trên của các hacker, bằng cách thiết lập các thông báo (report) hằng ngày từ server. Khi một file nào bị thay đổi nội dụng, hay có file nào được thêm mới, hoặc xóa bớt đi sẽ có phàn hồi tới cho bạn, và bạn biết lúc đó sẽ phải làm gì!
Phương pháp này mình đề cập sử dụng cho người dùng cuối trên server, không cần phải sử dụng quyền root. Tuy nhiên đó là trong trường hợp máy chủ của bạn đã cài đặt thiết lập cho truy cập SSH và sử dụng cmd line đối với user. Hầu hết các máy chủ thì đã cài đặt thành phần này rồi.
Chú ý: Hầu hết các hosting dịch vụ ở Việt Nam ta không hỗ trợ SSH, bạn sẽ phải yêu cầu người quản trị Server hay VPS cài đặt mod này (aide binary)
Bước 1: Tải về A Sample AIDE config file:
Chúng ta đăng nhập bằng tài khoản SSH và chạy lệnh wget sau để tải file về
$ wget securehostingdirectory.com/aide.conf
Nội dung file aide.conf
@@define TOPDIR /home/username
@@ifndef TOPDIR
@@define TOPDIR ./
@@endif
@@ifdef DEBUG
@@define DEBUG ison
@@undef NOT_DEBUG
@@else
@@define NOT_DEBUG true
@@undef DEBUG
@@endif
@@ifhost korppi
@@define KORPPI yes
@@endif
@@ifnhost ftp
@@define BUMMER true
@@endif
# The location of the database to be read.
database=file:@@{TOPDIR}/aide.db.in
# The location of the database to be written.
database_out=file:@@{TOPDIR}/aide.db.out
verbose=20
report_url=stdout
MD=md5
#Selection regexp rule
@@{TOPDIR}/public_html MD
Chúng ta sẽ thay đổi nội dung của dòng đầu tiên và dòng cuối cùng để phù hợp với website của bạn.
@@define TOPDIR /home/username => thiết lập lại username đúng với username hosting của bạn
@@{TOPDIR}/public_html MD => thiêt lập lại
public_html là địa chỉ web root của website bạn. Nếu server chạy Cpanel thì webroot ở đây cũng chính là public_html
Bước 2: Khởi tạo cơ sở dữ liệu AIDE
Chạy dòng lệnh sau:
$ nice -19 aide --init --config=/home/username/aide.conf
Tiếp tục ta sao chép file dữ liệu đầu ra AIDE thành file nhập:
$ cp aide.db.out aide.db.in
Chúng ta có thể test kết quả chạy thử AIDE bằng dòng lệnh (1) :
$ nice -19 aide -C --config=/home/username/aide.conf
(Ở trên tôi chạy AIDE dưới độ ưu tiên 19 sử dụng từ khóa nice)
Lần đầu chạy dòng lệnh (1) ở trên, AIDE sẽ lưu trạng thái các file ở thưc mục web root vào cơ sở dữ liệu của nó. Bạn hãy thử thay đổi nội dung của một file mã nguồn website của bạn rồi chạy lại dòng (1) ở trên một lần nữa và xem report từ AIDE để test kết quả.
Bước 3: Thiết lập báo cáo tự động hằng ngày
Chắc hẳn rằng, bạn sẽ không có thời gian để lúc nào cũng phải login vào SSH và chạy dòng lệnh (1) ở trên để kiểm tra website của bạn. Chúng ta sẽ thiết lập báo cáo tự động, và gửi về email của bạn hằng tuần, hằng ngày hoặc thâm chí hằng giờ bằng cách sử dụng
CronJob
Mở Crontab lên và thêm vào dòng sau:
0 1 * * * nice -19 /usr/local/bin/aide --config=/home/username/aide.conf
-C| mail you@domain -saide\ domain
Để thiết lập báo cáo hoằng tuần thì ta thêm vào dòng sau:
0 2 * * 0 nice -19 /usr/local/bin/aide --config=/home/username/aide.conf
--init;mv -f /home/username/aide.db.out /home/username/aide.db.in
Chú ý: Về cấu trúc lệnh, cách đặt giờ của câu lệnh Cronjob bạn có thể tham khảo
tại đây
Mẹo: để bảo mật tốt hơn, bạn có thể CHMOD lại file database của AIDE và chuyển CHOWN về một user khác để tránh trường hợp user hosting của bạn bị xâm nhập và file database của AIDE của bạn có thể bị sửa đổi.
Hi vọng bài viết ngắn sẽ giúp website của bạn được bảo mật tốt hơn.
Duy Khánh (Kênh Giải Pháp VN)