From 2ea1c069fcf686b84d364b025bb81fbb0cd01c39 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Mon, 27 Apr 2026 21:01:21 +0300 Subject: [PATCH] Update wiki --- 3proxy.cfg.md | 571 +++++++++++++++++++++++--------------------- How-To-(русский).md | 2 +- How-To.md | 2 +- ftppr.md | 2 +- pop3p.md | 4 +- smtpp.md | 2 +- 6 files changed, 301 insertions(+), 282 deletions(-) diff --git a/3proxy.cfg.md b/3proxy.cfg.md index b343ff8..af76198 100644 --- a/3proxy.cfg.md +++ b/3proxy.cfg.md @@ -84,10 +84,10 @@ smtpp [options]
ftppr
[options]
admin
[options]
dnspr
[options]
-tcppm
[options] <SRCPORT> <DSTADDR> -<DSTPORT>
-udppm
[options] <SRCPORT> <DSTADDR> -<DSTPORT>
+tcppm [options] <SRCPORT> <DSTADDR> +<DSTPORT>
+udppm
[options] <SRCPORT> <DSTADDR> +<DSTPORT>
Descriptions:
proxy
HTTP/HTTPS proxy (default port 3128)
socks
SOCKS 4/4.5/5 proxy (default port 1080)
@@ -111,15 +111,14 @@ specified for syntax compatibility.
udppm
UDP portmapper

Options:
--pNUMBER
change default server port to NUMBER
--n
disable NTLM authentication (required if passwords -are stored in Unix crypt format).
--n1
enable NTLMv1 authentication.
--g(GRACE_TRAFF,GRACE_NUM,GRACE_DELAY)
delay GRACE_DELAY -milliseconds before polling if average polling size is below -GRACE_TRAFF bytes and GRACE_NUM read operations in a single -direction are detected within 1 second. Useful to minimize -polling -s
+-p
NUMBER change default server port to NUMBER +
+ +-g(
GRACE_TRAFF,GRACE_NUM,GRACE_DELAY) +delay GRACE_DELAY milliseconds before polling if average +polling size is below GRACE_TRAFF bytes and GRACE_NUM read +operations in a single direction are detected within 1 +second. Useful to minimize polling -s
(for admin) secure, allow only secure operations, currently only traffic counters view without ability to reset.
(for dnspr) simple, do not use resolver and 3proxy cache, @@ -142,35 +141,37 @@ packed in IPv6 in IPV6_V6ONLY compatible way.
resolvable
-64
Resolve IPv4 addresses if IPv6 address is not resolvable
--RHOST:port
listen on given local HOST:port for incoming -connections instead of making remote outgoing connection. -Can be used with another 3proxy service running -r option -for connect back functionality. Most commonly used with -tcppm. HOST can be given as IP or hostname, useful in case -of dynamic DNS.
--rHOST:port
connect to given remote HOST:port instead of -listening local connection on -p or default port. Can be -used with another 3proxy service running -R option for -connect back functionality. Most commonly used with proxy or -socks. HOST can be given as IP or hostname, useful in case -of dynamic DNS.
--ocOPTIONS, -osOPTIONS, -olOPTIONS, -orOPTIONS, --oROPTIONS
options for proxy-to-client (oc), -proxy-to-server (os), proxy listening (ol), connect back -client (or), connect back listening (oR) sockets. Options -like TCP_CORK, TCP_NODELAY, TCP_DEFER_ACCEPT, TCP_QUICKACK, -TCP_TIMESTAMPS, USE_TCP_FASTOPEN, SO_REUSEADDR, -SO_REUSEPORT, SO_PORT_SCALABILITY, SO_REUSE_UNICASTPORT, -SO_KEEPALIVE, SO_DONTROUTE may be supported depending on OS. -
--DiINTERFACE, -DeINTERFACE
bind internal interface / -external interface to given INTERFACE (e.g. eth0) if -SO_BINDTODEVICE is supported by the system. You may need to -run as root or have CAP_NET_RAW capability in order to bind -to an interface, depending on the system, so this option may +-R
HOST:port listen on given local +HOST:port for incoming connections instead of making remote +outgoing connection. Can be used with another 3proxy service +running -r option for connect back functionality. Most +commonly used with tcppm. HOST can be given as IP or +hostname, useful in case of dynamic DNS.
+-r
HOST:port connect to given remote +HOST:port instead of listening local connection on -p or +default port. Can be used with another 3proxy service +running -R option for connect back functionality. Most +commonly used with proxy or socks. HOST can be given as IP +or hostname, useful in case of dynamic DNS.
+-oc
OPTIONS, -osOPTIONS, +-olOPTIONS, -orOPTIONS, +-oROPTIONS options for proxy-to-client +(-oc), proxy-to-server (-os), proxy listening +(-ol), connect back client (-or), connect back +listening (-oR) sockets. Options like TCP_CORK, +TCP_NODELAY, TCP_DEFER_ACCEPT, TCP_QUICKACK, TCP_TIMESTAMPS, +USE_TCP_FASTOPEN, SO_REUSEADDR, SO_REUSEPORT, +SO_PORT_SCALABILITY, SO_REUSE_UNICASTPORT, SO_KEEPALIVE, +SO_DONTROUTE may be supported depending on OS.
+-Di
INTERFACE, -DeINTERFACE bind +internal (-Di) / external (-De) interface to +given INTERFACE (e.g. eth0) if SO_BINDTODEVICE is +supported by the system. You may need to run as root or have +CAP_NET_RAW capability in order to bind to an +interface, depending on the system, so this option may require root privileges and can be incompatible with some -configuration commands like chroot and setuid (and daemon if -setcap is used).
+configuration commands like chroot and setuid +(and daemon if setcap is used).
-e
External address. IP address of the interface the proxy should initiate connections from. External IP must be specified if you need incoming connections. By default the @@ -207,10 +208,10 @@ proxy access must be authenticated, you can specify username as proxy_username:proxy_password:POP3_username@pop3server
DNS proxy resolves any types of records but only hostnames -are cached. It requires nserver/nscache to be configured. If -nserver is configured as TCP, redirections are applied on -connection, so parent proxy may be used to resolve names to -IP.
+are cached. It requires nserver/nscache to be +configured. If nserver is configured as TCP, +redirections are applied on connection, so parent proxy may +be used to resolve names to IP.
FTP proxy can be used as FTP server in any FTP client or configured as FTP proxy on a client with FTP proxy support. Username format is one of
@@ -224,11 +225,11 @@ authentication use proxyuser:proxypassword:FTPuser as FTP username, otherwise do not change original FTP user name

