Documented public_ip field
[silc.git] / doc / silcd.conf.yo
1 manpage(SILCD_CONF) (5) (November 2 2002) (silc-server) (silc-server)
2
3
4 manpagename(silcd.conf) (format of configuration file for silcd)
5
6 manpagesection(CONFIGURATION FILE)
7 bf(Silcd) reads its configuration from /etc/silc/silcd.conf (or the file
8 specified with bf(-f)). The file contains sections, subsections and key-value
9 pairs. Each section or subsection is bound with a starting em({) and ending
10 em(}). Keys and values are of the format 'em(KEY)=em(VALUE);'. All statements
11 as well as sections must be terminated with a ';'.
12
13 Mandatory section in configuration file is em(ServerInfo).  Other sections
14 are optional but recommended.  If em(General) section is defined it must
15 be defined before the em(ConnectionParams) section.  On the other hand,
16 the em(ConnectionParams) section must be defined before em(Client),
17 em(ServerConnection) and/or em(RouterConnection) sections.  Other sections
18 can be in a free order in the configuration file.
19
20 nsect(SECTION: General)
21
22 em(General) section contains global settings for the silcd.
23
24 bf(dynamic_server)
25 quote(Dynamic router connections.  If this is set for normal SILC server
26 the connection to primary router is not created untill it is actually
27 needed.  Giving for example em(/WHOIS foobar@silcnet.org) would then
28 create connection to the primary router to resolve user foobar.
29 On the other hand giving em(/WHOIS foobar) would try to search the
30 user foobar locally, without creating the connection.  Note that
31 giving em(/JOIN foobar) will also created the connection as current
32 SILC Server version supports only global channels (all JOINs require
33 connection to router, if one is configured).)
34
35 bf(prefer_passphrase_auth)
36 quote(If both public key and passphrase authentication are set for a
37 connection, public key authentication is by default preferred. Setting this
38 value to em(true) causes silcd to prefer passphrase authentication in these
39 cases.)
40
41 bf(require_reverse_lookup)
42 quote(Set this value to em(true) if all connecting hosts must have a fully
43 qualified domain name (FQDN). If set to true, a host without FQDN is not
44 allowed to connect to server.)
45
46 bf(connections_max)
47 quote(Maximum number of incoming connections to this server. Any further
48 connections are refused.)
49
50 bf(connections_max_per_host)
51 quote(Maximum number of incoming connections from any single host. This
52 setting can be overridden on a connection-specific basis with
53 em(ConnectionParams).)
54
55 bf(version_protocol)
56 quote(Defines the minimum required version of protocol to allow connecting
57 to server. A client or server using this version of protocol or newer is
58 allowed to connect, one using anything older will be rejected. Leaving unset
59 allows all versions to connect. This can be overridden with
60 em(ConnectionParams).)
61
62 bf(version_software)
63 quote(Defines the minimum required version of software to allow connecting
64 to server. A client or server that is of this version or newer is allowed
65 to connect, one using anything older will be rejected. Leaving unset allows
66 all versions to connect.  This can be overridden with em(ConnectionParams).)
67
68 bf(version_software_vendor)
69 quote(Defines the allowed software vendor string that is required to connect.
70 Usually this is either a build number or special client tag. Using this
71 requirement is not encouraged unless the server is in very limited use.
72 Leaving unset allows all versions regardless of their vendor to connect.
73 Can be overridden with em(ConnectionParams).)
74
75 bf(key_exchange_rekey)
76 quote(Defines the interval, in seconds, how often the session key will be
77 regenerated. This setting only applies to the connection initiator, as rekey
78 is always performed by the initiating party. Setting has effect only when
79 the server acts as an initiator, and can be overridden with
80 em(ConnectionParams).)
81
82 bf(key_exchange_pfs)
83 quote(Boolean value to determine, whether key-exchange is performed with
84 Perfect Forward Secrecy (PFS) or without. If set to em(true), the rekey
85 process will be somewhat slower, but more secure since the key is
86 entirely regenerated. Can be overridden with em(ConnectionParams).)
87
88 bf(key_exchange_timeout)
89 quote(Key exchange timeout in seconds. If the key exchange is not completed
90 within this time, the remote connection will be closed.)
91
92 bf(conn_auth_timeout)
93 quote(Connection authentication timeout in seconds. If the connection
94 authentication is not completed within this time, the remote connection
95 will be closed.)
96
97 bf(channel_rekey_secs)
98 quote(Seconds, how often channel key will be regenerated. Note that channel
99 key is regenerated each time someone joins or leaves the channel. This is
100 the maximum time any channel can have the same key.)
101
102 bf(detach_disabled)
103 quote(Boolean value controlling, whether clients are denied the use of DETACH
104 command. Default value is false (DETACH is allowed).)
105
106 bf(detach_timeout)
107 quote(Time in seconds how long detached sessions will be available. By
108 default, detached sessions do not expire and as such, are persistent as long
109 as the server is running. If DETACH command is allowed, this value should
110 be set as well.)
111
112 bf(qos)
113 quote(Boolean value controlling, whether Quality of Service settings are
114 enabled. Default setting is false. NOTE: If you enable QoS in general section,
115 it applies to every connection the server has, including server connections.
116 This setting can be overridden with em(ConnectionParams) and in case of
117 server connections, it SHOULD BE overridden (server connections should not
118 use QoS).)
119
120 bf(qos_rate_limit)
121 quote(Limits read operations per second to given amount. Do note that one read
122 operation may read several SILC packets, so this setting does not
123 automatically correspond to amount of messages transmitted or accepted.)
124
125 bf(qos_bytes_limit)
126 quote(Limits incoming SILC data to the specified number of bytes per second.)
127
128 bf(qos_limit_sec)
129 quote(This value defines the timeout, in seconds, for the delay of received
130 data in case it was left in a QoS queue.)
131
132 bf(qos_limit_usec)
133 quote(This value defines the timeout, in microseconds, for the delay of
134 received data for received data in case it was left in a QoS queue.)
135
136 nsect(SECTION: ServerInfo)
137
138 em(ServerInfo) contains values for bound interfaces and administrative info.
139
140 bf(hostname)
141 quote(Server's name (FQDN).)
142
143 bf(ServerType)
144 quote(This is a descriptive text field, usually telling what the server and
145 its purpose are.)
146
147 bf(Location)
148 quote(Descriptive field of server's geographic location.)
149
150 bf(Admin)
151 quote(Administrator's full name.)
152
153 bf(AdminEmail)
154 quote(Administrator's email address.)
155
156 bf(User)
157 quote(The name of the user account silcd will be running on. This must be an
158 existing user. Silcd needs to executed as root; after binding the port it
159 will drop root privileges and use the account given here.)
160
161 bf(Group)
162 quote(The name of the group silcd will be running on. This must be an existing
163 group. Silcd needs to be executed as root; after binding the port it will drop
164 root privileges and use the group given here.)
165
166 bf(PublicKey)
167 quote(Full path to server's public key file.)
168
169 bf(PrivateKey)
170 quote(Full path to server's private key file.)
171
172 bf(MotdFile)
173 quote(Full path to MOTD (Message Of The Day) file, a text file that will be
174 displayed to each client upon connection.)
175
176 bf(PidFile)
177 quote(Full path to file where silcd will write its PID.)
178
179 nsubsect(SUBSECTION: Primary)
180
181 This is the primary listener info. Each server can have no more than one em(Primary)
182 section.
183
184 bf(ip)
185 quote(Specifies the address silcd is listening on.)
186
187 bf(port)
188 quote(Specifies the port silcd is listening on.)
189
190 bf(public_ip)
191 quote(Optional field.  If your server is behind NAT this IP would be 
192 the public IP address.  The 'ip' field would include the internal IP 
193 address.  With this option it is possible to run silcd behind NAT 
194 device.)
195
196 nsubsect(SUBSECTION: Secondary)
197
198 This is a secondary listener info. A server may have any amount of
199 em(Secondary) listener settings. These are needed only if silcd needs
200 to listen on several interfaces. em(Secondary) subsections have the same
201 information that em(Primary) does.
202
203 nsect(SECTION: Logging)
204
205 This section is used to set up various log files; their paths, maximum
206 sizes and individual logging options.
207
208 There are four defined logging channels. The log channels have an
209 importance value, and more important channels are always redirected to the
210 less important ones. Setting a valid logging file for em(Info) will ensure
211 logging for all channels, whereas a setting for em(Errors) would only ensure
212 logging for em(Errors) and em(Fatals).
213
214 bf(Timestamp)
215 quote(A boolean value that dictates whether log lines will have timestamps
216 prefixed. In general, this is a good idea. You might want to disable this
217 if you are running silcd under some special logging daemon, such as
218 daemontools.)
219
220 bf(QuickLogs)
221 quote(A boolean value that determines how often log files are updated. Setting
222 this to em(true) makes silcd log in real-time. Setting this to em(false) makes
223 silcd write to logs every em(FlushDelay) seconds. Real-time logging causes a
224 bit more CPU and HDD usage but reduces memory consumption.)
225
226 bf(FlushDelay)
227 quote(Time in seconds, how often logs are flushed to logfiles. This setting
228 has effect only if em(QuickLogs) is disabled.)
229
230 nsubsect(SUBSECTION: Info)
231 nsubsect(SUBSECTION: Warnings)
232 nsubsect(SUBSECTION: Errors)
233 nsubsect(SUBSECTION: Fatals)
234 Each of these subsections has the same attributes, em(File) and em(Size).
235 Different levels of problems are logged to their respective channels
236 (em(Info), em(Warnings), em(Errors), em(Fatals)), depending on their need
237 of attention.
238
239 bf(File)
240 quote(Full path to log file.)
241
242 bf(Size)
243 quote(Limit the size the log file is allowed to grow to. Any further messages
244 to this file cause the oldest lines to be removed in order to keep the file
245 size within given limit.)
246
247 nsect(SECTION: ConnectionParams)
248
249 This section defines connection parameters. Each connection may have its own
250 set of em(ConnectionParams) but having one is in no way mandatory. If no
251 separate parameters have been assigned, the defaults and the ones  from
252 em(General) section will be used. A silcd configuration may have any number of
253 em(ConnectionParams) sections.
254
255 bf(name)
256 quote(This is a unique name that separates bf(this) particular
257 em(ConnectionParams) section from all the others. It is also the name with
258 which settings are referred to a given set of parameters. This field is
259 mandatory.)
260
261 bf(connections_max)
262 quote(Limits how many concurrent connections are allowed. Any further
263 connections are simply refused. Note that this setting can not override the
264 figure given in em(General) section.)
265
266 bf(connections_max_per_host)
267 quote(Maximum number of connections allowed from any single host. If this
268 parameter is set for a block controlling server connections, it is highly
269 suggested to use a value of one (1).)
270
271 bf(version_protocol)
272 quote(Exactly the same as in em(General) section.)
273
274 bf(version_software)
275 quote(Exactly the same as in em(General) section.)
276
277 bf(version_software_vendor)
278 quote(Exactly the same as in em(General) section.)
279
280 bf(keepalive_secs)
281 quote(How often (seconds) to send HEARTBEAT packets to connected clients.)
282
283 bf(reconnect_count)
284 quote(When connection is lost, how many times a reconnection is tried.)
285
286 bf(reconnect_interval)
287 quote(How often, in seconds, a reconnection is attempted.)
288
289 bf(reconnect_interval_max)
290 quote(Reconnection time is lengthened each time an unsuccessful attempt
291 occurs. This value defines the maximum interval to which the delay may
292 be prolonged.)
293
294 bf(reconnect_keep_trying)
295 quote(Boolean value controlling whether server eventually gives up trying
296 to reconnect. If set to em(false), server will give up once em(reconnect_count)
297 is reached or, even at maximum interval no connection is established.)
298
299 bf(key_exchange_rekey)
300 quote(Exactly the same as in em(General) section.)
301
302 bf(key_exchange_pfs)
303 quote(Exactly the same as in em(General) section.)
304
305 bf(anonymous)
306 quote(This boolean setting has meaning only to client connections. If set to
307 em(true), client connections using this em(ConnectionParams) block will have
308 their username and host scrambled. The client will also have an anonymous mode
309 set to it.)
310
311 bf(qos)
312 quote(Exactly the same as in em(General) section  NOTE: For server
313 connection this should be set to em(false) value.)
314
315 bf(qos_rate_limit)
316 quote(Exactly the same as in em(General) section.)
317
318 bf(qos_bytes_limit)
319 quote(Exactly the same as in em(General) section.)
320
321 bf(qos_limit_sec)
322 quote(Exactly the same as in em(General) section.)
323
324 bf(qos_limit_usec)
325 quote(Exactly the same as in em(General) section.)
326
327 nsect(SECTION: Client)
328
329 This section defines how incoming client connections are handled. There can
330 be several em(Client) sections, each with their own requirements. A bf(silcd)
331 admin could for example require that connections from certain IP-address space
332 must supply a connection password.
333
334 bf(Host)
335 quote(An address or wildcarded set of addresses, either in numeric IP-address
336 fashion or as hostnames. For example em("10.1.*") or
337 em("*.mydomain.domain.org").)
338
339 bf(Passphrase)
340 quote(The required passphrase to allow client connection.)
341
342 bf(PublicKey)
343 quote(The path to a file containing the client's public key. There can be any
344 number of em(PublicKey) statements in one em(Client) section. Matching any of
345 them will do.)
346
347 bf(Params)
348 quote(Name of client connection parameters.)
349
350 nsect(SECTION: ServerConnection)
351
352 This section defines a configured server connection. A regular SILC
353 server does not need one at all. If this block exists, it means that the
354 server is a SILC router. There must be one em(ServerConnection) for each
355 SILC server that connects to this router.
356
357 bf(Host)
358 quote(Either an FQDN or strict IP-address of the connecting server.)
359
360 bf(Passphrase)
361 quote(If server connection requires passphrase authentication, set it here.)
362
363 bf(PublicKey)
364 quote(This is a path to connecting server's public key. If server connection
365 requires public key authentication, set this value. If both em(Passphrase)
366 and em(PublicKey) are set, then either of them will be accepted.)
367
368 bf(Params)
369 quote(Connection parameters.)
370
371 bf(Backup)
372 quote(A boolean value controlling whether this server acts as a backup. Set
373 to em(false) for normal servers. If set to em(true), this server is a backup
374 router.)
375
376 nsect(SECTION: RouterConnection)
377 This section covers router connections. Stand-alone servers won't have this
378 section, and regular servers should only have one.
379
380 Router servers need one em(RouterConnection) for each other router they have
381 been configured to connect to. First configured section is the primary route.
382
383 bf(Port)
384 quote(If em(Initiator) is set tro em(true), this setting defines the remote
385 port in which to connect. if em(Initiator) is set to false, then this defines
386 the local (listening) port.)
387
388 bf(Passphrase)
389 quote(If connecting server requires a passphrase authentication, it is set
390 here.)
391
392 bf(PublicKey)
393 quote(If connecting to server requires public key authentication, the path
394 to server's public key file is set here.)
395
396 bf(Params)
397 quote(Connection parameters.)
398
399 bf(Initiator)
400 quote(A boolean setting that defines whether this server is the connecting
401 party.)
402
403 bf(BackupHost)
404 quote(If the configured connection is a backup connection, set this to the
405 address of the main router that will be replaced. For normal router connection
406 leave this option out.)
407
408 bf(BackupPort)
409 quote(If the configured connection is a backup connection, set this to the
410 remote port which to connect to. For normal router connection, leave this
411 option out.)
412
413 bf(BackupLocal)
414 quote(A boolean value. If this setting is em(true), then the backup router
415 is in the same cell. If the backup router is in another cell, set this
416 to em(false). Needless to say, for normal router connection, leave this
417 option out.)
418
419 nsect(SECTION: Admin)
420
421 This section defines configured administration connections.
422
423 bf(Host)
424 quote(Either FQDN or a strict IP-address to the origin of connection.
425 This field is optional.)
426
427 bf(User)
428 quote(Username that the connecting client announces. This field is optional.)
429
430 bf(Nick)
431 quote(Nickname that the connecting client announces. This field is optional.)
432
433 bf(Passphrase)
434 quote(Passphrase required to obtain server operator privileges.)
435
436 bf(PublicKey)
437 quote(Path to administrator's public key file. If both em(Passphrase) and
438 em(PublicKey) are defined, either one can be used.)
439
440 nsect(SECTION: Deny)
441 This section defines denied incoming connections. They apply equally to both
442 client and server connections, so make sure you know what you add here. Each
443 em(Deny) section covers one instance of denied connection(s). There may be any
444 number of em(Deny) sections.
445
446 bf(Host)
447 quote(Address or wildcarded addresses of denied connections. bf(NOTE!) This
448 field is not mandatory, but highly recommended. If you don't specify em(Host)
449 at all, or give it a value of "*", you have a silcd that denies every single
450 incoming connection.)
451
452 bf(Reason)
453 quote(A string giving the reason as to why the connecting party is not allowed
454 to connect. Unlike em(Host), this field IS mandatory.)
455
456
457 manpagefiles()
458 bf(silcd.conf)
459
460
461 manpageseealso()
462 bf(silcd(8))
463
464
465 manpageauthor()
466 SILC is designed and written by Pekka Riikonen <priikone@iki.fi> and rest
467 of the SILC Project.
468
469 Configuration file format and parser is by Giovanni Giacobbi
470 <giovanni@giacobbi.net>.
471
472 This manpage was written by Mika 'Bostik' Boström <bostik@lut.fi>
473
474 See bf(CREDITS) for full list of contributors.