Обновлена документация

This commit is contained in:
Vladimir Dubrovin 2024-03-10 17:01:54 +03:00
parent d347f0a058
commit 29ef226b3c
5 changed files with 79 additions and 76 deletions

View File

@ -1,50 +1,59 @@
<h3>3proxy SSL/TLS plugin</h3> <h3>3proxy SSL/TLS plugin</h3>
Plugin can be used to transparently decypher SSL/TLS data and TLS encryption to proxy. Plugin can be used to transparently decypher SSL/TLS data and TLS encryption for proxy traffic.
potential securiy reasons.
<pre>
ssl_certcache PATH_TO_CACHE
ssl_mitm
ssl_nomitm
ssl_srvcert
ssl_srvkey
ssl_serv
ssl_noserv
</pre>
<h4>For transparent certificate spoofing:</h4> <h4>For transparent certificate spoofing:</h4>
ssl_certcache - path to certificates cache. For transparent spoofing cache must contain 3 files: 3proxy.pem - public <br>ssl_mitm - spoof certificates for services started below. Usage without ssl_client_verify is insecure.
self-signed certificates, 3proxy.key - key for public certificates, server.key - this key will be used to generates
spoofed certificates.
Generated certificates will be placed to the same path.
<br>ssl_mitm - spoof certificates for services started below. Using ssl_mitm is insecure, because proxy does not check certificates.
<br>ssl_nomitm - do not spoof certificates for services started below <br>ssl_nomitm - do not spoof certificates for services started below
<h4>To protect traffic to server (https:// proxy) - since 0.9.5 version</h4>
ssl_serv - require TLS connection for services below
<br>ssl_noserv - do not require TLS connection for services below
<h4>Example:</h4> Parameters:
<br>ssl_server_cert /path/to/cert - Server certificate (should not be selfsigned and must contain Alternative name) for ssl_serv
<br>ssl_server_key /path/to/key - Server ceritifacte key for ssl_server_cert or generated mitm certificate
<br>ssl_client_ciphersuites ciphersuites_list - TLS client ciphers for TLS 1.3, e.g. ssl_client_ciphersuites TLS_AES_128_GCM_SHA256
<br>ssl_server_ciphersuites ciphersuites_list - TLS server ciphers for TLS 1.3
<br>ssl_client_cipher_list ciphersuites_list - TLS client ciphers for TLS 1.2 and below , e.g. ssl_client_cipher_list ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
<br>ssl_server_cipher_list ciphersuites_list - TLS server ciphers for TLS 1.2 and below
<br>ssl_client_min_proto_version tls_version - TLS client min TLS version (e.g. TLSv1.2)
<br>ssl_server_min_proto_version tls_version - TLS server min TLS version (e.g. TLSv1.2)
<br>ssl_client_max_proto_version tls_version - TLS client max TLS version (e.g. TLSv1.2)
<br>ssl_server_max_proto_version tls_version - TLS server max TLS version (e.g. TLSv1.2)
<br>ssl_client_verify - verify certificate for upstream server in TLS client functionality (used with ssl_mitm)
<br>ssl_client_no_verify - do not verify certificate for upstream server in TLS client functionality (default)
<br>ssl_server_ca_file /path/to/cafile - CA certificate file for mitm
<br>ssl_server_ca_key /path/to/cakey - key for ssl_server_ca_file mitm CA
<br>ssl_client_ca_file, ssl_client_ca_dir, ssl_client_ca_store - locations for root CAs used with ssl_client_verify for TLS client
<br>ssl_certcache /path/to/cache/ - location for generated mitm certificates cache, optional, if ssl_server_ca_file / ssl_server_ca_key are configured.
Cache may contain 3 files: 3proxy.pem - public
self-signed certificates (used if ssl_server_ca_file is not configured),
3proxy.key - key for public certificates, used if ssl_server_ca_keyserver.key is not configured, server.key - this key is used if ssl_server_key is not configured to generates
spoofed certificates. If server.key is absent, 3proxy.key is used to generate certificates.
Generated certificates are placed to the same path.
<h4>mitm example:</h4>
<pre> <pre>
plugin /path/to/SslPlugin.dll ssl_plugin plugin /path/to/SslPlugin.dll ssl_plugin
ssl_certcache /path/to/cache/ ssl_server_ca_file /path/to/cafile
ssl_server_ca_key /path/to/cakey
ssl_mitm ssl_mitm
proxy -p3128 proxy -p3128
ssl_nomitm ssl_nomitm
proxy -p3129 proxy -p3129
</pre> </pre>
<h4>To protect traffic to server (https:// proxy) - since 0.9.5 version</h4> mitm's traffic with spoofed ceritifacate for port 3128 proxy.
ssl_srvcert - Server certificate (should not be selfsigned and must contain Alternative name)
ssl_srvkey - Server ceritifacte key
ssl_serv - require TLS connection for services below
ssl_noserv - do not require TLS connection for services below
Example: <h4>https:// proxy example:</h4>
<pre> <pre>
plugin /path/to/SSLPlugin.so ssl_plugin plugin /path/to/SSLPlugin.so ssl_plugin
ssl_srvcert path_to_cert ssl_server_cert path_to_cert
ssl_srvkey path_to_key ssl_server_key path_to_key
ssl_serv ssl_serv
proxy -p33128 proxy -p33128
ssl_noserv ssl_noserv
@ -52,11 +61,4 @@ proxy -p3128
</pre> </pre>
creates https:// proxy on 33128 and http:// proxy on 3128 creates https:// proxy on 33128 and http:// proxy on 3128
<h4>Download:</h4>
<ul>
<li>Plugin included into 3proxy 0.8
</ul>
&copy; Vladimir Dubrovin, License: BSD style &copy; Vladimir Dubrovin, License: BSD style

View File

@ -1,60 +1,61 @@
<h3>Плагин SSL/TLS для 3proxy</h3> <h3>3proxy SSL/TLS плагин</h3>
Плагин используется для транспарентной дешифровки SSL-трафика с подменой сертификата и для TLS шифрования трафика прокси. Плагин можно использовать для перехвата и дешифровки SSL/TLS трафика и для шифрования трафика прокси-сервера
<h4>Для транспаретной перехватки трафика (mitm):</h4>
<br>ssl_mitm - подменять сертификаты для сервисов стартованных ниже. Не безопасно использовать без ssl_client_verify.
<br>ssl_nomitm - не подменять сертификаты для сервисов стартованных ниже.
<pre> <h4>Для защиты трафика прокси-сервера (например https:// proxy) - начиная с 0.9.5</h4>
ssl_certcache PATH_TO_CACHE ssl_serv - включает TLS для соединений к сервисам ниже
ssl_mitm <br>ssl_noserv - отключает TLS для соединений к сервисам ниже
ssl_nomitm
ssl_srvcert
ssl_srvkey
ssl_serv
ssl_noserv
</pre>
<h4>Использование для перехвата трафика с подменой сертификата</h4> Параметры:
<br>ssl_server_cert /path/to/cert - сертификат сервера, не должен быть самоподписаным, имя CN должно содержаться в альтернативных именах - используется для ssl_serv
<br>ssl_server_key /path/to/key - ключ сертификата сервера для ssl_server_cert или сгенерированного сертификата ssl_mitm
<br>ssl_client_ciphersuites ciphersuites_list - наборы шифрова TLS для TLS 1.3, пример ssl_client_ciphersuites TLS_AES_128_GCM_SHA256
<br>ssl_server_ciphersuites ciphersuites_list - наборы шифрова TLS для TLS 1.3
<br>ssl_client_cipher_list ciphersuites_list - наборы шифрова TLS для TLS 1.2 и ниже, пример ssl_client_cipher_list ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
<br>ssl_server_cipher_list ciphersuites_list - наборы шифрова TLS для TLS 1.2 и ниже
<br>ssl_client_min_proto_version tls_version - минимальная версия TLS клиента (например ssl_client_min_proto_version TLSv1.2)
<br>ssl_server_min_proto_version tls_version - минимальная версия TLS сервера
<br>ssl_client_max_proto_version tls_version - максимальная версия TLS клиента
<br>ssl_server_max_proto_version tls_version - максимальная версия TLS сервера
<br>ssl_client_verify - проверять сертификат сервера назначения (используется с ssl_mitm)
<br>ssl_client_no_verify - не проверять сертификат сервера назначения
<br>ssl_server_ca_file /path/to/cafile - CA сертификат для ssl_mitm
<br>ssl_server_ca_key /path/to/cakey - ключ CA сертификата ssl_server_ca_file mitm
<br>ssl_client_ca_file, ssl_client_ca_dir, ssl_client_ca_store - расположения корневых сертификатов ssl_client_verify
<br>ssl_certcache /path/to/cache/ - расположение кеша сгенерированных сертификатов ssl_mitm. Кеш может содержать
файлы 3proxy.pem, 3proxy.key server.key, которые используются как ssl_server_ca_file,
ssl_server_ca_key и ssl_server_key соответственно если они не заданы. Если server.key не задан,
3proxy.key используется для генерации серверного сертификата.
<h4>Пример mitm:</h4>
ssl_certcache - путь к кэшу сертификатов. Для транспорентной подмены сертификатов в кэше должно находиться 3 файла: 3proxy.pem - публичный
самоподписанный сертификат, 3proxy.key - ключ от этого сертификата, server.key - ключ с которым будут генерироваться подменные сертификаты.
Сгенерированные сертификаты будут помещаться в этот же каталог.
<br>ssl_mitm - подменять сертитфикаты для запущенных ниже сервисов. Может быть небезопасно, т.к. прокси не проверяет сертификат сервера.
<br>ssl_nomitm - не подменять сертитфикаты для запущенных ниже сервисов
<h4>Пример:</h4>
<pre> <pre>
plugin /path/to/SslPlugin.dll ssl_plugin plugin /path/to/SslPlugin.dll ssl_plugin
ssl_certcache /path/to/cache/ ssl_server_ca_file /path/to/cafile
ssl_server_ca_key /path/to/cakey
ssl_mitm ssl_mitm
proxy -p3128 proxy -p3128
ssl_nomitm ssl_nomitm
proxy -p3129 proxy -p3129
</pre> </pre>
Перехватывается трафик в прокси на порту 3128
<h4>Использование для TLS шифрования трафика к прокси (с версии 0.9.5) <h4>Пример конфигурации https:// прокси (curl -x https://...):</h4>
ssl_srvcert - путь к файлу сертификата сервера. Сертификат должен быть аналогичен сертификату web-сервера (не должен быть самоподписанным и должен содержать AltName).
ssl_srvkey - ключ от серверного сертификата
ssl_serv - шифровать трафик TLS для сервисов ниже
ssl_noserv - не шифровать трафик TLS для сервисов ниже
Пример:
<pre> <pre>
plugin /path/to/SSLPlugin.so ssl_plugin plugin /path/to/SSLPlugin.so ssl_plugin
ssl_srvcert path_to_cert ssl_server_cert path_to_cert
ssl_srvkey path_to_key ssl_server_key path_to_key
ssl_serv ssl_serv
proxy -p33128 proxy -p33128
ssl_noserv ssl_noserv
proxy -p3128 proxy -p3128
</pre> </pre>
На порт 33128 https:// прокси, на порту 3128 http:// прокси На порту 33128 создается https:// прокси (не путать с CONNECT прокси aka HTTPS over HTTP прокси), на порту 3128
создается http:// прокси (может пропуска в т.ч. и HTTPS коннекты)
&copy; Vladimir Dubrovin, License: BSD style
<h4>Загрузить:</h4>
<ul>
<li>Плагин включен в дистрибутив 3proxy 0.8
</ul>

View File

@ -1,4 +1,4 @@
<h3>Плагин подмены строк 3proxy</h3> <h3>Плагин подмены строк 3proxy</h3>
Используется, в частности, для руссификации сообщений выдаваемых 3proxy. Используется, в частности, для руссификации сообщений выдаваемых 3proxy.
Для корректной работы требуется 0.6 версия 3proxy. Для корректной работы требуется 0.6 версия 3proxy.

View File

@ -1,4 +1,4 @@
<h3>Плагин коррекции траффика 3proxy</h3> <h3>Плагин коррекции траффика 3proxy</h3>
Как известно, 3proxy считает траффик не сетевой, а прикладной. Как известно, 3proxy считает траффик не сетевой, а прикладной.
Обычно прикладной траффик немного меньше (примерно на 10%) чем сетевой, Обычно прикладной траффик немного меньше (примерно на 10%) чем сетевой,
однако в некоторых случаях, например когда пользователи сети играют в однако в некоторых случаях, например когда пользователи сети играют в

View File

@ -1,4 +1,4 @@
<h3>Плагин аутентификации Windows для 3proxy</h3> <h3>Плагин аутентификации Windows для 3proxy</h3>
Поддерживается только аутентификация открытым текстом в домене или на локальной машине Windows. Поддерживается только аутентификация открытым текстом в домене или на локальной машине Windows.
<h4>Использование</h4> <h4>Использование</h4>
<ol> <ol>