include -<path>
+<path>
Include config file

config -<path>
+<path>
Path to configuration file to use on 3proxy restart or to save configuration.

@@ -244,20 +245,20 @@ using it.

End of configuration

log -[[@|&]logfile] [<LOGTYPE>]
+[[@|&]logfile] [<LOGTYPE>]
sets logfile for all gateways
@ (for Unix) use syslog, filename is used as ident name
& use ODBC, filename consists of comma-delimited datasource,username,password (username and password are optional)
radius - use RADIUS for logging
-LOGTYPE is one of:
-c Minutely
-H Hourly
-D Daily
-W Weekly (starting from Sunday)
-M Monthly
-Y Annually
+LOGTYPE is one of:
+c
Minutely
+H
Hourly
+D
Daily
+W
Weekly (starting from Sunday)
+M
Monthly
+Y
Annually
if logfile is not specified logging goes to stdout. You can specify individual logging options for gateway by using -l option in gateway configuration.
@@ -270,12 +271,12 @@ Grinwitch time zone for all time-based format specificators.

rotate -<n>
+<n>
how many archived log files to keep

logformat -<format>
+<format>
Format for log record. First symbol in format must be L (local time) or G (absolute Grinwitch time). It can be preceeded with -XXX+Y where XXX is list of characters to be @@ -332,7 +333,8 @@ l_service, l_in, l_out, l_descr) values (´%d-%m-%Y ´%T´)"

logdump -<in_traffic_limit> <out_traffic_limit>
+<in_traffic_limit> <out_traffic_limit> +
Immediately creates additional log records if given amount of incoming/outgoing traffic is achieved for connection, without waiting for connection to finish. It may be useful @@ -341,7 +343,7 @@ server shutdown.

delimchar -<char>
+<char>
Sets the delimiter character used to separate username from hostname in proxy authentication strings (e.g. for FTP, POP3 proxies). Default is ´@´. For example, to use @@ -349,48 +351,50 @@ proxies). Default is ´@´. For example, to use to contain the ´@´ character.

