Na minha máquina, estou usando o OpenVPN, que usa a interface tun0. Eu quero que o sshd escute apenas nessa interface.
Eu sei, posso especificar o endereço IP para ouvir em
/etc/ssh/sshd_config
com um
ListenAddress 0.0.0.0
directiva. Mas meu endereço IP mudará, portanto não posso escolher um IP aqui que seja sempre válido. Eu sei que só posso iniciar o daemon quando a VPN estiver ativa - esse não é o problema.
Como posso fazer com que o sshd escute apenas em uma interface específica (tun0)?
tun0
?Respostas:
Você não pode fazer isso diretamente, pois o sshd entende apenas os endereços IP. Você pode conseguir juntar algo usando um script openvpn up
Consulte também a
--down
opção de limpeza e as partes relevantes da documentação que detalham a segurança do script, etc.Você encontrará o endereço IP do dispositivo tun que é passado para o script como uma variável de ambiente. Também o sshd aceita opções na linha de comando do formulário
-o opção Pode ser usada para fornecer opções no formato usado no arquivo de configuração. Isso é útil para especificar opções para as quais não há sinalizador de linha de comando separado. Para detalhes completos das opções e seus valores, consulte sshd_config (5)
Então você poderia usar
Presumivelmente, você tem algum método fora de banda para conversar com seu VPS, para que, quando isso ocorra, entre em contato com o servidor.
fonte
-o ListenAddress=$(ip addr | awk '/inet/ && /tun0/{sub(/\/.*$/,"",$2); print $2}')