Giám sát và phát hiện các tệp đã sửa đổi bằng Tripwire trên CentOS 7

theanh

Administrator
Nhân viên
Tripwire là Hệ thống phát hiện xâm nhập (IDS) miễn phí và mã nguồn mở. Đây là công cụ bảo mật để giám sát và cảnh báo các thay đổi tệp trên hệ thống. Tripwire là IDS mạnh mẽ bảo vệ hệ thống của bạn khỏi những thay đổi không mong muốn. Bạn có thể sử dụng nó để giám sát các tệp hệ thống của mình, bao gồm các tệp trang web, vì vậy khi có thay đổi tệp không mong muốn, Tripwire sẽ kiểm tra hệ thống của bạn và nếu được thiết lập đúng, có thể cảnh báo bạn qua email.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách giám sát và phát hiện mọi thay đổi trong các tệp hệ thống của bạn khác bằng Tripwire trên hệ thống CentOS 7. Chúng tôi sẽ hướng dẫn bạn cách cài đặt và cấu hình Tripwire trên CentOS 7, cách tạo tệp khóa Tripwire, cấu hình và thêm chính sách Tripwire, kiểm tra hệ thống và bật thông báo qua email cho thiết lập Tripwire và Cron.

Những việc chúng ta sẽ làm​

  1. Cài đặt Tripwire trên CentOS 7
  2. Cấu hình Chính sách Tripwire cho CentOS 7
  3. Xác minh Cấu hình Tripwire
  4. Thêm Quy tắc Mới vào Chính sách Tripwire
  5. Thiết lập Thông báo qua Email và Cron của Tripwire

Điều kiện tiên quyết​

  • Hệ thống CentOS 7
  • Quyền Root

Bước 1 - Cài đặt Tripwire trên CentOS 7​

Bước đầu tiên chúng ta phải làm là cài đặt Tripwire vào hệ thống. Theo mặc định, tripwire có sẵn trong kho lưu trữ CentOS 7.

Đăng nhập vào máy chủ của bạn và cập nhật tất cả các gói.
Mã:
ssh [emailprotected]
sudo yum update -y
Bây giờ hãy cài đặt Tripwire bằng yum.
Mã:
yum -y install tripwire
Sau khi cài đặt, chúng ta cần tạo các tệp khóa mới.

Tripwire hoạt động với 2 tệp khóa.
  1. site-key: Được sử dụng để bảo mật cấu hình Tripwire. Vì vậy, bất kỳ thay đổi nào đối với cấu hình tripwire sẽ không được áp dụng cho đến khi chúng tôi tạo lại cấu hình và chúng tôi sẽ được nhắc nhập mật khẩu 'site-key' cho cấu hình đó.
  2. local-key: Được sử dụng để xác minh nhị phân tripwire. Khi chúng ta muốn cập nhật cơ sở dữ liệu hệ thống tripwire, chúng ta cần chạy lệnh tripwire và chúng ta sẽ được nhắc nhập mật khẩu cho 'local-key'.
Hãy tạo các tệp khóa tripwire mới (khóa site và khóa local) bằng lệnh bên dưới.
Mã:
sudo tripwire-setup-keyfiles
Lệnh sẽ tạo hai tệp khóa 'site-key' và 'local-key' và bạn sẽ được yêu cầu nhập mật khẩu cho từng tệp.

Nhập mật khẩu 'site-key' của riêng bạn và nhấn Enter.



Nhập mật khẩu 'local-key' của riêng bạn và nhấn Enter một lần nữa.



Tiếp theo, hãy ký cấu hình tripwire bằng 'site-key'.

Nhập mật khẩu 'site-key' của bạn.



Và bây giờ để đăng ký chính sách Tripwire, hãy nhập mật khẩu 'local-key' của bạn.



Tripwire đã được cài đặt trên CentOS 7 và cấu hình và khóa tripwire mới nằm trong thư mục '/etc/tripwire'.

Bước 2 - Cấu hình Chính sách Tripwire cho CentOS 7​

Sau khi cài đặt tripwire mà chúng ta đã thảo luận ở bước đầu tiên, chúng ta cần khởi tạo cơ sở dữ liệu tripwire và đảm bảo không có lỗi.

Khởi tạo cơ sở dữ liệu tripwire bằng lệnh tripwire bên dưới.
Mã:
sudo tripwire --init
Bạn sẽ được hỏi về mật khẩu 'local-key' và có thể bạn sẽ nhận được thông báo lỗi 'no such directory' như bên dưới.



