diff --git a/doc/html/faqe.html b/doc/html/faqe.html index f966b0a..a460002 100644 --- a/doc/html/faqe.html +++ b/doc/html/faqe.html @@ -1,165 +1,2 @@ -
Q: Why does nothing work?
-A: Valid configuration file is required. - -Q: Why restrictions (redirections, limits, etc) do not work?
-A: Most probable reasons: 'auth none' or no auth is used. For any ACL based feature one of 'iponly', 'nbname' or 'strong' auths required. Sequence of commands may be invalid. Commands are executed one-by-one and 'proxy', 'tcppm', 'socks' or another service commands must follow valid configuration. Invalid sequence of ACLs. First matching ACL is used (except of internal redirections, see below). If ACL contains at least one records last record is assumed to be 'deny *'. - -Q: Why doesn't 3proxy work as service under Windows?
-Possible reasons: --3proxy --install full_path_to_configuration_file --
Q: Why doesn't internal and external commands work as expected
-A: Check your expectations first. -Both internal and external IPs are IPs of the host running 3proxy itself. -This configuration option is usefull in situation 3proxy is running on the -border host with 2 (or more) connections: e.g. LAN and WAN with different IPs -- LAN connection +-------------+ Internet connection -LAN <-------------->| 3proxy host |<-------------------> INTERNET - ^+-------------+^ - | | - Internal IP External IP --If 3proxy is used on the host with single connection, both internal and -external are usually same IP. -
Q: Why doesn't ODBC loggind work?
-A: Check you use system DSN. -Check SQL request is valid. -The best way to check is to make file or stdout logging, get SQL request from log file or console and execute this request manually. -Under Unix, you may also want to adjust 'stacksize' parameter. - -Q: Why doesn't IPv6 work?
-A: Proxy can not access destination directly over IPv6 if client requests IPv4 address. -To access IPv6 destination, either IPv6 address or hostname must be used in request. -Best solution is to enable option to resolve hostnames via proxy on client side. -Q: Why proxy crash on request processing?
-A: default stacksize may be insufficient, if some non-default plugins - are used (e.g. PAM and ODBC on Linux) or if compiled on some platforms with - invalid system defined values (few versionds of FreeBSD on amd64). - Problem can be resolved with 'stacksize' command or '-S' option starting 3proxy 0.8.4. - - -Q: Why doesn't APOP/CRAM-MD5 authentication work with POP3 proxy?
-A: Any Challenge-response authentication require challenge to be transmitted from server. Pop3p doesn't know which server to use before authentication, it makes it impossible to obtain challenge. You can encrypt your POP3 communications with TLS (i.e. stunnel) or IPSec. - -Q: What is it for?
-A: To have control based on request and to have URLs and another protocol specific parameters to be logged. - -Q: What are restrictions?
-A: It's hard to redirect services for non-default ports; Internet Explorer supports only SOCKSv4 with no password authentication (Internet Explorer sends username, but not password), for SOCKSv5 only cleartext password authentication is supported. - -Q: What are advantages?
-A: You need only to setup SOCKS proxy in browser settings. You can use socksifier, i.e. FreeCAP or SocksCAP with application which is not proxy aware. - -Q: How to setup?
-A: You should specify parent proxy with IP of 0.0.0.0 and port 0. Examples: --auth iponly -allow * * * 80,8080-8088 -parent 1000 http 0.0.0.0 0 -allow * * * 80,8080-8088 -#redirect ports 80 and 8080-8088 to local HTTP proxy -#Second allow is required, because ACLs are checked -#twice: first time by socks and second by http proxy. - -allow * * * 21,2121 -parent 1000 ftp 0.0.0.0 0 -allow * * * 21,2121 -#redirect ports 21 and 2121 to local -#ftp proxy - - -allow * -#allow rest of connections directly - -socks -#now let socks server to start -- -
Q: How it affects different ACL rules?
-A: After local redirections rules are applied again to protocol-level request. Redirection rule itself is skipped. It makes it possible to redirect request again on the external proxy depending on request itself. --allow * * * 80,8080-8088 -parent 1000 http 0.0.0.0 0 -#redirect http traffic to internal proxy - -allow * * $c:\3proxy\local.nets 80,8080-8088 -#allow direct access to local.nets networks -allow * * * 80,8080-8088 -parent 1000 http proxy.3proxy.org 3128 -#use parent caching proxy for rest of the networks - -allow * -#allow direct connections for rest of socks -#requests -- -
Q: Is it possible to resolve names through parent proxy?
-A: Yes, use 'proxy', 'connect+', 'socks4+' or 'socks5+' as parent proxy type. -3proxy itself requires name resolutions for ACL checks, so, if it's impossible -to resolve names from 3proxy host, use --fakeresolve --command. Fakeresolve resolves any name to 127.0.0.2. - - -
Q: Can I use 3proxy as FTP proxy?
-A: There are two kinds of FTP proxy supported: FTP over HTTP support (known as FTP proxy inside Internet Explorer, Mozilla and another browsers) and real FTP proxy (usable in Far and different FTP clients). Both are supported in 3proxy: first one as a part of HTTP 'proxy' and second one as 'ftppr'. - -Q: Can I bind any 3proxy service to non-default port?
-A: proxy -p8080 - -Q: Why traffic accounting is incomplete? It differs for what my provider (or another accounting application) shows to me?
-A: 3proxy accounts protocol level traffic. Provider counts channel or IP-level traffic with network and transport headers. In additions, 3proxy doesn't counts DNS resolutions, pings, floods, scans, etc. It makes approx. 10% of difference. That's why you should have 15% reserve if you use 3proxy to limit your traffic. If difference with your provider is significantly above 10% you should look for traffic avoiding proxy server, for example connections through NAT, traffic originated from the host with proxy installed, traffic from server applications, etc. - -Q: Why configuration is so difficult and non-intuitive?
-A: Configuration format is created in a way it's easy to parse and matches to internal 3proxy structures. In addition, there are some older things left for compatibility to be cleaned in 3proxy release. And last, I think it's easy and intuitive. - -Q: Why the code is so difficult and non-intuitive?
-A: First, I'm not programmer. Second, 3proxy was 'proof of concept' in reply for some conference post. Request was to write proxy server in 100 lines of code. First version of 3proxy had less, with HTTP and SOCKS support and portmappers. Third, there are peoples who want to use 3proxy code in trojans. I don't want to help them. Fourth, the aim is to support different platforms. It's well known - the worse code is, the better it compiles. - -Q: Why do you use insecure strcpy, sprintf, etc?
-A: Why not? I try to use insecure function in secure manner. You're welcome to look for vulnerabilities. +- A: Потому что для работы нужен правильный файл конфигурации. -
-- A: Обычные ошибки - использование auth none (для работы любых - функций, основанных на ACL, требуется auth iponly, nbname или strong), - нарушение порядка ввода команд (команды выполняются последовательно, - запуск сервиса proxy, socks, tcppm и т.д. должен осуществляться после - того, как указана его конфигурация), неправильный порядок записей в ACL - (записи просматриваются последовательно до первой, удовлетворяющей - критериям). Если в ACL имеется хотя бы одна запись, то считается, что - последняя запись в ACL - это неявная deny *. -
-- A: Наиболее вероятные причины: -
- 3proxy --install path_to_configuration_file-
- A: Убедитесь, что выправильно понимаете что такое internal и external адреса. - Оба адреса - это адреса, принадлежищие хосту, на котором установлен 3proxy. - Эта опция конфигурации необходима в классической ситуации, когда 3proxy - установлен на граничном компьютере с двумя (или более) подключениями: -
- LAN connection +-------------+ Internet connection - LAN <-------------->| 3proxy host |<-------------------> INTERNET - ^+-------------+^ - | | - Internal IP External IP- Если 3proxy работает на хосте с одним интерфейсом, то его адрес будет и - internal и external. -
- Интерфейс с адресом external, если он указан, должен быть рабочим на момент - получения запроса клиента. При отсутствии external или адресе 0.0.0.0 внешний - адрес будет выбираться системой при установке соединения. При этом, может быть - возможность доступа через прокси к ресурсам локальной сети, поэтому для - предотвращения несанкционированного доступа следует использовать ACL. Кроме - того, могут быть проблемы с приемом входящих соединений через SOCKSv5 - (SOCKSv5 используется в клиентах исключительно редко). - В случае, если адрес динамический, можно либо не - указывать external, либо использовать адрес 0.0.0.0, либо, если необходима - поддержка входящих соединений в SOCKSv5, использовать скрипт, - который будет получать текущий адрес и сохранять его в файл, который будет - отслуживаться через команду monitor. -
-- A: Убедитесь, что используется системный, а не - пользовательский DSN. Убедитесь, что выполняется правильный SQL запрос. Наиболее - распространенная проблема связана с отсутствием кавычек или неправильным - форматом данных. Самый простой способ - сделать ведение журнала в файл или - на стандартный вывод, просмотреть выдаваемые SQL запросы и попробовать - дать такой запрос вручную. -
-- A: Прокси не может обращаться напрямую к IPv6 сети если в запросе от клиента - указан IPv4. В запросе от клиента должен быть IPv6 адрес или имя хоста, чаще - всего это решается включением опции разрешения имен через прокси-сервер на стороне - клиента. -
-- A: Любая challenge-response аутентификация, к которым относятся APOP - и CRAM-MD5, требует, чтобы со стороны сервера был передан уникальный challenge. - До начала аутентификации POP3 прокси не знает, к какому серверу следует - подключаться для получения Challenge, поэтому challenge-response в принципе - невозможен. Защитить соединение можно с помощью TLS (например, stunnel) или - IPSec. -
-- A: Возможно, недостаточен размер стека потока по-умолчанию, это может - быть при использовани каких-либо сторонних плагинов (PAM, ODBC) или на - некоторых платформах (некоторые версии FreeBSD на amd64). Можно решить - проблему с помощью опции 'stacksize' или '-S', поддерживаемых в 0.8.4 и выше. -
- -- A: Чтобы иметь в логах URL запросов, если пользователь SOCKS пользуется - Web, FTP или POP3. -
-- A: Перенапраление невозможно для web-серверов или FTP, висящих на - нестандартных портах, для SOCKSv4 не поддрживается авторизация с - паролем (IE поддерживает только SOCKSv4), но при этом IE передает - имя пользователя по SOCKSv4 (имя, с которым пользователь вошел в систему). - Для SOCKSv5 не поддерживается NTLM авторизация, пароли передаются в открытом - тексте. -
-- A: Достаточно в настройках IE только указать адрес SOCKS прокси. В - больших сетях можно для этого использовать WPAD (автоматическое - обнаружение прокси). В 3proxy достаточно запускать только одну службу - (socks). Если используется только Internet Explorer, то можно - автоматически получать имя пользователя в логах, не запрашивая - логин/пароль. -
-- A: Указывается parent http proxy со специальным адресом 0.0.0.0 и портом - 0. Пример: -
- allow * * * 80,8080-8088 - parent 1000 http 0.0.0.0 0 - allow * * * 80,8080-8088 - #перенаправить соединения по портам 80 и 8080-8088 в локальный - #http прокси. Вторая команда allow необходима, т.к. контроль доступа - #осуществляется 2 раза - на уровне socks и на уровне HTTP прокси - allow * * * 21,2121 - parent 1000 ftp 0.0.0.0 0 - allow * * * 21,2121 - #перенаправить соединения по портам 21 и 2121 в локальный - #ftp прокси - allow * - #пустить все соединения напрямую - socks- -
- A: После внутреннего перенаправления правила рассматриваются еще раз за - исключением самого правила с перенаправлением (т.е. обработка правил не - прекращается). Это позволяет сделать дальнейшие перенаправления на - внешний прокси. По этой же причине локальное перенаправление не должно - быть последним правилом (т.е. должно быть еще хотя бы правило allow, - чтобы разрешить внешние соединения через HTTP прокси). - Например, -
- allow * * * 80,8080-8088 - parent 1000 http 0.0.0.0 0 - #перенаправить во внутренний прокси - allow * * $c:\3proxy\local.nets 80,8080-8088 - #разрешить прямой web-доступ к сетям из local.nets - allow * * * 80,8080-8088 - parent 1000 http proxy.3proxy.ru 3128 - #все остальные веб-запросы перенаправить на внешний прокси-сервер - allow * - #разрешить socks-запросы по другим портам- - -
- A: Можно. Для этого надо использовать тип родительского прокси http, - connect+, socks4+ и socks5+. Однако, при это надо помнить, что самому 3proxy - требуется разрешение имени для управления ACL. Поэтому, если с прокси-хоста - не работают разрешения имени, необходимо в конфигурации дать команду -
- fakeresolve- которая разрешает любое имя в адрес 127.0.0.2. - -
- Есть поддержка как FTP через HTTP (то, что называется FTP прокси в Internet - Explorer, Netscape, Opera) так и настоящего FTP прокси (то, что называется - FTP proxy в FAR и FTP клиентах). -
-- А: -
- proxy -p8080- -
- A: Читайте HowTo https://3proxy.ru/howtor.asp#BANDLIM -
- -- A: Следует учитывать, что 3proxy считает трафик только на прикладном уровне и - только проходящий через прокси-сервер. Провайдеры и другие средства учета - трафика считают трафик на сетевом уровне, что уже дает расхождение порядка 10% - за счет информации из заголовков пакетов. Кроме того, часть трафика, как - минимум DNS-разрешения, различный флудовый трафик и т.д. идут мимо прокси. - Уровень "шумового" трафика в Internet сейчас составляет порядка 50KB/день на - каждый реальный IP адрес, но может сильно варьироваться в зависимости от сети, - наличия открытых портов, реакции на ping-запросы и текущего уровня вирусной - активности. По этим причинам, если 3proxy используется чтобы не "выжрать" - трафик, выделенный провайдером, всегда следует делать некий запас порядка - 15%. -
-- Если на одной с 3proxy машине имеются какие-либо сервисы или - работает пользователь, то их трафик не проходит через proxy-сервер и так же - не будет учтен. Если где-то есть NAT, то клиенты, выходящие через NAT мимо - прокси, так же останутся неучтенными. Если расхождение с провайдером превышает - 10% - нужно искать причину именно в этом. -
-- A: Есть несколько причин. Во-первых, до выхода релиза (т.е. версии 1.0) я буду изо - всех сил добиваться совместимости конфигурации между версиями. Во-вторых, - конфигурация сделана так, чтобы ее можно было легко разбирать программно. - В-третьих, все там понятно. При желании. Если знать как все работает. -
-- A: Есть несколько причин. Во-первых, я не программист. Во-вторых, 3proxy изначально - писался на коленке (в отет на "слабо" в одной из конференций). Никто - не мог предположить, что им кто-то реально будет пользоваться. В-третьих, у многих - возникает желание разобраться в коде 3proxy чтобы внедрить его в какой-нибудь - троян. Очень не хочется облегчать эту задачу. В-четвертых, мне надо добиться - компиляции кода в как можно большем числе систем. Замечено, что чем кривее код в - C, тем он лучше переносится. -
-- A: Есть несколько причин. Во-первых, несмотря на дурной тон использования этих - функций, они наиболее совместимы между разными системами и компиляторами. - Во-вторых, само по себе их использование не означает присутствие дыры, если их - параметры должным образом контролируются. Найдете дыру - обязательно сообщите. - В третьих, может быть я уберу их перед конечным релизом, чтобы никого не - пугать. -
--See How to compile 3proxy with GCC under Unix/Linux, use Makefile.ccc instead of Makefile.unix.
Valid configuration file is required. + +
Most probable reasons for non-working limitations: 'auth none' or no auth is used. For any ACL based feature one of 'iponly', 'nbname' or 'strong' auths required. Sequence of commands may be invalid. Commands are executed one-by-one and 'proxy', 'tcppm', 'socks' or another service commands must follow valid configuration. Invalid sequence of ACLs. First matching ACL is used (except of internal redirections, see below). If ACL contains at least one records last record is assumed to be 'deny *'. + +
Possible reasons for 3proxy starts manually but fails to start as a service: +
+3proxy --install full_path_to_configuration_file ++
How to understant internal and external +
+Both internal and external IPs are IPs of the host running 3proxy itself. +This configuration option is usefull in situation 3proxy is running on the +border host with 2 (or more) connections: e.g. LAN and WAN with different IPs +
+ LAN connection +-------------+ Internet connection +LAN <-------------->| 3proxy host |<-------------------> INTERNET + ^+-------------+^ + | | + Internal IP External IP ++If 3proxy is used on the host with single connection, both internal and +external are usually same IP. +
+Check you use system DSN. +Check SQL request is valid. +The best way to check is to make file or stdout logging, get SQL request from log file or console and execute this request manually. +Under Unix, you may also want to adjust 'stacksize' parameter. + +
Proxy can not access destination directly over IPv6 if client requests IPv4 address. +To access IPv6 destination, either IPv6 address or hostname must be used in request. +Best solution is to enable option to resolve hostnames via proxy on client side. + +
default stacksize may be insufficient, if some non-default plugins + are used (e.g. PAM and ODBC on Linux) or if compiled on some platforms with + invalid system defined values (few versionds of FreeBSD on amd64). + Problem can be resolved with 'stacksize' command or '-S' option starting 3proxy 0.8.4. + +
Server configuration example 3proxy.cfg.sample is in any 3proxy distribution. @@ -382,6 +463,22 @@ proxy -p8080 -i192.168.1.1 proxy -p8080 -i192.168.2.1
++ A: Use one of connect+, socks4+ socks5+ as a parent type. 3proxy + itself still performs a name resolution, it's required e.g. to ACLs matching. + So, if no name resolution must be performed by 3proxy itself add a command +
+ fakeresolve+ this command resolves any name to 127.0.0.2 address. + +
+ There is FTP over HTTP (what is called FTP proxy in browsers) and FTP over FTP ப + (what is called FTP proxy in file managers and FTP clients). For browsers, there is no need to start additional + proxy service, 'proxy' supports FTP over HTTP, configure 'proxy' port as an FTP proxy. For ftp clients and file + managers use ftppr. FTP proxy supports both active and passive mode with client, but always use passive mode with FTP servers. +
First, always specify internal interface to accept incoming connection with @@ -518,7 +615,7 @@ allow <userlist> <sourcelist> <targetlist> <targetportlist& 'flush' command is used to finish with existing ACL and to start new one. It's required to have different ACLs for different services. 'allow' is used to allow connection and 'deny' to deny connection. 'allow' -command can be extended by 'parent' command to manage redirections (see How to manage redirections)). If ACL +command can be extended by 'parent' command to manage redirections (see How to manage redirections)). If ACL is empty it allow everything. If ACL is not empty, first matching ACL entry is searched for user request and ACL action (allow or deny) performed. If no matching record found, connection is denied and user will be asked to @@ -607,6 +704,60 @@ no need to run these services expicitly. Local redirections are usefull if you want to see and control via ACLs protocol specific parameters, e.g. filenames requests thorugh FTP while clients are using SOCKS.
++
Q: What is it for?
+A: To have control based on request and to have URLs and another protocol specific parameters to be logged. + +Q: What are restrictions?
+A: It's hard to redirect services for non-default ports; Internet Explorer supports only SOCKSv4 with no password authentication (Internet Explorer sends username, but not password), for SOCKSv5 only cleartext password authentication is supported. + +Q: What are advantages?
+A: You need only to setup SOCKS proxy in browser settings. You can use socksifier, i.e. FreeCAP or SocksCAP with application which is not proxy aware. + +Q: How to setup?
+A: You should specify parent proxy with IP of 0.0.0.0 and port 0. Examples: ++auth iponly +allow * * * 80,8080-8088 +parent 1000 http 0.0.0.0 0 +allow * * * 80,8080-8088 +#redirect ports 80 and 8080-8088 to local HTTP proxy +#Second allow is required, because ACLs are checked +#twice: first time by socks and second by http proxy. + +allow * * * 21,2121 +parent 1000 ftp 0.0.0.0 0 +allow * * * 21,2121 +#redirect ports 21 and 2121 to local +#ftp proxy + + +allow * +#allow rest of connections directly + +socks +#now let socks server to start ++ +
Q: How it affects different ACL rules
+A: After local redirections rules are applied again to protocol-level request. Redirection rule itself is skipped. It makes it possible to redirect request again on the external proxy depending on request itself. ++allow * * * 80,8080-8088 +parent 1000 http 0.0.0.0 0 +#redirect http traffic to internal proxy + +allow * * $c:\3proxy\local.nets 80,8080-8088 +#allow direct access to local.nets networks +allow * * * 80,8080-8088 +parent 1000 http proxy.3proxy.org 3128 +#use parent caching proxy for rest of the networks + +allow * +#allow direct connections for rest of socks +#requests ++
Proxy itself doesn't manage network level routing. The only way to control @@ -722,30 +873,9 @@ reportpath specifies location of text reports, type parameter of 'counter' command controls how often text reports are created. amount is amount of allowed traffic in Megabytes (MB). nocountin allows you to set exclusions.
-Networks or users lists are often very huge. 3proxy doesn't currently -supports user groups, but ones can be created by the means of include files. -You can store comma-delimited lists of networks or users in the separate -file and use $ macro to insert this list into 3proxy.cfg. -3proxy comes with 'dighosts' -utility. This utility helps to grab the list of the network from HTTP page. -It may be usefull to e.g. obtain a regullary updated list of local networks -from ISP's server. A network list can be either in form of NETWORK MASK, -e.g. 192.168.1.0 255.255.255.0 or NETWORK/LENGTH, e.g. 192.168.1.0/24. You can -launch dighosts from 3proxy.cfg to be executed on every 3proxy startup or -configuration reload: -
-system "dighosts http://provider/network.html local.networks" -allow * * $local.networks -allow * -parent 1000 proxy.provider 3128 * -proxy -flush --In this example we obtain list of local networks from provider's page to -local.networks file, allow direct access to these networks and redirect all -connection to external networks to provider's proxy. - +
3proxy accounts protocol level traffic. Provider counts channel or IP-level traffic with network and transport headers. In additions, 3proxy doesn't counts DNS resolutions, pings, floods, scans, etc. It makes approx. 10% of difference. That's why you should have 15% reserve if you use 3proxy to limit your traffic. If difference with your provider is significantly above 10% you should look for traffic avoiding proxy server, for example connections through NAT, traffic originated from the host with proxy installed, traffic from server applications, etc.
For name resolution and caching use commands nserver, nscache / nscache6 and nsrecord. diff --git a/doc/html/howtor.html b/doc/html/howtor.html index 2119a72..708f3bd 100644 --- a/doc/html/howtor.html +++ b/doc/html/howtor.html @@ -18,25 +18,34 @@
+ Для работы требуется корректный файл конфигурации. Если прокси не запускается, значит в конфигурации есть ошибка. +
++ A: Обычные ошибки - использование auth none (для работы любых + функций, основанных на ACL, требуется auth iponly, nbname или strong), + нарушение порядка ввода команд (команды выполняются последовательно, + запуск сервиса proxy, socks, tcppm и т.д. должен осуществляться после + того, как указана его конфигурация), неправильный порядок записей в ACL + (записи просматриваются последовательно до первой, удовлетворяющей + критериям). Если в ACL имеется хотя бы одна запись, то считается, что + последняя запись в ACL - это неявная deny *. +
++ Чаще всего 3proxy не запускается службой (но запускается вручную) по одной из следующих причин: +
+ 3proxy --install path_to_configuration_file+
+ Убедитесь, что выправильно понимаете что такое internal и external адреса. + Оба адреса - это адреса, принадлежищие хосту, на котором установлен 3proxy. + Эта опция конфигурации необходима в классической ситуации, когда 3proxy + установлен на граничном компьютере с двумя (или более) подключениями: +
+ LAN connection +-------------+ Internet connection + LAN <-------------->| 3proxy host |<-------------------> INTERNET + ^+-------------+^ + | | + Internal IP External IP+ Если 3proxy работает на хосте с одним интерфейсом, то его адрес будет и + internal и external. +
+ Интерфейс с адресом external, если он указан, должен быть рабочим на момент + получения запроса клиента. При отсутствии external или адресе 0.0.0.0 внешний + адрес будет выбираться системой при установке соединения. При этом, может быть + возможность доступа через прокси к ресурсам локальной сети, поэтому для + предотвращения несанкционированного доступа следует использовать ACL. Кроме + того, могут быть проблемы с приемом входящих соединений через SOCKSv5 + (SOCKSv5 используется в клиентах исключительно редко). + В случае, если адрес динамический, можно либо не + указывать external, либо использовать адрес 0.0.0.0, либо, если необходима + поддержка входящих соединений в SOCKSv5, использовать скрипт, + который будет получать текущий адрес и сохранять его в файл, который будет + отслуживаться через команду monitor. +
++ Убедитесь, что используется системный, а не + пользовательский DSN. Убедитесь, что выполняется правильный SQL запрос. Наиболее + распространенная проблема связана с отсутствием кавычек или неправильным + форматом данных. Самый простой способ - сделать ведение журнала в файл или + на стандартный вывод, просмотреть выдаваемые SQL запросы и попробовать + дать такой запрос вручную. +
++ Прокси не может обращаться напрямую к IPv6 сети если в запросе от клиента + указан IPv4. В запросе от клиента должен быть IPv6 адрес или имя хоста, чаще + всего это решается включением опции разрешения имен через прокси-сервер на стороне + клиента. +
++ Возможно, недостаточен размер стека потока по-умолчанию, это может + быть при использовани каких-либо сторонних плагинов (PAM, ODBC) или на + некоторых платформах (некоторые версии FreeBSD на amd64). Можно решить + проблему с помощью опции 'stacksize' или '-S', поддерживаемых в 0.8.4 и выше. +
Пример файла конфигурации 3proxy.cfg.sample поставляется с любым дистрибутивом @@ -386,6 +490,24 @@
proxy -p8080 -i192.168.1.1 proxy -p8080 -i192.168.2.1+
+ A: Для этого надо использовать тип родительского прокси http, + connect+, socks4+ и socks5+. Однако, при это надо помнить, что самому 3proxy + требуется разрешение имени для управления ACL. Поэтому, если с прокси-хоста + не работают разрешения имени, необходимо в конфигурации дать команду +
+ fakeresolve+ которая разрешает любое имя в адрес 127.0.0.2. + +
+ Есть поддержка как FTP через HTTP (то, что называется FTP прокси в браузерах) так и настоящего FTP прокси (то, что называется + FTP proxy в командных оболочках и FTP клиентах). В браузерах в качестве FTP прокси следует прописывать порт службы proxy, + т.е. FTP организован + через http прокси, дополнительного прокси поднимать не надо. Для FTP-клиентов необходимо поднять ftppr. FTP прокси всегда работает + с FTP сервером в пассивном режиме. +
Во-первых, для ограничения доступа необходимо указать внутренний интерфейс, @@ -614,6 +736,74 @@ того, чтобы видеть в логах записи о посещаемых пользвоателем ресурсах и загружаемых файлах даже в том случае, если он подключается через SOCKS.
++
+ A: Чтобы иметь в логах URL запросов, если пользователь SOCKS пользуется + Web, FTP или POP3. +
++ A: Перенапраление невозможно для web-серверов или FTP, висящих на + нестандартных портах, для SOCKSv4 не поддрживается авторизация с + паролем (IE поддерживает только SOCKSv4), но при этом IE передает + имя пользователя по SOCKSv4 (имя, с которым пользователь вошел в систему). + Для SOCKSv5 не поддерживается NTLM авторизация, пароли передаются в открытом + тексте. +
++ A: Достаточно в настройках IE только указать адрес SOCKS прокси. В + больших сетях можно для этого использовать WPAD (автоматическое + обнаружение прокси). В 3proxy достаточно запускать только одну службу + (socks). Если используется только Internet Explorer, то можно + автоматически получать имя пользователя в логах, не запрашивая + логин/пароль. +
++ A: Указывается parent http proxy со специальным адресом 0.0.0.0 и портом + 0. Пример: +
+ allow * * * 80,8080-8088 + parent 1000 http 0.0.0.0 0 + allow * * * 80,8080-8088 + #перенаправить соединения по портам 80 и 8080-8088 в локальный + #http прокси. Вторая команда allow необходима, т.к. контроль доступа + #осуществляется 2 раза - на уровне socks и на уровне HTTP прокси + allow * * * 21,2121 + parent 1000 ftp 0.0.0.0 0 + allow * * * 21,2121 + #перенаправить соединения по портам 21 и 2121 в локальный + #ftp прокси + allow * + #пустить все соединения напрямую + socks+ +
+ A: После внутреннего перенаправления правила рассматриваются еще раз за + исключением самого правила с перенаправлением (т.е. обработка правил не + прекращается). Это позволяет сделать дальнейшие перенаправления на + внешний прокси. По этой же причине локальное перенаправление не должно + быть последним правилом (т.е. должно быть еще хотя бы правило allow, + чтобы разрешить внешние соединения через HTTP прокси). + Например, +
+ allow * * * 80,8080-8088 + parent 1000 http 0.0.0.0 0 + #перенаправить во внутренний прокси + allow * * $c:\3proxy\local.nets 80,8080-8088 + #разрешить прямой web-доступ к сетям из local.nets + allow * * * 80,8080-8088 + parent 1000 http proxy.3proxy.ru 3128 + #все остальные веб-запросы перенаправить на внешний прокси-сервер + allow * + #разрешить socks-запросы по другим портам+ +
Сам по себе прокси не может управлять маршрутизацией пакетов сетевого уровня.
@@ -742,33 +932,26 @@
amount - объем трафика на указанный период в мегабайтах.
- Очень часто списки сетей и пользователей бывают достаточно громоздкими. - 3proxy не поддерживает создание групп, но позволяет включение файлов. Это - означает, что для удобства администрирования выгодно хранить списки - пользователей и списки сетей в отдельных файлах и при необходимости дать - пользователю доступ к тому или иному ресурсу, править файл со списком - пользователей или сетей вместо того, чтобы править сам файл 3proxy.cfg. В файле - 3proxy.cfg файл со списком можно включить с помощью макроса $. - Поскольку в 3proxy есть ограничения на максимальный размер элемента - конфигурации, большие списки следует разбивать на несколько файлов и - использовать несколько записей списка контроля доступом. - В комплекте с 3proxy поставляется утилита dighosts, которая позволяет построить - список сетей по странице Web. Утилита осуществляет поиск адресов на Web-странице - в формате АДРЕС МАСКА или АДРЕС/ДЛИНА. Утилиту dighosts можно вызвать во время - старта 3proxy, используя команду system. Например: -
- system "dighosts http://provider/network.html local.networks" - allow * * $local.networks - allow * - parent 1000 proxy.provider 3128 * - proxy - flush- В данном случае в файле local.networks генерируется список локальных сетей по - странице networklist.html. Далее используется список контроля доступа для того, - чтобы разрешить локальному прокси-серверу доступ к локальным сетям напрямую, - а все остальные запросы перенаправить на прокси-сервер провайдера. + Следует учитывать, что 3proxy считает трафик только на прикладном уровне и + только проходящий через прокси-сервер. Провайдеры и другие средства учета + трафика считают трафик на сетевом уровне, что уже дает расхождение порядка 10% + за счет информации из заголовков пакетов. Кроме того, часть трафика, как + минимум DNS-разрешения, различный флудовый трафик и т.д. идут мимо прокси. + Уровень "шумового" трафика в Internet сейчас составляет порядка 50KB/день на + каждый реальный IP адрес, но может сильно варьироваться в зависимости от сети, + наличия открытых портов, реакции на ping-запросы и текущего уровня вирусной + активности. По этим причинам, если 3proxy используется чтобы не "выжрать" + трафик, выделенный провайдером, всегда следует делать некий запас порядка + 15%. + +
+ Если на одной с 3proxy машине имеются какие-либо сервисы или + работает пользователь, то их трафик не проходит через proxy-сервер и так же + не будет учтен. Если где-то есть NAT, то клиенты, выходящие через NAT мимо + прокси, так же останутся неучтенными. Если расхождение с провайдером превышает + 10% - нужно искать причину именно в этом.
@@ -827,19 +1010,6 @@ tcppm -R0.0.0.0:1234 3128 1.1.1.1 3128 В настройках браузера указывается host.dyndns.example.org:3128.
-- Команда dialer задает программу, которая будет запускаться при - невозможности разрешить имя компьютера, например: -
- dialer "rasdial PROVIDER"- (описание rasdial можно найти на сервере поддержки Microsoft). - Есть два аспекта: невозможность разрешения имени еще не свидетельствует - об отсутствии соединения (это должна учитывать вызываемая программа), - при использовании nscache имя может разрешиться при отсутствии - соединения. В таких случаях полезно запрашивать заведомо несуществующий - ресурс, например, http://dial.right.now/. -