Файл конфигурации клиента 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.