Chúng tôi gặp lỗi vì hệ thống không có thư mục và các tệp đã được xác định trong cấu hình tripwire. Để giải quyết lỗi này, chúng ta cần chỉnh sửa cấu hình tripwire 'twpol.txt' và đăng nhập lại cấu hình tripwire.

Bây giờ hãy tạo lỗi nhật ký từ tripwire bằng lệnh bên dưới.
Mã:
sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
Tất cả các thư mục và tệp không tồn tại trên hệ thống CentOS 7 đều được liệt kê trong tệp 'mo-directory.txt'
Mã:
cat no-directory.txt


Chỉnh sửa cấu hình tripwire 'twpol.txt' bằng cách sử dụng tập lệnh bash sau - chạy tập lệnh này trên thiết bị đầu cuối của bạn.
Mã:
for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done
Sau tất cả những điều này, chúng ta cần tạo lại và ký lại cấu hình tripwire bằng lệnh twadmin như được hiển thị bên dưới.
Mã:
sudo twadmin -m P /etc/tripwire/twpol.txt
Nhập cụm mật khẩu 'site-key' của bạn.

Khởi tạo lại cơ sở dữ liệu tripwire một lần nữa và đảm bảo bạn không gặp lỗi nào.
Mã:
sudo tripwire --init
Khởi tạo lại cơ sở dữ liệu tripwire mà không có bất kỳ lỗi nào.


Bước 3 - Xác minh cấu hình Tripwire và kiểm tra hệ thống​

Để xác minh cấu hình tripwire, chúng ta có thể chạy lệnh kiểm tra hệ thống như bên dưới.
Mã:
sudo tripwire --check
Và bạn sẽ nhận được kết quả tương tự như sau.



Điều này có nghĩa là không có lỗi và không có vi phạm hệ thống nào được tìm thấy trên hệ thống của chúng ta.

Bây giờ chúng ta sẽ thử thêm một tệp mới vào thư mục gốc và kiểm tra lại bằng tripwire.

Đi đến thư mục gốc và tạo một tệp mới 'hakase-labs.txt'.
Mã:
cd ~/
touch hakase-labs.txt
Bây giờ hãy kiểm tra lại hệ thống bằng lệnh lệnh tripwire.
Mã:
sudo tripwire --check
Và bạn sẽ nhận được kết quả vi phạm mới trên hệ thống với mức độ nghiêm trọng 100 như bên dưới.



Ở giai đoạn này, Tripwire đã được cài đặt và cấu hình cho hệ thống CentOS 7.

Bước 4 - Thêm quy tắc mới vào Chính sách Tripwire​

Trong bước này, chúng tôi sẽ chỉ cho bạn cách thêm quy tắc mới vào cấu hình chính sách tripwire 'twpol.txt'.

Để thực hiện công việc này, chúng ta cần xác định tên quy tắc, mức độ nghiêm trọng, thư mục để giám sát và loại tệp. Ở bước này, chúng ta sẽ tạo một quy tắc mới có tên là 'Wordpress Data' cho cài đặt WordPress của chúng ta trong thư mục '/var/www/', với mức độ nghiêm trọng 'HIGH/SIG_HI' và tất cả các tệp trong thư mục đó đều quan trọng (cả quyền sở hữu cũng như mã nguồn đều không thể thay đổi).

Đi tới thư mục cấu hình tripwire '/etc/tripwire' và chỉnh sửa tệp cấu hình 'twpol.txt' bằng vim.
Mã:
cd /etc/tripwire/
vim twpol.txt
Đi tới cuối dòng và dán quy tắc WordPress sau vào đó.
Mã:
# Bộ quy tắc cho Wordpress
 (
 rulename = "Wordpress Data",
 severity= $(SIG_HI)
 )
 {
 /var/www -> $(SEC_CRIT);
 }
Lưu và thoát.

Tạo lại và ký lại cấu hình bằng lệnh twadmin như bên dưới.
Mã:
sudo twadmin -m P /etc/tripwire/twpol.txt
Nhập cụm mật khẩu 'site-key' của bạn.

Bây giờ chúng ta cần tạo lại cơ sở dữ liệu tripwire một lần nữa.
Mã:
sudo tripwire --init
Nhập cụm mật khẩu 'local-key'.

