Nginx với libmodsecurity và OWASP ModSecurity Core Rule Set trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách biên dịch phiên bản Nginx mới nhất với libmodsecurity (Modsecurity 3.x) KHÔNG nên nhầm lẫn với Modsecurity 2.9. Chúng tôi cũng sẽ tích hợp OWASP ModSecurity Core Rule Set (CRS).

Libmodsecurity là bản viết lại chính của ModSecurity, mang lại hiệu suất và độ ổn định được cải thiện. Mặc dù Modsecurity 2.9.x được cung cấp cho các nền tảng khác nhau, nhưng nó thực sự ưu tiên triển khai với Apache và triển khai với các nền tảng khác yêu cầu nhiều phụ thuộc của bên thứ 3 với cái giá phải trả là hiệu suất. Libmodsecurity thay đổi tất cả những điều đó bằng cách viết lại từ đầu. Bạn có thể tìm thêm thông tin về Libmodsecurity tại đây.

Hướng dẫn này giả định rằng bạn đã có phiên bản Ubuntu 16.04 64-bit mới nhất được cập nhật.

1. Cài đặt điều kiện tiên quyết​

Cài đặt điều kiện tiên quyết
Mã:
apt-get install apache2-dev autoconf automake build-essential bzip2 checkinstall devscripts flex g++ gcc git graphicsmagick-imagemagick-compat graphicsmagick-libmagick-dev-compat libaio-dev libaio1 libass-dev libatomic-ops-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libbz2-dev libcdio-cdda1 libcdio-paranoia1 libcdio13 libcurl4-openssl-dev libfaac-dev libfreetype6-dev libgd-dev libgeoip-dev libgeoip1 libgif-dev libgpac-dev libgsm1-dev libjack-jackd2-dev libjpeg-dev libjpeg-progs libjpeg8-dev liblmdb-dev libmp3lame-dev libncurses5-dev libopencore-amrnb-dev libopencore-amrwb-dev libpam0g-dev libpcre3 libpcre3-dev libperl-dev libpng12-dev libpng12-0 libpng12-dev libreadline-dev librtmp-dev libsdl1.2-dev libssl-dev libssl1.0.0 libswscale-dev libtheora-dev libtiff5-dev libtool libva-dev libvdpau-dev libvorbis-dev libxml2-dev libxslt-dev libxslt1-dev libxslt1.1 libxvidcore-dev libxvidcore4 libyajl-dev make openssl perl pkg-config tar texi2html giải nén zip zlib1g-dev

2. Tải xuống ModSecurity​

Git clone Modsecurity, kiểm tra và xây dựng libmodsecurity
Mã:
cd /opt/ 
git clone https://github.com/SpiderLabs/ModSecurity 
cd ModSecurity 
git checkout -b v3/master origin/v3/master 
sh build.sh 
git submodule init 
git submodule update 
./configure 
make
make install
Git clone trình kết nối Modsecurity-nginx
Mã:
cd /opt/ 
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
Bây giờ bạn sẽ có thư mục sau chứa trình kết nối Modsecurity-nginx
Mã:
/opt/ModSecurity-nginx

3. Tải Nginx​

Tải Nginx stable source mới nhất

Truy cậphttp://nginx.org/en/download.html và lấy liên kết đến phiên bản ổn định mới nhất của Nginx. Tính đến thời điểm viết bài này, phiên bản ổn định mới nhất là nginx-1.12.0.tar.gz. Điều chỉnh hướng dẫn bên dưới cho phiên bản cụ thể của bạn. Tải xuống và giải nén
Mã:
cd /opt 
wget http://nginx.org/download/nginx-1.12.0.tar.gz 
tar -zxf nginx-1.12.0.tar.gz 
cd nginx-1.12.0

4. Cấu hình và cài đặt Nginx​

Cấu hình Nginx với trình kết nối Modsecurity-nginx và cài đặt
Mã:
./configure --user=www-data --group=www-data --with-pcre-jit --with-debug --with-http_ssl_module --with-http_realip_module --add-module=/opt/ModSecurity-nginx 
make 
make install
Mã nguồn ModSecurity mà chúng tôi đã tải xuống trước đó bao gồm tệp modsecurity.conf mẫu với một số cài đặt được đề xuất. Sao chép tệp này vào thư mục chứa các tệp cấu hình Nginx
Mã:
cp /opt/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
Tạo liên kết tượng trưng từ /usr/local/nginx/sbin/nginx đến /bin/nginx
Mã:
ln -s /usr/local/nginx/sbin/nginx /bin/nginx
Tạo các thư mục sau:
Mã:
mkdir /usr/local/nginx/conf/sites-available 
mkdir /usr/local/nginx/conf/sites-enabled 
mkdir /usr/local/nginx/conf/ssl 
mkdir /etc/nginx
Tạo liên kết tượng trưng đến từ /usr/local/nginx/conf/ssl /etc/nginx/ssl
Mã:
ln -s /usr/local/nginx/conf/ssl /etc/nginx/ssl
Tạo bản sao lưu của tệp conf/nginx.conf
Mã:
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.bak
Cấu hình tệp /usr/local/nginx/conf/nginx.conf
Mã:
vi /usr/local/nginx/conf/nginx.conf
Xác định vị trí và xóa tất cả các mục bắt đầu bằng "server {" và kết thúc bằng dấu ngoặc nhọn đóng thứ hai tính từ cuối cùng "}". Nói cách khác, giữ nguyên dấu ngoặc nhọn cuối cùng.

