Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
3proxy.cfg(8)		    Universal proxy server		 3proxy.cfg(8)

NAME
       3proxy.cfg 3proxy configuration file

DESCRIPTION
	Common structure:
	Configuration  file  is	 a  text file 3proxy reads configuration from.
       Each line of the	file is	a command  executed  immediately,  as  it  was
       given  from  console.  Sequence of commands is important. Configuration
       file as actually	a script for 3proxy executable.	 Each line of the file
       is treated as a blank (space or tab) separated command line. Additional
       space characters	are ignored.  Think about 3proxy as "application level
       router" with console interface.

	Comments:
	Any string beginning with space	character or '#' character is comment.
       It's ignored. <LF>s are ignored.	<CR> is	end of command.

	Quotation:
	Quotation character is " (double quote). Quotation  must  be  used  to
       quote  spaces or	another	special	characters. To use quotation character
       inside quotation	character must be dubbed (BASIC	convention). For exam-
       ple to use HELLO	"WORLD"	as an argument you should  use	it  as	"HELLO
       ""WORLD""".  Good practice is to	quote any argument you use.

	File inclusion:
	You can	include	file by	using $FILENAME	macro (replace FILENAME	with a
       path to file, for example $/usr/local/etc/3proxy/conf.incl or
	$"c:\\Program  Files\3proxy\include.cfg" Quotation is required in last
       example because path contains space character.  For included file  <CR>
       (end  of	 line characters) is treated as	space character	(arguments de-
       limiter instead of end of command delimiter).  Thus, include files  are
       only  useful to store long signle-line commands (like userlist, network
       lists, etc).  To	use dollar sign	 somewhere  in	argument  it  must  be
       quoted.	Recursion is not allowed.

	Next commands start gateway services:

       proxy [options]
       socks [options]
       pop3p [options]
       ftppr [options]
       admin [options]
       dnspr [options]
       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)
       pop3p POP3 proxy	(default port 110)
       ftppr FTP proxy (default	port 21)
       admin Web interface (default port 80)
       dnspr caching DNS proxy (default	port 53)
       tcppm TCP portmapper
       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.
       -s
	(for admin) secure, allow only secure operations, currently only traf-
       fic counters view without ability to reset.
	(for dnspr) simple, do not use resolver	and 3proxy cache,  always  use
       external	DNS server.
	(for  udppm) singlepacket, expect only one packet from both client and
       server
       -u Never	ask for	username/password
       -u2 (for	socks) require username/password in authentication methods
       -a (for proxy) anonymous	proxy (no information about client reported)
       -a1 (for	proxy) anonymous proxy (random client information reported)
       -a2 (for	proxy) generate	Via: and X-Forwared-For: instead of Forwarded:
       -6 Only resolve IPv6 addresses. IPv4 addresses are packed  in  IPv6  in
       IPV6_V6ONLY compatible way.
       -4 Only resolve IPv4 addresses
       -46 Resolve IPv6	addresses if IPv4 address is not 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 lo-
       cal 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), con-
       nect back client	(or), connect back listening  (oR)  sockets.   Options
       like  TCP_CORK,	TCP_NODELAY, TCP_DEFER_ACCEPT, TCP_QUICKACK, TCP_TIME-
       STAMPS, USE_TCP_FASTOPEN, SO_REUSEADDR, SO_REUSEPORT, SO_PORT_SCALABIL-
       ITY, SO_REUSE_UNICASTPORT, SO_KEEPALIVE,	SO_DONTROUTE may be  supported
       depending on OS.
       -DiINTERFACE,  -DeINTERFACE bind	internal interface / external inteface
       to given	INTERFACE (e.g.	eth0) if SO_BINDTODEVICE supported by  system.
       You  may	need to	run as root or to have CAP_NET_RAW capability in order
       to bind to interface, depending on system, so this option  may  require
       root privileges and can be incompatible with some configuraton commands
       like chroot and setuid (and daemon if setcap is used).
       -e External address. IP address of interface proxy should initiate con-
       nections	 from. External	IP must	be specified if	you need incoming con-
       nections.  By default system will deside	which address to use in	accor-
       dance with routing table.
       -i Internal address. IP address proxy accepts connections to.   By  de-
       fault connection	to any interface is accepted.
       -N  (for	 socks)	External NAT address 3proxy reports to client for BIND
       and UDPASSOC By default external	address	is reported. It's only	useful
       in the case of IP-IP NAT	(will not work for PAT)
	Also,  all  options mentioned for httppr(8) socks(8) pop3p(8) tcppm(8)
       udppm(8)	ftppr(8)
	are also supported.
	Portmapping services listen at SRCPORT and connect to  DSTADDR:DSTPORT
       HTTP and	SOCKS proxies are standard.
	POP3  proxy must be configured as POP3 server and requires username in
       the form	of: pop3username@pop3server. If	POP3 proxy access must be  au-
       thenticated,  you  can  specify	username as proxy_username:proxy_pass-
       word: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.
	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
	FTPuser@FTPServer
	FTPuser:FTPpassword@FTPserver
	proxyuser:proxypassword:FTPuser:FTPpassword@FTPserver
	Please note, if	you use	FTP client interface for FTP proxy do not  add
       FTPpassword  and	 FTPServer to username,	because	FTP client does	it for
       you. That is, if	you use	3proxy with authentication use proxyuser:prox-
       ypassword:FTPuser as FTP	username, otherwise do not change original FTP
       user name

       include <path>
	Include	config file

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

       writable
	ReOpens	configuration file for write access  via  Web  interface,  and
       rereads	it. Usually should be first command on config file but in com-
       bination	with config it can be used anywhere to open  alternate	config
       file. Think twice before	using it.

       end
	End of configuration

       log [[@|&]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,user-
       name,password (username and password are	optional)
	radius - use RADIUS for	logging
	LOGTYPE	is one of:
	 M Monthly
	 W Weekly (starting from Sunday)
	 D Daily
	 H Hourly
	if logfile is not specified logging goes to stdout.  You  can  specify
       individual  logging  options  for gateway by using -l option in gateway
       configuration.
	log command supports same format specifications	for filename  template
       as  "logformat" (if filename contains '%' sign it's believed to be tem-
       plate).	As with	"logformat" filename must begin	with  'L'  or  'G'  to
       specify Local or	Grinwitch time zone for	all time-based format specifi-
       cators.

       rotate <n>
	how many archived log files to keep

       logformat <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	filtered in user input (any non-print-
       able characters are filtered too	in this	case)  and  Y  is  replacement
       character.  For	example,  "-,%+	L" in the beginning of logformat means
       comma and percent are replaced with space and all  time	based  elemnts
       are in local time zone.
	You can	use:

	 %y Year in 2 digit format
	 %Y Year in 4 digit format
	 %m Month number
	 %o Month abbriviature
	 %d Day
	 %H Hour
	 %M Minute
	 %S Second
	 %t Timstamp (in seconds since 01-Jan-1970)
	 %. milliseconds
	 %z timeZone (from Grinvitch)
	 %D request duration (in milliseconds)
	 %b  average send rate per request (in Bytes per second) this speed is
       typically below connection speed	shown by download manager.
	 %B average receive rate per request (in Bytes per second) this	 speed
       is typically below connection speed shown by download manager.
	 %U Username
	 %N service Name
	 %p service Port
	 %E Error code
	 %C Client IP
	 %c Client port
	 %R Remote IP
	 %r Remote port
	 %i Internal IP	used to	accept client connection
	 %e External IP	used to	establish connection
	 %Q Requested IP
	 %q Requested port
	 %n requested hostname
	 %I bytes In
	 %O bytes Out
	 %h Hops (redirections)	count
	 %T service specific Text
	 %N1-N2T (N1 and N2 are	positive numbers) log only fields from N1 tho-
       rugh N2 of service specific text
	in the case of ODBC logging logformat specifies	SQL statement, for ex-
       mample:
	logformat  "-'+_Linsert	 into  log  (l_date,  l_user, l_service, l_in,
       l_out, l_descr) values ('%d-%m-%Y %H:%M:%S', '%U', '%N',	%I, %O,	'%T')"

       logdump <in_traffic_limit> <out_traffic_limit>
	Immediately creates additional log records if given amount  of	incom-
       ing/outgoing  traffic  is  achieved for connection, without waiting for
       connection to finish.  It may be	useful to  prevent  information	 about
       long-lasting downloads on server	shutdown.

       archiver	<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>	<STRING_LONG> <CONNEC-
       TION_SHORT> <CONNECTION_LONG> <DNS> <CHAIN> <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 receiv-
       ing 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
	default	timeouts 1 5 30	60 180 1800 15 60 15 5

       radius  <NAS_SECRET>  <radius_server_1[:port][/local_address_1]>	  <ra-
       dius_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 specified.
	Attributes within request: User-Name, Password:	(username and password
       if  presented  by  client),  Service Type: Authenticate-Only, NAS-Port-
       Type: NAS-Port-Virtual, NAS-Port-ID: (proxy service port,  e.g.	1080),
       NAS-IPv6-Address	  /   NAS-IP-Address:  (proxy  interface  accessed  by
       client),	 NAS-Identifier:  (text	 identifing  proxy,  e.g.   PROXY   or
       SOCKSv5),  Framed-IPv6-Address  / Framed-IP-Address: (IP	address	of the
       client),	Called-Station-ID: (requested Hostname,	if  presents),	Login-
       Service:	 (type of request, e.g.	1001 - SOCKS CONNECT, 1010 - HTTP GET,
       1013 - HTTP 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 auth-
       cache to	speedup	authentication.	RADIUS feature is currently experimen-
       tal.

       nserver <ipaddr>[:port][/tcp]
	Nameserver to use for name resolutions.	If none	specified system  rou-
       tines  for  name	resolution is used. Optional port number may be	speci-
       fied.  If optional /tcp is added	to IP address, name resolution is per-
       formed over TCP.

       nscache <cachesize> nscache6 <cachesize>
	Cache <cachesize> records  for	name  resolution  (nscache  for	 IPv4,
       nscache6	 for IPv6). Cachesize usually should be	large enougth (for ex-
       ample 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.

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

       dialer <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 something like	http://dial.right.now/
       from browser to set up connection.

       internal	<ipaddr>
	sets ip	address	of internal interface. This IP address will be used to
       bind gateways. Alternatively you	can use	-i option for individual gate-
       ways. Since 0.8 version,	IPv6 address may be used.

       external	<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 Ex-
       ternal  or -e can be given twice: once with IPv4	and once with IPv6 ad-
       dress.

       maxconn <number>
	sets maximum number of simulationeous  connections  to	each  services
       started after this command. Default is 100.

       service
	(depricated).  Indicates  3proxy to behave as Windows 95/98/NT/2000/XP
       service,	no effect for Unix. Not	required for 3proxy 0.6	and above.  If
       you upgraded from previous version of 3proxy use	--remove and --install
       to reinstall service.

       daemon
	Should	be  specified to close console.	Do not use 'daemon' with 'ser-
       vice'.  At least	under FreeBSD 'daemon' should preceed any  proxy  ser-
       vice  and log commands to avoid sockets problem.	Always place it	in the
       beginning of the	configuration file.

       auth <authtype> [...]
	Type of	user authorization. Currently supported:
	none - no authentication or authorization required.
	Note: is auth is none any ip based limitation, redirection,  etc  will
       not work.  This is default authentication type
	iponly - authentication	by access control list with username ignored.
	Appropriate for	most cases
	useronly  -  authentication by username	without	checking for any pass-
       word with authorization by ACLs.	Useful for e.g.	SOCKSv4	proxy and  ic-
       qpr (icqpr set UIN / AOL	screen name as a username)
	dnsname	 - authentication by DNS hostnname with	authorization by ACLs.
       DNS hostname is resolved	via PTR	(reverse) record  and  validated  (re-
       solved  name  must resolve to same IP address). It's recommended	to use
       authcache by ip for this	authentication.	 NB: there is no any  password
       check, 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 possible to use few authentication	types in  the  same  commands.
       E.g.
	auth iponly strong
	In  this  case	'strong'  authentication will be used only in case re-
       source access can not be	performed with 'iponly'	 authentication,  that
       is  username is required	in ACL.	It's usefull to	protect	access to some
       resources with password allowing	passwordless  access  to  another  re-
       sources,	 or  to	 use IP-based authentication for dedicated laptops and
       request username/password for shared ones.

       authcache <cachtype> <cachtime>
	Cache authentication information to given amount of  time  (cachetime)
       in seconds.  Cahtype is one of:
	ip  -  after  successful authentication	all connections	during caching
       time from same IP are assigned to the same user,	username  is  not  re-
       quested.
	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

       allow <userlist>	 <sourcelist>  <targetlist>  <targetportlist>  <opera-
       tionlist> <weekdayslist>	<timeperiodslist>
       deny  <userlist>	 <sourcelist>  <targetlist>  <targetportlist>  <opera-
       tionlist> <weekdayslist>	<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 and target lists may contain  IP
       addresses  (W.X.Y.Z),  ranges  A.B.C.D  -  W.X.Y.Z (since 0.8) or CIDRs
       (W.X.Y.Z/L).  Since 0.6,	targetlist may also contain  host  names,  in-
       stead of	addresses. It's	possible to use	wildmask in the	begginning and
       in  the	the end	of hostname, e.g. *badsite.com or *badcontent*.	 Host-
       name is only checked if hostname	presents in  request.	Targetportlist
       may  contain ports (X) or port ranges lists (X-Y). For any field	* sign
       means ANY. If access list is empty it's assumed to be
	allow *
	If access list is not empty last item in access	list is	assumed	to be
	deny *
	You may	want explicitly	add deny * to the end of access	list  to  pre-
       vent  HTTP  proxy  from	requesting  user's password.  Access lists are
       checked after user have requested any resource.	If you want 3proxy  to
       reject connections from specific	addresses immediately without any con-
       ditions	you  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  dy-
       namic non-ptivileged (1024-65535) ports on remote side.
	FTP matches any	FTP/FTP	Data request
	ADMIN access to	administration interface

	Weeksdays  are week days numbers or periods, 0 or 7 means Sunday, 1 is
       Monday, 1-5 means Monday	through	Friday.
	Timeperiodlists	is a list of time periods in HH:MM:SS-HH:MM:SS format.
       For  example,  00:00:00-08:00:00,17:00:00-24:00:00  lists   non-working
       hours.

       parent <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 groups are specified one proxy is randomly
       picked from each	group and chain	of proxies is created (that is	second
       proxy  connected	through	first one and so on).  Weight is used to group
       proxies.	Weigt is a number between 1 and	1000.  Weights are summed  and
       proxies are grouped together untill weight of group is 1000. That is:
	allow *
	parent 500 socks5 192.168.10.1 1080
	parent 500 connect 192.168.10.1	3128
	makes  3proxy  to  randomly  choose between 2 proxies for all outgoing
       connections. These 2 proxies form 1 group (summarized weight is 1000).
	allow *	* * 80
	parent 1000 socks5 192.168.10.1	1080
	parent 1000 connect 192.168.20.1 3128
	parent 300 socks4 192.168.30.1 1080
	parent 700 socks5 192.168.40.1 1080
	creates	chain of 3 proxies: 192.168.10.1, 192.168.20.1	and  third  is
       (192.168.30.1  with probability of 0.3 or 192.168.40.1 with probability
       of 0.7) for outgoing web	connections. Chains are	only  applied  to  new
       connections, pipelined (keep-alive) requests in the same	connection use
       the same	chain.

	type is	one of:
	extip  does not	actully	redirect request, it sets external address for
       this request to <ip>. It	can be chained with another parent types. It's
       usefaul to set 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  au-
       thentication.
	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	short-
       ened server reply. I never saw this kind	ofservers byt they  say	 there
       are).  Normally you should not use this option. Do not mess this	option
       with SOCKSv4a (socks4+).
	socks5b	 parent	 is SOCKS5b (broken SOCKSv5 implementation with	short-
       ened 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).
	Use "+"	proxy only with	"fakeresolve" option

	IP  and	 port are ip addres and	port of	parent proxy server.  If IP is
       zero, ip	is taken from original request,	only port is changed.  If port
       is zero,	it's taken from	original request, only IP is changed.  If both
       IP and port are zero - it's a special case  of  local  redirection,  it
       works  only  with  socks	proxy. In case of local	redirection request is
       redirected to different service,	ftp locally redirects  to  ftppr  pop3
       locally	redirects  to  pop3p http locally redurects to proxy admin lo-
       cally redirects to admin	-s service.

	Main purpose of	local redirections is to have requested	resource  (URL
       or  POP3	 username) logged and protocol-specific	filters	to be applied.
       In case of local	redirection ACLs are revied  twice:  first,  by	 SOCKS
       proxy  up  to 'parent' command and then with gateway service connection
       is redirected (HTTP, FTP	or POP3) after 'parent'	command. It means, ad-
       ditional	'allow'	command	is required for	redirected requests, for exam-
       ple:
	allow *	* * 80
	parent 1000 http 0.0.0.0 0
	allow *	* * 80 HTTP_GET,HTTP_POST
	socks
	redirects all SOCKS requests with target port 80 to local HTTP	proxy,
       local HTTP proxy	parses requests	and allows only	GET and	POST requests.
	parent 1000 http 1.2.3.4 0
	Changes	 external  address for given connection	to 1.2.3.4 (an equiva-
       lent 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.

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

       weight <n>
	extends	last allow or deny command to set weight for this request
	allow *	* 192.168.1.1
	weight 100
	Weight may be used for different purposes.

       force
       noforce
	If  force  is specified	for service, configuration reload will require
       all current sessions of this service to be re-authenticated. If ACL  is
       changed	or user	account	is removed, old	connections which do not match
       current are closed.  noforce allows to  keep  previously	 authenticated
       connections.

       bandlimin  <rate> <userlist> <sourcelist> <targetlist> <targetportlist>
       <operationlist> <weekdayslist> <timeperiodslist>
       nobandlimin <userlist> <sourcelist> <targetlist>	<targetportlist>  <op-
       erationlist> <weekdayslist> <timeperiodslist>
       bandlimout <rate> <userlist> <sourcelist> <targetlist> <targetportlist>
       <operationlist> <weekdayslist> <timeperiodslist>
       nobandlimout <userlist> <sourcelist> <targetlist> <targetportlist> <op-
       erationlist> <weekdayslist> <timeperiodslist>
	bandlim	 sets  bandwith	limitation filter to <rate> bps	(bits per sec-
       ond) If you want	to specife bytes per second - multiply your  value  to
       8.   bandlim  rules act in a same manner	as allow/deny rules except one
       thing: bandwidth	limiting is applied to all services, not to some  spe-
       cific  service.	 bandlimin and nobandlimin applies to incoming traffic
       bandlimout and nobandlimout applies to outgoing traffic If tou want  to
       ratelimit your clients with IPs 192.168.10.16/30	(4 addresses) to 57600
       bps you have to specify 4 rules like
	bandlimin 57600	* 192.168.10.16
	bandlimin 57600	* 192.168.10.17
	bandlimin 57600	* 192.168.10.18
	bandlimin 57600	* 192.168.10.19
	and every of you clients will have 56K channel.	If you specify
	bandlimin 57600	* 192.168.10.16/30
	you  will  have	 56K channel shared between all	clients.  if you want,
       for example, to limit all speed ecept access to POP3 you	can use
	nobandlimin * *	* 110
	before the rest	of bandlim rules.

       connlim <rate> <period> <userlist> <sourcelist>	<targetlist>  <target-
       portlist> <operationlist> <weekdayslist>	<timeperiodslist>
       noconnlim <userlist> <sourcelist> <targetlist> <targetportlist> <opera-
       tionlist> <weekdayslist>	<timeperiodslist>
	connlim	 sets  connections rate	limit per time period for traffic pat-
       tern controlled by ACL. Period is in seconds. If	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 simulationeous connections for 127.0.0.1.
	Like with bandlimin, if	individual limit is required per client, sepa-
       rate  rule  mustbe  added  for  every client. Like with nobanlimin, no-
       connlim adds an exception.

       counter <filename> <reporttype> <repotname>
       countin <number>	<type> <limit>	<userlist>  <sourcelist>  <targetlist>
       <targetportlist>	<operationlist>	<weekdayslist> <timeperiodslist>
       nocountin <userlist> <sourcelist> <targetlist> <targetportlist> <opera-
       tionlist> <weekdayslist>	<timeperiodslist>
       countout	 <number>  <type> <limit> <userlist> <sourcelist> <targetlist>
       <targetportlist>	<operationlist>	<weekdayslist> <timeperiodslist>
       nocountout <userlist> <sourcelist> <targetlist> <targetportlist>	<oper-
       ationlist> <weekdayslist> <timeperiodslist>
       countall	<number> <type>	<limit>	<userlist>  <sourcelist>  <targetlist>
       <targetportlist>	<operationlist>	<weekdayslist> <timeperiodslist>
       nocountall <userlist> <sourcelist> <targetlist> <targetportlist>	<oper-
       ationlist> <weekdayslist> <timeperiodslist>

	counter,  countin, nocountin, countout,	noucountout, countall, nocoun-
       tall commands are used to set traffic limit in MB for  period  of  time
       (day,  week or month). Filename is a path to a special file where traf-
       fic information is permanently stored.  number is sequential number  of
       record  in  this	 file. If number is 0 this counter is not preserved in
       counter file (that is if	 proxy	restarted  all	counters  with	0  are
       flushed)	overwise it should be unique sequential	number which points to
       position	 of  the  couter  within  the  file.  Type specifies a type of
       counter.	Type is	one of:
	H - counter is resetted	hourly
	D - counter is resetted	daily
	W - counter is resetted	weekly
	M - counter is resetted	monthely
	reporttype/repotname may be used to generate traffic reports.  Report-
       type is one of D,W,M,H(hourly) and repotname  specifies	filename  tem-
       plate for reports. Report is text file with counter values in format:
	<COUNTERNUMBER>	<TRAF>
	The rest of parameters is identical to bandlim/nobandlim.

       users 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)
	example:
	users test1:CL:password1 "test2:CR:$1$lFDGlder$pLRb4cU2D7GAT58YQvY49."
	users test3:NT:BD7DFBF29A93F93C63CB84790DA00E63
	Note: double quotes are	requiered because password contains $ sign.

       flush
	empty  active  access list. Access list	must be	flushed	avery time you
       creating	new access list	for new	service. For example:
	allow *
	pop3p
	flush
	allow *	192.168.1.0/24
	socks
	sets different ACLs for	pop3p and socks

       system <command>
	execute	system command

       pidfile <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>
	If file	monitored changes in modification time or size,	3proxy reloads
       configuration within one	minute.	Any number of files may	be monitored.

       setuid <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>
	calls  setgid(gid),  gid  can  be numeric or since 0.9 groupname. Unix
       only.

       chroot <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>
	Change	default	size for threads stack.	May be required	in some	situa-
       tion, e.g. with non-default plugins, on on some platforms (some FreeBSD
       version may require adjusting stack size	due to invalid	defined	 value
       in  system  header  files,  this	 value	is  also oftent	reqruied to be
       changed for ODBC	and PAM	support	on Linux.  If  you  experience	3proxy
       crash  on  request  processing, try to set some positive	value. You may
       start with stacksize 65536 and then find	the minimal value for  service
       to  work.  If you experience memory shortage, you can try to experiment
       with negative values.

PLUGINS
       plugin <path_to_shared_library> <function_to_call> [<arg1> ...]
	Loads specified	library	and calls given	export function	with given ar-
       guments,	as
	int  functions_to_call(struct  pluginlink  *  pl,  int	argc,  char  *
       argv[]);
	function_to_call  must return 0	in case	of success, value > 0 to indi-
       cate error.

       filtermaxsize <max_size_of_data_to_filter>
	If Content-length (or another  data  length)  is  greater  than	 given
       value, no data filtering	will be	performed thorugh filtering plugins to
       avoid  data  corruption	and/or	Content-Length chaging.	Default	is 1MB
       (1048576).

BUGS
       Report all bugs to 3proxy@3proxy.ru

SEE ALSO
       3proxy(8), httppr(8), ftppr(8), socks(8), pop3p(8), tcppm(8), udppm(8),
       syslogd(8),
	https://3proxy.org/

TRIVIA
       3APA3A is pronounced as ``zaraza''.

AUTHORS
       3proxy is designed by Vladimir 3APA3A Dubrovin (3proxy@3proxy.ru)

3proxy 0.9			 January 2019			 3proxy.cfg(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=3proxy.cfg&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help