]> jfr.im git - irc.git/blame - software/ircd/www.irc.org/ftp/irc/org/irc2.11.2p3/doc/iauth.conf.5
init
[irc.git] / software / ircd / www.irc.org / ftp / irc / org / irc2.11.2p3 / doc / iauth.conf.5
CommitLineData
3bd189cb
JR
1.\" @(#)$Id: iauth.conf.5,v 1.23 2004/12/16 16:14:06 chopin Exp $
2.TH IAUTH.CONF 5 "$Date: 2004/12/16 16:14:06 $"
3.SH NAME
4iauth.conf \- The Internet Relay Chat Authentication Configuration File
5.SH DESCRIPTION
6.LP
7The \fIiauth.conf\fP file is read by the \fIiauth\fP program upon startup,
8it contains the list of modules that should be used to authenticate a
9particular connection. The list is ordered, which means that the first
10module to successfully authenticate a connection will be the last to be
11tried.
12
13The file is divided in sections, the first section is used for iauth
14options, each subsequent section specifies a module with eventual options
15using the following format:
16
17.RS
18.nf
19module\ \fImodule-name\fP
20[TAB]option = \fIstring\fP
21[TAB]host = \fIhost-name\fP
22[TAB]ip = \fIip-address\fP
23[TAB]timeout = \fIvalue\fP
24[TAB]port = \fIvalue\fP
25[TAB]reason = \fIstring\fP
26
27.fi
28.RE
29The section ends with an empty line. The \fImodule-name\fP defines which
30module the section applies to. A particular module may be used in several
31sections. An option \fIstring\fP of undefined format may be specified, it will
32then be passed to the module upon initialization, see the MODULES section
33to find out if a module accepts any option.
34
35If \fIhost-name\fP and \fIip-address\fP fields are specified, then the
36module will only be used for connections matching one of the fields given
37in the configuration. An entry prefixed with the character ! indicates a
38negative match. IP addresses are checked first.
39
40Port is mandatory for socks and webproxy modules and not used in others.
41It tells module what port it should connect to to do its work.
42
43If no host nor ip entry is specified, then the module will always be used.
44
45Reason is text to send to clients rejected by given module.
46
47When writing a configuration file, one should \fBalways\fP verify the
48syntax using the \fIiauth\fP program to avoid later problems.
49.SH IAUTH OPTIONS
50.TP
51.B timeout = <seconds>
52This allows to specify how much time each module has to complete its work
53for each connection. This option can also be specified individually for
54each module. The default is 30 seconds.
55.TP
56.B required
57By specifying this keyword, the IRC server is told not to accept new user
58connections unless the authentication is handled by \fIiauth\fP. This does
59NOT mean that the server will wait forever to get the data from iauth, see
60the \fInotimeout\fP option.
61.TP
62.B notimeout
63By specifying this keyword, the IRC server is told not to accept a user
64connection if \fIiauth\fP hasn't finished its work in time. Note that
65modules specified after \fIdelayed\fP keyword are not considered.
66.TP
67.B extinfo
68This keyword allows extra information (user supplied username, and
69eventually password) to be received by \fIiauth\fP from the server. This
70is only useful if a module using this information is loaded.
71.TP
72.B delayed
73All modules below this keyword will run in "delayed" execution mode. This
74means that ircd gets (fake) message that iauth is done with this client
75so that it allows it. Modules however do work as usual and upon deciding that this
76client should be removed, message is sent to ircd and client removed.
77.TP
78.B shared <name> <mod_name.so>
79If iauth was compiled with Dynamically Shared Module support, it can be
80told to dynamically load a module using this option. The module can then
81be loaded.
82
83.SH MODULES
84.TP
85.B pipe
86This module is provided as a replacement to the (now obsolete) R
87configuration lines supported by the IRC daemon. It runs an external
88program with the client IP and port as arguments. The program should
89output either 'Y' (Yes, let the client in), or 'N' (No, don't let them
90in).
91
92Note that this module is quite expensive as it forks a separate process for
93each connection received by the IRC daemon.
94
95This module requires the following option:
96.B prog=/path/to/external/program
97.TP
98.B socks
99This module performs a basic check to verify that the host where the
100connection originated from doesn't run a SOCKS v4 or v5 proxy server on
101a given in configuration port that is open to the world.
102It is useful to reject abusive clients using a relay to evade kill lines and bans.
103Multiple instances (with different ports) are allowed.
104
105This module understands ten options:
106.B reject
107to reject connections originating from a host where an open proxy
108was detected,
109.B log
110to log hostnames where an open proxy is detected.
111.B protocol
112to log protocol errors
113.B paranoid
114to consider proxies which deny the request because of a userid/ident
115mismatch to be OPEN proxies.
116.B megaparanoid
117which is paranoid plus it considers all proxies not explicitly stating they
118are closed to be OPEN proxies -- that includes all protocol errors, unexpected
119results etc.
120.B cache[=value]
121to set the cache lifetime in minutes. By default, caching is enabled for
12230 minutes. A value of 0 disables caching.
123.B careful
124to make sure socks v5 is properly configured with IP rulesets. Without
125this parameter, module will not send additional query and assume first
126positive answer as valid.
127.B v4only
128to check only socks v4.
129.B v5only
130to check only socks v5.
131.TP
132.B rfc931
133This module is for authentication TCP connections using the protocol
134defined in RFC 1413 (which obsoletes RFC 931). It is always loaded, and
135does not recognize the \fIhost\fP nor \fIip\fP fields.
136.TP
137.B lhex
138This module acts as a proxy, communicating with a LHEx server to perform
139authentication of client connections. It takes a single (mandatory)
140option, which is the IP-address of the LHEx server to use.
141.TP
142.B webproxy
143This module performs a basic HTTP CONNECT to verify that the host where the
144connection originated from doesn't run an open WWW proxy.
145It is useful to reject abusive clients using a relay to evade kill lines and bans.
146Multiple instances (with different ports) are allowed.
147
148This module understands five options:
149.B reject
150to reject connections originating from a host where an open proxy was detected.
151.B log
152to log hostnames where an open proxy is detected.
153.B cache[=value]
154to set the cache lifetime in minutes. By default, caching is enabled for
15530 minutes. A value of 0 disables caching.
156.B careful
157to make sure that we connected to our own ircd; without
158this parameter, module will accept any "HTTP/1.? 200" with an exception
159of servers sending "Date:" header along (which is common with some
160Apache+PHP configurations).
161
162.SH EXAMPLE
163The following file will cause the IRC daemon to reject all connections
164originating from a system where an open proxy is running for hosts within
165*.fr and *.enserb.u-bordeaux.fr but not for other hosts matching
166*.u-bordeaux.fr. For all connections, an ident lookup (RFC 1413) will be
167performed as well as checking for WWW proxy on port 8080 and 3128.
168In addition, every connection is authenticated with the LHEx
169server at IP-address 127.0.0.1. Client will be let in after ident and
170lhex are done but if socks or webproxy finds an open proxy, client will
171be removed asap.
172
173.RS
174.nf
175module rfc931
176
177module lhex
178 option = 127.0.0.1
179
180delayed
181
182module socks
183 option = reject,paranoid
184 host = *.enserb.u-bordeaux.fr
185 host = !*.u-bordeaux.fr
186 host = *.fr
187 port = 1080
188
189module webproxy
190 option = reject
191 port = 8080
192
193module webproxy
194 option = reject,careful
195 port = 3128
196
197.fi
198.RE
199.SH CAVEATS
200When the option
201.B extinfo
202is set, connections registering as a server or a service with the IRC
203server are not guaranteed to receive the "user" authentication provided by
204modules (such as the rfc931 module).
205.RE
206.SH COPYRIGHT
207(c) 1998,1999 Christophe Kalt
208.LP
209For full COPYRIGHT see LICENSE file with IRC package.
210.LP
211.RE
212.SH FILES
213"iauth.conf"
214.SH "SEE ALSO"
215iauth(8)
216.SH AUTHOR
217Christophe Kalt.