archiver -<ext> <commandline>
+<ext> <commandline>
Archiver to use for log files. <ext> is file extension produced by archiver. Filename will be last argument to archiver, optionally you can use %A as produced archive name and %F as filename.

timeouts -<BYTE_SHORT> <BYTE_LONG> <STRING_SHORT> +<BYTE_SHORT> <BYTE_LONG> <STRING_SHORT> <STRING_LONG> <CONNECTION_SHORT> <CONNECTION_LONG> <DNS> <CHAIN> -<CONNECT> <CONNECTBACK>
+<CONNECT> <CONNECTBACK>

Sets timeout values, defaults 1, 5, 30, 60, 180, 1800, 15, -60, 15, 5.
-BYTE_SHORT short timeout for single byte, is usually used -for receiving single byte from stream.
-BYTE_LONG long timeout for single byte, is usually used for -receiving first byte in frame (for example first byte in -socks request).
-STRING_SHORT short timeout, for character string within -stream (for example to wait between 2 HTTP headers)
-STRING_LONG long timeout, for first string in stream (for -example to wait for HTTP request).
-CONNECTION_SHORT inactivity timeout for short connections -(HTTP, POP3, etc).
-CONNECTION_LONG inactivity timeout for long connection -(SOCKS, portmappers, etc).
-DNS timeout for DNS request before requesting next server +60, 15, 5.
+BYTE_SHORT
short timeout for single byte, is usually +used for receiving single byte from stream.
+BYTE_LONG
long timeout for single byte, is usually used +for receiving first byte in frame (for example first byte in +socks request).
+STRING_SHORT
short timeout, for character string within +stream (for example to wait between 2 HTTP headers)
+STRING_LONG
long timeout, for first string in stream +(for example to wait for HTTP request).
+CONNECTION_SHORT
inactivity timeout for short +connections (HTTP, POP3, etc).
+CONNECTION_LONG
inactivity timeout for long connection +(SOCKS, portmappers, etc).
+DNS
timeout for DNS request before requesting next +server
+CHAIN
timeout for reading data from chained connection
-CHAIN timeout for reading data from chained connection
default timeouts 1 5 30 60 180 1800 15 60 15 5

maxseg -<value>
+<value>
Sets TCP maximum segment size (MSS) for outgoing connections. This can be used to work around path MTU discovery issues or to optimize traffic for specific network conditions.

radius -<NAS_SECRET> -<radius_server_1[:port][/local_address_1]> -<radius_server_2[:port][/local_address_2]>
+<NAS_SECRET> +<radius_server_1[:port][/local_address_1] +<radius_server_2[:port][/local_address_2] +
Configures RADIUS servers to be used for logging and authentication (log and auth types must be set to radius). port and local address to use with given server may be @@ -409,12 +413,12 @@ CONNECT), Login-TCP-Port: (requested port), Login-IPv6-Host / Login-IP-Host: (requested IP).
Supported reply attributes for authentication: Framed-IP-Address / Framed-IPv6-Address (IP to assign to -user), Reply-Message. Use authcache to speedup +user), Reply-Message. Use authcache to speedup authentication. RADIUS feature is currently experimental.

nserver -<ipaddr>[:port][/tcp]
+<ipaddr>[:port][/tcp]
Nameserver to use for name resolutions. If none specified system routines for name resolution is used. Optional port number may be specified. If optional /tcp is added to IP @@ -422,33 +426,36 @@ address, name resolution is performed over TCP.

authnserver -<ipaddr>[:port][/tcp]
+<ipaddr>[:port][/tcp]
Nameserver to use for DNS-based authentication (e.g. dnsname auth type). If not specified, nserver is used. The syntax is the same as for nserver.

nscache -<cachesize> nscache6 <cachesize>
-Cache <cachesize> records for name resolution (nscache -for IPv4, nscache6 for IPv6). The cache size should usually -be large enough (for example, 65536).

+<cachesize> nscache6 +<cachesize>
+Cache <cachesize> records for name resolution +(nscache for IPv4, nscache6 for IPv6). The +cache size should usually be large enough (for example, +65536).

nsrecord -<hostname> <hostaddr>
-Adds static record to nscache. nscache must be enabled. If -0.0.0.0 is used as a hostaddr host will never resolve, it -can be used to blacklist something or together with -dialer command to set up UDL for dialing.