Ngay phía trên dấu ngoặc nhọn cuối cùng, chèn đoạn sau. Đoạn này sẽ hướng dẫn Nginx tìm kiếm cấu hình trang web của chúng ta trong thư mục "/usr/local/nginx/conf/sites-enabled"
Mã:
include /usr/local/nginx/conf/sites-enabled/*;
Vì vậy, phần cuối của tệp sẽ trông như bên dưới (đảm bảo có dấu ngoặc nhọn đóng }):
Mã:
include /usr/local/nginx/conf/sites-enabled/*; 
}
Bật chỉ thị "user" bằng cách xóa tiền tố "#" nếu bị vô hiệu hóa và đảm bảo rằng chỉ thị được đặt thành user "www-data" thay vì "nobody" mặc định để trông giống như bên dưới:
Mã:
user www-data;
Lưu tệp.

Tải xuống tập lệnh khởi tạo Nginx của Jason Giedymin để quản lý dịch vụ nginx và định cấu hình nó như một dịch vụ
Mã:
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx 
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults
Tập lệnh này cung cấp các tùy chọn sau để quản lý dịch vụ Nginx:
Mã:
# service nginx bắt đầu|dừng|khởi động lại|buộc tải lại|tải lại|trạng thái|kiểm tra cấu hình|nâng cấp yên tĩnh|kết thúc|hủy

5. Cài đặt OWASP ModSecuirty Core Rule Set​

Git clone và sao chép phiên bản hiện tại của OWASP rules set và cấu hình vào Nginx
Mã:
cd /opt/ 
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git 
cd owasp-modsecurity-crs/ 
cp -R rules/ /usr/local/nginx/conf/ 
cp /opt/owasp-modsecurity-crs/crs-setup.conf.example /usr/local/nginx/conf/crs-setup.conf
Cấu hình Nginx với OWASP ModSecuirty Core Rule Set

Chỉnh sửa /usr/local/nginx/conf/modsecurity.conf
Mã:
vi /usr/local/nginx/conf/modsecurity.conf
Cuối tệp, dán nội dung sau:
Mã:
#Load OWASP Config 
Include crs-setup.conf 
#Load all other Rules 
Include rules/*.conf 
#Disable rule by ID from error message 
#SecRuleRemoveById 920350
Trong tệp Nginx modsecurity.conf hoặc các tệp server conf riêng lẻ của bạn, hãy nhập nội dung sau vào khối server hoặc location. Ví dụ bên dưới cho thấy sự kết hợp của việc thêm các mục vào cả khối server và location:
Mã:
server { 
..... 
modsecurity on; 
location / { 
modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf; 
..... 
} 
}
Kiểm tra cấu hình Nginx của bạn
Mã:
service nginx configtest
Nếu không có lỗi, hãy tải lại hoặc khởi động lại Nginx của bạn
Mã:
service nginx reload
Bây giờ bạn có thể xem /var/log/modsec_audit.log để biết bất kỳ sự kiện ModSecurity nào
Mã:
tail -f /var/log/modsec_audit.log
Nếu bạn hài lòng, hãy chỉnh sửa tệp /usr/local/nginx/conf/modsecurity.conf và đặt "SecRuleEngine" từ "DetectionOnly" thành "On" như bên dưới
Mã:
SecRuleEngine On
Hướng dẫn này đến đây là kết thúc.


Giới thiệu về tác giả​

Dino Edwards là một chuyên gia CNTT với Hơn 20 năm kinh nghiệm trong lĩnh vực Liên bang, Tiểu bang và Tư nhân. Ông cũng được biết đến là người dabbling trong lập trình.

Ông có xu hướng viết hướng dẫn hoặc hướng dẫn sau khi hoàn thành một dự án cụ thể chủ yếu vì trí nhớ của ông tệ và ông không muốn phát minh lại bánh xe nếu ông phải làm lại cùng một dự án.

Liên hệ

Trang web của tác giả Theo dõi Email
 
Back
Bên trên