Sur ma machine, j'utilise OpenVPN qui utilise l'interface tun0. Je veux que sshd écoute uniquement sur cette interface.
Je sais, je peux spécifier l'adresse IP à écouter dans
/etc/ssh/sshd_config
avec un
ListenAddress 0.0.0.0
directif. Mais mon adresse IP va changer, donc je ne peux pas choisir ici une IP qui est toujours valide. Je sais que je ne peux démarrer le démon que lorsque le VPN est en place - ce n'est pas le problème.
Comment puis-je faire en sorte que sshd n'écoute que sur une interface spécifique (tun0)?
tun0
?Réponses:
Vous ne pouvez pas le faire directement car sshd ne comprend que les adresses IP. Vous pourrez peut-être faire quelque chose ensemble en utilisant un script openvpn up
Voir également l'
--down
option de nettoyage et les parties pertinentes de la documentation détaillant la sécurité des scripts, etc.Vous trouverez que l'adresse IP du périphérique tun est transmise au script en tant que variable d'environnement. Sshd prend également des options sur la ligne de commande du formulaire
Option -o Peut être utilisée pour donner des options au format utilisé dans le fichier de configuration. Cela est utile pour spécifier les options pour lesquelles il n'y a pas d'indicateur de ligne de commande distinct. Pour plus de détails sur les options et leurs valeurs, voir sshd_config (5)
Vous pouvez donc utiliser
Vraisemblablement, vous avez une méthode hors bande pour parler à votre VPS afin que lorsque cela se casse, vous pouvez contacter le serveur.
la source
-o ListenAddress=$(ip addr | awk '/inet/ && /tun0/{sub(/\/.*$/,"",$2); print $2}')