Nội dung chính
Lệnh tìm chuỗi ở tất cả các file và các thư mục nếu có
Tìm kiếm một chuỗi trong một tập tin:
grep “chuỗi cần tìm” ten_tap_tin
Tìm kiếm một chuỗi trong tất cả các tập tin trong một thư mục:
grep “chuỗi cần tìm” /duong/dan/thu_muc/*
Tìm kiếm một chuỗi trong tất cả các tập tin trong một thư mục và các thư mục con:
grep -r “chuỗi cần tìm” /duong/dan/thu_muc
Tìm kiếm một chuỗi trong tất cả các tập tin có phần mở rộng cụ thể trong một thư mục:
grep “chuỗi cần tìm” /duong/dan/thu_muc/*.log
Hiển thị số dòng của các kết quả tìm kiếm:
grep -n “chuỗi cần tìm” ten_tap_tin
Hiển thị tên tập tin chứa chuỗi cần tìm:
grep -l “chuỗi cần tìm” /duong/dan/thu_muc/*
Lệnh tìm chuỗi với các hàm mã hóa như:
grep -rnw ‘/path/to/your/php/files’ -e ‘base64_decode\|base64_encode\|eval\|gzinflate\|gzdecode\|str_rot13\|create_function\|system\|exec\|passthru\|shell_exec\|popen\|proc_open\|preg_replace’
grep -r ‘eval(‘ /đường/dẫn/thư/mục
Lệnh tìm các file có sự sửa đổi theo thời gian
find /đường/dẫn/thư/mục/uploads -type f -name “*.php” -mtime -1
hoặc
find /đường/dẫn/thư/mục -type f -name “*.php” -ctime -1
Lệnh trên sẽ liệt kê các file PHP đã được tạo hoặc sửa đổi trong vòng 1 ngày qua trong thư mục uploads. Điều này giúp bạn xác định các file mới mà có thể là file mã độc.
Kiểm tra các file có quyền thực thi lạ
find /đường/dẫn/thư/mục -type f -executable -name “*.php”
Tìm các file đuôi php ở thư mục ảnh
find /uploads -type f -name “*.php”
Xóa các file đuôi php ( cẩn trọng )
find uploads -type f -name “*.php” -exec rm -f {} \;
Tăng Cường Cấu Hình PHP
Vô hiệu hóa các hàm nguy hiểm: Vô hiệu hóa các hàm PHP có thể bị lợi dụng như exec()
, shell_exec()
, system()
, passthru()
, eval()
, popen()
, proc_open()
, v.v.
; Vô hiệu hóa các hàm nguy hiểm trong php.ini
disable_functions = exec,shell_exec,system,passthru,eval,popen,proc_open
Thiết lập open_basedir
: Giới hạn phạm vi truy cập file của các script PHP.
open_basedir = “/path/to/webroot:/tmp/”
Sử Dụng WAF (Ví Dụ: ModSecurity)
Bước 1: Cài đặt ModSecurity cho Nginx:
sudo yum install mod_security mod_security_crs
Bước 2: Cấu hình ModSecurity
sudo cp /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
Cấu hình Nginx để sử dụng ModSecurity:
- Thêm dòng sau vào phần cấu hình server trong file
/etc/nginx/nginx.conf
hoặc file cấu hình của virtual host:
include /etc/nginx/modsec/main.conf;
Cấu hình các tệp và thư mục cho ModSecurity:
sudo mkdir /etc/nginx/modsec/activated_rules
sudo mkdir /var/log/nginx/modsec
Sửa đổi file cấu hình modsecurity.conf
để chỉ định thư mục và tệp tin log:
sudo vi /etc/nginx/modsec/modsecurity.conf
Cấu hình như sau:
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus “^(?:5|4(?!04))”
SecAuditLogParts ABIFHZ
SecAuditLogType Serial
SecAuditLog /var/log/nginx/modsec/audit.log
SecDataDir /var/cache/modsecurity
Include /etc/nginx/modsec/activated_rules/*.conf
Bước 3: Khởi động lại Nginx
sudo systemctl restart nginx
Bước 4: Kiểm tra và điều chỉnh cấu hình
Kiểm tra log của Nginx và ModSecurity: Đảm bảo xem các file log để kiểm tra các hoạt động và cảnh báo từ ModSecurity.
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/modsec/audit.log
Điều chỉnh cấu hình: Bạn có thể chỉnh sửa các tệp cấu hình trong /etc/nginx/modsec/activated_rules/
để thêm hoặc loại bỏ các luật bảo vệ theo nhu cầu của bạn.
Lưu ý:
- Sau khi cài đặt, bạn cần kiểm tra log để đảm bảo ModSecurity hoạt động đúng và không gây xung đột với ứng dụng web hiện tại.
- Cấu hình ModSecurity phù hợp với yêu cầu bảo mật của hệ thống và ứng dụng web của bạn.
Tách biệt Môi Trường Chạy (Isolation)
Việc tách môi trường của mỗi domain khác nhau sẽ giúp tránh lây lan mã độc giữa các domain
Tạo User Riêng Cho Mỗi Website
adduser website1
adduser website2
# Chuyển sở hữu file của mỗi website cho user tương ứng
chown -R website1:website1 /var/www/html/website1
chown -R website2:website2 /var/www/html/website2
Thiết Lập Quyền Truy Cập
# Chỉ user chủ sở hữu mới có quyền ghi
chmod -R 755 /var/www/html/website1
chmod -R 755 /var/www/html/website2
Cấu Hình open_basedir Trong PHP
; Thiết lập open_basedir trong php.ini hoặc vhost của mỗi website
open_basedir = “/var/www/html/website1/:/tmp/”
open_basedir = “/var/www/html/website2/:/tmp/”