8.8 Archivos de configuración de servidor implantado en Facultad de Ingeniería

A continuación presentaremos las modificaciones de los archivos de configuración de Jabberd 2.0, MU-Conference y Bandersnatch según instalación en equipo de prueba de Facultad de Ingeniería

8.8.1 Jabberd

8.8.1.1 Componente C2S

<!-- c2s configuration -->

<c2s>

<id>c2s</id>

<pidfile>/usr/local/var/jabberd/pid/c2s.pid</pidfile>


<!-- Router connection configuration -->

<router>

<ip>127.0.0.1</ip>

<port>5347</port>

<!-- Username/password to authenticate as -->

<user>jabberd</user>

<pass>secret</pass>

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>


<!-- Router connection retry -->

<retry>

<init>3</init>

<lost>3</lost>

<sleep>2</sleep>

</retry>

</router>


<!-- Log configuration - type is "syslog", "file" or "stdout" -->

<log type='file'>

<ident>jabberd/c2s</ident>

<facility>local3</facility>

<file>/usr/local/var/jabberd/log/c2s.log</file>

</log>


<!-- Local network configuration -->

<local>

<id>tortuga.fing.edu.uy</id>

<ip>0.0.0.0</ip>

<port>5222</port>

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>

<ssl-port>5223</ssl-port>

</local>


<!-- Input/output settings -->

<io>

<max_fds>1024</max_fds>

<!-- Rate limiting -->

<limits>

<bytes>0</bytes>

<connects>0</connects>

</limits>


<access>

<order>allow,deny</order>

</access>


<!-- Timed checks -->

<check>

<interval>0</interval>

<idle>0</idle>

<keepalive>0</keepalive>

</check>

</io>


<!-- Authentication/registration database configuration -->

<authreg>

<!-- Backend module to use -->

<module>mysql</module>

<!-- Registration configuration -->

<register>

<enable/>

<instructions>Enter a username and password to register with this server.</instructions>

<password/>

</register>


<!-- Available authentication mechanisms -->

<mechanisms>

<traditional>

<plain/>

<digest/>

<zerok/>

</traditional>

<sasl>

<plain/>

<digest-md5/>

</sasl>


</mechanisms>


<!-- MySQL module configuration -->

<mysql>

<!-- Database server host and port -->

<host>localhost</host>

<port>3306</port>

<!-- Database name -->

<dbname>jabberd2</dbname>

<!-- Database username and password -->

<user>jabberd2</user>

<pass>jabberd2</pass>

</mysql>


<!-- Pipe module configuration -->

<pipe>

<!-- Program to execute -->

<exec>/usr/local/bin/pipe-auth.pl</exec>

</pipe>

</authreg>

</c2s>


8.8.1.2 Componente SM


<!-- Session manager configuration -->

<sm>

<id>tortuga.fing.edu.uy</id>

<pidfile>/usr/local/var/jabberd/pid/sm.pid</pidfile>


<!-- Router connection configuration -->

<router>

<!-- IP/port the router is waiting for connections on -->

<ip>127.0.0.1</ip>

<port>5347</port>

<!-- Username/password to authenticate as -->

<user>jabberd</user>

<pass>secret</pass>

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>

<!-- Router connection retry -->

<retry>

<init>3</init>

<lost>3</lost>

<sleep>2</sleep>

</retry>

</router>


<!-- Log configuration - type is "syslog", "file" or "stdout" -->

<log type='file'>

<ident>jabberd/sm</ident>

<facility>local3</facility>

<file>/usr/local/var/jabberd/log/sm.log</file>

</log>


<!-- Storage database configuration -->

<storage>

<driver>mysql</driver>


<!-- MySQL driver configuration -->

<mysql>

<host>localhost</host>

<port>3306</port>

<dbname>jabberd2</dbname>

<user>jabberd2</user>

<pass>jabberd2</pass>

<transactions/>

</mysql>

</storage>

<!-- Access control information -->

<aci>

<acl type='all'>

<jid>admin@tortuga.fing.edu.uy</jid>

</acl>

</aci>


<modules>

<chain id='sess-start'/>


<chain id='sess-end'>

<module>iq-last</module>

</chain>


<chain id='in-sess'>

<module>validate</module>

<module>privacy</module>

<module>roster</module>

<module>vacation</module>

<module>iq-vcard</module>

<module>iq-private</module>

<module>disco</module>

<module>offline</module>

<module>announce</module>

<module>presence</module>

<module>deliver</module>

</chain>


<chain id='out-sess'/>


<chain id='in-router'>

<module>session</module>

<module>validate</module>

<module>presence</module>

<module>privacy</module>

</chain>


<chain id='out-router'>

<module>privacy</module>

</chain>


<chain id='pkt-sm'>

<module>iq-last</module>

