mirror of
https://gitlab.com/garagenum/greg/fail2ban.git
synced 2025-04-12 11:51:35 +02:00
ajout choix ssh only ou nginx filters + debug
This commit is contained in:
parent
b36d73173b
commit
f55af5829e
@ -45,7 +45,7 @@ bantime = 259200
|
||||
maxretry = 100
|
||||
```
|
||||
|
||||
Note:
|
||||
> Note:
|
||||
- Filter renvoie à la configuration de la prison quant aux lois qui la provoque (sous la forme de REGEX)
|
||||
- Action est les processus mis en place pour bannir l'IP, les configurations se trouvent dans /etc/fail2ban/action.d/
|
||||
- Logpath correspond au chemin des logs à surveiller.
|
||||
@ -71,10 +71,10 @@ sudo fail2ban-client status ssh
|
||||
|
||||
- Bannir une IP manuellement:
|
||||
```bash
|
||||
fail2ban-client set [nom de la prison] banip [IP concerné]
|
||||
sudo fail2ban-client set [nom de la prison] banip [IP concerné]
|
||||
```
|
||||
|
||||
- Débannir une IP manuellement:
|
||||
```bash
|
||||
fail2ban-client set [nom de la prison] unbanip [IP concerné]
|
||||
sudo fail2ban-client unban [IP concerné] [nom de la prison]
|
||||
```
|
||||
|
@ -16,14 +16,6 @@ port = http,https
|
||||
logpath = /var/log/nginx/*error.log
|
||||
bantime = 259200
|
||||
|
||||
#[nginx-badbots]
|
||||
|
||||
#enabled = true
|
||||
#port = http,https
|
||||
#filter = nginx-badbots
|
||||
#logpath = /var/log/nginx/access.log
|
||||
#maxretry = 2
|
||||
|
||||
[nginx-badbots]
|
||||
|
||||
enabled = true
|
18
fail2ban-conf/jail.local-ssh-only
Normal file
18
fail2ban-conf/jail.local-ssh-only
Normal file
@ -0,0 +1,18 @@
|
||||
[DEFAULT]
|
||||
|
||||
ignoreip = 127.0.0.1/8 IP
|
||||
bantime = 3600
|
||||
findtime = 3600
|
||||
#mta = mail
|
||||
#destemail =
|
||||
#sendername = Fail2BanAlerts
|
||||
#action = %(action_mwl)s
|
||||
|
||||
[ssh]
|
||||
|
||||
enabled = true
|
||||
port = SSH_PORT
|
||||
filter = sshd
|
||||
logpath = /var/log/auth.log
|
||||
maxretry = 3
|
||||
bantime = -1
|
56
install.sh
56
install.sh
@ -6,26 +6,58 @@ if [ "$EUID" -ne 0 ]
|
||||
exit
|
||||
fi
|
||||
|
||||
# update et install fail2ban
|
||||
apt update -y && apt install fail2ban -y
|
||||
# choix SSH only ou avec Nginx filters
|
||||
choice=$(whiptail --title "Fail2ban" --menu "Choisissez une option:" 15 60 4 \
|
||||
"1" "Installer le filtre SSH seulement" \
|
||||
"2" "Installer le filtre SSH et Nginx" \
|
||||
"3" "Quitter" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus = 0 ]; then
|
||||
case $choice in
|
||||
|
||||
# copie des confs
|
||||
cp fail2ban-nginx-filters/* /etc/fail2ban/filter.d/
|
||||
cp fail2ban-conf/* /etc/fail2ban/
|
||||
rm -rf /etc/fail2ban/jail.d/*
|
||||
1)
|
||||
echo "Vous avez choisi l'option SSH seulement."
|
||||
# update et install fail2ban
|
||||
apt update -y && apt install fail2ban -y
|
||||
# copie des fichiers
|
||||
cp fail2ban-conf/jail.local-ssh-only /etc/fail2ban/jail.local
|
||||
cp fail2ban-conf/jail.conf /etc/fail2ban/jail.conf
|
||||
;;
|
||||
|
||||
2)
|
||||
echo "Vous avez choisi l'option SSH avec Nginx."
|
||||
# update et install fail2ban
|
||||
apt update -y && apt install fail2ban -y
|
||||
# copie des fichiers
|
||||
cp fail2ban-nginx-filters/* /etc/fail2ban/filter.d/
|
||||
cp fail2ban-conf/jail.local-nginx /etc/fail2ban/jail.local
|
||||
cp fail2ban-conf/jail.conf /etc/fail2ban/jail.conf
|
||||
;;
|
||||
|
||||
3)
|
||||
echo "Vous avez choisi de quitter, fail2ban ne serat pas installé"
|
||||
exit
|
||||
;;
|
||||
|
||||
esac
|
||||
else
|
||||
echo "Vous avez annulé."
|
||||
fi
|
||||
|
||||
# recup de l'ip pour la conf
|
||||
IP=$(ip route get 1.2.3.4 | awk '{print $7}')
|
||||
sed -i "s/IP/$IP/" /etc/fail2ban/jail.local
|
||||
# recup du port SSH (TODO: ajouter check si port SSH renseigné)
|
||||
SSH=$(grep "^Port" /etc/ssh/sshd_config | awk '{print $2}')
|
||||
|
||||
# recup du port ssh
|
||||
SSH=$(grep Port /etc/ssh/sshd_config); SSH=${SSH##*(Port)}; SSH=${SSH%%*(#GatewayPorts no)}
|
||||
sed -i "s/SSH_PORT/$SSH/" /etc/fail2ban/jail.local
|
||||
|
||||
# changement dbpurge
|
||||
# change IP et SSH port
|
||||
sed -i "s/IP/"$IP"/" /etc/fail2ban/jail.local
|
||||
sed -i "s/SSH_PORT/"$SSH"/" /etc/fail2ban/jail.local
|
||||
|
||||
# changement dbpurge tout les ans
|
||||
sed -i "s/1d/365d/" /etc/fail2ban/fail2ban.conf
|
||||
|
||||
systemctl restart fail2ban
|
||||
fail2ban-client status
|
||||
systemctl status fail2ban
|
||||
|
||||
echo "la configuration pour les autres prisons que le SSH sont de 72h (bannissement à vie pour le SSH)"
|
Loading…
x
Reference in New Issue
Block a user