Một bộ quy tắc mới đã được thêm vào và áp dụng cho cấu hình chính sách Tripwire.



Kiểm tra hệ thống của bạn bằng lệnh tripwire bên dưới.
Mã:
sudo tripwire --check
Và bạn sẽ nhận được kết quả là không có lỗi và vi phạm.



Bây giờ hãy chuyển đến Thư mục '/var/www/' và tạo một tệp mới bên trong thư mục đó.
Mã:
cd /var/www/
touch hakase-labs.php


Kiểm tra hệ thống bằng tripwire một lần nữa.
Mã:
sudo tripwire --check
Và bạn sẽ nhận được kết quả nói rằng hệ thống bị vi phạm trong thư mục '/var/www/' với mức bảo mật Cao 100.



Một quy tắc mới đã được thêm vào và áp dụng cho cấu hình Chính sách Tripwire.

Bước 5 - Thiết lập Thông báo qua Email Tripwire và Cron​

Trong bước này, chúng ta sẽ cấu hình thông báo cho chính sách bộ quy tắc tripwire cụ thể và cấu hình cronjob để kiểm tra hệ thống tự động. Chúng tôi sẽ gửi báo cáo về bất kỳ hành vi vi phạm nào đối với quy tắc 'Dữ liệu Wordpress' tới địa chỉ email '[emailprotected]'.

Để thông báo qua email, tripwire cung cấp chức năng 'emailto' trong cấu hình. Và theo mặc định, tripwire sử dụng Postfix hoặc Sendmail để gửi báo cáo qua email.

Trước khi cấu hình thông báo qua email, hãy kiểm tra tính năng thông báo tripwire bằng lệnh bên dưới.
Mã:
sudo tripwire --test --email [emailprotected]
Kiểm tra email của bạn và bạn sẽ nhận được báo cáo qua email từ máy chủ như bên dưới.



Bây giờ hãy vào thư mục '/etc/tripwire' và chỉnh sửa cấu hình 'twpol.txt'.
Mã:
cd /etc/tripwire/
vim twpol.txt
Thêm dòng mới 'emailto' bên trong quy tắc 'Wordpress Data' như được hiển thị bên dưới.
Mã:
# Bộ quy tắc cho Wordpress
 (
 rulename = "Wordpress Data",
 severity= $(SIG_HI),
 emailto = [emailprotected]
 )
 {
 /var/www -> $(SEC_CRIT);
 }
Lưu và thoát.

Tạo lại và ký cấu hình bằng lệnh twadmin.
Mã:
sudo twadmin -m P /etc/tripwire/twpol.txt
Nhập cụm mật khẩu 'site-key' của bạn.

Và tạo lại cơ sở dữ liệu tripwire.
Mã:
sudo tripwire --init
Nhập cụm mật khẩu 'local-key' của tripwire.

Cấu hình cho Thông báo qua email Tripwire đã hoàn tất.



Bây giờ hãy thực hiện một số thử nghiệm bằng cách tạo lại một tệp mới trong thư mục '/var/www/'.
Mã:
cd /var/www/
touch hakase.txt
Kiểm tra lại hệ thống của bạn bằng lệnh bên dưới.
Mã:
sudo tripwire --check --email-report
Lưu ý:
  • --email-report: Gửi báo cáo về hệ thống đến địa chỉ email được xác định trong mỗi quy tắc.
Kiểm tra email của bạn và bạn sẽ nhận được kết quả như bên dưới trên email của mình.



Thông báo qua email cho Tripwire đã được bật và áp dụng.

Tiếp theo, chúng tôi sẽ bật tính năng kiểm tra hệ thống Tripwire tự động bằng cách sử dụng thiết lập cron. Để thực hiện việc này, hãy tạo một tập lệnh cron mới dưới quyền người dùng root bằng lệnh crontab bên dưới.
Mã:
sudo crontab -e -u root
Dán cấu hình cron sau.
Mã:
0 0 * * * tripwire --check --email-report
Lưu và thoát.

Lưu ý:
  • - Tập lệnh cron sẽ kiểm tra hệ thống tripwire hàng ngày.
Bây giờ hãy khởi động lại dịch vụ crond trên CentOS 7.
Mã:
systemctl restart crond


Bây giờ bạn sẽ nhận được thông báo báo cáo tripwire qua email hàng ngày.

Tripwire đã được cài đặt và cấu hình cho hệ thống CentOS 7.

Tham khảo​

 
Back
Bên trên