<module>iq-time</module>

<module>iq-version</module>

<module>disco</module>

<module>announce</module>

<module>help</module>

<module>echo</module>

</chain>


<chain id='pkt-user'>

<module>roster</module>

<module>presence</module>

<module>iq-vcard</module>

<module>deliver</module>

<module>vacation</module>

<module>offline</module>

<module>disco-publish</module>

<module>iq-last</module>

</chain>


<chain id='pkt-router'>

<module>session</module>

<module>disco</module>

</chain>


<chain id='user-load'>

<module>active</module>

<module>roster</module>

<module>privacy</module>

<module>disco-publish</module>

<module>vacation</module>

</chain>


<chain id='user-create'>

<module>active</module>

<module>template-roster</module>

</chain>


<chain id='user-delete'>

<module>active</module>

<module>announce</module>

<module>disco-publish</module>

<module>offline</module>

<module>privacy</module>

<module>roster</module>

<module>vacation</module>

<module>iq-last</module>

<module>iq-private</module>

<module>iq-vcard</module>

</chain>


</modules>


<!-- Service discovery configuration -->

<discovery>


<identity>

<category>server</category>

<type>im</type>

<name>Jabber M.I. server</name>

</identity>


<agents>

<agent jid='conference.tortuga.fing.edu.uy'>

<name>Public Conferencing</name>

<description>Public chatrooms for users.</description>

<service>public</service>

<groupchat/>

</agent>

</agents>


<items>

</items>


</discovery>


<!-- User options -->

<user>

<auto-create/>


<!-- Templates. If defined, the contents of these files will be

stored in the users data store when they are created. -->

<template>

<!--

<roster>/usr/local/etc/jabberd/templates/roster.xml</roster>

-->

</template>

</user>


</sm>


8.8.1.3 Componente Router


<!-- Router configuration -->

<router>

<!-- ID of the router on the network (default: router) -->

<id>router</id>

<pidfile>/usr/local/var/jabberd/pid/router.pid</pidfile>

<!-- Log configuration - type is "syslog", "file" or "stdout" -->

<log type='file'>

<!-- If logging to syslog, this is the log ident -->

<ident>jabberd/router</ident>

<facility>local3</facility>

<!-- If logging to file, this is the filename of the logfile -->

<file>/usr/local/var/jabberd/log/router.log</file>

</log>


<!-- Local network configuration -->

<local>

<ip>0.0.0.0</ip>

<port>5347</port>

<users>/usr/local/etc/jabberd/router-users.xml</users>

<secret>secret</secret>

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>

</local>


<!-- input/output settings -->

<io>

<max_fds>1024</max_fds>

<limits>

<bytes>0</bytes>

<connects>0</connects>

</limits>

<access>

<order>allow,deny</order>

</access>

</io>


<aliases>

<alias name='conference.tortuga.fing.edu.uy' target='mu-conference'/>

</aliases>


<!-- Access control information -->

<aci>

<acl type='all'>

<user>jabberd</user>

</acl>


<!-- These users can bind names other than their username -->

<acl type='bind'>

<user>bandersnatch</user>

</acl>

<acl type='log'>

<user>bandersnatch</user>

</acl>

</aci>


</router>



8.8.1.4 Componente Router-Users

<!-- This is the list of known router users, and their authentication

secrets. Access control is done via the settings in router.xml -->

<users>

<user>

<name>jabberd</name>

<secret>secret</secret>

</user>

<user>

<name>muc</name>

<secret>secret</secret>

</user>

<user>

<name>bandersnatch</name>

<secret>bandersnatch</secret>

</user>

</users>



8.8.1.5 Componente S2S

<!-- s2s configuration -->

<s2s>

<!-- Our ID on the network (default: s2s) -->

<id>s2s</id>

<pidfile>/usr/local/var/jabberd/pid/s2s.pid</pidfile>

<router>


<ip>127.0.0.1</ip>

<port>5347</port>

<user>jabberd</user>

<pass>secret</pass>

<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>

<retry>

<init>3</init>

<lost>3</lost>

<sleep>2</sleep>

</retry>

</router>


<log type='file'>

<ident>jabberd/s2s</ident>

<facility>local3</facility>

<file>/usr/local/var/jabberd/log/s2s.log</file>

</log>


<!-- Local network configuration -->

<local>

<ip>0.0.0.0</ip>

<port>5269</port>

<resolver>resolver</resolver>

</local>


<!-- Timed checks -->

<check>

<interval>0</interval>

<queue>0</queue>

<invalid>0</invalid>

<keepalive>0</keepalive>

</check>

</s2s>



8.8.2 Bandersnatch

<config>

<server>

<connectiontype>tcpip</connectiontype>

<hostname>tortuga.fing.edu.uy</hostname>