+<hostname> <hostaddr>
+Adds static record to nscache. nscache must be +enabled. If 0.0.0.0 is used as a hostaddr host will never +resolve, it can be used to blacklist something or together +with dialer command to set up UDL for dialing.

fakeresolve
All names are resolved to the 127.0.0.2 address. Useful if -all requests are redirected to a parent proxy with http, -socks4+, connect+ or socks5+.

+all requests are redirected to a parent proxy with +http, socks4+, connect+ or +socks5+.

dialer -<progname>
+<progname>
Execute progname if external name can´t be resolved. Hint: if you use nscache, dialer may not work, because names will be resolved through cache. In this case you can use @@ -456,7 +463,7 @@ something like http://dial.right.now/ from browser to set up connection.

internal -<ipaddr>
+<ipaddr>
sets ip address of internal interface. This IP address will be used to bind gateways. Alternatively you can use -i option for individual gateways. Since 0.8 version, IPv6 @@ -470,27 +477,29 @@ using Unix sockets, the socket file is automatically created and removed on service start/stop.

external -<ipaddr>
+<ipaddr>
sets ip address of external interface. This IP address will be source address for all connections made by proxy. Alternatively you can use -e option to specify individual -address for gateway. Since 0.8 version External or -e can be -given twice: once with IPv4 and once with IPv6 address.

+address for gateway. Since 0.8 version External or -e +can be given twice: once with IPv4 and once with IPv6 +address.

maxconn -<number>
+<number>
sets the maximum number of simultaneous connections to each service started after this command at the network level. Default is 100.
-To limit clients, use connlim instead. maxconn will silently -ignore new connections, while connlim will report back to -the client that the connection limit has been reached.

+To limit clients, use connlim instead. maxconn +will silently ignore new connections, while connlim +will report back to the client that the connection limit has +been reached.

backlog
sets the listening socket backlog of new connections. -Default is 1 + maxconn/8. Maximum value is capped by kernel -tunable somaxconn.

+Default is 1 + maxconn/8. Maximum value is capped by +kernel tunable somaxconn.

service
@@ -504,35 +513,35 @@ reinstall the service.


Should be specified to close the console. Do not use ´daemon´ with ´service´. At least -under FreeBSD, ´daemon´ should precede any proxy +under FreeBSD, daemon should precede any proxy service and log commands to avoid socket problems. Always place it in the beginning of the configuration file.

auth -<authtype> [...]
-Type of user authorization. Currently supported:
-none - no authentication or authorization required.
+<authtype> [...]
+Type of user authorization. Currently supported:
+none
- no authentication or authorization required.
Note: if auth is none, any IP-based limitation, redirection, etc. will not work. This is the default authentication type -
-iponly - authentication by access control list with username -ignored.
-Appropriate for most cases
-useronly - authentication by username without checking for -any password with authorization by ACLs. Useful for e.g. +
+iponly
- authentication by access control list with +username ignored.
+Appropriate for most cases
+useronly
- authentication by username without checking +for any password with authorization by ACLs. Useful for e.g. SOCKSv4 proxy and icqpr (icqpr set UIN / AOL screen name as -a username)
-dnsname - authentication by DNS hostname with authorization -by ACLs. The DNS hostname is resolved via a PTR (reverse) -record and validated (the resolved name must resolve to the -same IP address). It´s recommended to use authcache by -IP for this authentication. NB: there is no password check; -the name may be spoofed.
-strong - username/password authentication required. It will -work with SOCKSv5, FTP, POP3 and HTTP proxy.
-cache - cached authentication, may be used with -´authcache´.
-radius - authentication with RADIUS.
+a username)
+dnsname
- authentication by DNS hostname with +authorization by ACLs. The DNS hostname is resolved via a +PTR (reverse) record and validated (the resolved name must +resolve to the same IP address). It´s recommended to +use authcache by IP for this authentication. NB: there is no +password check; the name may be spoofed.
+strong
- username/password authentication required. It +will work with SOCKSv5, FTP, POP3 and HTTP proxy.
+cache
- cached authentication, may be used with +´authcache´.
+radius
- authentication with RADIUS.
Plugins may add additional authentication types.

It´s @@ -550,38 +559,39 @@ shared ones.

