Installer authy-ssh sur un NAS Synology

20 juillet 2014 Synology 2 Commentaires

Tout d’abord si vous ne connaissez pas authy je vous conseille de faire un petit tour ici pour les présentations. J’ai pu Installer authy-ssh sur un NAS Synology. Cette installation a été testée et approuvee sur un Syno DS414 et sur un Syno DS3612XS (machine de test vmware) sous DSM 5

Afin de pouvoir faire fonctionner votre authentification double facteur sur il vous faudra avoir

  • installé bootstrap (IPKG)
  • créé un compte authy
  • créé une application authy-ssh : 9c6772a078870c470de0a32a1865743c dans cette exemple

 

Installation des paquets IPKG nécessaire

Commencez par vous loger en root (root et pas admin) sur votre NAS via votre client ssh préféré, puis installer le paquet ipkg bash

ipkg install bash

 

Installer authy-ssh sur un NAS Synology

Une fois que vous avez installe bash, téléchargez authy-ssh

cd /tmp
curl -O 'https://raw.githubusercontent.com/authy/authy-ssh/master/authy-ssh'

 

Si curl vous retourne une erreur « curl: (1) Protocol ‘https not supported or disabled in libcurl » utilisez la commande suivante

curl -O 'https://raw.githubusercontent.com/authy/authy-ssh/master/authy-ssh' --insecure

 

Maintenant éditez la configuration du script

nano authy-ssh

 

Remplacez #!/usr/bin/env bash (1ere ligne) par

#!/opt/bin/bash

 

et ajoutez avant export TERM= »xterm-256color »

export PATH=$PATH:/opt/bin

 

Voici a quoi devrait ressembler les 13 premières lignes du script authy-ssh une fois ces deux modifications terminées

#!/opt/bin/bash
VERSION="1.4"
AUTHY_URL="https://api.authy.com"
APP_ROOT=`dirname $0`
CONFIG_FILE="$APP_ROOT/authy-ssh.conf"
UPSTREAM_URL="https://raw.github.com/authy/authy-ssh/master/authy-ssh"
READ_TIMEOUT=60

OK=0
FAIL=1

export PATH=$PATH:/opt/bin
export TERM="xterm-256color"

 

Rendez le script exécutable et lancez l’installation

chmod +x authy-ssh
./authy-ssh install /usr/local/bin/

 

L’installation devrait se passer correctement

DS_Test> ./authy-ssh install /usr/local/bin
Copying ./authy-ssh to /usr/local/bin/authy-ssh...
Setting up permissions...
Enter the Authy API key: 9c6772a078870c470de0a32a1865743c
Default action when api.authy.com cannot be contacted:

  1. Disable two factor authentication until api.authy.com is back
  2. Don't allow logins until api.authy.com is back

type 1 or 2 to select the option: 2
Generating initial config on /usr/local/bin/authy-ssh.conf...
Adding 'ForceCommand /usr/local/bin/authy-ssh login' to /etc/ssh/sshd_config

    MAKE SURE YOU DO NOT MOVE/REMOVE /usr/local/bin/authy-ssh BEFORE UNINSTALLING AUTHY SSH

To enable two-factor authentication on your account type the following command:

   sudo /usr/local/bin/authy-ssh enable root <your-email> <your-numeric-country-code> <your-cellphone>
   Example: sudo ./authy-ssh enable root myuser@example.com 1 401-390-9987

To enable two-factor authentication on user account type:

   sudo /usr/local/bin/authy-ssh enable <local-username> <user-email> <user-cellphone-country-code> <user-cellphone>

To uninstall Authy SSH type:

   sudo /usr/local/bin/authy-ssh uninstall

      Restart the SSH server to apply changes

 

Securiser un NAS Synology avec authy-ssh

L’installation d’une authentification double facteur pour un utilisateur se fait sur le modèle suivant

/usr/local/bin/authy-ssh enable <utilisateur> <email> <code pays> <numero-de-telephone>

 

Dans notre cas pour admin (commencez par l’utilisateur admin, si tout fonctionne correctement vous pourrez implémenter cette solution pour root)

/usr/local/bin/authy-ssh enable admin chuck@norris.com 33 666666666

 

Authy-ssh se configure alors

DS_Test> /usr/local/bin/authy-ssh enable admin chuck@norris.com 33 666666666


    Username:   admin
    Cellphone:  (+33) 666666666
    Email:      chuck@norris.com


Do you want to enable this user? (y/n) y
User was registered
DS_Test>

 

authy-ssh lors de la configuration ne modifie le fichier de configuration ssh que pour l’utilisateur root, puisque nous nous occupons d’admin il faudra que vous le fassiez vous même

nano /etc/ssh/sshd_config

 

Une fois le fichier de configuration de ssh ouvert rendez vous a la fin du fichier et vous verrez qu’authy a ajoute la ligne ForceCommand /usr/local/bin/authy-ssh login au block Match User root

# Example of overriding settings on a per-user basis
Match User root
#       X11Forwarding no
        AllowTcpForwarding yes
#       ForceCommand cvs server
ForceCommand /usr/local/bin/authy-ssh login

 

Créez le meme block pour l’utilisateur admin, de sorte que vous ayez

# Example of overriding settings on a per-user basis
Match User root
#       X11Forwarding no
        AllowTcpForwarding yes
#       ForceCommand cvs server
ForceCommand /usr/local/bin/authy-ssh login

Match User admin
ForceCommand /usr/local/bin/authy-ssh login

 

Redémarrez le service ssh

killall sshd

 

Reconnectez vous en ssh cette fois en avec l’user admin, voici ce que vous devriez voir

login as : admin
admin@192.168.1.190's password:
Authy Token (type 'sms' to request a SMS token):

 

Si et seulement si tout fonctionne lors de la connection ssh admin vous pouvez configurer authy sur root, reconnectez vous en root et lancez le script de configuration

/usr/local/bin/authy-ssh enable root chuck@norris.com 33 666666666