Protéger son readyNAS ?

Spiderman_ge

Membre confirmé
25 Novembre 2009
47
1
Genève
Bonjour à tous,

je me suis acheté un Netgear ReadyNAS Ultra 2 en debut de semaine et j'en suis très satisfait. Silencieux et relativement rapide d'accès, tout ce que je demandais.

J'ai établi rapidement une configuration pour un accès au partage via internet et fais correspondre mon ReadyNAS à un DNS seulement voilà, je me suis un peu précipité dans la chose.

C'est seulement après coup (ReadyNAS déjà en ligne) que j'ai vu que plusieurs utilisateurs ont eu des attaques style hacking par brute-force, un procédé qui consiste à dénicher votre login/password en testant automatiquement plusieurs combinaisons à la suite.


Ouf de soulagement après une recherche je suis tombé sur ce post seulement voilà comme le dit le dernier message de Cool_Breeze l'adresse incluse dans le script (http://arche.dnsalias.net/webshare/Forums/ipblock) n'est plus valide et renvoi une sorte d'erreur et le script du coup ne peut pas aboutir...

Là par crainte, j'ai éteins mon ReadyNAS pour éviter tout problème et ce n'est pas le but :(

Si quelqu'un pourrait m'aider sur le sujet je lui en serait très reconnaissant :up:
 
Bonjour!

Je ne vois pas dans ce script de référence à ton site...
Bloc de code:
#!/bin/bash
# **************** BAN & MAIL ****************
# v0.01 - Creation
# v0.02 - Ajout du reverse IP


hosts_deny="/etc/hosts.deny"
#hosts_deny="/var/log/debug.txt"

log_ftp="/var/log/proftpd.log"
log_ssh="/var/log/auth.log"

date=`date +"%d-%m-%Y %R"`

adresse_reverse="http://software77.net/geo-ip/"
fichier_temp="/var/log/check.html"

adresse_email="[email protected]"

# **************** FTP ****************

# On teste la presence du fichier LOG
if builtin test -e "$log_ftp"
   then
   # On cherche une tentative
   grep -i "Login denied" "$log_ftp" | cut -d" " -f12 | sed "s/'//" | sed "s/'//" | while true
   do
      read ligne
      if [[ "$ligne" = "" ]]
         then break
      fi

      # On verifie les doublons IP  
      if ! grep -i "$ligne" "$hosts_deny"
         then
            # On ne tient pas compte des IP locales
            if ! [[ "$ligne" = *"192.168"* ]]
               then
                  # Recherche du pays origine
                  wget --output-document="$fichier_temp" --post-data "IP="$ligne"" "$adresse_reverse"
                  pays=`grep  -C1 ">Country<" "$fichier_temp" | sed "s/\t//g" | sed -n -r  "s/<td class=\"ALTBG-0\">(.*)<\/td>/\1/p" | sed "s/\;//g" |  sed "s/\r//g" | tr a-z A-Z`
                  echo -e "ALL: $ligne\t# $date\tTentative FTP\t\t Pays origine : $pays" >> $hosts_deny
                  cat "$hosts_deny" | mailx -s "[NAS ALERTE]" $adresse_email
                  rm "$fichier_temp"
            fi
      fi
   done
fi

# **************** SSH & HTTP ****************

# On teste la presence du fichier LOG
if builtin test -e "$log_ssh"
   then
   # On cherche une tentative
   grep -i "authentication failure" "$log_ssh" | cut -d" " -f15 | sed "s/rhost=//" | while true
   do
      read ligne
      if [[ "$ligne" = "" ]]
         then break
      fi

      # On verifie les doublons IP
      if ! grep -i "$ligne" "$hosts_deny"
         then
            # On ne tient pas compte des IP locales
            if ! [[ "$ligne" = *"192.168"* ]]
               then
                  # Recherche du pays origine
                  wget --output-document="$fichier_temp" --post-data "IP="$ligne"" "$adresse_reverse"
                  pays=`grep  -C1 ">Country<" "$fichier_temp" | sed "s/\t//g" | sed -n -r  "s/<td class=\"ALTBG-0\">(.*)<\/td>/\1/p" | sed "s/\;//g" |  sed "s/\r//g" | tr a-z A-Z`
                  echo -e "ALL: $ligne\t# $date\tTentative SSH ou HTTP\t Pays origine : $pays" >> $hosts_deny
                  cat "$hosts_deny" | mailx -s "[NAS ALERTE]" $adresse_email
                  rm "$fichier_temp"
            fi
      fi
   done
fi
 
Bonjour,

Chez Synology, il existe une option qui permet de bloquer une adresse IP, si cette dernière a dépassé le nombre d'authentification échouée pendant une période de temps définie.
Chez NetGear, il doit y avoir une option de ce style, cela permettrait déjà de réduire un minimum le risque.

Par contre, si c'est du brute-force il faut obligatoirement un dictionnaire, pourquoi ne pas utiliser un mot de passe généré automatiquement à l'aide d'un algorithme (je pense à Dashlane qui permet de générer ce genre de mot de passe).

De plus, pour réussir cette intrusion, il faut également connaître l'identifiant du compte, généralement "admin".
Une solution serait d'ajouter un nouveau compte (ex : Toto), en mode admin et désactiver le compte par défaut "admin". De cette manière, il faudrait connaître la combinaison de l'identifiant et du mot de passe.
 
Bonjour!

Je ne vois pas dans ce script de référence à ton site...
Bloc de code:
#!/bin/bash
# **************** BAN & MAIL ****************
# v0.01 - Creation
# v0.02 - Ajout du reverse IP


hosts_deny="/etc/hosts.deny"
#hosts_deny="/var/log/debug.txt"

log_ftp="/var/log/proftpd.log"
log_ssh="/var/log/auth.log"

date=`date +"%d-%m-%Y %R"`

adresse_reverse="http://software77.net/geo-ip/"
fichier_temp="/var/log/check.html"

adresse_email="[email protected]"

# **************** FTP ****************

# On teste la presence du fichier LOG
if builtin test -e "$log_ftp"
   then
   # On cherche une tentative
   grep -i "Login denied" "$log_ftp" | cut -d" " -f12 | sed "s/'//" | sed "s/'//" | while true
   do
      read ligne
      if [[ "$ligne" = "" ]]
         then break
      fi

      # On verifie les doublons IP  
      if ! grep -i "$ligne" "$hosts_deny"
         then
            # On ne tient pas compte des IP locales
            if ! [[ "$ligne" = *"192.168"* ]]
               then
                  # Recherche du pays origine
                  wget --output-document="$fichier_temp" --post-data "IP="$ligne"" "$adresse_reverse"
                  pays=`grep  -C1 ">Country<" "$fichier_temp" | sed "s/\t//g" | sed -n -r  "s/<td class=\"ALTBG-0\">(.*)<\/td>/\1/p" | sed "s/\;//g" |  sed "s/\r//g" | tr a-z A-Z`
                  echo -e "ALL: $ligne\t# $date\tTentative FTP\t\t Pays origine : $pays" >> $hosts_deny
                  cat "$hosts_deny" | mailx -s "[NAS ALERTE]" $adresse_email
                  rm "$fichier_temp"
            fi
      fi
   done
fi

# **************** SSH & HTTP ****************

# On teste la presence du fichier LOG
if builtin test -e "$log_ssh"
   then
   # On cherche une tentative
   grep -i "authentication failure" "$log_ssh" | cut -d" " -f15 | sed "s/rhost=//" | while true
   do
      read ligne
      if [[ "$ligne" = "" ]]
         then break
      fi

      # On verifie les doublons IP
      if ! grep -i "$ligne" "$hosts_deny"
         then
            # On ne tient pas compte des IP locales
            if ! [[ "$ligne" = *"192.168"* ]]
               then
                  # Recherche du pays origine
                  wget --output-document="$fichier_temp" --post-data "IP="$ligne"" "$adresse_reverse"
                  pays=`grep  -C1 ">Country<" "$fichier_temp" | sed "s/\t//g" | sed -n -r  "s/<td class=\"ALTBG-0\">(.*)<\/td>/\1/p" | sed "s/\;//g" |  sed "s/\r//g" | tr a-z A-Z`
                  echo -e "ALL: $ligne\t# $date\tTentative SSH ou HTTP\t Pays origine : $pays" >> $hosts_deny
                  cat "$hosts_deny" | mailx -s "[NAS ALERTE]" $adresse_email
                  rm "$fichier_temp"
            fi
      fi
   done
fi

Pardon, le site auquel je fais référence se situe sur un autre post pour faire simple je mentionne directement les lignes de commande :

cd /bin/
wget http://arche.dnsalias.net/webshare/Forums/ipblock
chmod +x /bin/ipblock
echo "ALL: 192.168." >> /etc/hosts.allow
echo "* * * * * root /bin/ipblock" >> /etc/crontab