authcache -<cachtype> <cachtime>
+<cachtype> <cachtime> <cachesize> +
Cache authentication information for a given amount of time -(cachetime) in seconds. Cachetype is one of:
-ip - after successful authentication all connections during -caching time from same IP are assigned to the same user, -username is not requested.
-ip,user username is requested and all connections from the -same IP are assigned to the same user without actual -authentication.
-user - same as above, but IP is not checked.
-user,password - both username and password are checked -against cached ones.
-limit - limit user to use only one ip, ´ip´ and -´user´ are required
-acl - only use cached auth if user access service with same -ACL
-ext - cache external IP
-Use auth type ´cache´ for cached -authentication

+(cachetime) in seconds. cachesize limits number of cache +entries. Cachetype is one of:
+ip
- after successful authentication all connections +during caching time from same IP are assigned to the same +user, username is not requested.
+ip,user
username is requested and all connections from +the same IP are assigned to the same user without actual +authentication.
+user
- same as above, but IP is not checked.
+user,password
- both username and password are checked +against cached ones.
+limit
- limit user to use only one ip, ´ip´ +and ´user´ are required
+ack
- only use cached auth if user access service with +same ACL
+ext
- cache external IP
+Use auth type cache for cached authentication

allow -<userlist> <sourcelist> <targetlist> +<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> -<weekdayslist> <timeperiodslist>
-deny
<userlist> <sourcelist> +<weekdayslist> <timeperiodslist>

+deny
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-redirect
<ip> <port> <userlist> +<timeperiodslist>

+redirect
<ip> <port> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
+<timeperiodslist>

Access control entries. All lists are comma-separated, no spaces are allowed. Usernames are case sensitive (if used with authtype nbname username must be in uppercase). Source @@ -607,27 +617,28 @@ should either bind proxy to appropriate interface only or to use ip filters.

Operation is one -of:
-CONNECT establish outgoing TCP connection
-BIND bind TCP port for listening
-UDPASSOC make UDP association
-ICMPASSOC make ICMP association (for future use)
-HTTP_GET HTTP GET request
-HTTP_PUT HTTP PUT request
-HTTP_POST HTTP POST request
-HTTP_HEAD HTTP HEAD request
-HTTP_CONNECT HTTP CONNECT request
-HTTP_OTHER over HTTP request
-HTTP matches any HTTP request except HTTP_CONNECT
-HTTPS same as HTTP_CONNECT
-FTP_GET FTP get request
-FTP_PUT FTP put request
-FTP_LIST FTP list request
-FTP_DATA FTP data connection. Note: FTP_DATA requires access -to dynamic non-privileged (1024-65535) ports on the remote -side.
-FTP matches any FTP/FTP Data request
-ADMIN access to administration interface

+of:
+CONNECT
establish outgoing TCP connection
+BIND
bind TCP port for listening
+UDPASSOC
make UDP association
+ICMPASSOC
make ICMP association (for future use)
+HTTP_GET
HTTP GET request
+HTTP_PUT
HTTP PUT request
+HTTP_POST
HTTP POST request
+HTTP_HEAD
HTTP HEAD request
+HTTP_CONNECT
HTTP CONNECT request
+HTTP_OTHER
over HTTP request
+HTTP
matches any HTTP request except HTTP_CONNECT +
+HTTPS
same as HTTP_CONNECT
+FTP_GET
FTP get request
+FTP_PUT
FTP put request
+FTP_LIST
FTP list request
+FTP_DATA
FTP data connection. Note: FTP_DATA requires +access to dynamic non-privileged (1024-65535) ports on the +remote side.
+FTP
matches any FTP/FTP Data request
+ADMIN
access to administration interface

Weekdays are week day numbers or periods, 0 or 7 means Sunday, 1 is @@ -638,8 +649,8 @@ HH:MM:SS-HH:MM:SS format. For example, hours.

parent -<weight> <type> <ip> <port> -<username> <password>
+<weight> <type> <ip> <port> +<username> <password>
this command must follow "allow" rule. It extends last allow rule to build proxy chain. Proxies may be grouped. Proxy inside the group is selected randomly. If few @@ -668,45 +679,51 @@ pipelined (keep-alive) requests in the same connection use the same chain.

