64 lines
2.0 KiB
Bash
64 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
function git_secure_clone() {
|
|
repo="$1"
|
|
commit="$2"
|
|
folder=$(echo "$repo" | sed -E "s@https://github.com/.*/(.*)\.git@\1@")
|
|
git clone "$repo"
|
|
cd "$folder"
|
|
git checkout "${commit}^{commit}"
|
|
if [ $? -ne 0 ] ; then
|
|
echo "[!] Commit hash $commit is absent from repository $repo !"
|
|
exit 1
|
|
fi
|
|
cd ..
|
|
}
|
|
|
|
NTASK=$(nproc)
|
|
|
|
# install build dependencies
|
|
apk add --no-cache --virtual build git bash lua-dev mariadb-dev sqlite-dev gettext make go jq
|
|
|
|
# build and install crowdsec
|
|
cd /tmp
|
|
git_secure_clone https://github.com/crowdsecurity/crowdsec.git 2fdf7624da381af605baa46f319f2ed3015807e4
|
|
cd crowdsec
|
|
make -j $NTASK build
|
|
./wizard.sh --bininstall
|
|
sed -i 's/^machine_id:.*//' /etc/crowdsec/config/api.yaml
|
|
sed -i 's/^password:.*//' /etc/crowdsec/config/api.yaml
|
|
|
|
# install nginx collection
|
|
cscli update
|
|
cscli install collection crowdsecurity/nginx
|
|
sed -i "s/^filter:.*$/filter: \"evt.Line.Labels.type == 'nginx'\"/" /etc/crowdsec/config/parsers/s01-parse/nginx-logs.yaml
|
|
sed -i 's/apply_on: message/apply_on: Line.Raw/g' /etc/crowdsec/config/parsers/s01-parse/nginx-logs.yaml
|
|
|
|
# build and install luasql
|
|
cd /tmp
|
|
git_secure_clone https://github.com/keplerproject/luasql.git 22d4a911f35cf851af9db71124e3998d96fb3fa1
|
|
cd luasql
|
|
make -j $NTASK sqlite3 mysql
|
|
mkdir /usr/local/lib/lua/5.1/luasql
|
|
cp src/*.so /usr/local/lib/lua/5.1/luasql
|
|
|
|
# install lualogging
|
|
cd /tmp
|
|
git_secure_clone https://github.com/Neopallium/lualogging.git cadc4e8fd652be07a65b121a3e024838db330c15
|
|
cd lualogging
|
|
cp -r src/* /usr/local/lib/lua
|
|
|
|
# install cs-lua-lib
|
|
cd /tmp
|
|
git_secure_clone https://github.com/crowdsecurity/cs-lua-lib.git 97e55a555a8f6d46c1c2032825a4578090283301
|
|
cd cs-lua-lib
|
|
mkdir /usr/local/lib/lua/crowdsec
|
|
cp lib/*.lua /usr/local/lib/lua/crowdsec
|
|
cp template.conf /usr/local/lib/lua/crowdsec/crowdsec.conf
|
|
rm /usr/local/lib/lua/crowdsec/lrucache.lua
|
|
sed -i 's/require "lrucache"/require "resty.lrucache"/' /usr/local/lib/lua/crowdsec/CrowdSec.lua
|
|
sed -i 's/require "config"/require "crowdsec.config"/' /usr/local/lib/lua/crowdsec/CrowdSec.lua
|
|
|
|
# remove build dependencies
|
|
apk del build
|