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.
Git clone trình kết nối Modsecurity-nginx
Bây giờ bạn sẽ có thư mục sau chứa trình kết nối Modsecurity-nginx
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ã 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
Tạo liên kết tượng trưng từ /usr/local/nginx/sbin/nginx đến /bin/nginx
Tạo các thư mục sau:
Tạo liên kết tượng trưng đến từ /usr/local/nginx/conf/ssl /etc/nginx/ssl
Tạo bản sao lưu của tệp conf/nginx.conf
Cấu hình tệp /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"
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 }):
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:
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ụ
Tập lệnh này cung cấp các tùy chọn sau để quản lý dịch vụ Nginx:
Cấu hình Nginx với OWASP ModSecuirty Core Rule Set
Chỉnh sửa /usr/local/nginx/conf/modsecurity.conf
Cuối tệp, dán nội dung sau:
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:
Kiểm tra cấu hình Nginx của bạn
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
Bây giờ bạn có thể xem /var/log/modsec_audit.log để biết bất kỳ sự kiện ModSecurity nào
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
Hướng dẫn này đến đây là kết thúc.
Ô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
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
Mã:
cd /opt/
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git
Mã:
/opt/ModSecurity-nginx
3. Tải Nginx
Tải Nginx stable source mới nhấtTruy 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ã:
cp /opt/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
Mã:
ln -s /usr/local/nginx/sbin/nginx /bin/nginx
Mã:
mkdir /usr/local/nginx/conf/sites-available
mkdir /usr/local/nginx/conf/sites-enabled
mkdir /usr/local/nginx/conf/ssl
mkdir /etc/nginx
Mã:
ln -s /usr/local/nginx/conf/ssl /etc/nginx/ssl
Mã:
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.bak
Mã:
vi /usr/local/nginx/conf/nginx.conf
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/*;
Mã:
include /usr/local/nginx/conf/sites-enabled/*;
}
Mã:
user www-data;
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
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
Chỉnh sửa /usr/local/nginx/conf/modsecurity.conf
Mã:
vi /usr/local/nginx/conf/modsecurity.conf
Mã:
#Load OWASP Config
Include crs-setup.conf
#Load all other Rules
Include rules/*.conf
#Disable rule by ID from error message
#SecRuleRemoveById 920350
Mã:
server {
.....
modsecurity on;
location / {
modsecurity_rules_file /usr/local/nginx/conf/modsecurity.conf;
.....
}
}
Mã:
service nginx configtest
Mã:
service nginx reload
Mã:
tail -f /var/log/modsec_audit.log
Mã:
SecRuleEngine On
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