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
Bonjour,
est il possible de faire la meme chose avec le service VPN du synology ?
Bonjour,
Je recherche des infos la dessus, pour le moment rien de concret. Si j’y arrive je posterai 🙂