<port>5347</port>

<secret>bandersnatch</secret>

</server>

<component>

<name>bandersnatch</name>

</component>

<mysql>

<server>localhost</server>

<dbname>bandersnatch</dbname>

<username>bandersnatch</username>

<password>bandersnatch</password>

</mysql>

<debug>

<level>0</level>

<file>stdout</file>

</debug>

<site>

<local_server>tortuga.fing.edu.uy</local_server>

<admin_jids>admin@tortuga.fing.edu.uy</admin_jids>

<confidential_jids>theboss@tortuga.fing.edu.uy</confidential_jids>

<ignore_jids>chatbot@tortuga.fing.edu.uy</ignore_jids>

<ignore_jids>bandersnatch@tortuga.fing.edu.uy</ignore_jids>

<ignore_jids>headlines.jabber.lab-inco.fing.edu.uy</ignore_jids>

<local_domains>conference.tortuga.fing.edu.uy</local_domains>

<local_domains>bandersnatch.tortuga.fing.edu.uy</local_domains>

<privacy>1</privacy>

<aggressive_presence>0</aggressive_presence>

</site>

</config>



8.8.3 MU-Conference

<jcr>

<!--

This is a config file for a copy of MU-Conference, compiled

against the Jabber Component Runtime (JCR). This is the same

file that I use to connect to my development server, running

jabberd2 beta2

In order to connect to a jabberd v1.4 server, simply change

the <name> value to muclinker, and make sure the muclinker

section is in your main jabber.xml file, as per the MU-

Conference README file.

-->


<name>mu-conference</name>

<host>conference.tortuga.fing.edu.uy</host>

<ip>192.168.32.50</ip>


<port>5347</port>

<user>muc</user>

<secret>secret</secret>


<spool>

/usr/local/var/jabberd/spool/conference.tortuga.fing.edu.uy

</spool>

<logdir>/usr/local/var/jabberd/log</logdir>

<pidfile>/usr/local/var/jabberd/pid/mu-conference.pid</pidfile>

<!--

<logstderr/>

-->

<loglevel>124</loglevel>


<conference xmlns="jabber:config:conference">

<public/>

<vCard>

<FN>Public Chatrooms</FN>

<DESC>This service is for public chatrooms.</DESC>

<URL>http://foo.bar/</URL>

</vCard>

<history>40</history>

<logdir>/usr/local/var/jabberd/log</logdir>

<notice>

<join>has become available</join>

<leave>has left</leave>

<rename>is now known as</rename>

</notice>

<sadmin>

<user>admin@tortuga.fing.edu.uy</user>

</sadmin>

</conference>

</jcr>


8.8.3.1 Ejemplo de Seteo de Salas de Conferencia en MU-Conference

Contenido del archivo 2402f2f44290e8505ddac91e3a0aad89e6ed079a.xml.


<xdb>

<list xdbns="muc:list:owner">

<item jid="mario@tortuga.fing.edu.uy" />

</list>

<list xdbns="muc:list:admin">

<item jid="mario@tortuga.fing.edu.uy" />

</list>

<list xdbns="muc:list:member">

<item jid="mario@tortuga.fing.edu.uy" />

<item jid="mvd1304@tortuga.fing.edu.uy" />

</list>

<list xdbns="muc:list:outcast">

</list>

<room xdbns="muc:room:config">

<name>Chat1</name>

<creator>mario@tortuga.fing.edu.uy</creator>

<defaulttype>0</defaulttype>

<description>Sala 1 de prueba - creado por mario</description>

<invitation>1</invitation>

<invites>0</invites>

<legacy>1</legacy>

<logformat>0</logformat>

<logging>0</logging>

<maxusers>20</maxusers>

<moderated>1</moderated>

<notice>

<join>join</join>

<leave>leave</leave>

<rename>rename</rename>

</notice>

<persistent>1</persistent>

<private>0</private>

<privmsg>0</privmsg>

<public>0</public>

<secret>pwdchat1</secret>

<subject>proyecto GNU/Linux</subject>

<subjectlock>0</subjectlock>

<visible>0</visible>

</room>

</xdb>


Contenido del archivo rooms.xml


<xdb>

<registered xdbns="muc:room:list">

<item name = "chat1@tortuga.fing.edu.uy"

jid = "2402f2f44290e8505ddac91e3a0aad89e6ed079a@tortuga.fing.edu.uy" />

</registered>

</xdb>


Estos dos archivos pueden usarse como plantilla para la generación manual de otras salas con nombres más comprensibles. Por cada sala creada deberá agregarse a room.xml otra sección <registered> del tipo

<registered xdbns="muc:room:list">

<item name = "nombreSala@jabber.fing.edu.uy"

jid = "nombreSala@jabber.fing.edu.uy" />

</registered>



