<!-- Router configuration --> <router> <!-- ID of the router on the network (default: router) --> <id>router</id> <!-- The process ID file. Comment this out if you don't need to know the process ID from outside the process (eg for control scripts) --> <pidfile>/var/run/jabber/jabberd2-router.pid</pidfile> <!-- Log configuration - type is "syslog", "file" or "stdout" --> <log type='syslog'> <!-- If logging to syslog, this is the log ident --> <ident>jabberd/router</ident> <!-- If logging to syslog, this is the log facility (local0 - local7) [default: local3] --> <facility>local3</facility> <!-- If logging to file, this is the filename of the logfile --> <!-- <file>/var/log/jabber/router.log</file> --> <!-- Filename of the debug logfile --> <!-- <debug>/var/log/jabber/debug-${id}.log</debug> --> </log> <!-- Local network configuration --> <local> <!-- IP address to bind to (default: 0.0.0.0) --> <ip>0.0.0.0</ip> <!-- Port to bind to (default: 5347) --> <port>5347</port> <!-- File containing the user table. This is where the router gets its component and secret information from for component authentication.--> <users>/etc/jabber/router-users.xml</users> <!-- Shared secret used to identify XEP-0114 components (that is, "jabber:component:accept" components that authenticate using the Jabber Component Protocol's "handshake", for example mu-conference). If this is commented out, support for XEP-0114 components will be disabled. --> <secret>secret</secret> <!-- File containing an SSL certificate and private key for client connections. From SSL_CTX_use_certificate_chain_file(3): "The certificates must be in PEM format and must be sorted starting with the subject's certificate (actual client or server certificate), followed by intermediate CA certificates if applicable, and ending at the highest level (root) CA" (the latter one being optional). If this is commented out, connecting components will not be able to request an SSL-encrypted channel. --> <!-- <pemfile>/etc/jabber/server.pem</pemfile> --> </local> <!-- Timed checks --> <check> <!-- Interval between checks. Checks will be run every n seconds. 0 disables all checks. (default: 60) --> <interval>60</interval> <!-- Keepalives. Connections that have not been used for longer than this many seconds will have a single whitespace character sent to them. This will force the TCP connection to be closed if they have disconnected without us knowing about it. 0 disables keepalives. (default: 0) --> <keepalive>0</keepalive> </check> <!-- input/output settings --> <io> <!-- Maximum number of file descriptors. Note that the number of possible connections will be slightly less than this, because the router itself can use up four on its own. If the supply of file descriptors is exhausted, new incoming connections will be denied. These file descriptors are really only used when a component connects to the router. So unless you have a lot of components for some reason then you probably don't need to change this value. (default: 1024) --> <max_fds>1024</max_fds> <!-- Rate limiting --> <limits> <!-- Maximum bytes per second - if more than X bytes are sent in Y seconds, connection is throttled for Z seconds. The format is: <bytes seconds='Y' throttle='Z'>X</bytes> Default Y is 1, default Z is 5. set X to 0 to disable. --> <bytes>0</bytes> <!-- Maximum connects per second - if more than X connects are attempted from a single IP in Y seconds, that IP is throttled for Z seconds. The format is: <connects seconds='Y' throttle='Z'>X</connects> Default Y is 5, default Z is 5. set X to 0 to disable. --> <connects>0</connects> </limits> <!-- IP-based access controls. If a connection IP matches an allow rule, the connection will be accepted. If a connecting IP matches a deny rule, the connection will be refused. If the connecting IP does not match any rules, or it matches both an allow and a deny rule, the contents of the <order/> option determines what happens. --> <access> <!-- Rule check order (default: allow,deny) allow,deny - Check allow rules, then check deny rules. Allow by default. deny,allow - Check deny rules, then check allow rules. Deny by default. --> <order>allow,deny</order> <!-- Allow a network. If the mask isn't specified, it defaults to 255.255.255.255 (ie allow onle the specified IP) --> <!-- <allow ip='127.0.0.0' mask='255.0.0.0'/> --> <!-- Allow a single host --> <!-- <allow ip='12.34.56.78'/> --> <!-- Deny a network or a host --> <!-- <deny ip='127.0.0.1' mask='255.0.0.0'/> <deny ip='87.65.43.21'/> --> </access> </io> <!-- Name aliases. Packets destined for the domain specified in the "name" attribute will be routed to the component that has currently bound the name in the "target" attribute (assuming it is online). This is usually only required for some kinds of legacy components (particularly jabberd 1.4 "uplink" components) --> <aliases> <!-- Example for a MUC component running from a jabberd 1.4 uplink --> <!-- <alias name='conference.domain.com' target='muclinker'/> --> </aliases> <!-- Access control information --> <aci> <!-- The usernames listed here will get access to all restricted functions, regardless of restrictions further down --> <acl type='all'> <user>jabberd</user> </acl> <!-- These users can bind names other than their username --> <!-- <acl type='bind'> </acl> --> <!-- These users can bind a name as a default route --> <!-- <acl type='default-route'> <user>s2s</user> </acl> --> <!-- These users can elect to receive all packets that pass through the router --> <!-- <acl type='log'> <user>msglog</user> </acl> --> <!-- File containing packet filter rules. May be used for fine grained packet routing control. --> <filter>/etc/jabber/router-filter.xml</filter> </aci> <!-- Simple message logging to flat file Remove <enabled/> tag to disable logging --> <!-- <message_logging> <enabled/> <file>filename</file> </message_logging> --> </router> <!-- vim: syntax=xml -->