Я намагаюся потрапити на свій SSH-сервер в Інтернеті з корпоративної мережі. Усі підключення до зовнішнього Інтернету повинні проксі через сервер, який перевіряє хеш NTLM кожного клієнта на кожен запит. Я використовую для цього Cntlm , і він працює лише наполовину. Це добре працює для з'єднань на основі HTTP, але це не працює для стилів SSH. Я знаю , що це тому, що я можу підключитися до Sublime Text «s Package Control Plugin для отримання і оновлення плагінів. Я, однак, не можу використовувати його для SSH на своєму сервері, використовуючи конфігурацію Tunnel Cntlm.
Заглянувши в журнали Cntlm, я бачу наступне ...
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
Рукостискання NTLM (Тип 1)
Sending PROXY auth request...
Proxy-Connection => keep-alive
Proxy-Authorization => NTLM [REDACTED]
Content-Length => 0
Читання автентичної відповіді 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]
І нарешті я отримую це ...
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
Оскільки брандмауер дозволяє підключатися лише до зовнішнього Інтернету через проксі-сервер через порт 80 і порт 443, я переконфігурував свій SSH-сервер для прийому з'єднань з порту 443.
Проблема, яку я бачу, полягає в тому, що коли я спробую SSH-з'єднання, під час використання модуля SFTP звіт про з'єднання відображається як час очікування з'єднання з Sublime Text . Використання PuTTY результатів за мить PuTTY Fatal Error: Server unexpectedly closed network connection
. Захищена оболонка Google Chrome Extension надає мені більш детальну помилкуssh_exchange_identification: Connection closed by remote host
NaCl plugin exited with status code 255.
Конфігурація 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
Це розділ конфігурації, який я використовую для тунелю в Cntlm.
Конфігурація PuTTY
IP:PORT localhost:1443
Це те, що я використовую для підключення PuTTY.
Піднесений текст
"http_proxy": "http://localhost:3128",
Будь-яка ідея - що я можу зробити, щоб виправити це? Я хотів би SSH на свій сервер, повинен бути спосіб зробити це, використовуючи лише тунельну функцію Cntlm, я просто не знаю, що я роблю неправильно.
Я можу вам сказати, що я можу підключитися до свого SSH-сервера за допомогою порту 443 за межами корпоративної мережі.