type is one of: -
-extip does not actually redirect the request; it sets the -external address for this request to <ip>. It can be -chained with another parent type. It’s useful to set -the external IP based on ACL or make it random.
-tcp simply redirect connection. TCP is always last in chain. -This type of proxy is a simple TCP redirection, it does not -support parent authentication.
-http redirect to HTTP proxy. HTTP is always the last chain. -It should only be used with http (proxy) service, if used -with different service, it works as tcp redirection.
-pop3 redirect to POP3 proxy (only local redirection is -supported, can only be used as a first hop in chaining)
-ftp redirect to FTP proxy (only local redirection is -supported, can only be used as a first hop in chaining)
-connect parent is HTTP CONNECT method proxy
-connect+ parent is HTTP CONNECT proxy with name resolution -(hostname is used instead of IP if available)
-socks4 parent is SOCKSv4 proxy
-socks4+ parent is SOCKSv4 proxy with name resolution -(SOCKSv4a)
-socks5 parent is SOCKSv5 proxy
-socks5+ parent is SOCKSv5 proxy with name resolution
-socks4b parent is SOCKS4b (broken SOCKSv4 implementation +
+extip
does not actually redirect the request; it sets +the external address for this request to <ip>. +It can be chained with another parent type. It’s +useful to set the external IP based on ACL or make it +random.
+tcp
simply redirect connection. TCP is always last in +chain. This type of proxy is a simple TCP redirection, it +does not support parent authentication.
+http
redirect to HTTP proxy. HTTP is always the last +chain. It should only be used with http (proxy) service, if +used with different service, it works as tcp redirection. +
+pop3
redirect to POP3 proxy (only local redirection is +supported, can only be used as a first hop in chaining) +
+ftp
redirect to FTP proxy (only local redirection is +supported, can only be used as a first hop in chaining) +
+connect
parent is HTTP CONNECT method proxy
+connect+
parent is HTTP CONNECT proxy with name +resolution (hostname is used instead of IP if available) +
+socks4
parent is SOCKSv4 proxy
+socks4+
parent is SOCKSv4 proxy with name resolution +(SOCKSv4a)
+socks5
parent is SOCKSv5 proxy
+socks5+
parent is SOCKSv5 proxy with name resolution +
+socks4b
parent is SOCKS4b (broken SOCKSv4 implementation with shortened server reply; I never saw this kind of server, but they say there are some). Normally you should not use this option. Do not confuse this option with -SOCKSv4a (socks4+).
-socks5b parent is SOCKS5b (broken SOCKSv5 implementation +SOCKSv4a (socks4+).
+socks5b
parent is SOCKS5b (broken SOCKSv5 implementation with shortened server reply. I think you will never find it useful). Never use this option unless you know exactly you -need it.
-admin redirect request to local ´admin´ service -(with -s parameter).
-ha send HAProxy PROXY protocol v1 header to parent proxy. -Must be the last in the proxy chain. Useful for passing -client IP information to the parent proxy. Example: parent -1000 ha
-Use "+" proxy only with "fakeresolve" +need it.
+admin
redirect request to local ´admin´ +service (with -s parameter).
+ha
send HAProxy PROXY protocol v1 header to parent +proxy. Must be the last in the proxy chain. Useful for +passing client IP information to the parent proxy. Example: +parent 1000 ha
+Use "+" proxy only with fakeresolve option

IP and port are @@ -748,26 +765,26 @@ HTTP proxy, local HTTP proxy parses requests and allows only GET and POST requests.
parent 1000 http 1.2.3.4 0
Changes the external address for a given connection to -1.2.3.4 (equivalent to -e1.2.3.4)
+1.2.3.4 (equivalent to -e1.2.3.4)
Optional username and password are used to authenticate on parent proxy. Username of ´*´ means username must be supplied by user.

parentretries -<number>
+<number>
Number of retries to connect to parent proxy. Default is 1.

nolog -<n>
+<n>
extends last allow or deny command to prevent logging, e.g.
allow * * 192.168.1.1
nolog

weight -<n>
+<n>
extends last allow or deny command to set weight for this request
allow * * 192.168.1.1
@@ -785,30 +802,31 @@ connections.

bandlimin -<rate> <userlist> <sourcelist> +<rate> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-nobandlimin
<userlist> <sourcelist> +<timeperiodslist>

+nobandlimin
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-bandlimout
<rate> <userlist> +<timeperiodslist>

+bandlimout
<rate> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-nobandlimout
<userlist> <sourcelist> +<timeperiodslist>

+nobandlimout
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-bandlim sets a bandwidth limitation filter to <rate> -bps (bits per second). If you want to specify bytes per -second, multiply your value by 8. bandlim rules act in the -same manner as allow/deny rules, except for one thing: -bandwidth limiting is applied to all services, not to some -specific service. bandlimin and nobandlimin apply to -incoming traffic
-bandlimout and nobandlimout apply to outgoing traffic
+<timeperiodslist>

+bandlim sets a bandwidth limitation filter to +<rate> bps (bits per second). If you want to +specify bytes per second, multiply your value by 8. bandlim +rules act in the same manner as allow/deny rules, except for +one thing: bandwidth limiting is applied to all services, +not to some specific service. bandlimin and +nobandlimin apply to incoming traffic
+bandlimout
and nobandlimout apply to outgoing +traffic
If you want to ratelimit your clients with IPs 192.168.10.16/30 (4 addresses) to 57600 bps, you have to specify 4 rules like
@@ -826,53 +844,54 @@ nobandlimin * * * 110
before the rest of bandlim rules.

connlim -<rate> <period> <userlist> +<rate> <period> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-noconnlim
<userlist> <sourcelist> +<timeperiodslist>

+noconnlim
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
+<timeperiodslist>

connlim sets connections rate limit per time period for traffic pattern controlled by ACL. Period is in seconds. If -period is 0, connlim limits a number of parallel +period is 0, connlim limits a number of parallel connections.
connlim 100 60 * 127.0.0.1
allows 100 connections per minute for 127.0.0.1.
connlim 20 0 * 127.0.0.1
allows 20 simultaneous connections for 127.0.0.1.
-Like with bandlimin, if an individual limit is required per -client, a separate rule must be added for every client. Like -with nobandlimin, noconnlim adds an exception.

+Like with bandlimin, if an individual limit is +required per client, a separate rule must be added for every +client. Like with nobandlimin, noconnlim adds an +exception.

counter -<filename> <reporttype> <reportname> -
-countin
<number> <type> <limit> +<filename> <reporttype> +<reportname>
+countin
<number> <type> <limit> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> -<weekdayslist> <timeperiodslist>
-nocountin
<userlist> <sourcelist> +<weekdayslist> <timeperiodslist>

+nocountin
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-countout
<number> <type> <limit> +<timeperiodslist>

+countout
<number> <type> <limit> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> -<weekdayslist> <timeperiodslist>
-nocountout
<userlist> <sourcelist> +<weekdayslist> <timeperiodslist>

+nocountout
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>
-countall
<number> <type> <limit> +<timeperiodslist>

+countall
<number> <type> <limit> <userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> -<weekdayslist> <timeperiodslist>
-nocountall
<userlist> <sourcelist> +<weekdayslist> <timeperiodslist>

+nocountall
<userlist> <sourcelist> <targetlist> <targetportlist> <operationlist> <weekdayslist> -<timeperiodslist>

+<timeperiodslist>

counter, countin, nocountin, countout, nocountout, countall, @@ -885,28 +904,27 @@ not preserved in the counter file (that is, if the proxy is restarted, all counters with 0 are flushed); otherwise, it should be a unique sequential number which points to the position of the counter within the file. Type specifies a -type of counter. Type is one of:
-H - counter is reset hourly
-D - counter is reset daily
-W - counter is reset weekly
-M - counter is reset monthly
+type of counter. Type is one of:
+H
- counter is reset hourly
+D
- counter is reset daily
+W
- counter is reset weekly
+M
- counter is reset monthly
reporttype/reportname may be used to generate traffic reports. Reporttype is one of D, W, M, H (hourly) and reportname specifies the filename template for reports. The report is a text file with counter values in the format: -
-<COUNTERNUMBER> <TRAF>
+
+<COUNTERNUMBER> <TRAF>

The rest of parameters is identical to -bandlim/nobandlim.

+bandlim/nobandlim.

users -username[:pwtype:password] ...
+username[:pwtype:password] ...
pwtype is one of:
-none (empty) - use system authentication
-CL - password is cleartext
-CR - password is crypt-style password
-NT - password is NT password (in hex)
-LM - password is LM password (in hex)
+none (empty) - use system authentication
+CL
- password is cleartext
+CR
- password is crypt-style password
+NT
- password is NT password (in hex)
example:
users test1:CL:password1 "test2:CR:$1$lFDGlder$pLRb4cU2D7GAT58YQvY49."
@@ -938,42 +956,43 @@ socks
sets different ACLs for pop3p and socks

system -<command>
+<command>
execute system command

pidfile -<filename>
+<filename>
write pid of current process to file. It can be used to manipulate 3proxy with signals under Unix. Currently next signals are available:

monitor -<filename>
+<filename>
If file monitored changes in modification time or size, 3proxy reloads configuration within one minute. Any number of files may be monitored.

setuid -<uid>
+<uid>
calls setuid(uid), uid can be numeric or since 0.9 username. Unix only. Warning: under some Linux kernels setuid() works for current thread only. It makes it impossible to suid for all threads.

setgid -<gid>
+<gid>
calls setgid(gid), gid can be numeric or since 0.9 groupname. Unix only.

chroot -<path> [<uid>] [<gid>]
+<path> [<uid>] +[<gid>]
calls chroot(path) and sets gid/uid. Unix only. uid/gid supported since 0.9, can be numeric or username/groupname

stacksize -<value_to_add_to_default_stack_size>
+<value_to_add_to_default_stack_size>
Change the default size for thread stacks. May be required in some situations, e.g. with non-default plugins, or on some platforms (some FreeBSD versions may require adjusting @@ -992,8 +1011,8 @@ negative values.

plugin -<path_to_shared_library> <function_to_call> -[<arg1> ...]
+<path_to_shared_library> +<function_to_call> [<arg1> ...]
Loads specified library and calls given export function with given arguments, as
int functions_to_call(struct pluginlink * pl, int argc, char @@ -1003,7 +1022,7 @@ function_to_call must return 0 in case of success, value

filtermaxsize -<max_size_of_data_to_filter>
+<max_size_of_data_to_filter>
If Content-length (or another data length) is greater than the given value, no data filtering will be performed through filtering plugins to avoid data corruption and/or diff --git a/How-To-(русский).md b/How-To-(русский).md index 30a09c0..b72935d 100644 --- a/How-To-(русский).md +++ b/How-To-(русский).md @@ -983,7 +983,7 @@ openssl pkcs12 -export -out client.p12 -passout pass: \ или

   users $"c:\Program Files\3proxy\passwords"
- Шифрованные NT и crypt пароли можно создавать с помощью утилиты mycrypt. + Шифрованные NT и crypt пароли можно создавать с помощью утилиты 3proxy_crypt.
Список пользователей един для всех служб. Разграничение доступа по службам необходимо производить с помощью списков доступа.

diff --git a/How-To.md b/How-To.md index f16009c..de6d6c3 100644 --- a/How-To.md +++ b/How-To.md @@ -969,7 +969,7 @@ or
 users $"c:\Program Files\3proxy\passwords"
 
-It's possible to create NT and crypt passwords with the mycrypt utility included +It's possible to create NT and crypt passwords with the 3proxy_crypt utility included in the distribution.
The user list is system-wide. To manage user access to a specific service, use ACLs.

diff --git a/ftppr.md b/ftppr.md index 9485db6..84cb984 100644 --- a/ftppr.md +++ b/ftppr.md @@ -198,7 +198,7 @@ with FTP proxy support, configure internal_ip and FTP proxy support, use internal_ip and port as the FTP server. The address of the real FTP server must be configured as a part of the FTP username. The format for the -username is username@server, where +username is username@server, where server is the address of the FTP server and username is the user´s login on this FTP server. The login itself may contain an ´@´ diff --git a/pop3p.md b/pop3p.md index 53d2963..2ceb3dd 100644 --- a/pop3p.md +++ b/pop3p.md @@ -196,8 +196,8 @@ MUA (Mail User Agent) with POP3 support. Set the client to use internal_ip and port as a POP3 server. The address of the real POP3 server must be configured as a part of the POP3 username. The format for the username is -username@server, where server is -the address of the POP3 server and username is the +username@server, where server is the +address of the POP3 server and username is the user´s login on this POP3 server. The login itself may contain an ´@´ sign. Only cleartext authentication is supported, because challenge-response diff --git a/smtpp.md b/smtpp.md index cb21849..8fcacaf 100644 --- a/smtpp.md +++ b/smtpp.md @@ -196,7 +196,7 @@ MUA (Mail User Agent) with SMTP authentication support. Set the client to use internal_ip and port as an SMTP server. The address of the real SMTP server must be configured as a part of the SMTP username. The format for -the username is username@server, where +the username is username@server, where server is the address of the SMTP server and username is the user´s login on this SMTP server. The login itself may contain an ´@´