8.8.4 WebMessenger

<?php


// Enter your MySQL database settings.

define("DB_HOST","localhost");

define("DB_USER","webmassenger");

define("DB_PASS","xxxxxxxxxxxx");

define("DB_NAME","webmessenger");



define("JABBER_SERVER","tortuga.fing.edu.uy");

define("JABBER_PORT","5222");



define("TRANSPORT_MSN","");

define("TRANSPORT_ICQ","");

define("TRANSPORT_AIM","");

define("TRANSPORT_YIM","");


define("JABBER_RUNNING","ps ax | grep jabberd");

define("MSN_RUNNING","ps ax | grep msntrans");

define("ICQ_RUNNING","ps ax | grep icqv7ext");

define("YIM_RUNNING","");

define("AIM_RUNNING","");


define("JABBER_RESOURCE","WebMsgr");


$font_family = "Tahoma,Verdana,Arial,Helvetica,sans-serif";

$font_size = 8;


$theme = "default";


define("DEFAULT_LANGUAGE","english");



define("ALLOW_EXISTING_ACCOUNTS",true);



define("DEBUG_MODE",0);

?>



8.8.5 Herramienta Jabbsimul


Para prueba de estabilidad


<dpsm>


<events_after>1</events_after>


<user_names_generator>

<range>

<from>10</from>

<to>60</to>

</range>

<name>test%(num:u)</name>

<server>tortuga.fing.edu.uy</server>

</user_names_generator>


<user_properities>

<filter><name>test.*</name></filter>

<properities>

<fullname>test%(num*2:u)-%(3+num%12000/(1+3)+7:u)</fullname>

<password>password</password>

<resource>stressingser</resource>

<Xhost>tortuga.fing.edu.uy</Xhost>

<!-- <sniff>/usr/local/var/jabberd/log/</sniff> -->


<event>

<name>connect</name>

<frequency>60000</frequency>

<counter>2000</counter>

<digest/>

</event>


<event>

<name>add_roster</name>

<frequency>150000</frequency>

<user><range><from>1</from><to>50</to></range></user>

<max_roster_count>20</max_roster_count>

</event>


<event>

<name>del_roster</name>

<frequency>150000</frequency>

</event>


<event>

<name>send_message</name>

<frequency>7000</frequency>

<user><range><from>10</from><to>60</to></range></user>

<prepend_with_debug_info/>

<text>Mensaje de envío de prueba para simular carga stress</text>

</event>


<event>

<name>change_status</name>

<frequency>30000</frequency>

<status>Jezdem tera dostepny</status>

<show>chat</show>

</event>


<Xevent>

<name>logout</name>

<frequency>60000</frequency>

</Xevent>


<Xevent>

<name>kill_connection</name>

<frequency>120000</frequency>

</Xevent>


<Xevent>

<name>send_raw_bytes</name>

<frequency>300000</frequency>

<random_stream len="1000"/>

</Xevent>


</properities>

</user_properities>

</dpsm>



Configuración para prueba de overhead de Log conversacional


<dpsm>


<events_after>1</events_after>


<user_names_generator>

<range>

<from>10</from>

<to>60</to>

</range>

<name>test%(num:u)</name>

<server>tortuga.fing.edu.uy</server>

</user_names_generator>


<user_properities>

<filter><name>test.*</name></filter>

<properities>

<fullname>test%(num*2:u)-%(3+num%12000/(1+3)+7:u)</fullname>

<password>password</password>

<resource>stressingser</resource>

<Xhost>tortuga.fing.edu.uy</Xhost>

<!-- <sniff>/usr/local/var/jabberd/log/</sniff> -->


<event>

<name>connect</name>

<frequency>60000</frequency>

<counter>2000</counter>

<digest/>

</event>


<event>

<name>add_roster</name>

<frequency>150000</frequency>

<user><range><from>1</from><to>50</to></range></user>

<max_roster_count>20</max_roster_count>

</event>


<event>

<name>del_roster</name>

<frequency>150000</frequency>

</event>


<event>

<name>send_message</name>

<frequency>15000</frequency>

<user><range><from>10</from><to>60</to></range></user>

<prepend_with_debug_info/>

<text>Mensaje de envío de prueba para simular carga stre</text>

</event>


<event>

<name>change_status</name>

<frequency>30000</frequency>

<status>Jezdem tera dostepny</status>

<show>chat</show>

</event>


<Xevent>

<name>logout</name>

<frequency>60000</frequency>

</Xevent>


<Xevent>

<name>kill_connection</name>

<frequency>120000</frequency>

</Xevent>


<Xevent>

<name>send_raw_bytes</name>

<frequency>300000</frequency>

<random_stream len="1000"/>

</Xevent>


</properities>

</user_properities>

</dpsm>

Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.