===== BackDoor pour débloquer IP banni par IPSET =====
L'idée est de se connecter à une pageweb ne passant pas par le proxy-reverse qui **bloque** notre IP.
Via Scripts, récupérer notre IP via la log access.log généré à la connexion de la pageweb
et la retirer de la blacklist IPSET du proxy-reverse.
==== Les étapes ====
- Création contenair
- Création pageweb
- Ouverture port routeur et Letsencrypt
- Scripts
- .htpasswd
- Divers
==== 1°/ Création contenair ====
Créer un contenair avec :
* ssh avec connexion via clef sur le proxy-reverse
* nginx
* php
* sudo
==== 2°/ Création pageweb ====
/var/www/xxxxx/index.php :
DebanIP
Appuyer sur DéBan pour débloquer votre équipement :
';
echo'alert("Equipement d\351bloqu\351!");';
echo'document.location.href="https://pageweb.dams.ovh/index.php"';
echo"";
}
?>
==== 3°/ Ouverture port routeur et Letsencrypt ====
Afin de passer outre le reverse proxy qui bloque notre IP.
Dans la conf du routeur ouvrir un port (exemple :23456) et le rediriger vers notre contenair sur le même port.
;-) Autant sécuriser un minimum.
Je vous laisse configurer nginx et letsencrypt.
==== 4°/ Scripts ====
**2 Scripts nécessaires :**
- Script à faire exécuter sur le proxy-reverse via la console de notre contenair
- Script pour l’exécution du script 1
__**Script 1 :**__
#!/bin/bash
genlst() {
rep="scp -r -p root@deban:/var/log/nginx/access.log /deban/access.log"
cmd="cat /deban/access.log"
grepIpv4='(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'
step1=$($rep)
step2=$($cmd | grep -E -o "$grepIpv4")
}
### fonction traitement des listes test/add/del ###
trtlst() {
for IP in $step2; do
ipset test blacklistV4 "$IP"
if [ $? -eq 0 ]; then
ipset del blacklistV4 "$IP"
else
echo "ip not in set"
fi
done
}
###
genlst
trtlst
### efface le contenu de access.log ###
echo "" > /deban/access.log
exit 0
__**Script 2 :**__
#!/bin/bash
cat /root/debanIP.sh | ssh proxy
echo "" > /var/log/nginx/access.log
==== 5°/ .htpasswd ====
Afin de sécuriser un minimum la pageweb on lui demandera un login/mdp à l'ouverture.
Installation :
apt install apache2-utils
Configuration :
htpasswd -c /chemin/ou/vous/voulez/mettre/.htpasswd nom_du_login
Renseigner le mdp
==== 6°/ Divers ====
Penser à donner les droits root à **www-data** pour l’exécution des scripts :
/etc/sudoers
www-data ALL = NOPASSWD: /chemin/du/script1.sh,/chemin/du/script2.sh
Le Vhost nginx :
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /var/www/chemin/de/la/pageweb/;
index index.php;
ssl on;
access_log /chemin/des/log/access.log;
location / {
satisfy any;
deny all;
auth_basic "Accès Restreint";
auth_basic_user_file /var/www/chemin/du/fichier/.htpasswd;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
__**Exemple pageweb :**__
{{:capture.png?nolink&600|}}