ModSecurity là một công cụ tường lửa miễn phí và mã nguồn mở được hỗ trợ bởi nhiều máy chủ web, chẳng hạn như Apache, Nginx và IIS. Đây là một tường lửa dựa trên chữ ký có khả năng chặn một số loại tấn công bao gồm, tấn công tập lệnh chéo trang (XSS), tấn công vũ phu và tấn công tiêm mã đã biết. Nó cung cấp các bộ quy tắc khác nhau cho phép bạn tùy chỉnh và cấu hình bảo mật máy chủ của mình. Nó cũng có thể giám sát lưu lượng truy cập web theo thời gian thực và giúp bạn phát hiện và phản hồi các cuộc xâm nhập.
Trong hướng dẫn này, tôi sẽ giải thích cách thiết lập ModSecurity với Apache trên Ubuntu 22.04.
Sau khi tất cả các phụ thuộc được cài đặt, hãy thêm kho lưu trữ Apache bằng lệnh sau lệnh:
Tiếp theo, hãy cập nhật bộ đệm kho lưu trữ và cài đặt gói Apache bằng lệnh sau:
Sau khi Apache được cài đặt, bạn có thể tiến hành bước tiếp theo.
Sau khi gói được cài đặt, hãy bật module ModSecurity bằng lệnh sau:
Tiếp theo, khởi động lại dịch vụ Apache để áp dụng thay đổi:
Bạn cũng có thể kiểm tra trạng thái Apache bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Bỏ chú thích cho mục sau dòng:
Lưu và đóng tệp sau đó đổi tên tệp cấu hình ModSecurity:
Tiếp theo, chỉnh sửa cấu hình ModeSecurity tệp:
Thay đổi các dòng sau:
Lưu và đóng tệp sau đó khởi động lại dịch vụ Apache để áp dụng thay đổi:
Đầu tiên, hãy tải xuống bộ quy tắc mới nhất bằng lệnh sau:
Sau khi Khi quá trình tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, tạo một thư mục cho các quy tắc và di chuyển các quy tắc đã giải nén vào bên trong thư mục đó:
Tiếp theo, điều hướng đến thư mục quy tắc OWASP của bạn và đổi tên cấu hình tệp:
Tiếp theo, chỉnh sửa tệp cấu hình ModSecurity và xác định đường dẫn của bộ quy tắc OWASP của bạn:
Thêm nội dung sau dòng:
Lưu và đóng tệp, sau đó kiểm tra lỗi cú pháp của Apache bằng lệnh sau:
Nếu mọi thứ ổn, bạn sẽ nhận được kết quả sau:
Cuối cùng, khởi động lại dịch vụ Apache để áp dụng cấu hình:
Mở giao diện dòng lệnh và chạy lệnh sau:
Bạn sẽ nhận được lỗi 403 Forbidden:
Bạn cũng có thể kiểm tra ModSecurity bằng cách sử dụng lệnh sau lệnh:
Bạn sẽ nhận được kết quả đầu ra sau:
Bạn cũng có thể kiểm tra nhật ký ModSecurity để biết thêm thông tin:
Bạn sẽ nhận được kết quả sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Tệp cấu hình ở trên sẽ xoay vòng tệp nhật ký hàng ngày và nén tệp đó.
Trong hướng dẫn này, tôi sẽ giải thích cách thiết lập ModSecurity với Apache trên Ubuntu 22.04.
Yêu cầu
- Một máy chủ chạy Ubuntu 22.04.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt Máy chủ web Apache
Trước khi bắt đầu, bạn sẽ cần cài đặt phiên bản mới nhất của gói máy chủ web Apache trên máy chủ của mình. Trước tiên, hãy cài đặt tất cả các phụ thuộc cần thiết bằng lệnh sau:
Mã:
apt install gnupg2 software-properties-common curl wget git unzip -y
Mã:
add-apt-repository ppa:ondrej/apache2 -y
Mã:
apt update -y
apt install apache2 -y
Cài đặt ModSecurity
Tiếp theo, hãy chạy lệnh sau để cài đặt ModSecurity Apache module:
Mã:
apt install libapache2-mod-security2 -y
Mã:
a2enmod security2
Mã:
systemctl restart apache2
Mã:
systemctl status apache2
Mã:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-10-18 10:49:42 UTC; 4s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 74445 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 74449 (apache2) Tasks: 55 (limit: 2242) Memory: 29.7M CPU: 229ms CGroup: /system.slice/apache2.service ??74449 /usr/sbin/apache2 -k start ??74450 /usr/sbin/apache2 -k start ??74451 /usr/sbin/apache2 -k start
Oct 18 10:49:42 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Cấu hình ModSecurity
Tiếp theo, chỉnh sửa tệp cấu hình ModSecurity:
Mã:
nano /etc/apache2/mods-enabled/security2.conf
Mã:
IncludeOptional /etc/modsecurity/*.conf
Mã:
mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Mã:
nano /etc/modsecurity/modsecurity.conf
Mã:
SecRuleEngine On
SecAuditLogParts ABCEFHJKZ
Mã:
systemctl restart apache2
Cài đặt Bộ quy tắc cốt lõi OWASP
Để bảo vệ ứng dụng web của bạn khỏi các cuộc tấn công độc hại, bạn sẽ cần tải xuống và cài đặt bộ quy tắc cốt lõi OWASP vào máy chủ của mình.Đầu tiên, hãy tải xuống bộ quy tắc mới nhất bằng lệnh sau:
Mã:
wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.tar.gz
Mã:
tar xvf v3.3.0.tar.gz
Mã:
mkdir /etc/apache2/modsecurity-crs/
mv coreruleset-3.3.0/ /etc/apache2/modsecurity-crs
Mã:
cd /etc/apache2/modsecurity-crs/coreruleset-3.3.0/
mv crs-setup.conf.example crs-setup.conf
Mã:
nano /etc/apache2/mods-enabled/security2.conf
Mã:
IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/crs-setup.conf
IncludeOptional /etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/*.conf
Mã:
apache2ctl -t
Mã:
Syntax OK
Mã:
systemctl restart apache2
Xác minh ModSecurity
Tại thời điểm này, máy chủ web Apache được cấu hình với ModSecurity. Bây giờ, đã đến lúc kiểm tra xem nó có hoạt động hay không.Mở giao diện dòng lệnh và chạy lệnh sau:
Mã:
curl http://localhost/index.html?exec=/bin/bash
Mã:
403 Forbidden
[HEADING=1]Forbidden[/HEADING]
You don't have permission to access this resource.
Apache/2.4.52 (Ubuntu) Server at localhost Port 80
Mã:
curl localhost?doc=/bin/ls
Mã:
403 Forbidden
[HEADING=1]Forbidden[/HEADING]
You don't have permission to access this resource.
Apache/2.4.52 (Ubuntu) Server at localhost Port 80
Mã:
tail /var/log/apache2/modsec_audit.log
Mã:
SecRule "TX:INBOUND_ANOMALY_SCORE" "@ge %{tx.inbound_anomaly_score_threshold}" "phase:5,id:980130,pass,t:none,log,noauditlog,msg:'Inbound Anomaly Score Exceeded (Total Inbound Score: %{TX.INBOUND_ANOMALY_SCORE} - SQLI=%{tx.sql_injection_score},XSS=%{tx.xss_score},RFI=%{tx.rfi_score},LFI=%{tx.lfi_score},RCE=%{tx.rce_score},PHPI=%{tx.php_injection_score},HTTP=%{tx.http_violation_score},SESS=%{tx.session_fixation_score}): individual paranoia level scores: %{TX.ANOMALY_SCORE_PL1}, %{TX.ANOMALY_SCORE_PL2}, %{TX.ANOMALY_SCORE_PL3}, %{TX.ANOMALY_SCORE_PL4}',tag:event-correlation,ver:OWASP_CRS/3.3.0"
SecAction "phase:5,id:980145,pass,t:none,nolog,noauditlog,ver:OWASP_CRS/3.3.0,setvar:tx.executing_anomaly_score=%{tx.outbound_anomaly_score_pl1},setvar:tx.executing_anomaly_score=+%{tx.outbound_anomaly_score_pl2},setvar:tx.executing_anomaly_score=+%{tx.outbound_anomaly_score_pl3},setvar:tx.executing_anomaly_score=+%{tx.outbound_anomaly_score_pl4}"
SecRule "TX:OUTBOUND_ANOMALY_SCORE" "@lt %{tx.outbound_anomaly_score_threshold}" "phase:5,id:980150,pass,t:none,log,noauditlog,msg:'Outbound Anomaly Score (Total Outbound Score: %{TX.OUTBOUND_ANOMALY_SCORE}): individual paranoia level scores: %{TX.OUTBOUND_ANOMALY_SCORE_PL1}, %{TX.OUTBOUND_ANOMALY_SCORE_PL2}, %{TX.OUTBOUND_ANOMALY_SCORE_PL3}, %{TX.OUTBOUND_ANOMALY_SCORE_PL4}',tag:event-correlation,ver:OWASP_CRS/3.3.0,chain"
#SecRule "TX:MONITOR_ANOMALY_SCORE" "@gt 1"
--c2d93508-Z--
Cấu hình Logrotate
Nếu bạn đang sử dụng ModSecurity trên một trang web có lưu lượng truy cập cao. Nhật ký kiểm tra ModSecurity có thể trở nên quá lớn rất nhanh. Trong trường hợp này, bạn có thể cấu hình vòng quay nhật ký cho nhật ký kiểm tra ModSecurity. Bạn có thể cấu hình nó bằng lệnh sau:
Mã:
nano /etc/logrotate.d/modsec
Mã:
/var/log/apache2/modsec_audit.log
{ rotate 31 daily missingok compress delaycompress notifempty
}