diff --git a/assets/fail2ban/filter.d/nginx-badbots.conf b/assets/fail2ban/filter.d/nginx-badbots.conf new file mode 100644 index 0000000..9f10373 --- /dev/null +++ b/assets/fail2ban/filter.d/nginx-badbots.conf @@ -0,0 +1,5 @@ +[Definition] + +failregex = FastCGI sent in stderr: "Primary script unknown" .*, client: + +ignoreregex = \ No newline at end of file diff --git a/assets/fail2ban/jail.d/nginx-badbots.conf b/assets/fail2ban/jail.d/nginx-badbots.conf new file mode 100644 index 0000000..0a2f48d --- /dev/null +++ b/assets/fail2ban/jail.d/nginx-badbots.conf @@ -0,0 +1,7 @@ +[nginx-badbots] + +enabled = true +port = http,https +filter = +logpath = +maxretry = 2 \ No newline at end of file diff --git a/bin/vhost.sh b/bin/vhost.sh index 9b65187..88f3d0c 100755 --- a/bin/vhost.sh +++ b/bin/vhost.sh @@ -106,6 +106,16 @@ if [ "$vh" = "y" ]; then chmod -R g+w /var/www/"$_domain"/ chmod -R g+r /var/www/"$_domain"/ + #set fail2ban for vhost + # https://stackoverflow.com/a/65552146 + cp "$_assets/fail2ban/jail.d/nginx-badbots.conf" "/etc/fail2ban/jail.d/nginx-badbots-$_domain.conf" + sed -i -r "s/\[nginx-badbots\]/\[nginx-badbots-$_domain\]/g" "/etc/fail2ban/jail.d/nginx-badbots-$_domain.conf" + sed -i -r "s//\[nginx-badbots-$_domain\]/g" "/etc/fail2ban/jail.d/nginx-badbots-$_domain.conf" + sed -i -r "s//\/var\/www\/$_domain\/log\/error.log/g" "/etc/fail2ban/jail.d/nginx-badbots-$_domain.conf" + + cp "$_assets/fail2ban/filter.d/nginx-badbots.conf" "/etc/fail2ban/filter.d/nginx-badbots-$_domain.conf" + sed -i -r "s//$_domain/g" "/etc/fail2ban/filter.d/nginx-badbots-$_domain.conf" + # create a shortcut to the site