===== 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 :


DéBan
'; 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|}}