Назад | Перейти на главную страницу

Отправить учетные данные прокси-сервера SOCKS через SSL / TLS

Файл конфигурации клиента OpenVPN имеет socks-proxy правило, позволяющее подключаться к прокси-серверу SOCKS перед подключением к VPN. Я установил прокси-сервер Dante SOCKS, но похоже, что он не поддерживает SSL / TLS, поэтому учетные данные будут отправлены в виде открытого текста, и кто-то в той же локальной сети может провести атаку типа «злоумышленник посередине», обнюхивая сеть и просматривая учетные данные (https://security.stackexchange.com/questions/183146/are-socks5-credentials-safe-during-authentication-on-proxy-server).

Разве нельзя добавить поддержку SSL / TLS в прокси-сервер Dante SOCKS, как это можно сделать с FTP-сервером?

Если это невозможно официально, я думаю, нам нужно использовать stunnel для создания туннеля SSL / TLS. Но поскольку VPN разрешает соединения только через UDP, я думаю, нам также нужно использовать udptunnel (https://manpages.ubuntu.com/manpages/xenial/man1/udptunnel.1.html), потому что stunnel и SSL / TLS работают только с TCP (https://www.stunnel.org/faq.html).

Вот мой файл конфигурации прокси Dante SOCKS /etc/sockd.conf на моем VPS-сервере Linux:

internal: venet0:0 port = 8088
external: venet0:0
socksmethod: username #none #rfc931
clientmethod: none
user.privileged: root
user.notprivileged: nobody
user.libwrap: nobody
client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect disconnect error
}                                                                                                                                                                                             
socks pass {                                                                                                                                                                                  
        from: 0.0.0.0/0 to: 0.0.0.0/0                                                                                                                                                         
        protocol: tcp udp                                                                                                                                                                     
}

После запуска sockd Прокси Dante SOCKS, запускаю udptunnel на том же сервере, который должен подключиться к прокси:

udptunnel -s 8080 127.0.0.1:8088

Тогда я начинаю stunnel на том же сервере, который должен подключиться к udptunnel, с этим файлом конфигурации /etc/stunnel/stunnel.conf:

client = no
[udptunnel]
accept = 8888
connect = 127.0.0.1:8080
cert = /etc/stunnel/stunnel.pem

Затем я подключаюсь с помощью OpenVPN на своем компьютере с этим правилом в файле конфигурации клиента:

socks-proxy PROXY_IP_ADDRESS 8888 stdin

Однако у меня не получилось. Я могу подключиться к прокси и VPN только в том случае, если я отправляю учетные данные прокси в виде открытого текста, что небезопасно. В настоящее время, если я хочу безопасно подключиться с другого IP-адреса к VPN, мне нужно подключиться из другого VPN перед подключением к VPN, что отлично работает, но мне было бы интересно узнать, возможно ли использовать прокси SOCKS с SSL / TLS.