web-dev-qa-db-fra.com

Faire écouter sshd à une interface spécifique

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)?

15
Philipp

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

-up cmd Shell à exécuter après l'ouverture réussie du périphérique TUN/TAP (modification de l'UID avant l'utilisateur). Le script up est utile pour spécifier les commandes de route qui acheminent le trafic IP destiné aux sous-réseaux privés qui existent à l'autre extrémité de la connexion VPN dans le tunnel ...

Voir aussi le --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

-oSomeOption=SomeValue

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

-o ListenAddress=<some address>

Vraisemblablement, vous avez une méthode hors bande pour parler à votre VPS afin que lorsque cela se casse, vous pouvez contacter le serveur.

7
user9517