É possível que um servidor ssh saiba qual nome de domínio público foi usado para efetuar login?

3

Eu tenho uma situação onde eu preciso configurar um servidor ssh que será acessível por vários nomes de domínio público diferentes, mas fornecerá uma interface TTY diferente para o usuário, dependendo do nome de domínio que eles usaram.

Eu quero saber se o seguinte requisito é possível antes de tentar implementá-lo e, em caso afirmativo, como:

Eu tenho dois nomes de domínio que fornecem dois tipos diferentes de serviço no estilo BBS via ssh. Na verdade, os dois nomes de domínio são encaminhados para a mesma caixa Linux física, mas a caixa do Linux precisa resolver qual domínio foi usado para acessá-lo, a fim de dar ao usuário a ilusão de que eles são dois serviços independentes.

Exemplo:

Quando um usuário efetua login por meio de seu nome de usuário, eu quero configurar meu servidor ssh para determinar se o usuário se conectou a example.com ou example.org. Se eles se conectarem a [email protected], eles receberão um bash shell, e se eles se conectarem ao user @ example. org , eles deverão obter um jogo MUD baseado em TTY.

Como posso obter essas informações do sshd? O sshd define uma variável de ambiente? Ou estou no caminho errado? Existe uma abordagem mais fácil para executar vários serviços ssh em um servidor?

    
por dwk 19.07.2018 / 12:05

1 resposta

5

Não. O protocolo SSHv2 (ao contrário de HTTP ou TLS, por exemplo) não tem uma maneira padrão para os clientes fornecerem essas informações ao servidor. O servidor só pode ver informações do soquete TCP (que o OpenSSH expõe em $ SSH_CONNECTION).

Você pode tentar discutir uma nova extensão de protocolo em, por exemplo, a lista de discussão OpenSSH (a maneira lógica de implementá-la seria através do mecanismo de extensão de troca de chaves recentemente adicionado), mas mesmo que seja escrita e aceita, levará muito tempo até que a maioria dos clientes suporte tais indicações de nome de host. / p>

Praticamente, você precisará obter um 2º endereço IP para o seu domínio MUD, ou rodar o jogo em uma porta TCP alternativa, ou configurar um nome de usuário especial que diga a um serviço para conectar-se ao outro.

    
por 19.07.2018 / 12:15