File: //usr/local/edr/var/baseline/nginxcheck.sh
#!/bin/bash
if [ ! -f $3 ]
then
echo "3046#5700#2#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
elif [ $1 == 0 ]
then
echo "检查控制并发连接"
WORKER_NUM=`cat $3 | grep worker_connections | grep -v '#' | awk -F ';' '{print $1}' | awk '{print $2}'`
if [ -z $WORKER_NUM ]
then
sed -i '/events {/a\ worker_connections $2' $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/worker_connections $WORKER_NUM;/worker_connections $2;/g" $3
echo "3046#5699#1#$1#$2#$WORKER_NUM#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 1 ]
then
echo "检查keepalive timeout"
TMOUT_NUM=`cat $3 | grep keepalive_timeout | grep -v '#' | awk -F ';' '{print $1}' | awk '{print $2}'`
if [ -z $TMOUT_NUM ]
then
sed -i '/http {/a\ keepalive_timeout $2' $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/keepalive_timeout $TMOUT_NUM;/keepalive_timeout $2;/g" $3
echo "3046#5699#1#$1#$2#$TMOUT_NUM#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 2 ]
then
echo "检查client header timeout"
CLIENT_HEADER_TIMEOUT=`cat $3 | grep client_header_timeout | grep -v '#' | awk -F 's;' '{print $1}' | awk '{print $2}'`
if [ -z $CLIENT_HEADER_TIMEOUT ]
then
sed -i "/location/{s/$/\n client_header_timeout "$2"s;/;:f;n;b f;}" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/client_header_timeout "$CLIENT_HEADER_TIMEOUT"s;/client_header_timeout "$2"s;/g" $3
echo "3046#5699#1#$1#$2#$CLIENT_HEADER_TIMEOUT#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 3 ]
then
echo "检查限制客户端的下载速度"
LIMIT_RATE=`cat $3 | grep limit_rate | grep -v '#' | awk -F 'k;' '{print $1}' | awk '{print $2}'`
if [ -z $LIMIT_RATE ]
then
sed -i "/location/{s/$/\n limit_rate "$2"k;/;:f;n;b f;}" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/limit_rate "$LIMIT_RATE"k;/limit_rate "$2"k;/g" $3
echo "3046#5699#1#$1#$2#$LIMIT_RATE#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 5 ]
then
echo "检查默认错误页上的nginx版本号是否关闭"
SERVER_TOKEN=`cat $3 | grep server_tokens | grep -v '#' | awk -F ';' '{print $1}' | awk '{print $2}'`
if [ -z $SERVER_TOKEN ]
then
sed -i "/listen/{s/$/\n server_tokens off;/;:f;n;b f;}" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/server_tokens "$SERVER_TOKEN";/server_tokens off;/g" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 6 ]
then
echo "检查client body timeout"
CLIENT_BODY_TIMEOUT=`cat $3 | grep client_body_timeout | grep -v '#' | awk -F 's;' '{print $1}' | awk '{print $2}'`
if [ -z $CLIENT_BODY_TIMEOUT ]
then
sed -i "/location/{s/$/\n client_body_timeout "$2"s;/;:f;n;b f;}" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/client_body_timeout "$CLIENT_BODY_TIMEOUT"s;/client_body_timeout "$2"s;/g" $3
echo "3046#5699#1#$1#$2#$CLIENT_BODY_TIMEOUT#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
elif [ $1 == 7 ]
then
echo "检查send timeout"
SEND_TIMEOUT=`cat $3 | grep send_timeout | grep -v '#' | awk -F 's;' '{print $1}' | awk '{print $2}'`
if [ -z $SEND_TIMEOUT ]
then
sed -i "/location/{s/$/\n send_timeout "$2"s;/;:f;n;b f;}" $3
echo "3046#5699#1#$1#$2#0#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
else
sed -i "s/send_timeout "$SEND_TIMEOUT"s;/send_timeout "$2"s;/g" $3
echo "3046#5699#1#$1#$2#$SEND_TIMEOUT#" >> /usr/local/edr/var/baseline/nginxcheck_result
sleep 0.5
fi
fi