Aller au contenu

Superthx

Membres
  • Compteur de contenus

    202
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par Superthx

  1. Hey......Y'a du chagement depuis hier soir 😅 Je vais tester cela un peu plus tard. Merci pour le suivi je corrigerai cela un peu plus tard. Est-ce que tu as un exemple "simple" ? Car j'ai une idée en tête mais il me faut un exemple avec start et stop, Par exemple un fichier "boot.sh" en chmod 755 dans /usr/local/etc/rc.d. avec comme ceci à l'interieur : #!/bin/bash touch /volume1/test.txt
  2. Non. Vraiment au demarrage. Je me souviens qu’il fallait placer un truc du genre dans le dossier rc.d
  3. @Zeus as tu un exemple de comment lancer un script au démarrage du SRM ou DSM ? Merci
  4. Oui. Erreur de ma part. Remplcar jours par days. UNIXTIME_DELETE_IP=`date -d "+$DELETE_IP_AFTER days" +%s`
  5. OK. Ça te vas si je reprends ton script pour le tuto. Je le trouve plus élégant 😀
  6. Je confirme ce que je disait avant. Il cree le fichier mais apres car j'ai cat: can't open '/volumeUSB1/usbshare1-1/scripts/tmp/ip.txt': No such file or directory car tu as : old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt hors ce fichier n'existe pas. Mais c'est pas grave car après tu as touch qui le crée. Je modifie le tuto dans la soirée. C'est ok ?
  7. @Zeuspeux tu m'envoyer ton script ? Car j'ai une erreur EOF et je vois pas ou est l'erreur SVP. Merci
  8. A part telecharger un package pour SRM de python............. Je suis preneur.
  9. Modification, verifie si tu veux: Mais dans ton code il recree à chaque fois le fichier ip.txt. Non ? ############## ### SCRIPT ### ############## file=/volume1/administration/check_ip_wan/ip.txt insert_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volume1/administration/check_ip_wan/ip.txt` `echo $insert_ip > /volumeUSB1/usbshare1-1/scripts/tmp/current_ip.txt` fi old_ip = `/volume1/administration/check_ip_wan/ip.txt` if [ "$old_ip" != "$current_ip" ]; then echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi
  10. Evidement, j'ai mis 30 jours.............. Mettre 0 pour blocage permanent
  11. J'avais repris un ancien script de mon ASUS RT. Je suis con. Tu as raison. Au debut le script devais se lancer au demarrage du routeur. Mais je ne trouve pas d'info pour lancer un script au demarrage du routeur. On aurait sleep pour eviter crontab. Pas besoin de fichiers pour ssmtp, car il le cree le fichier ip_current.txt et l'efface derriere avec rm. messageFile="/volumeUSB1/usbshare1-1/scripts/tmp/ip_current.txt" echo -e "To:${emailtoaddr}">${messageFile}; echo -e "From:${emailfromname}">>${messageFile}; echo -e "Subject:${emailsubject}">>${messageFile}; echo -e "The New IP is ${ip}" >> ${messageFile}; ssmtp -v ${emailtoaddr} < /volumeUSB1/usbshare1-1/scripts/tmp/ip_current.txt; rm ${messageFile} Je modifie le script et je reviens.
  12. Je vais le tester plus tard. Peut être était il valid sous DSM 5. Je sais pas. Mais sous DSM 6 et SRM la fonction d'envoi de mail est différente.......
  13. Oui. Mais celui t'envoi un mail directement. Car je passe pas mon temps sur le bureau du DSM 😝. Car si tu as à comme un serveur DNS et l'ip change, tu peux modifier l'ip dynamique grâce à l'envoi du mail par exemple. Sinon decommenter la ligne comme ceci et laisser l'option cocher comme tu dis.....
  14. Oui le même mais je but sur. L'insert est celui d'avant. Sauf que j'ai un problème avec UNIXTIME_DELETE_IP, il n'enregistre pas correctement la date. Et rajout de crontab derriere.
  15. Cool ! Merci du retour j'aurai pas fais gaffe. J'espère terminer la version pour SRM cette semaine.....
  16. @Zeus, je viens de me rendre compte que j'ai oublier ,'0','' dans le insert !!!! Essaie à nouveau.....
  17. Je vais tester ce demain en vidant la table et voir si cela fonctionne. Voir si j’ai foiré le script ou autre.....
  18. Oui. J’avais vérifier et je l’ai avaient aussi bien dans la db que dans la liste est ip bloquées. Mais je vais vérifier à nouveau. Est ce que quand tu lances juste le script sans le planificateur, le script se lance bien? Il met longtemps au debut. Et attend que le script fini d’ajouter toutes les ips. Aux alentours de 30000!!! Sinon tu peux uploader un fichier avec par exemple avec 2 ips dans un fichier txt et modifier modifier le lien du tuto par celui du txt avec les 2 ips....
  19. J'ai ajouter mon NAS + Mon routeur Syno. Par contre j'ai d'autres appareils que je voudrai ajouter. Vivement la suite
  20. Je n'ai pas trouver d'option pour être averti automatiquement de changement de mon IP sur les produits synology. Donc je propose un script fonctionnel pour DSM et SRM. DSM Actuellement je suis sous DSM 6.2.2-24922 Update 2 Il va falloir crée un script dans le planificateur de tâches en tant que root dans configuration: Dans exécuter la commande mettez le script suivant. Je laisse la fréquence sur toutes les minutes. Dans cette exemple il creera 2 fichiers : ip.txt + message.txt(ce dernier s'efface automatiquement) Dans cette exemple il creera le fichier dans /volume1/administration/check_ip_wan/ Modifier le script selon l'endroit où vous voulez placer ces fichiers. #!/bin/bash file=/volume1/administration/check_ip_wan/ip.txt #indique ou se trouve ip.txt old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel ##Verifie que ip.txt existe, sinon creation du fichier## if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volume1/administration/check_ip_wan/ip.txtip.txt` `echo $insert_ip > /volume1/administration/check_ip_wan/ip.txt/ip.txt` fi ##Fin de verification que ip.txt existe## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt ##################### ### CONFIGURATION ### ##################### to="monmail@ndd.com" #changez par votre mail de destination from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination subject="Votre adresse IP publique (IPv4) a changé !\r\n" # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" ############## ### SCRIPT ### ############## if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volume1/administration/check_ip_wan/ip.txt` `echo $current_ip > /volume1/administration/check_ip_wan/ip.txt` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi SRM Actuellement je suis sou SRM 1.2.2-7915 avec un RT2600ac Actuellement SRM ne propose pas de fonction comme DSM pour une tâche planifiée. Donc va falloir utiliser crontab et créer ses fichiers. Activez l’accès ssh sur votre SRM (Panneau de configuration / Services). J'utilise actuellement une carte sd sur mon RT2600ac. Dans cette carte via File Station j'ai crée un répertoire scripts et un sous répertoire tmp dans script. Vous pouvez bien sur crée un répertoire directement dans la mémoire du routeur si vous utilisez pas de carte sd. Il vous suffit juste d'adapter le code à votre besoin. Rentrer en ssh en tant que avec putty sur votre routeur. faites ceci pour creer le fichier script : vi /volumeUSB1/usbshare1-1/scripts/ip_notify.sh chmod 755 ip_notify.sh appuyez sur i pour inserer le code suivant : #!/bin/sh file=/volumeUSB1/usbshare1-1/scripts/tmp/ip.txt #indique ou se trouve ip.txt old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel ##Verifie que ip.txt existe, sinon creation du fichier## if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` `echo $insert_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` fi ##Fin de verification que ip.txt existe## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel old_ip=`cat /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` # destination du fichier ip.txt ##################### ### CONFIGURATION ### ##################### to="monmail@ndd.com" #changez par votre mail de destination from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination subject="Votre adresse IP publique (IPv4) a changé !\r\n" # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` # destination du message temporaire messageFile="/volumeUSB1/usbshare1-1/scripts/tmp/message.txt" ############## ### SCRIPT ### ############## if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` `echo $current_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volumeUSB1/usbshare1-1/scripts/tmp/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi Maintenant il va falloir créer une tâche planifiée. Pour cela il va falloir ajouter une ligne dans crontab. faites : vi /etc/crontab insérer une nouvelle ligne comme ceci : * * * * * root /bin/sh /volumeUSB1/usbshare1-1/scripts/ip_notify.sh avec ceci le script vérifie automatiquement toutes les minutes si l'ip change. Remerciement : @Zeus
  21. Moi je laisse 4 Heures pour le script et DELETE_IP_AFTER="30" pour 30 jours. Si on met définitivement on risque d'avoir une sacrée BD qui se vide jamais.
  22. Salut! J'en avais assez que Synology ne propose pas un soft dans DSM ou SRM pour automatiser le blocages d'adresse IP depuis une liste. Car en effet si on veut blacklister une ip pour éviter de se faire "pirater" ou se faire sniffer son ip il vaut mieux en avoir une. Mais malheureusement Synology ne propose que de uploader son fichier txt et il faut le faire selon son envie de mettre a jour ses ip. Donc avec ce script on va juste mettre à jour les ip depuis une liste sur internet. Pour l'instant mon choix se porte sur blocklist.de. Si vous en avez d'autres merci de les poster. Pour DSM : Allez dans "Panneau de configuration" Puis "Planificateur de tâches" Cliquez sur "Créer" Sélectionnez "Tâche planifiée" et l'option "Script défini par l'utilisateur" Vous aurez la fenêtre "Créer une tâche", dans "Général" mettez ceci. Tâche - BLACKLIST Utilisateur - Sélectionnez "root" Cochez "Activer" Dans "Paramètres de tâche" dans la case sous "Script défini par l'utilisateur" Mettez ceci : #!/bin/bash # Liste de www.blocklist.de # Liste Choix: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin} LISTE_BLOCKLIST="all" # Effacer IP apres x jours ou bien utiliser 0 pour blocage permanent DELETE_IP_AFTER="30" # Montre le temps a la fin du script; 0=non 1=oui SHOW_TIME="1" UNIXTIME=`date +%s` UNIXTIME_DELETE_IP=`date -d "+$DELETE_IP_AFTER days" +%s` wget -q "https://lists.blocklist.de/lists/$LISTE_BLOCKLIST.txt" -O /tmp/blocklist.txt cat "/tmp/blocklist.txt" | while read BLOCKED_IP do # Verifier si IP valide VALID_IPv4=`echo "$BLOCKED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l` if [[ $VALID_IPv4 -eq 1 ]]; then # Convertir IPv4 en IPv6 IPv4=`echo $BLOCKED_IP | sed 's/\./ /g'` IPv6=`printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4` CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l` if [[ $CHECK_IF_EXISTS -lt 1 ]]; then INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP',' 1','$IPv6','0','')"` echo "IP ajouter! --> $BLOCKED_IP" else echo "IP existante! --> $BLOCKED_IP" fi fi done if [[ $SHOW_TIME -eq 1 ]]; then END=`date +%s` RUNTIME=$((END-UNIXTIME)) echo "Fini apres $RUNTIME Secondes" fi exit 0 Au debut je vous conseil de lancer le script sans programmer le temps. Car cela met un certains temps au premier lancement (comptez plus d'une heure). La première exécution fini, vous pouvez programmer la fréquence du lancement du script. Pour cela allez dans Programmer laisser "Exécuter les jours suivants" sur "Quotidienne" par exemple. En général la mise à jour le la DataBase dure beaucoup moins heureusement. Pour SMR : Il va falloir entrer en SSH comme root, ajouter le script dans un endroit de votre choix et ajouter une ligne a crontab. Le script est légèrement different car la version de date est différente que celle sous DSM. Moi j'ai choisi de mettre tous mes scripts dans la carte sd de mon RT2600ac. Si vous voulez faire comme moi, entrer en SSH avec putty en tant que root et faite ceci : mkdir /volumeUSB1/usbshare1-1/scripts chmod 755 /volumeUSB1/usbshare1-1/scripts mkdir /volumeUSB1/usbshare1-1/scripts/tmp chmod 755 /volumeUSB1/usbshare1-1/scripts vous aurez un dossier scripts et un sous dossier tmp. ensuite créons le fichier ip_block.sh vi /volumeUSB1/usbshare1-1/scripts/ip_block.sh tapez sur "i" pour insérer le script suivant #!/bin/sh # Liste de www.blocklist.de # Liste Choix: {all} {ssh} {mail} {apache} {imap} {ftp} {sip} {bots} {strongips} {ircbot} {bruteforcelogin} LISTE_BLOCKLIST="all" # Montre le temps a la fin du script; 0=non 1=oui SHOW_TIME="1" UNIXTIME=`date +%s` UNIXTIME_DELETE_IP="$((`busybox date +%s`+2592000))" wget -q "https://lists.blocklist.de/lists/$LISTE_BLOCKLIST.txt" -O /volumeUSB1/usbshare1-1/scripts/tmp/blocklist.txt cat "/volumeUSB1/usbshare1-1/scripts/tmp/blocklist.txt" | while read BLOCKED_IP do # Verifier si IP valide VALID_IPv4=`echo "$BLOCKED_IP" | grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" | wc -l` if [[ $VALID_IPv4 -eq 1 ]]; then # Convertir IPv4 en IPv6 IPv4=`echo $BLOCKED_IP | sed 's/\./ /g'` IPv6=`printf "0000:0000:0000:0000:0000:FFFF:%02X%02X:%02X%02X" $IPv4` CHECK_IF_EXISTS=`sqlite3 /etc/synoautoblock.db "SELECT DENY FROM AutoBlockIP WHERE IP = '$BLOCKED_IP'" | wc -l` if [[ $CHECK_IF_EXISTS -lt 1 ]]; then INSERT=`sqlite3 /etc/synoautoblock.db "INSERT INTO AutoBlockIP VALUES ('$BLOCKED_IP','$UNIXTIME','$UNIXTIME_DELETE_IP',' 1','$IPv6')"` echo "IP ajouter! --> $BLOCKED_IP" else echo "IP existante! --> $BLOCKED_IP" fi fi done if [[ $SHOW_TIME -eq 1 ]]; then END=`date +%s` RUNTIME=$((END-UNIXTIME)) echo "Fini apres $RUNTIME Secondes" fi exit 0 Attention cette fois : par exemple pour 30 jours c'est 2592000 secondes Maintenant on va créer une ligne dans crontab pour automatiser le tout. Ici toutes les heures. vi /etc/crontab tapez sur "i" pour insérer du text et allez sur la dernière, ajoutez..... 0 * * * * root /bin/sh /volumeUSB1/usbshare1-1/scripts/ip_block.sh C'est bon. Toutes les heures le script fera une mise a jour de la DB sur 30 jours Explication du Script: LISTE_BLOCKLIST permet de choisir la liste que l'on veut mettre. Ici c'est "all". Vous pouvez choisir la liste depuis https://lists.blocklist.de/lists/. Il suffit juste de choisir. Mettez "all" pour pas vous prendre la tête. MAJ du : 04/11/2019 @PPJP nous propose une nouvelle version amélioré du script. Celle-ci est fonctionnel aussi bien pour DSM que SRM. Je l'ai tester sur mon DS1511+ ainsi que sur mon RT2600ac. Il est beaucoup plus rapide et on pourra ajouter d'autres listes perso dans le futur. Vous pouvez remercier @PPJP pour son implication sur le script et son énorme boulot. Si d'autres veulent modifier ou bien proposer un script plus performant. J'ouvre un github que vous pouvez retrouvez ici. PS: N'oubliez pas d'ajouter un lancement au démarrage + un autre pour lancer le scripts X temps. ### MERCI DE VOS RETOURS OU AMELIORATIONS ### blacklist.update
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.