~ubuntu-branches/ubuntu/oneiric/jabberd2/oneiric-security

« back to all changes in this revision

Viewing changes to etc/sm.xml.dist.in

  • Committer: Bazaar Package Importer
  • Author(s): Nicolai Spohrer
  • Date: 2008-08-12 16:13:43 UTC
  • mfrom: (1.1.3 upstream) (0.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20080812161343-6trz3r97dtevxd17
Tags: 2.2.1-1ubuntu1
* Merge with Debian unstable (LP: #257130), remaining changes:
  - debian/control:
    + Modify Maintainer field as per spec
    + Depend on libdb4.6-dev instead of libdb4.4-dev
    + Added Conflicts and Replaces: ..., jabber for jabberd2
  - debian/rules: Added libtoolize call (jabberd2 ships with
     an older ltmain.sh version that conflicts with the
     current libtool version)
  - debian/init: create /var/run/jabber directory with correct
     permissions
* Dropped changes:
  - Debian already depends on libpq-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<sm>
3
3
  <!-- Our ID on the network. Users will have this as the domain part of
4
4
       their JID. If you want your server to be accessible from other
5
 
       Jabber servers, this ID must be resolvable by DNS.s
6
 
       (default: localhost) -->
7
 
  <id>localhost</id>
 
5
       Jabber servers, this ID must be FQDN resolvable by DNSes -->
 
6
  <id>localhost.localdomain</id>
8
7
 
9
 
  <!-- The process ID file. comment this out if you don't need to know
10
 
       to know the process ID from outside the process (eg for control
11
 
       scripts) -->
 
8
  <!-- The process ID file. Comment this out if you don't need to know
 
9
       the process ID from outside the process (eg for control scripts) -->
12
10
  <pidfile>@localstatedir@/jabberd/pid/sm.pid</pidfile>
13
11
 
14
12
  <!-- Router connection configuration -->
21
19
    <user>jabberd</user>          <!-- default: jabberd -->
22
20
    <pass>secret</pass>           <!-- default: secret -->
23
21
 
24
 
    <!-- File containing a SSL certificate and private key to use when
25
 
         setting up an encrypted channel with the router. If this is
26
 
         commented out, or the file can't be read, no attempt will be
27
 
         made to establish an encrypted channel with the router. -->
 
22
    <!-- File containing an SSL certificate and private key to use when
 
23
         setting up an encrypted channel with the router. From
 
24
         SSL_CTX_use_certificate_chain_file(3): "The certificates must be
 
25
         in PEM format and must be sorted starting with the subject's
 
26
         certificate (actual client or server certificate), followed
 
27
         by intermediate CA certificates if applicable, and ending
 
28
         at the highest level (root) CA" (the latter one being optional).
 
29
         If this is commented out, or the file can't be read, no attempt
 
30
         will be made to establish an encrypted channel with the router. -->
28
31
    <!--
29
32
    <pemfile>@sysconfdir@/server.pem</pemfile>
30
33
    -->
65
68
 
66
69
  <!-- Storage database configuration -->
67
70
  <storage>
 
71
    <!-- Dynamic storage modules path -->
 
72
    <path>@pkglibdir@</path>
 
73
 
68
74
    <!-- By default, we use the MySQL driver for all storage -->
69
75
    <driver>mysql</driver>
70
76
 
71
77
    <!-- Its also possible to explicitly list alternate drivers for
72
78
         specific data types. -->
73
 
    <!-- Store vcards in a PostgreSQL database instead -->
74
 
    <!--
75
 
    <driver type='vcard'>pgsql</driver>
 
79
 
 
80
    <!-- Store vcards in a ldapvcard database instead -->
 
81
    <!--
 
82
    <driver type='vcard'>ldapvcard</driver>
 
83
    -->
 
84
 
 
85
    <!-- Read mapping for group id <-> group name from ldap.
 
86
         Used by mod_published_roster.
 
87
         See ldapvcard section for options.
 
88
         When resolving group id to group name, it searches for
 
89
         groupsobjectclass objects at groupsdn base using group id
 
90
         (in groupsidattr) as key and returns the first value of 
 
91
         groupattr of first found entry.
 
92
         E.g.. in general case, if group id is "some-dep", and groupsdn
 
93
         is o=org, and class is jabberGroup, it searches for
 
94
         (&(objectClass=jabberGroup)(cn=some-dep)) and returns value of
 
95
         jabberPublishedItem attribute, which may contain textual description.
 
96
         -->
 
97
    <!--
 
98
    <driver type='published-roster-groups'>ldapvcard</driver>
76
99
    -->
77
100
 
78
101
    <!-- MySQL driver configuration -->
91
114
      <!-- Transacation support. If this is commented out, transactions
92
115
           will be disabled. This might make database accesses faster,
93
116
           but data may be lost if jabberd crashes.
94
 
           
 
117
 
95
118
           This will need to be disabled if you are using a MySQL
96
119
           earlier than v3.23.xx, as transaction support did not appear
97
120
           until this version. -->
100
123
 
101
124
    <!-- PostgreSQL driver configuration -->
102
125
    <pgsql>
 
126
      <!-- PostgreSQL connection info.
 
127
           For the rest of the options see
 
128
           http://www.postgresql.org/docs/8.0/interactive/libpq.html -->
 
129
      <conninfo>dbname=jabberd2 user=jabberd2 password=secret</conninfo>
 
130
 
 
131
      <!-- Alternatively you may set connection settings separately.
 
132
           These are used only in absence of 'conninfo' -->
 
133
 
103
134
      <!-- Database server host and port -->
104
135
      <host>localhost</host>
105
136
      <port>5432</port>
117
148
      <transactions/>
118
149
    </pgsql>
119
150
 
120
 
    <!-- Berkeley DB driver configuration -->
 
151
    <!-- Berkeley DB driver configuration.  This does not support roster
 
152
         maxitems or offline userquota (because the mod_roster
 
153
         implementation does not implement the 'count' callback). -->
121
154
    <db>
122
155
      <!-- Directory to store database files under -->
123
156
      <path>@localstatedir@/jabberd/db</path>
141
174
      <user>jabberd2</user>
142
175
      <pass>secret</pass>
143
176
    </oracle>
 
177
 
 
178
    <!-- SQLite driver configuration -->
 
179
    <sqlite>
 
180
      <!-- Database name -->
 
181
      <dbname>@localstatedir@/jabberd/db/sqlite.db</dbname>
 
182
 
 
183
      <!-- Transacation support. If this is commented out, transactions
 
184
           will be disabled. This might make database accesses faster,
 
185
           but data may be lost if jabberd crashes. -->
 
186
      <transactions/>
 
187
 
 
188
      <!-- SQLite busy-timeout in milliseconds. -->
 
189
      <busy-timeout>2000</busy-timeout>
 
190
    </sqlite>
 
191
 
 
192
    <!-- Filesystem driver configuration -->
 
193
    <fs>
 
194
      <!-- Directory to store database files under. -->
 
195
      <path>@localstatedir@/lib/jabberd2/fs</path>
 
196
    </fs>
 
197
 
 
198
    <!-- LDAPVCARD driver configuration -->
 
199
    <ldapvcard>
 
200
      <!-- LDAP server host and port (default: 389) -->
 
201
      <uri>ldap://localhost/ ldaps://ldap.example.com/</uri>
 
202
      
 
203
      <!-- DN to bind as for searches. If unspecified, the searches
 
204
           will be done anonymously. -->
 
205
      <!--
 
206
      <binddn>cn=Directory Manager</binddn>
 
207
      <bindpw>secret</bindpw>
 
208
      -->
 
209
 
 
210
      <!-- see authreg.ldapfull int c2s.xml for description. -->
 
211
      <!--
 
212
      <type>ad</type>
 
213
      -->
 
214
 
 
215
      <!-- LDAP attribute that holds the user ID (default: uid) -->
 
216
      <uidattr>uid</uidattr>
 
217
      <objectclass>posixAccount</objectclass>
 
218
      <pwattr>userPassword</pwattr>
 
219
      <!-- if you use included jabberd.schema use this:
 
220
      <uidattr>jid</uidattr>
 
221
      <objectclass>jabberUser</objectclass>
 
222
      <pwattr>jabberPassword</pwattr>
 
223
      -->
 
224
 
 
225
      <!-- see authreg.ldapfull int c2s.xml for description. -->
 
226
      <!--
 
227
      <validattr>valid</validattr>
 
228
      -->
 
229
 
 
230
      <!-- base DN of the tree. You should specify a DN for each
 
231
           authentication realm declared in the <local/> section above,
 
232
           by using the realm attribute. -->
 
233
      <basedn>o=Example Corp.</basedn>
 
234
 
 
235
      <!-- attribute that holds published group name or id,
 
236
           jabberPublishedGroup if not set -->
 
237
      <!--
 
238
      <groupattr>jabberPublishedGroup</groupattr>
 
239
      -->
 
240
 
 
241
      <!-- boolean attribute that tells, publish or not this user
 
242
           jabberPublishedItem by default -->
 
243
      <!--
 
244
      <publishedattr>jabberPublishedItem</publishedattr>
 
245
      -->
 
246
 
 
247
      <!-- If value specified, then keep cache of "published-roster"
 
248
           database. Cache is renewed when kept more seconds than value
 
249
           specified. Setting this value increases perfomance of publishing
 
250
           roster. If not specified, then we don't keep cache. -->
 
251
      <publishedcachettl>60</publishedcachettl>
 
252
 
 
253
      <mapped-groups>
 
254
        <!-- If turned on, then reading mapping of group ids to names with
 
255
             LDAP will works. -->
 
256
        <!--
 
257
        <map-groups/>
 
258
        -->
 
259
 
 
260
        <!-- base for searches for group id to group name mappings -->
 
261
        <basedn>ou=jabbergroups, o=Example Corp.</basedn>
 
262
 
 
263
        <!-- what objectclass to search, jabberGroup by default -->
 
264
        <!--
 
265
        <objectclass>jabberGroup</objectclass>
 
266
        -->
 
267
 
 
268
        <!-- what attribute to search, cn by default -->
 
269
        <!--
 
270
        <idattr>cn</idattr>
 
271
        -->
 
272
 
 
273
        <!-- attribute with text group name, description by default -->
 
274
        <!--
 
275
        <nameattr>description</nameattr>
 
276
        -->
 
277
      </mapped-groups>
 
278
    </ldapvcard>
144
279
  </storage>
145
 
  
 
280
 
146
281
  <!-- Access control information -->
147
282
  <aci>
148
283
    <!-- The JIDs listed here will get access to all restricted
149
284
         functions, regardless of restrictions further down -->
150
285
    <acl type='all'>
151
 
      <jid>admin@localhost</jid>
 
286
      <jid>admin@localhost.localdomain</jid>
152
287
    </acl>
153
288
 
154
289
    <!-- These JIDs can send broadcast messages (announce, motd) -->
155
290
    <!--
156
291
    <acl type='broadcast'>
157
 
      <jid>nocstaff1@localhost</jid>
158
 
      <jid>nocstaff2@localhost</jid>
 
292
      <jid>nocstaff1@localhost.localdomain</jid>
 
293
      <jid>nocstaff2@localhost.localdomain</jid>
159
294
    </acl>
160
295
    -->
161
296
 
163
298
         (help requestes and such) -->
164
299
    <!--
165
300
    <acl type='messages'>
166
 
      <jid>support@localhost</jid>
 
301
      <jid>support@localhost.localdomain</jid>
167
302
    </acl>
168
303
    -->
169
304
 
170
305
    <!-- These JIDs can discover active user/session information -->
171
306
    <!--
172
307
    <acl type='disco'>
173
 
      <jid>webstatus@localhost</jid>
 
308
      <jid>webstatus@localhost.localdomain</jid>
174
309
    </acl>
175
310
    -->
176
311
  </aci>
190
325
       this may cause strange behaviour. Make sure you know what you're
191
326
       doing. -->
192
327
  <modules>
 
328
    <!-- Dynamic sm modules path -->
 
329
    <path>@pkglibdir@</path>
193
330
 
194
331
    <!-- sess-start. The modules in this chain are called when a session
195
332
         is first started (usually on request by c2s as part of the
196
333
         authentication process). This is normally used to load
197
334
         per-session data. -->
198
 
    <chain id='sess-start'/>
 
335
    <chain id='sess-start'>
 
336
      <module>status</module>           <!-- record status information -->
 
337
    </chain>
199
338
 
200
339
    <!-- sess-end. The modules in this chain are called just before a
201
340
         session is destroyed (after the client has disconnected). -->
202
341
    <chain id='sess-end'>
 
342
      <module>status</module>           <!-- update status information -->
203
343
      <module>iq-last</module>          <!-- update logout time -->
204
344
    </chain>
205
345
 
209
349
         this is usually handled by the "deliver" module. -->
210
350
    <chain id='in-sess'>
211
351
      <module>validate</module>         <!-- validate packet type -->
 
352
      <module>status</module>           <!-- update status information -->
212
353
      <module>privacy</module>          <!-- manage privacy lists -->
213
354
      <module>roster</module>           <!-- handle roster get/sets and s10ns -->
214
355
      <module>vacation</module>         <!-- manage vacation settings -->
215
356
      <module>iq-vcard</module>         <!-- store and retrieve the user's vcard -->
 
357
      <module>iq-ping</module>          <!-- return the server ping -->
216
358
      <module>iq-private</module>       <!-- manage the user's private data store -->
217
359
      <module>disco</module>            <!-- respond to agents requests from sessions -->
 
360
      <module>amp</module>              <!-- advanced message processing -->
218
361
      <module>offline</module>          <!-- if we're coming online for the first time, deliver queued messages -->
219
362
      <module>announce</module>         <!-- deliver motd -->
220
363
      <module>presence</module>         <!-- process and distribute presence updates -->
250
393
         session-manager-wide services (like service discovery). -->
251
394
    <chain id='pkt-sm'>
252
395
      <module>iq-last</module>          <!-- return the server uptime -->
 
396
      <module>iq-ping</module>          <!-- return the server ping -->
253
397
      <module>iq-time</module>          <!-- return the current server time -->
254
398
      <module>iq-version</module>       <!-- return the server name and version -->
 
399
      <module>amp</module>              <!-- advanced message processing -->
255
400
      <module>disco</module>            <!-- build the disco list; respond to disco queries -->
256
401
      <module>announce</module>         <!-- send broadcast messages (announce, motd, etc) -->
257
402
      <module>help</module>             <!-- resend sm messages to administrators -->
258
403
      <module>echo</module>             <!-- echo messages sent to /echo -->
 
404
      <module>status</module>           <!-- track status information -->
 
405
      <module>presence</module>         <!-- proces server presence subscriptions -->
259
406
    </chain>
260
407
 
261
408
    <!-- pkt-user. The modules in this chain are called when a packet
267
414
      <module>roster</module>           <!-- handle s10n responses -->
268
415
      <module>presence</module>         <!-- process and distribute incoming presence from external entities -->
269
416
      <module>iq-vcard</module>         <!-- grab user vcards -->
 
417
      <module>amp</module>              <!-- advanced message processing -->
270
418
      <module>deliver</module>          <!-- deliver the packet to an active session if we can -->
271
419
      <module>vacation</module>         <!-- send vacation messages -->
272
420
      <module>offline</module>          <!-- save messages and s10ns for later -->
278
426
         special-purpose packet arrives from the router (eg domain
279
427
         advertisements). -->
280
428
    <chain id='pkt-router'>
281
 
      <module>session</module>          <!-- take sessions offline their c2s disappears -->
 
429
      <module>session</module>          <!-- take sessions offline if their c2s disappears -->
282
430
      <module>disco</module>            <!-- query new components for service information -->
283
431
    </chain>
284
432
 
288
436
    <chain id='user-load'>
289
437
      <module>active</module>           <!-- get active status -->
290
438
      <module>roster</module>           <!-- load the roster and trust list -->
 
439
      <module>roster-publish</module>   <!-- load the published roster -->
291
440
      <module>privacy</module>          <!-- load privacy lists -->
292
441
      <module>disco-publish</module>    <!-- load published information -->
293
442
      <module>vacation</module>         <!-- load vacation settings -->
314
463
      <module>privacy</module>          <!-- delete privacy lists -->
315
464
      <module>roster</module>           <!-- delete roster -->
316
465
      <module>vacation</module>         <!-- delete vacation settings -->
 
466
      <module>status</module>           <!-- delete status information -->
317
467
      <module>iq-last</module>          <!-- delete last logout time -->
318
468
      <module>iq-private</module>       <!-- delete private data -->
319
469
      <module>iq-vcard</module>         <!-- delete vcard -->
320
470
    </chain>
321
471
 
 
472
    <!-- disco-extend. The modules in this chain are called when a disco
 
473
         info request is send to session manager. It implements XEP-0128
 
474
         Service Discovery Extensions mechanizm to add additional
 
475
         information to disco#info reply. -->
 
476
    <chain id='disco-extend'>
 
477
      <module>iq-version</module>       <!-- add XEP-xxxx Software Information -->
 
478
      <module>help</module>             <!-- add XEP-0157 Contact Addresses -->
 
479
    </chain>
 
480
 
322
481
  </modules>
323
482
 
324
483
  <!-- Service discovery configuration -->
341
500
    <!-- Static service list.
342
501
 
343
502
         The discover module can discover disco-capable services
344
 
         automatically as they come online. Most legacy services,
 
503
         automatically as they come online. Most XEP-0114 components,
345
504
         however, will not support discovery. In order to get them to
346
505
         appear in disco/agents lists returned to the client, they
347
506
         should be listed here.
367
526
 
368
527
    </items>
369
528
 
 
529
    <!-- Server information added to server discovery information
 
530
         in http://jabber.org/network/serverinfo jabber:x:data form. (XEP-0157)
 
531
 
 
532
         May contain many values per item -->
 
533
    <!--
 
534
    <serverinfo>
 
535
      <admin-addresses>
 
536
        <value>mailto:xmpp@localhost.localdomain</value>
 
537
        <value>xmpp:admins@localhost.localdomain</value>
 
538
      </admin-addresses>
 
539
      <abuse-addresses>
 
540
        <value>mailto:abuse@localhost.localdomain</value>
 
541
        <value>xmpp:abuse@localhost.localdomain</value>
 
542
      </abuse-addresses>
 
543
      <feedback-addresses>
 
544
        <value>http://example.org/feedback.php</value>
 
545
      </feedback-addresses>
 
546
      <sales-addresses/>
 
547
      <security-addresses/>
 
548
      <support-addresses/>
 
549
    </serverinfo>
 
550
    -->
 
551
 
370
552
  </discovery>
371
553
 
372
554
  <!-- User options -->
387
569
    <!-- Templates. If defined, the contents of these files will be
388
570
         stored in the users data store when they are created. -->
389
571
    <template>
 
572
      <!-- Uncomment <publish> if you wish to forcely publish
 
573
           roster template from ldap on each user login -->
 
574
      <!--
 
575
      <publish>
 
576
      -->
 
577
        <!-- If <check-remove-domain> given, then published contact checked
 
578
               against sm user database and if user is unknown to sm, contact
 
579
               will be deleted from user's roster (if it is in roster). -->
 
580
        <!--
 
581
        <check-remove-domain>jabber.example.com</check-remove-domain>
 
582
        -->
 
583
        <!-- Keep cache of "active" database specified number of seconds.
 
584
             This will significantly speed up publishing of roster.
 
585
             If unspecified or 0, no cache is used. -->
 
586
        <active-cache-ttl>60</active-cache-ttl>
 
587
        <!-- If <fix-subscriptions/> is not commented, set subscriptions of
 
588
             user's contacts to subscriptions of corresponding published
 
589
             contacts. As for now, "both". -->
 
590
        <!--
 
591
        <fix-subscriptions/>
 
592
        -->
 
593
        <!-- If <override-names/> is not commented, then displayed names of
 
594
             contacts in user's roster will be updated accordingly to
 
595
             published roster (if they differ). If commented, then user can
 
596
             rename contacs in roster -->
 
597
        <!--
 
598
        <override-names/>
 
599
        -->
 
600
        <!-- when mapped-groups is on (<map-groups/> is uncommented, the actual
 
601
             group names for published contacts are read from
 
602
             published-roster-groups storage type, which in turn may be mapped
 
603
             to ldapvcard driver. The key for searching is published user's
 
604
             group, and returned value is used as group name. So you can assign
 
605
             textual group IDs to users rather then group names.
 
606
             group-cache-ttl keeps cache of mapping group id <-> group name for
 
607
             specified number of seconds. If unspecified or 0, no cache is used.
 
608
             -->
 
609
        <!--
 
610
        <mapped-groups/>
 
611
          <map-groups/>
 
612
          <group-cache-ttl>120</group-cache-ttl>
 
613
        </mapped-groups>
 
614
        -->
 
615
        <!-- If <force-groups> is commented out, published roster's contact
 
616
             added to user's roster only when user does not have this contact.
 
617
             If <force-groups> is not commented out, then these checks performed
 
618
             against roster item when publishing roster item that already in
 
619
             user's roster:
 
620
               If user already has added his roster's contact to group of
 
621
               published contact, no changes are made with this group (note
 
622
               that contact may be in more than one group).
 
623
               If <prefix> given, then prefix of each group of user's compared
 
624
               whith given prefix, and if it matches, user's contact removed from
 
625
               matched group (see below).
 
626
               Same for <suffix>.
 
627
               After that, user's contact added to a group of published roster's
 
628
               contact.
 
629
             In other words, all groups of updated contact, that match prefix
 
630
             or suffix, replaced with group of published contact.
 
631
             This is done because there is no way to determine that group was
 
632
             published or greated by user. -->
 
633
        <!--
 
634
        <force-groups>
 
635
          <prefix>MyOrg.</prefix>
 
636
          <suffix>(MyOrg)</suffix>
 
637
        </force-groups>
 
638
        -->
 
639
      <!--
 
640
      </publish>
 
641
      -->
 
642
 
 
643
      <!-- If you defined publish, you should comment <roster> -->
390
644
      <!--
391
645
      <roster>@sysconfdir@/templates/roster.xml</roster>
392
646
      -->
393
647
    </template>
394
648
  </user>
395
649
 
 
650
  <!-- Advanced Message Processing module configuration -->
 
651
  <amp>
 
652
    <!-- You can disable some actions -->
 
653
    <!--
 
654
    <disableactions>
 
655
      <drop/>
 
656
      <error/>
 
657
      <alert/>
 
658
      <notify/>
 
659
    </disableactions>
 
660
    -->
 
661
 
 
662
    <!-- You can disable some conditions -->
 
663
    <!--
 
664
    <disableconditions>
 
665
      <expireat/>
 
666
      <matchresource/>
 
667
      <deliver/>
 
668
    </disableconditions>
 
669
    -->
 
670
 
 
671
    <!-- You need to enable this if your server has offline storage disabled -->
 
672
    <!--
 
673
    <offlinestoragedisabled/>
 
674
    -->
 
675
  </amp>
 
676
 
 
677
  <!-- Offline module configuration -->
 
678
  <offline>
 
679
    <!-- Do not store messages in offline store -->
 
680
    <!--
 
681
    <dropmessages/>
 
682
    -->
 
683
 
 
684
    <!-- Store headline messages in offline store -->
 
685
    <!--
 
686
    <storeheadlines/>
 
687
    -->
 
688
 
 
689
    <!-- Do not store subscription requests in offline store -->
 
690
    <!--
 
691
    <dropsubscriptions/>
 
692
    -->
 
693
 
 
694
    <!-- Offline storage message quota.
 
695
         Specifies how many messages will be stored in user offline store -->
 
696
    <!--
 
697
    <userquota>500</userquota>
 
698
    -->
 
699
  </offline>
 
700
 
 
701
  <!-- roster module configuration -->
 
702
  <roster>
 
703
    <!-- maximum items per user roster -->
 
704
    <!--
 
705
    <maxitems>100</maxitems>
 
706
    -->
 
707
  </roster>
 
708
 
 
709
  <!-- status module configuration -->
 
710
  <status>
 
711
    <!-- presence service resource
 
712
         disabled when commented out -->
 
713
    <!--
 
714
    <resource>webstatus</resource>
 
715
    -->
 
716
  </status>
 
717
 
396
718
</sm>
 
719
<!--
 
720
  vim: syntax=xml
 
721
-->