Вы можете рассчитать процент ЦП с помощью следующего кода:
#!/bin/bash
FILE=<file path>
CPU_USAGE=`sed -n 'H; /^USER/h; ${g;p;}' $FILE | awk '{print $3}' | awk '{sum+=$1} END {print sum ;}'`
CPU_CORES=`nproc --all`
ACTUAL_CPU_USAGE=`echo "$CPU_USAGE $CPU_CORES" | awk '{print $1/$2"%"}'`
echo "CPU : $ACTUAL_CPU_USAGE"
Добавьте бантайм в свою тюрьму вот так-
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Это будет каждый IP-адрес после 3 неудачных попыток в течение 1 часа, а не бесконечно. Вы можете легко настроить это, изменив время бана. Кроме того, вы также захотите активировать возврат
Бан всегда временный, т.к. ошибка, ip распределяются динамически.
Так что рекомендую вам:
1 )изменить время бана
Эта команда извлечет текущую конфигурацию тюрьмы sshd
fail2ban-client -d --dp | grep -e 'sshd' | grep -E '(maxretry|findtime|bantime)'
, так что вы можете добавить:
[sshd]
bantime = 3600
в вашем файле fail.local
, поэтому каждый раз он будет баниться на 1 час вместо 10 минут по умолчанию.
Я буду держать время бана небольшим на случай, если вы совершите ошибку, когда будете удаленно пытаться получить доступ к вашему серверу.
2 )активировать повтор
НО вы можете АКТИВИРОВАТЬ возвратную тюрьму. Рецидивная тюрьма поймает IP, который был забанен несколько раз, и будет забанен дольше.
[recidive]
enabled = true
maxretry = 4
bantime = 1w
findtime = 1d
и с этими настройками после 4х3 попыток в последний день плохой IP будет забанен на 1 неделю