This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

PPJP

Membres
  • Compteur de contenus

    273
  • Inscription

  • Dernière visite

  • Jours gagnés

    3

À propos de PPJP

  • Rang
    Chevalier des Syno
  • Date de naissance 19/07/1949

Profile Information

  • Gender
    Male
  • Location
    Penn Ar Bed
  • Interests
    Ma Bro

Visiteurs récents du profil

1 341 visualisations du profil
  1. Bonsoir, Votre demande ayant évolué (surveillance de plusieurs dossiers et présentation des évolutions de fichiers) quelques adaptations supplémentaires des scripts sont nécessaires Je suis malheureusement actuellement très chargé et n'ai pas de disponibilités pour m'y consacrer. Cela devrait se résorber sous environ 10 jours. En espérant que vous pourrez patienter jusque là. Désolé. PS Pourriez -vous m'indiquer le final de l'adresse (partie après @) que vous prévoyez d'utiliser pour l'envoi du mail?
  2. Bonsoir Je suis désolé mais je suis actuellement très occupé et n'ai donc que peu de temps à consacrer à ce forum. Vous devrez donc vous contenter d'une réponse succincte et d'une version de script modifiée mais non testée. Cependant tenez-moi informé si vous rencontrez des problèmes. Non, le commentaire était trop flou, las adresses doivent être entre guillemets et espacées d'un espace (voir script modifié). Il faut également que les infos du nouveau site soient correctement extraites (les sites n'indiquent peut-être pas les infos de la façon homogène). Pour cela il peut être nécessaire de créer un nouveau case (à insérer avant ligne 51). Dans le cas de vos deux sites la présentation semble identique. Il suffit donc de corriger 45 pour que les deux sites soient traités PS Êtes-vous certain que votre nouvelle adresse soit pérenne? (adresse comprenant /2019/08/) majblocklist.sh
  3. Le lot??? Et en faisant comme ceci: Ouvrir Notepad++ Vérifier sous Paramétrage/Préférence avoir Sur Nas-Forum Clic sur la PJ et choisir ouvrir avec NotePad++ Par acquis de conscience revérifier dans NotePad++ avec Edition/Convertir les sauts de ligne sont bien au format Unix Enregistrer le fichier dans le NAS Je ne comprends pas bien quand ces erreurs (127, 128) se produisent. Au lancement du script?
  4. Je me suis peut-être planté lors de l'envoi majblocklist.sh
  5. C'est un problème du aux différences de retour de lignes entre Windows que vous utilisez probablement (PC) et Linux (NAS). Vous devriez utiliser Notepad++++ pour éviter ces désagréments Ci-joint le fichier du script avec une version de plus. majblocklist.sh
  6. Je confirme J'avais trouvé cette obligation regrettable, j’ai donc édité le message pour la supprimer. Si ce fichier n'existe; il est maintenant créé par le script. ll faudra périodiquement supprimer (ou alléger) les fichiers nom_du_fichier_log et noipv4.txt (si trace demandée). Ces fichiers ne feront que grossir et rien n'est prévu pour les effacer en automatique.
  7. Bonjour @Jojo (BE) A la suite de votre message concernant l'augmentation importante de la liste des blocages, j'ai mis ces listes sous surveillance. Il apparait que ces listes bougent vraiment beaucoup avec de nombreuses disparition d'IP ! Le résultat avec un test toutes les 2 heures est dans le fichier en PJ: Il est donc intéressant de mettre une durée de rétention courte. Si vous utilisez le script que j"ai proposé il y a quelques jours une rétention de 3 jours avec une mise à jour toutes les 2 heures semblent un bon compromis. Les mises à jour devraient rester assez rapides (qq minutes). Si vous voulez réinitialiser votre base de données vous pouvez le faire rapidement en ssh (en root) avec cette commande: `sqlite3 /etc/synoautoblock.db "DELETE FROM AutoBlockIP WHERE DENY = 1"` variationsblocklist.txt
  8. bonjour @Zeus ! je te souhaite de très bonnes vacances!!! Profites en bien.
  9. Bonjour @GKSC, Je découvre ce post et constate que vous n'avez reçu aucune réponse. Avez-vous résolu votre problème seul? Sinon je dois pouvoir vous fournir assez rapidement quelques fichiers de script répondant à votre besoin. Ce seraient des extraits de certains scripts qui tournent régulièrement chez moi. Il me suffirait de les adapter à ce nouveau besoin. Cependant il s'agit de scripts python3, il vous faudrait installer ce paquet. Je vous préciserai également les modifications vous restant à faire pour rendre le tout fonctionnel. Merci de me faire savoir si vous êtes intéressé.
  10. Bonjour Je n'ai pas utilisé de façon régulière, mais seulement quelques jours pour tester ma version du script; J en'ai donc pas de recul mais 84000 entrées est certainement anormal. Ce que je vous propose: Dans Panneau de configuraation, Sécurité,Compte, Autorisey/Bloquer la liste, liste de blocage Vérifiez si les durées d'expiration sont dépassées.(On peut trier en cliquant sur les en-têtes de colonne) Si c'est bien le cas, la suppression des IP obsolètes est faite par le DSM et nécessite probablement que le blocage soit activé. PS: Vérifiez si ces lignes ont été correctement copiées CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l` if [[ $CHECK_IF_EXISTS -lt 1 ]]; then
  11. PPJP

    Bonsoir

    Bonsoir Taolinou, Soyez la bienvenue sur ce forum. Ce que vous envisagez est réalisable sur un NAS. Cependant, déjà, quelques conseils; Pour éviter des déconvenues telles celles que vous avez rencontrées, il serait bien de prévoir une sauvegarde régulière de votre NAS. (sur un HDD externe par exemple) De même, surtout si vous prévoyez une configuration en SHR ou Raid, un UPS est conseillé.
  12. Bonjour, Je suis repassé sur ce tuto et vous propose un script, pour DSM, un peu modifié. Principales modifications: 1) Le script étant appelé à être de lancé de manière répétitive (cron ou planificateur) donc toujours aux mêmes horaires, les dates de fin de blocage sont avancées de 5mn. Cela pour eviter que la suppression des blocages par le DSM ne se produise pendant l'exécution du script. 2) Les nouvelles dates de blocage peuvent être réparties entre la durée de blocage paramétrée et son double (en fonction de cette durée et de la fréquence de lancement du script). Ceci pour éviter par exemple d'avoir à renouveler la totalité de la liste des IP à l"expiration du blocage initial. 3) Possibilité d'ajouter ces propres IP à bloquer dans un fichier ( filtreperso.txt avec une IP par ligne) ) situé dans le même dossier que ce script. Ce fichier (éventuellement vide) est obligatoire! 4) Les IP ignorées peuvent être enregistrées dans un fichier spécifique. 5) Une tempo est ajoutée censée éliminer des verrouillage de la base de données. Il peut encore s'en produire, principalement lors du premier lancement (visible dans le log). 6) La possibilité d'ajouter d'autres sources d'IP douteuses est prévue, mais nécessitera une adaptation du script Pour avoir le maximum de retour d'informations ce script doit être lancé par: En SSH: bash chemin_du_script/nom_du_script Par le cron ou par le planificateur de tâches: bash chemin_du_script/nom_du_fichier_du_script >> chemin_du_script/nom_du_fichier_log 2>&1 Si vous êtes intéressé et que vous le testiez, merci de me faire un retour. #!/bin/bash ################### ### PARAMETRAGE ### ################### # Pour la liste de www.blocklist.de # Liste Choix: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin} Choix="all" Nb_Jours_Block="14" # Effacer l'IP après x jours sinon utiliser 0 pour blocage permanent Run_Freq="2" # fréquence de lancement de ce script en heures (exemple 24 si journalier) # Pour trace facultative des IP non conformes au format IPV4 Trace_Ano=2 #Choix: {0}: pas de trace, {1}: dans fichier log, {2}: dans fichier spécifique ################## ### CONSTANTES ### ################## Version_Script="v0.1.5" Liste_Url=("https://lists.blocklist.de/lists/") # espace entre chaque site! Filtre_Perso="filtreperso.txt" File_Tmp="blocklist.txt" File_Ano="noipv4.txt" ################# ### FONCTIONS ### ################# raz_fil_ano(){ if [[ $Trace_Ano != 2 ]]; then if [ -f "$directory/$File_Ano" ];then rm "$directory/$File_Ano" fi else echo -e "\nDemarrage du script (version $Version_Script): $(date)" >> "$directory/$File_Ano" fi } acquisition_ip(){ if [ -f "$directory/$Filtre_Perso" ];then cat "$directory/$Filtre_Perso" > "$directory/$File_Tmp" else touch "$directory/$File_Tmp" fi for url in "${Liste_Url[@]}"; do host=`echo $url | sed -n "s/^https\?:\/\/\([^/]\+\).*$/\1/p"` case $host in lists.blocklist.de) /bin/curl -s "$url$Choix.txt" >> "$directory/$File_Tmp" echo "" >> "$directory/$File_Tmp" # ajout fin ligne absent ;; *) echo "Le traitement pour $url n'est pas implanté" ;; esac done sort -ufo "$directory/$File_Tmp" "$directory/$File_Tmp" nb_ligne=$(wc -l "$directory/$File_Tmp" | cut -d' ' -f1) echo "Traitement d'une liste de $nb_ligne adresses IP" } tracer_ip_non_ipv4(){ case $Trace_Ano in 1) echo "$nb_invalide:IP non traitée (format IPV4 incorrect): $ip" ;; 2) echo "$nb_invalide : $ip" >> "$directory/$File_Ano" ;; *) ;; esac } ############## ### SCRIPT ### ############## start=`date +%s` echo -e "\nDemarrage du script (version $Version_Script): $(date)" echo "Blocage (horodatage: $start) des IP pour $Nb_Jours_Block jours " directory=`dirname $0` raz_fil_ano acquisition_ip block_off_start=$((start+Nb_Jours_Block*86400-300)) taille_seq_block=$((nb_ligne*Run_Freq/Nb_Jours_Block/24)) nb_insert=0; nb_invalide=0 while read ip; do if [[ $ip =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then # si format IPV4 OK (approximatif) block_on=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$ip'"` if [[ $block_on -eq 0 ]]; then # si IP à bloquer absente de la base, on l'insère ((nb_insert++)) block_off=$((block_off_start+(nb_insert/taille_seq_block)*Run_Freq*3600)) `sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$ip','$start','$block_off','1','','0','')"` sleep 0.08 # à ajuster! fi else ((nb_invalide++)) tracer_ip_non_ipv4 fi done< "$directory/$File_Tmp" nb_insertDB=`sqlite3 /etc/synoautoblock.db "SELECT COUNT(*) FROM AutoBlockIP WHERE RecordTime = $start"` if [[ $nb_insert -gt $nb_insertDB ]]; then echo "$((nb_insert - nb_insertDB)) IP n'ont pas été correctement insérées dans la base de blocage" fi echo "$nb_insertDB entrée(s) ont été ajoutée(s) et $nb_invalide ignorée(s)" nb_block=`sqlite3 /etc/synoautoblock.db "SELECT COUNT(*) FROM AutoBlockIP WHERE DENY = 1"` echo "La liste de blocage IP a été mise à jour et bloque désormais $nb_block adresses" cp -p /etc/synoautoblock.db "$directory/" # pour MAP echo -e "Fin du script exécuté en $[$SECONDS/60]mn $[$SECONDS%60]s" exit 0
  13. J'ai l'impression qu'il s'agit de 2 groupes de stockage en Raid1. Configuration peu commune!
  14. Bonjour , Merci. Vous n'avez pas compris ma question; mais ... m'avez apporté la réponse attendue! C'était trop évident pour que j'y pense! J'ai cependant une circonstance atténuante, je n'ai jamais utilisé SQLite. Je vous souhaite de bonnes vacances.
  15. Bonjour @Superthx Comment avez-vous obtenu le nom des champs IP et DENY de la base AutoBlockIP? Pour essayer de continuer à apprendre le shell, j'ai essayé d'adapter votre script pour le mettre à ma sauce! Il me manque pour l'instant le nom d'autres champs de cette base et je ne parviens pas à les obtenir. Merci d'avance. PS: Pour effacer rapidement toutes les adresses bloquées en ssh: `sqlite3 /etc/synoautoblock.db "DELETE FROM AutoBlockIP WHERE DENY = 1"` car TRUNCATE est inconnu de sqlite3 (au moins dans la version de DSM actuelle)