J'essaie d'accéder à mon serveur SSH sur Internet à partir d'un réseau d'entreprise. Toutes les connexions à Internet extérieur doivent être mandatées via un serveur qui vérifie le hachage NTLM de chaque client à chaque demande. J'utilise Cntlm pour cela, et cela ne fonctionne qu'à moitié. Cela fonctionne bien pour les connexions HTTP, mais cela ne fonctionne pas pour les connexions de style SSH. Je sais cela parce que, je peux me connecter à Sublime Text de » Control Package Plugin pour obtenir et plugins de mise à jour. Cependant, je ne peux pas l'utiliser pour SSH sur mon serveur en utilisant la configuration Tunnel de Cntlm.
En regardant dans les journaux de Cntlm, je peux voir ce qui suit ...
cntlm: PID 1460: 127.0.0.1 TUNNEL ts.io:443
Tunneling to ts.io:443 for client 6...
Starting authentication...
NTLM Request:
Domain: domain.tld
Hostname: D-HOSTNAME
Flags: 0xA208B205
Poignée de main NTLM (Type 1)
Sending PROXY auth request...
Proxy-Connection => keep-alive
Proxy-Authorization => NTLM [REDACTED]
Content-Length => 0
Lecture de la réponse d'authentification PROXY ...
HEAD: HTTP/1.1 407 Proxy Authentication Required ( Access is denied. )
Via => 1.1 FOLLICLE
Proxy-Authenticate => NTLM [REDACTED]
Connection => Keep-Alive
Proxy-Connection => Keep-Alive
Pragma => no-cache
Cache-Control => no-cache
Content-Type => text/html
Content-Length => 0
NTLM Challenge:
Challenge: 4AC9211DC2875FFF (len: 178)
Flags: 0xA2898205
NT domain: NTDOMAIN
Server: PROXY
Domain: domain.tld
FQDN: proxy.domain.tld
TLD: domain.tld
TBofs: 64
TBlen: 114
ttype: 0
NTLMv2:
Nonce: CB4E6617ABF19C24
Timestamp: -1581153408
NTLM Response:
Hostname: 'D-HOSTNAME'
Domain: 'domain.tld'
Username: 'username'
Response: '[REDACTED]' (162)
Response: '[REDACTED]' (24)
Sending real request:
Proxy-Connection => keep-alive
Proxy-Authorization => NTLM [REDACTED]
Et enfin je reçois ceci ...
Reading real response:
HEAD: HTTP/1.1 200 Connection established
Via => 1.1 PROXY
Connection => Keep-Alive
Proxy-Connection => Keep-Alive
Ok CONNECT response. Tunneling...
tunnel: select cli: 6, srv: 7
Joining thread 537272664; rc: 0
Étant donné que le pare-feu autorise uniquement les connexions à Internet via le serveur proxy à partir du port 80 et du port 443, j'ai reconfiguré mon serveur SSH pour accepter les connexions à partir du port 443.
Le problème que je vois est qu'une fois que j'essaie une connexion SSH, la connexion signale le délai d'expiration de la connexion depuis Sublime Text lors de l'utilisation du plug-in SFTP . L'utilisation de PuTTY résulte en un instant PuTTY Fatal Error: Server unexpectedly closed network connection
. Google Chrome Extension Secure Shell me donne une erreur plus détaillée dessh_exchange_identification: Connection closed by remote host
NaCl plugin exited with status code 255.
Configuration Cntlm
# The username of the client you wish to masquerade as.
#
Username username
# The domain name of the network you are connected too.
#
Domain domain.tld
# The Password, LM, NTLM, or NTLMv2 Password.
# You should leave this blank and then start cntlm
# with the -M arg to get the hash information, then
# place that information here.
#
PassNTLMv2 [REDACTED]
# Specify the netbios hostname cntlm will send to the parent
# proxies. Normally the value is auto-guessed.
#
Workstation D-HOSTNAME
# List of parent proxies to use. More proxies can be defined
# one per line in format <proxy_ip>:<proxy_port>
#
Proxy PROXY:8080
# Specify the port cntlm will listen on
# You can bind cntlm to specific interface by specifying
# the appropriate IP address also in format <local_ip>:<local_port>
# Cntlm listens on 127.0.0.1:3128 by default
#
Listen 3128
# Use -M first to detect the best NTLM settings for your proxy.
# Default is to use the only secure hash, NTLMv2, but it is not
# as available as the older stuff.
#
# This example is the most universal setup known to man, but it
# uses the weakest hash ever. I won't have it's usage on my
# conscience. :) Really, try -M first.
#
Auth NTLMv2
# Tunnels mapping local port to a machine behind the proxy.
# The format is <local_port>:<remote_host>:<remote_port>
#
Tunnel 1443:ts.io:443
Ceci est la section de configuration que j'utilise pour le tunnel dans Cntlm.
Configuration de PuTTY
IP:PORT localhost:1443
C'est ce que j'utilise pour la connexion PuTTY.
Texte sublime
"http_proxy": "http://localhost:3128",
Une idée de ce que je peux faire pour résoudre ce problème? Je voudrais SSH dans mon serveur, il doit y avoir un moyen de le faire en utilisant uniquement la fonctionnalité de tunneling de Cntlm, je ne sais tout simplement pas ce que je fais mal.
Je peux vous dire que je peux me connecter à mon serveur SSH en utilisant le port 443 depuis l'extérieur du réseau d'entreprise.