Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
51
deployment/scripts/setup-fail2ban.sh
Executable file
51
deployment/scripts/setup-fail2ban.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
# Setup Fail2ban for Nginx
|
||||
|
||||
set -e
|
||||
|
||||
echo "Setting up Fail2ban..."
|
||||
|
||||
# Install fail2ban if not installed
|
||||
if ! command -v fail2ban-server &> /dev/null; then
|
||||
apt update
|
||||
apt install -y fail2ban
|
||||
fi
|
||||
|
||||
# Create filter for Nginx
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
DEPLOYMENT_DIR="$( cd "$SCRIPT_DIR/.." && pwd )"
|
||||
|
||||
cat > /etc/fail2ban/filter.d/nginx-limit-req.conf << 'EOF'
|
||||
[Definition]
|
||||
failregex = ^.*limiting requests, excess:.*by zone.*client: <HOST>.*$
|
||||
ignoreregex =
|
||||
EOF
|
||||
|
||||
# Create jail configuration
|
||||
cat > /etc/fail2ban/jail.d/explorer.conf << 'EOF'
|
||||
[nginx-limit-req]
|
||||
enabled = true
|
||||
port = http,https
|
||||
logpath = /var/log/nginx/explorer-error.log
|
||||
maxretry = 10
|
||||
findtime = 600
|
||||
bantime = 3600
|
||||
|
||||
[nginx-botsearch]
|
||||
enabled = true
|
||||
port = http,https
|
||||
logpath = /var/log/nginx/explorer-access.log
|
||||
maxretry = 2
|
||||
findtime = 600
|
||||
bantime = 86400
|
||||
EOF
|
||||
|
||||
# Restart fail2ban
|
||||
systemctl restart fail2ban
|
||||
|
||||
# Check status
|
||||
fail2ban-client status
|
||||
|
||||
echo "Fail2ban configured!"
|
||||
echo "Jails: nginx-limit-req, nginx-botsearch"
|
||||
|
||||
Reference in New Issue
Block a user