http://www.iespana.es/tecsi/

-Configuracin simple del servidor Urealircd (win32):



A continuacin vamos a explicar como debes configurar tu server unreal. 

NOTA::::
Ahora veremos una pequea explicacion y al final se vera la configuracion final............ (que es lo que teneis que copiar si no sabeis hacerlo por vosotros mismos)


/*
* antigua: M:Line 
* me {} define el nombre, descripcin y el numrico del server
* 
* me { 
*  name "nombre del server"; 
*  info "Descripcin del server";
*  numeric (server numerico*);
* }; 
* IMPORTANTE: si linkas con otro server este numrico no lo puedes poner en el otro, ni en cualquier server de tu red.
* 
*/

NOMBRE DEL SERVER:  El nombre del server es lo ke vemos justo abajo, donde pone 
 :::: Welcome to the MUnO.Org IRC Network Ni[0!nico@localhost
 :::: Your host is muno.X-1, running version Unreal3.2-Selene[beta9]
 :::: This server was created Sun Mar 24 12:44:20 2002
:::: muno.X-1 Unreal3.2-Selene[beta9] iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN

DESCRIPCION DEL SERVER: veamos un whois realizado a un usuario.........

-- [ /whois Ni[0 ] ------------------------------------------------------------------
        :  Address : nico@MUnO-38CAB14F
        :  Name : Conoces a Joe Black?
        :  Server : muno.X-1 [ Servicio de Chat X-1 ]
        :  Idle : 0s [ Sign on: 22:17:08 - 25/04/2002 (Thursday)  Online time: 4s  ]
-- [ End ] ------------------------------------------------------

Asi quedaria la configuracion............

me
{
name "MUnO.X-1";
info "Servicio de Chat X-1";
numeric 1;
};


/*
* antigua: A:Line 
*Da informacin  del server, la administracin, etc.. Miralo con el comando  /admin
* La sintaxis es lo siguiente:
* admin {
*   "primera linia"; 
*   "segunda linea"; 
*   [etc]
* };
*/
Esto es lo que sale al hacer  /admin .....................


 :::: Administrative info about muno.X-1
 :::: Servidor de Chat X-1
 :::: MUnO.Org
 :::: chat@muno.org

Asi logramos el admin que esta en el ejemplo.......  

admin {
"Servidor de Chat X-1";
"MUnO.Org";
"chat@muno.org";
};

/*
* antigua: Y:line 
* Aqu se define la clase, el ping, el maxsendq, etc... Es bastante importante, aunque decir 
*que lo podeis dejar asi como esta en este ejemplo
* La sintaxis es la siguiente
* class (class name)
* {
*     pingfreq (tiempo en realizar un ping user/server en segundos);
*     maxclients (cuantos clientes para esta clase);
*     sendq (maximum send queue para la conexion);
*  };
*/
Si hacemos un /stats Y nos respondera lo siguiente (puedes hacer que segn que STATS solo los IRCops lo vean. Se explica mas abajo) 

 :::: Y servers 90 100 10 1000000
 :::: Y clients 90 0 500 100000
 :::: Y default 120 0 100 3000000      ------------>>> en este creo ke no hace falta explicar (default es default  xDDD )
 :::: y End of /STATS report

Entonces lo ue hemos visto en el ejemplo es lo siguiente........... 
class           clients
{
pingfreq 90;
maxclients 500;  /* Numero maximo de clientes */
sendq 100000;
};

class           servers
{
pingfreq 90;
maxclients 10;  /* Numero maximo de servers linkados a la vez */
sendq 1000000;
connfreq 100; 
};

/*
* antigua: I:Line
* Esta define la conexin de clientes en la cual tienes el control de conexiones, etc..
* La sintaxis es la siguiente: 
* allow {
*    ip (ip a la que implementamos la I line, si se deja como * sera para todas las ips);
*    hostname (host mask);
*    class (class que le administramos (recuerda, las definimos en las Y lines);
*    password "(password)"; (opcional)
*    maxperip (cuantas conexiones por IP); (opcional) 
* };
*/

Por ejemplo podriamos poner esta configuracion de una I line tipica:
allow {
ip             *;        /*le estamos diciendo que cualquier IP */
hostname       *;  /* Cualquier Host  */
class           clients; /* la class que ledamos */
maxperip 5;   /* usuarios por IP */
};

NOTA: en el apartado de "class" por ejemplo podriamos poner en lugar de clients, pues servers, que hacemos con esto? Pues que a los usuarios que entren les estamos dando el privilegio de poder enviar mas texto al server, etc........lo normal es crear una class para los clientes normales y poner unos valores normales... El que esta  por defecto esta bien......

/* Con password */
allow {
ip             *@255.255.255.255;
hostname       *@*.el.host.del.user;
class           clients;
password "la_password";
maxperip 1;
};

Esto quiere decir que quien conecte tendra que conectar de manera /server irc.muno.org la-password
(la verdad es que no estoy seguro si es esa sintaxis, creo que si, pero no os confieis)

/*
* Aqu se define un canal restringido, donde no podran entrar los users,
* Sintaxis:
* allow channel {
*   channel "nombre del canal";
* };
*/
allow           channel {
channel "#MUnOSuCkS";
};

/*
* Antigua: O:Line 
* Define el  IRC Operator
* IRC operators son los que se encargan de salvaguardar el server
* La sintaxis para la O line es la siguiente: 
* oper (login) { 
*     class (recuerda , es la que definimos en las Y lines
*                class); 
*     from { 
*        userhost (ident@host);
*        userhost (ident@host);
*     }; 
*     flags
*     { 
*       (flags aqui*);
*     };
*     OR
*     flags "las flags a modo antiguo,  OAaRD";
* };
*/

/* OLD OPER FLAG  | NEW FLAG NAME
O  global
o  local
a  services-admin
A  admin
r  can_rehash
e  eyes
D  can_die
R  can_restart
h  helpop
w  can_wallops
g  can_globops
c  can_localroute
L  can_globalroute
k  can_localkill
K  can_globalkill
b  can_kline
Z  can_gzline
t  can_gkline
B  can_unkline
n  can_localnotice
G  can_globalnotice
N  netadmin
C  coadmin
z  can_zline
W  get_umodew
^  can_stealth
H  get_host
*/

/*
Nota: netadmin te provee de OaAN
*/
La sintaxis es asi:

oper Ni[0 {
class           clients;
from {
  userhost *@*;
};
password "mipass";
flags
{
  netadmin;
  global;
  get_host;
  can_stealth;
};
};

Con lo cual, cuando estemos en el irc y pongamos /oper Ni[0 mipass
Y se nos visualizara los siguiente....

-20:18:59-  Mode (Ni[0) sets (+owghaAsNt)
-20:18:59-  Server notice mask (+kcfvGqs)
-20:18:59-  You are now an IRC Operator

/*
*Antigua: P:Line
* Esta linea define los puertos del server
* La sintaxis es la siguiente:
* listen (ip number):(port number) 
* { 
*   options {
*     (opciones aqui);
*   };
* };
* listen: listen (ip):(port);
* 
* IMPORTANTE: para la nueva ipv6  (3ffe:b80:2:51d::2 etc), usa listen [ip]:port;
* 
* Asi tambien trabajara
*/

/* Opciones:
OLD |  NEW
S  serversonly
C  clientsonly
J  java
s  ssl
*  standard
*/

listen         *:6601
{
options
{
  ssl;
  clientsonly;
};
};

listen         *:4400
{
options
{
  serversonly;
};
};

listen         *:8067;
listen         *:6667;

/*
* Antigua: C/N:Lines       
* Esta linea define la conexin  con otro server, y demas. Para linkar con unos services u otro server, necesitas un nombre, una pass , una ip, un puerto, una class. Entonces , vamos a poner el ejemplo de unos bots de servicio, para que ellos se puedan linkar crearemos un apartado link con el nombre del server que alojara los bots (por ejemplo services.muno.org) les pondremos una pass, y un puerto, esto es lo mas basico.......
* Syntax is as follows:
* link (server name)
* {
* username (si queremos poner el nombre del usuario, etc... O simplemente ponemos * );
*  hostname (ip number/hostmask);
* bind-ip  (cual es el lazo(bind-IP)What IP to bind to when connecting, or *);
* port  (puerto al que conecta);
* hub (sera un Hub o leaf??);
* [or leaf *;]
* password-connect "(pass que envias)";
* password-receive "(pass pass que revices)";
* class  (class que le daremos, repito la que pusimos en la Y line);
* options {
*  (options here*);
* };
*      ciphers "DES-CBC3-MD5";
* };
*/
-Bueno, esta seria una configuracion tipica para poder poner unos bots de servicio.

EJEMPLO:

link            services.muno.org
{
username *;
hostname  127.0.0.1;
bind-ip  *;
port   4400;
hub             *;
password-connect "OpEnAcCeSs";
password-receive "OpEnAcCeSs";
class           servers;
  options {
   autoconnect;
   ssl;
   zip;
  };
};

Y ahora en la onfiguracin de los bots, tendriamos que poner el pass (OpEnAcCeSs), el que hemos puesto aqu, en el nombre del server, el que le hemos dado aqu (services.muno.org) el puerto por el cual conectaran (4400) la ip a la cual conectara(normalmente localhost(127.0.0.1))

Bascamente esto ya tendria que funcionar

/*
*
* Antigua: U:Line
* Permite a los servers hacer mucho mas  :) 
* La sintaxis es la siguiente:
* ulines {
* (server to uline);
* (server to uline);
* };
* Puedes poner tantos serves como quieras.
*/
ulines {
services.muno.org;
stats.muno.org;
};

/*
* OLD: X:Line
* Define el pass para el comando /die y /restart.
* La sintaxis es la siguiente:
* drpass { 
*  restart  "(password para reiniciar)";
*  die          "(password para desconectar(morir(die)))";
* };
*/
drpass {
restart "I-love-to-restart";
die "die-you-stupid";
};

/*
* Permite logear acciones del IRC. Defines que fichero se crea y que logeas 
* Ejemplos a logear: errors, kills, tkl, connects, server-connects, kline, oper
* 
* Syntax: 
* log "log file" 
* {
*    flags
*    {
*        flag;
*        flag; 
*        etc.. 
*    }; 
* };
*/

log "ircd.log" {
/* el fichero se creara y cuando sea mayor a 2 m se creara de nuevo
    same log */
maxsize 2097152;
flags {
  oper;
  kline;
  connects;
  server-connects;
  kills;
  errors;
};
};

/*
* Esto te permite crear un alias por ejemplo: /nickserv, /chanserv etc
* FLAGS: services, stats, normal
*Mira el ejemplo de /nickserv :(440) NickServ Services are currently down. Please try again later.  
* Obviamente no tenia a nickserv on-line  
* Sintaxis:
* alias "name" {
* nick "points to";
* type aliastype;
* };
*/
/*alias NickServ {
nick "NickServ";
type services;
};*/
/* Standard aliases */
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };

/*
* Mas de lo mismo (aliases) /identify, /services, etc
*
* Syntax:
* alias "name" {
* format "format string" {
*  alias "points to";
*  parameters "parameters to send";
* };
* type command;
* };
*/
/* This is shown seperately because even though it has teh same name as the previous directive, it is very
* different in syntax, although it provides a similar function and relys on the standard aliases to work.
*/
/*
alias "identify" {
format "^#" {
  alias "chanserv";
  parameters "IDENTIFY %1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "IDENTIFY %1-";
};
type command;
};
*/
/* The alias::format directive is a regular expression. The first format matches the /identify command when
* the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY
* %1-. The second format matches then /identify command when the first character is not a #. It then
* passes the command to the nickserv alias with parameters IDENTIFY %1-.
*/

/* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
* parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
* N until the last parameter in the string.
*/

/* Standard aliases */
alias "services" {
format "^#" {
  alias "chanserv";
  parameters "%1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "%1-";
};
type command;
};

alias "identify" {
format "^#" {
  alias "chanserv";
  parameters "IDENTIFY %1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "IDENTIFY %1-";
};
type command;
};


/*
* Antigua: T:Line
* Esto permite ejecutar un MOTD diferente para usuarios con diferente host
* 
* Sintaxis: 
* tld {
*    mask (ident@host);
*    motd "(motd file)";
*    rules "(rules file)";
* };
*/

tld {
mask *@*.fr;
motd "ircd.motd.fr";
rules "ircd.rules.fr";
};

/*
* OLD: Q:Line
* Banea un nick y es imposible utilizarlo
* La sintaxis es la siguiente:
* ban nick {
* mask "(nick del ban)";
* reason "(Razon de la Q line)";
* };
*/
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reservado para los Services";
};
/*
* OLD: Z:Line
* Banea la IP.
* Sintaxis:
* ban ip { mask (ip number/hostmask); reason "(razon)"; };
*/
ban ip {
mask 195.86.232.81;
reason "Server no grato";
};
/*
* Antigua: Server Q:Line
* Cierra la puerta de entrada al server expecificado
* La sintaxis es la siguientes:
* ban server {
* mask "(nombre del server)";
* reason "(razon)";
* };
*/

ban server {
mask MUnO-x3.org;
reason "Servidor aun no autorizado";
};
/*
* Antigua: K:Line
* No permite la conexin de un user al server
* Sintaxis:
* ban user { mask (hostmask/ip); reason "(razon)"; };
*/

ban user {
mask *cacheflows@*;
        reason "Clones";
};

/*
* Antigua: n:Line
* Esto prohbe cierto realname de ser utilizado.
* Syntax:
* ban realname {
* mask "(real name)";
*  reason "(reason)";
* };
*/

ban realname {
mask "Swat Team";
reason "mIRKFORCE";
};

ban realname {
mask "sub7server";
reason "sub7";
};

/*
* OLD: E:Line
* Te permite no ser baneado  ;) 
* Sintaxis:
* except ban { mask (ident@host); };
* Puedes poner el  except ban {} las veces que quieras
*/

except ban {
/* don't ban Ni[0 */
mask           *nico@212.*;
};

/*
* Antigua: e:Line
*Permite pasar el scan de socks
* except scan { mask (ip number/hostmask); }; 
* repeat except scan {} for each ip to except.
*/

except scan {
mask 216.73.27.177;
};
/*
* antiguo: dccdeny.conf
* Usa este sistema para no permitir el envio de segn que ficheros por el server
* virus, etc..
* Sintaxis: 
* deny dcc 
* { 
*   filename "archivo a bloquear (ie, *exe)";
*   reason "razon";
* };
*/
deny dcc {
filename "*sub7*";
reason "Posible Virus Sub7";
};

/*
* Prohibe entrar en el canal especificado
* Sintaxis:
* deny channel {
*  channel "(canal)";
*  reason "razon" Sera la razon de por que no pueden entrar en el canal;
* };
*/
deny channel {
channel "*MUnOSuckS*";
reason "Si MUnO Sucks, que haces en este server?";
};

/*
* Antiguo: Vhost.conf 
* Te permite conseguir un Vhost diferente al normal bajo un registro, lo cual
* quiere decir que necesitas un pass, etc...
* Syntax:  
*   vhost { 
*       vhost (Cservices.MUnO.Org      (el host que quieras dar)); 
*       from {
*            userhost (ident@host del usuario);
*       };
*       login (login);
*       password (password);
*   };
*        para userlo, escribe /vhost (login) (password) en el IRC
*/
vhost {
vhost           hacked.undernet.com;
from {
  userhost       *@*;
};
login           Ni[0;
password        conocesajoeblack;
};

/* Network configuration */
set {
network-name   "MUnO.Org";
default-server   "irc.muno.org";
services-server  "services.muno.org";
stats-server   "stats.muno.org";
help-channel   "#ayuda_IRC";
hiddenhost-prefix "MUnO";
prefix-quit   ".";
cloak-keys {
  39999;
  99398;
  99397;
};
/* on-oper host */
hosts {
  local  "locop.muno.org";
  global  "ircop.muno.org";
  coadmin  "coadmin.muno.org";
  admin  "admin.muno.org";
  servicesadmin  "csops.muno.org";
  techadmin  "techadmin.muno.org"; /* ignorado */
  netadmin  "netadmin.muno.org";
  host-on-oper-up "yes";    /*si no quieres Vhost al obtener status de IRCop, pon "no";*/
};
};

/* Server specific configuration */

set {
kline-address "chat@muno.org";
modes-on-connect "+xi";  /*modos que automaticamente se pondran los users cuando conecten*/
modes-on-oper  "+xwgsh"; /*modos on OP status*/
oper-auto-join "#Opers";  /*canal de autojoin para los IRCop`s*/
dns {
  nameserver 127.0.0.1;
  timeout 2s;
  retries 2s;
};
options {
  enable-opermotd;
  enable-chatops;
  hide-ulines;
  identd-check;
  show-connect-info;
};
/* Bueno poco hay que explicar por aqu, creo que mas o menos es obvio,basta leer y traducir  ;) */
socks {
  ban-message "Insecure SOCKS server";
  quit-message "Insecure SOCKS server";
  ban-time "4d";
};
maxchannelsperuser 10;
anti-spam-quit-message-time 10s;
oper-only-stats "okG";  /*aqu solo permitira a los IRCop`s a hacer el /stats (letra)*/
};
/*     FIN    */

Documento extraido del original escrito por AKA Osiris (osiris@unrealircd.org), basado en el texto original example.conf para los ircd versions Unreal3.2 y superior
Traducido y explicado por Ni[0 el 16 de Abril del 2002






CONFIGURACIN DEL Unrealircd 3.2 




Esta configuracin ha sido probada con el Unrealircd3.2 Beta9



Se va a  proceder a ver un ejemplo practico de una configuracion en Unreal, quien despues de haber leido todo lo teorico aun no se ve capaz de configurarlo por el mismo, puede copiar la configuracion que hay abajo, y simplemente cambiar el nombre del server, etc....
Comenzemos............




me
{
name "MUnO.X-1";
info "Servicio de Chat X-1";
numeric 1;
};

admin {
"Servidor de Chat X-1";
"MUnO.Org";
"chat@muno.org";
};

link           services.muno.org
{
username *;
hostname  127.0.0.1;
bind-ip  *;
port   4400;
password-connect "open";
password-receive "open"; 
class           "default";
  options {
   ssl;
   zip;
  };
};

ulines {
services.muno.org;
stats.muno.org;
X-2.muno.org;
};

class           clients
{
pingfreq 90;
maxclients 500;
sendq 100000;
};

class           servers
{
pingfreq 90;
maxclients 10;  
sendq 1000000;
connfreq 100;
};

allow {
ip             *;
hostname       *;
class           clients;
maxperip 3;
};

allow           channel {
channel "#WarezSucks";
};

oper oper {
class           clients;
from {
  userhost *@*;
};
password "oper";
flags
{
  netadmin;
  global;
  get_host;
};
};

listen         *:6601
{
options
{
  ssl;
  clientsonly;
};
};

listen         *:4400
{
options
{
  serversonly;
};
}; 

listen         *:6667;

drpass {
restart "I-love-to-restart";
die "die-you-stupid";
};

log "ircd.log" {
maxsize 2097152;
flags {
  oper;
  kline;
  connects;
  server-connects;
  kills;
  errors;
};
};

alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };

alias "identify" {
format "^#" {
  alias "chanserv";
  parameters "IDENTIFY %1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "IDENTIFY %1-";
};
type command;
};

alias "services" {
format "^#" {
  alias "chanserv";
  parameters "%1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "%1-";
};
type command;
};

alias "identify" {
format "^#" {
  alias "chanserv";
  parameters "IDENTIFY %1-";
};
format "^[^#]" {
  alias "nickserv";
  parameters "IDENTIFY %1-";
};
type command;
};

tld {
mask *@*.fr;
motd "ircd.motd.fr";
rules "ircd.rules.fr";
};

ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reserved for Services";
};


ban ip {
mask 195.86.232.81;
reason "Delinked server";
};

ban server {
mask eris.berkeley.edu;
reason "Get out of here.";
};

ban user {
mask *tirc@*.saturn.bbn.com;
        reason "Idiot";
};


ban realname {
mask "Swat Team";
reason "mIRKFORCE";
};

ban realname {
mask "sub7server";
reason "sub7";
};

except ban {
/* don't ban stskeeps */
mask           *stskeeps@212.*;
};

except scan {
mask 216.73.27.177;
};

deny dcc {
filename "*sub7*";
reason "Possible Sub7 Virus";
};

deny dcc {
filename "*scr*";
reason "Possible Netol Virus";
};

deny channel {
channel "*warez*";
reason "Warez is illegal";
};

vhost {
vhost           i.hate.microsefrs.com;
from {
  userhost       *@*.image.dk;
};
login           stskeeps;
password        moocowsrulemyworld;
};

set {
network-name   "MUnO.Org";
default-server   "irc.muno.org";
services-server  "services.muno.org";
stats-server   "stats.muno.org";
help-channel   "#ayuda_IRC";
hiddenhost-prefix "MUnO";
prefix-quit   ".";
cloak-keys {
  39999;
  99398;
  99397;
};
/* on-oper host */
hosts {
  local  "locop.muno.org";
  global  "ircop.muno.org";
  coadmin  "coadmin.muno.org";
  admin  "admin.muno.org";
  servicesadmin  "csops.muno.org";
  techadmin  "techadmin.muno.org"; /* ignorado */
  netadmin  "netadmin.muno.org";
  host-on-oper-up "yes";    /*si no quieres Vhost al obtener status de IRCop, pon no;*/
};
};

set {
kline-address "chat@G-PoLiZe.org";
modes-on-connect "+xi";
modes-on-oper  "+xiwgs";
oper-auto-join "";
dns {
  nameserver 127.0.0.1;
  timeout 2s;
  retries 2s;
};
options {
  enable-opermotd;
  enable-chatops;
  hide-ulines;
  identd-check;
  show-connect-info;
};
maxchannelsperuser 10;
anti-spam-quit-message-time 10s;
oper-only-stats "okGYUiyWtTzlL";
};






/*                  FIN                 */




Bueno ah lo teneis espero que os ayuda, y os aclare cosas, aprovecho para mandar un saludo a todos!! ByEzZZ!
Documento escrito y explicado por Ni[0
Para cualquier duda o comentario mandadme un mail a: downhiller_x@hotmail.com

                                                                                                                SaludoS!!!!!!!!
                                                                                                                                                                
                                                                                                                                                                Ni[0 


                 Palma de Mallorca, 16 de Abril del 2002
