Tout savoir sur UnrealIRCd

Statut
N'est pas ouverte pour d'autres réponses.
Inscription
1 Janvier 2015
Messages
5 088
Réactions
2 377
Points
20 610
Salut à tous :membres: de :RG:
Aujourd'hui, je vais vous apprendre à configurer correctement UnrealIRCD. Mais avant tout, définissons le terme IRC.

I) Histoire sur l'IRC
L'I.R.C. 'Internet Relay Chat est un protocole de communication sur Internet. Né fin août 1988, l'IRC est le successeur du MultiUser Talk. L'IRC a connu son apogée dans la dernière décénie des années 1900. En 2009, il y a plus de 1 500 serveurs IRC dans le monde, qui peuvent fournir un service à plus de 700 000 utilisateurs simultanément.

II) Apprendre à programmer son serveur
  1. Les pré-requis

    • Un VPS (tournant sous Linux de préférence, avec Debian 7)
    • Un logiciel FTP (FileZilla, CyberDuck)
    • Un éditeur de texte (Notepad++, Bloc-Notes)
    • Un logiciel pour communiquer en SSH (Putty)
    • Un logiciel de tchat IRC (mIRC, BsMax Script)

  2. Mise en place du unrealircd.conf

    Le fichier du nom de unrealircd.conf est la pièce maîtresse de la configuration. C'est à partir de celui-ci que tournera votre serveur.
    Voici un exemple de unrealircd.conf
    Code:
    #######################################################
    ##                                                   ##
    ##   _____                 _ _____ _____ _____   _   ##
    ##  |  |  |___ ___ ___ ___| |     | __  |     |_| |  ##
    ##  |  |  |   |  _| -_| .'| |-   -|    -|   --| . |  ##
    ##  |_____|_|_|_| |___|__,|_|_____|__|__|_____|___|  ##
    ##                                           3.2.x   ##
    ##                                                   ##
    #######################################################
    
    ###########
    # Modules #
    ###########
    
    loadmodule "src/modules/commands.so";
    loadmodule "src/modules/cloak.so";
    
    ############
    # Includes #
    ############
    
    include "help.conf";
    include "spamfilter.conf";
    include "badwords.channel.conf";
    include "badwords.message.conf";
    include "badwords.quit.conf";
    
    #######
    # Set #
    #######
    
    set {
        network-name "eXolia";
        services-server "Service.eXolia.net";
        stats-server "Stats.eXolia.net";
        default-server "194.146.224.132";
        default-bantime 1d;
        help-channel "#Aide";
        hiddenhost-prefix "eXolia";
        prefix-quit "no";
        kline-address "[email protected]";
        gline-address "[email protected]";
        modes-on-connect "+x";
        modes-on-join "+nt";
        modes-on-oper "+xwg";
        maxchannelsperuser 30;
        oper-only-stats "*";
        anti-spam-quit-message-time 60s;
        auto-join "#eXolia";
        oper-auto-join "#Services";
        cloak-keys {
            "AHos2HOHS6ds2gsQQHGAkish";
            "qF5D3ormaH6mnEvbaH226lfEhjf";
            "hfA6HwFh53HedOwQg9Ufs";
        };
        hosts {
            local "Local.eXolia.net";
            global "Global.eXolia.net";
            coadmin "CoAdmin.eXolia.net";
            admin "Admin.eXolia.net";
            servicesadmin "CsAdmin.eXolia.net";
            netadmin "NetAdmin.eXolia.net";
            host-on-oper-up "yes";
        };
        ssl {
            certificate "server.cert.pem";
            key "server.key.pem";
        };
        dns {
            nameserver 194.146.224.132;
            timeout 2s;
            retries 3;
        };
        options {
            identd-check;
            hide-ulines;
            show-connect-info;
            show-opermotd;
            flat-map;
        };
        throttle {
            connections 3;
            period 60s;
        };
        anti-flood {
            nick-flood 5:60;
        };
        spamfilter {
            ban-time 1d;
            ban-reason "Protection Spamfilter";
            virus-help-channel "#Aide";
        };
        allowed-nickchars { 
            latin1;
        };
        timesynch {
            enabled no;
        };
    };
    
    ######
    # Me #
    ######
    
    me {
        name "irc.eXolia.net";
        info "eXolia";
        numeric 1;
    };
    
    #########
    # Admin #
    #########
    
    admin {
        "Réseau IRC eXolia";
        "Administrateur : TiSmA";
        "Email : [email protected]";
    };
    
    #######
    # Tld #
    #######
    
    tld { 
        mask *@*;
        motd "ircd.motd";
        rules "ircd.rules";
    };
    
    ##########
    # Drpass #
    ##########
    
    drpass {
        restart "mot-de-passe";
        die "mot-de-passe";
    };
    
    #######
    # Log #
    #######
    
    log "ircd.log" {
        maxsize 2097152;
        flags {
            oper;
            kline;
            connects;
            server-connects;
            kills;
            errors;
            sadmin-commands;
            chg-commands;
            oper-override;
            spamfilter;
        };
    };
    
    ##########
    # Listen #
    ##########
    
    listen 194.146.224.132:6660-6668;
    
    listen 194.146.224.132:6669 {
        options {
            ssl;
            clientsonly;
        };
    };
    
    listen 194.146.224.132:7000 {
        options {
            serversonly;
        };
    };
    
    #########
    # Class #
    #########
    
    class clients {
        pingfreq 90;
        maxclients 2000;
        sendq 100000;
        recvq 8000;
    };
    
    class servers {
        pingfreq 90;
        maxclients 50;
        sendq 2000000;
        connfreq 120;
    };
    
    #########
    # Allow #
    #########
    
    allow { 
        ip *;
        hostname *;
        class clients;
        maxperip 3;
    };
    
    #########
    # Links #
    #########
    
    ulines {
        Service.eXolia.net;
    };
    
    link Service.eXolia.net {
        username *;
        hostname 194.146.224.132;
        bind-ip *;
        port 7000;
        hub *;
        password-connect "mot-de-passe";
        password-receive "mot-de-passe";
        class servers;
    };
    
    ################
    # Olines Robot #
    ################
    
    oper ScanServ {
        class clients;
        from {
            userhost *@*;
        };
        password "mot-de-passe";
        flags {
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
            can_override;
        };
        maxlogins 1;
    };
    
    ###############
    # Olines User #
    ###############
    
    oper TiSmA {
        class clients;
        from {
            userhost *@*;
        };
        password "mot-de-passe";
        flags {
            netadmin;
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
            can_restart;
            can_die;
            can_override;
        };
        maxlogins 1;
    };
    
    ######################
    # Protection Service #
    ######################
    
    ban nick {
        mask "NickServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "Global";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "OperServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "BotServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "ChanServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "HostServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "HelpServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "MemoServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "ConnectServ";
        reason "Pseudo Protégé";
    };
    
    ##################
    # Protection Ban #
    ##################
    
    except ban {
        mask "*@localhost";
    };
    
    except ban {
        mask "*@127.0.0.1";
    };
    
    #######################
    # Protection Throttle #
    #######################
    
    except throttle {
        mask "*@localhost";
    };
    
    except throttle {
        mask "*@127.0.0.1";
    };
    
    except throttle {
        mask "*@194.146.224.132";
    };
    
    ############
    # Bad Nick #
    ############
    
    ban nick {
        mask "*ÿ*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*salop*";
        reason "Pseudo Interdit";
    };       
    
    ban nick {
        mask "*putain*";
        reason "Pseudo Interdit";
    };       
    
    ban nick {
        mask "*connard*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*batard*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*pute*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*xdcc*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*warez*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*anal*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*nazi*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "con";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "cons";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "merde";
        reason "Pseudo Interdit";
    };
    
    #############
    # Bad Ident #
    #############
    
    ban user {
        mask "Ev1Ls*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "c324eb47*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "d4c27f08*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "53c86262*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "D-IRCV*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "sex*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "pute*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "putain*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "bite*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "xdcc*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "warez*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "anal*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "nazi*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "salop*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "connard*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "batard*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "con@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "cons@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "merde@*";
        reason "Ident Interdit";
    };
    
    ################
    # Bad Realname #
    ################
    
    ban realname {
        mask "*sexe*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*pute*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*putain*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*bite*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*xdcc*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*warez*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*anal*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*nazi*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*salop*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*connard*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*batard*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "con";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "cons";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "merde";
        reason "Realname Interdit";
    };
    
    ############
    # Bad Chan #
    ############
    
    deny channel {
        channel "*$*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*salope*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*warez*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*xdcc*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*nazi*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*pute*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*bite*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*connard*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*batard*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*merde*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#con";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#cons";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#sexe";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#putain";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#anal";
        reason "Salon Interdit";
    };
    
    #######
    # Dcc #
    #######
    
    deny dcc {
        filename "*";
        reason "Transfert Interdit";
        soft yes;
    };
    
    allow dcc {
        filename "*.htm";
        soft yes;
    };
    
    allow dcc {
        filename "*.html";
        soft yes;
    };
    
    allow dcc {
        filename "*.xml";
        soft yes;
    };
    
    allow dcc {
        filename "*.php";
        soft yes;
    };
    
    allow dcc {
        filename "*.php3";
        soft yes;
    };
    
    allow dcc {
        filename "*.php4";
        soft yes;
    };
    
    allow dcc {
        filename "*.php5";
        soft yes;
    };
    
    allow dcc {
        filename "*.pl";
        soft yes;
    };
    
    allow dcc {
        filename "*.cgi";
        soft yes;
    };
    
    allow dcc {
        filename "*.tcl";
        soft yes;
    };
    
    allow dcc {
        filename "*.mrc";
        soft yes;
    };
    
    allow dcc {
        filename "*.jpg";
        soft yes;
    };
    
    allow dcc {
        filename "*.jpeg";
        soft yes;
    };
    
    allow dcc {
        filename "*.gif";
        soft yes;
    };
    
    allow dcc {
        filename "*.png";
        soft yes;
    };
    
    allow dcc {
        filename "*.bmp";
        soft yes;
    };
    
    allow dcc {
        filename "*.mp3";
        soft yes;
    };
    
    allow dcc {
        filename "*.mpg";
        soft yes;
    };
    
    allow dcc {
        filename "*.mpeg";
        soft yes;
    };
    
    allow dcc {
        filename "*.avi";
        soft yes;
    };
    
    allow dcc {
        filename "*.wav";
        soft yes;
    };
    
    allow dcc {
        filename "*.wma";
        soft yes;
    };
    
    allow dcc {
        filename "*.wmv";
        soft yes;
    };
    
    allow dcc {
        filename "*.txt";
        soft yes;
    };
    
    allow dcc {
        filename "*.log";
        soft yes;
    };
    
    allow dcc {
        filename "*.pdf";
        soft yes;
    };
    
    allow dcc {
        filename "*.c";
        soft yes;
    };
    
    allow dcc {
        filename "*.zip";
        soft yes;
    };
    
    allow dcc {
        filename "*.exe";
        soft yes;
    };
    
    allow dcc {
        filename "*.rar";
        soft yes;
    };
    
    allow dcc {
        filename "*.ace";
        soft yes;
    };
    
    allow dcc {
        filename "*.tgz";
        soft yes;
    };
    
    allow dcc {
        filename "*.gz";
        soft yes;
    };
    
    allow dcc {
        filename "*.bz2";
        soft yes;
    };
    
    ##################
    # Alias Services #
    ##################
    
    alias "services" {
        format "^#" {
            nick "ChanServ";
            type services;
            parameters "%1-";
        };
        format "^[^#]" {
            nick "NickServ";
            type services;
            parameters "%1-";
        };
        type command;
    };
    
    alias "identify" {
        format "^#" {
            nick "ChanServ";
            type services;
            parameters "IDENTIFY %1-";
        };
        format "^[^#]" {
            nick "NickServ";
            type services;
            parameters "IDENTIFY %1-";
        };
        type command;
    };
    
    alias "ChanServ" {
        nick "ChanServ";
        type services;
    };
    
    alias "cs" {
        nick "ChanServ";
        type services;
    };
    
    alias "NickServ" {
        nick "NickServ";
        type services;
    };
    
    alias "ns" {
        nick "NickServ";
        type services;
    };
    
    alias "BotServ" {
        nick "BotServ";
        type services;
    };
    
    alias "bs" {
        nick "BotServ";
        type services;
    };
    
    alias "HelpServ" {
        nick "HelpServ";
        type services;
    };
    
    alias "he" {
        nick "HelpServ";
        type services;
    };
    
    alias "OperServ" {
        nick "OperServ";
        type services;
    };
    
    alias "os" {
        nick "OperServ";
        type services;
    };
    
    alias "MemoServ" {
        nick "MemoServ";
        type services;
    };
    
    alias "ms" {
        nick "MemoServ";
        type services;
    };
    
    alias "HostServ" {
        nick "HostServ";
        type services;
    };
    
    alias "hs" {
        nick "HostServ";
        type services;
    };
    
    ######################
    ## Salons Officiels ##
    ######################
    
    official-channels {
        "#RealityGaming";
        "#Aide";
        "#Services";
    };


    Pour télécharger le fichier Unreal, vous devez entrer dans Putty, et vous tapez les lignes suivantes dans l'ordre :
    wget
    tar zxvf Unreal3.2.9.tar.gz

    Ainsi, vous aurez téléchargé, extrait, compilé le dossier de l'Unreal.

    Passons maintenant à la plus grosse partie : la configuration du unrealircd.conf :lol:. Vous pouvez copier le modèle dans le code ou le copier . Dans ce tuto, nous allons monter un serveur IRC qui s'appellera RealityGaming.

    La première ligne à modifier est à partir du paramètre SET.
    On aura donc

    upload_2015-5-2_21-33-33.png
    :

    La ligne network name est le nom de votre réseau, services-server l'adresse des services, stats-server l'adresse des stats, default-server, l'adresse IP de votre VPS, help-channel, le canal d'aide du serveur, la ligne hiddenhost-prefix est le préfix de votre host (une adresse sur IRC se définit par ident@hostname), les ligne kline-address et gline-address servent a dire à un utilisatuer qui se fera bannir qui contacter si il veut signaler un litige. La ligne host correspond aux hostnames des IrcOps (IRC Operateur = Staff de l'IRC).
    Chez nous, on aura :
    Code:
    set {
    network-name "RealityGaming";
    services-server "Service.reality-gaming.fr";
    stats-server "Stats.reality-gaming.fr";
    default-server "75.214.246.12";
    default-bantime 1d;
    help-channel "#Aide";
    hiddenhost-prefix "rg";
    prefix-quit "no";
    kline-address "[email protected]";
    gline-address "[email protected]";
    modes-on-connect "+x";
    modes-on-join "+nt";
    modes-on-oper "+xwg";
    maxchannelsperuser 30;
    oper-only-stats "*";
    anti-spam-quit-message-time 60s;
    auto-join "#RealityGaming";
    oper-auto-join "#Services";
    cloak-keys {
    "AHos2HOHS6ds2gsQQHGAkish";
    "qF5D3ormaH6mnEvbaH226lfEhjf";
    "hfA6HwFh53HedOwQg9Ufs";
    };
    
       
    hosts {
    local "local.reality-gaming.fr";
    global "global.reality-gaming.fr";
    coadmin "CoAdmin.reality-gaming.fr";
    admin "Admin.reality-gaming.fr";
    services-admin "CsAdmin.reality-gaming.fr";
    netadmin "NetAdmin.reality-gaming.fr";
    host-on-oper-up "yes";
    };
    
       
        dns {
            nameserver 75.214.246.12;
            timeout 2s;
            retries 3;


    Il faudra ensuite modifier la partie Me
    upload_2015-5-2_22-1-29.png


    On aura donc :
    Code:
    ######
    # Me #
    ######
    
    me {
        name "irc.reality-gaming.fr;
        info "RealityGaming";
        numeric 1;
    };

    Vient ensuite la partie Admin :
    upload_2015-5-2_22-5-44.png


    Pour :RG: on mettra :
    Code:
    #########
    # Admin #
    #########
    
    admin {
        "Réseau IRC RealityGaming";
        "Administrateur : JB, Fabien, Inventory";
        "Email : [email protected]";
        "Email : [email protected]";
        "Email : [email protected]";
    };


    Partie très importante, le Drpass. Ces mots de passe vous permettent de fermer le serveur et/ou de le redémarrer.
    Code:
    ##########
    # Drpass #
    ##########
    
    drpass {
        restart "JB-restart-rg";
        die "JB-ferme-rg";
    };


    Plus importante que la Drpass, le Listen sert à définir les ports d'écoute.

    upload_2015-5-2_22-16-26.png


    Vous pouvez mettre * comme valeur pour IP pour toutes les accepter, ou en spécifier une pour accepter uniquement les connexions sur cette ip (habituellement requis chez des loueurs de shell). Le port est le port que vous voulez écouter. Vous pouvez également spécifier un intervalle de ports à la place d'une valeur unique. Par exemple, 6660-6669 écoutera du port 6660 au port 6669 (inclus).
    Vous pouvez préciser des options spéciales pour ce port si vous le souhaitez, les options possibles sont :
    • clientsonly Port réservé aux clients
    • serversonly Port réservé aux serveurs
    • java Support CR java
    • ssl Port SSL
    Normalement, le port par défaut est le 6667
    Nous auront
    Code:
    ##########
    # Listen #
    ##########
    
    listen 75.214.246.12:6667;
    
    listen 75.214.246.12:6669 {
        options {
            clientsonly;
        };
    };
    
    listen 75.214.246.12:7000 {
        options {
            serversonly;
        };
    };


    La partie suivante sera le Link Block. Ce paramètre vous permet de "fusionner deux serveurs" (pour les services par exemple). Le link comporte deux parties : les détails du serveur à linker et les U:Lines. Pour chaque Link, vous devez mettre une U:Line correspondante à l'adresse du service. Vous pouvez mettre plusieurs Links.

    upload_2015-5-3_11-38-35.png


    Nous auront :
    Code:
    #########
    # Links #
    #########
    
    ulines {
        Service.reality-gaming.fr;
    };
    
    link Service.reality-gaming.fr {
        username *;
        hostname 75.214.246.12;
        bind-ip *;
        port 7000;
        hub *;
        password-connect "jb-connecte les services";
        password-receive "jb-a-connecte-les-services"; 
        class servers;
    };


    Ensuite viens ma partie partie la configuration; les O:Line. C'est ce block qui définit les IrcOps du serveurs ainsi que leurs différents grades. Du plus élevé au moins élevé, les grades sont l'administrateur réseau (NetAdmin), l'administrateur services (CsAdmin), l'administrateur serveur (Admin), le co-administrateur (CoAdmin), l'opérateur global (global) et l'opérateur local (Local).

    upload_2015-5-3_17-23-23.png


    Je conseille d'attribuer les flags can_restart et can_die au propriétaire seulement car ils permettent de redémarrer ou de fermer le serveur. Vous pouvez mettre plusieurs O:Lines :
    Code:
    ###############
    # Olines User #
    ###############
    
    oper JB {
        class clients;
        from {
            userhost *@*;
        };
        password "jbpass";
        flags {
            netadmin;
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
            can_restart;
            can_die;
            can_override;
        };
        maxlogins 3;
    };
    
    oper Fabien {
        class clients;
        from {
            userhost *@*;
        };
        password "fabpassw";
        flags {
            netadmin;
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
            can_override;
        };
        maxlogins 2;
    };
    
    oper Jeson {
        class clients;
        from {
            userhost *@*;
        };
        password "modojeson";
        flags {
            admin;
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
           
            can_override;
        };
        maxlogins 1;
    };


    La dernière partie est facultative, elle concerne les salons officiels.

    upload_2015-5-3_17-40-58.png


    :RG: aura :

    Code:
    ######################
    ## Salons Officiels ##
    ######################
    
    official-channels {
        "#RealityGaming";
        "#Aide";
        "#Services";
        "#Lobby";
    };



    En suivant toutes ces étapes, vous devez avoir ceci
    Code:
    #######################################################
    ##                                                  ##
    ##  _____                _ _____ _____ _____  _  ##
    ##  |  |  |___ ___ ___ ___| |    | __  |    |_| |  ##
    ##  |  |  |  |  _| -_| .'| |-  -|    -|  --| . |  ##
    ##  |_____|_|_|_| |___|__,|_|_____|__|__|_____|___|  ##
    ##                                          3.2.x  ##
    ##                                                  ##
    #######################################################
    
    ###########
    # Modules #
    ###########
    
    loadmodule "src/modules/commands.so";
    loadmodule "src/modules/cloak.so";
    
    ############
    # Includes #
    ############
    
    include "help.conf";
    include "spamfilter.conf";
    include "badwords.channel.conf";
    include "badwords.message.conf";
    include "badwords.quit.conf";
    
    #######
    # Set #
    #######
    
    set {
        network-name "RealityGaming";
        services-server "Service.reality-gaming.fr";
        stats-server "Stats.reality-gaming.fr";
        default-server "75.214.246.12";
        default-bantime 1d;
        help-channel "#Aide";
        hiddenhost-prefix "rg";
        prefix-quit "no";
        kline-address "[email protected]";
        gline-address "[email protected]";
        modes-on-connect "+x";
        modes-on-join "+nt";
        modes-on-oper "+xwg";
        maxchannelsperuser 30;
        oper-only-stats "*";
        anti-spam-quit-message-time 60s;
        auto-join "#RealityGaming";
        oper-auto-join "#Services";
        cloak-keys {
            "AHos2HOHS6ds2gsQQHGAkish";
            "qF5D3ormaH6mnEvbaH226lfEhjf";
            "hfA6HwFh53HedOwQg9Ufs";
        };
       
    hosts {
    local "local.reality-gaming.fr";
    global "global.reality-gaming.fr";
    coadmin "CoAdmin.reality-gaming.fr";
    admin "Admin.reality-gaming.fr";
    services-admin "CsAdmin.reality-gaming.fr";
    netadmin "NetAdmin.reality-gaming.fr";
    host-on-oper-up "yes";
    };
        
        dns {
            nameserver 75.214.246.12;
            timeout 2s;
            retries 3;
        };
        options {
            identd-check;
            hide-ulines;
            show-connect-info;
            show-opermotd;
            flat-map;
        };
        throttle {
            connections 3;
            period 60s;
        };
        anti-flood {
            nick-flood 5:60;
        };
        spamfilter {
            ban-time 1d;
            ban-reason "Protection Spamfilter";
            virus-help-channel "#Aide";
        };
        allowed-nickchars { 
            latin1;
        };
        timesynch {
            enabled no;
        };
    };
    
    ######
    # Me #
    ######
    
    me {
        name "irc.reality-gaming.fr";
        info "RealityGaming";
        numeric 1;
    };
    
    #########
    # Admin #
    #########
    
    admin {
        "Réseau IRC RealityGaming";
        "Administrateur : JB";
        "Email : [email protected]";
    };
    
    #######
    # Tld #
    #######
    
    tld { 
        mask *@*;
        motd "ircd.motd";
        rules "ircd.rules";
    };
    
    ##########
    # Drpass #
    ##########
    
    drpass {
        restart "JB-restart-rg";
        die "jb-ferme-rg";
    };
    
    #######
    # Log #
    #######
    
    log "ircd.log" {
        maxsize 2097152;
        flags {
            oper;
            kline;
            connects;
            server-connects;
            kills;
            errors;
            sadmin-commands;
            chg-commands;
            oper-override;
            spamfilter;
        };
    };
    
    ##########
    # Listen #
    ##########
    
    listen 75.214.246.12:6667;
    
    listen 75.214.246.12:6669 {
        options {
            ssl;
            clientsonly;
        };
    };
    
    listen 75.214.246.12:7000 {
        options {
            serversonly;
        };
    };
    
    #########
    # Class #
    #########
    
    class clients {
        pingfreq 90;
        maxclients 2000;
        sendq 100000;
        recvq 8000;
    };
    
    class servers {
        pingfreq 90;
        maxclients 50;
        sendq 2000000;
        connfreq 120;
    };
    
    #########
    # Allow #
    #########
    
    allow { 
        ip *;
        hostname *;
        class clients;
        maxperip 3;
    };
    
    #########
    # Links #
    #########
    
    ulines {
        Service.reality-gaming.fr;
    };
    
    link Service.reality-gaming.fr {
        username *;
        hostname 75.214.246.12;
        bind-ip *;
        port 7000;
        hub *;
        password-connect "jb-connecte-les-services";
        password-receive "jb-a-connecte-les-services";
        class servers;
    };
    
    ################
    # Olines Robot #
    ################
    
    oper ScanServ {
        class clients;
        from {
            userhost *@*;
        };
        password "mot-de-passe";
        flags {
            global;
            get_umodew;
            get_host;
            can_gkline;
            can_gzline;
            can_zline;
            can_override;
        };
        maxlogins 1;
    };
    
    ###############
    # Olines User #
    ###############
    
    oper JB {
    class clients;
    from {
    userhost *@*;
    };
    password "jbpass";
    flags {
    netadmin;
    global;
    get_umodew;
    get_host;
    can_gkline;
    can_gzline;
    can_zline;
    can_restart;
    can_die;
    can_override;
    };
    maxlogins 3;
    };
    
    oper Fabien {
    class clients;
    from {
    userhost *@*;
    };
    password "fabpassw";
    flags {
    netadmin;
    global;
    get_umodew;
    get_host;
    can_gkline;
    can_gzline;
    can_zline;
    can_override;
    };
    maxlogins 2;
    };
    
    oper Jeson {
    class clients;
    from {
    userhost *@*;
    };
    password "modojeson";
    flags {
    admin;
    global;
    get_umodew;
    get_host;
    can_gkline;
    can_gzline;
    can_zline;
    
    can_override;
    };
    maxlogins 1;
    };
    
    
    ######################
    # Protection Service #
    ######################
    
    ban nick {
        mask "NickServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "Global";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "OperServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "BotServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "ChanServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "HostServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "HelpServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "MemoServ";
        reason "Pseudo Protégé";
    };
    
    ban nick {
        mask "ConnectServ";
        reason "Pseudo Protégé";
    };
    
    ##################
    # Protection Ban #
    ##################
    
    except ban {
        mask "*@localhost";
    };
    
    except ban {
        mask "*@127.0.0.1";
    };
    
    #######################
    # Protection Throttle #
    #######################
    
    except throttle {
        mask "*@localhost";
    };
    
    except throttle {
        mask "*@127.0.0.1";
    };
    
    except throttle {
        mask "*@194.146.224.132";
    };
    
    ############
    # Bad Nick #
    ############
    
    ban nick {
        mask "*ÿ*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*salop*";
        reason "Pseudo Interdit";
    };     
    
    ban nick {
        mask "*putain*";
        reason "Pseudo Interdit";
    };     
    
    ban nick {
        mask "*connard*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*batard*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*pute*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*xdcc*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*warez*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*anal*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "*nazi*";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "con";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "cons";
        reason "Pseudo Interdit";
    };
    
    ban nick {
        mask "merde";
        reason "Pseudo Interdit";
    };
    
    #############
    # Bad Ident #
    #############
    
    ban user {
        mask "Ev1Ls*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "c324eb47*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "d4c27f08*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "53c86262*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "D-IRCV*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "sex*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "pute*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "putain*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "bite*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "xdcc*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "warez*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "anal*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "nazi*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "salop*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "connard*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "batard*@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "con@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "cons@*";
        reason "Ident Interdit";
    };
    
    ban user {
        mask "merde@*";
        reason "Ident Interdit";
    };
    
    ################
    # Bad Realname #
    ################
    
    ban realname {
        mask "*sexe*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*pute*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*putain*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*bite*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*xdcc*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*warez*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*anal*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*nazi*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*salop*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*connard*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "*batard*";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "con";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "cons";
        reason "Realname Interdit";
    };
    
    ban realname {
        mask "merde";
        reason "Realname Interdit";
    };
    
    ############
    # Bad Chan #
    ############
    
    deny channel {
        channel "*$*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*salope*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*warez*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*xdcc*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*nazi*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*pute*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*bite*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*connard*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*batard*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#*merde*";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#con";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#cons";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#sexe";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#putain";
        reason "Salon Interdit";
    };
    
    deny channel {
        channel "#anal";
        reason "Salon Interdit";
    };
    
    #######
    # Dcc #
    #######
    
    deny dcc {
        filename "*";
        reason "Transfert Interdit";
        soft yes;
    };
    
    allow dcc {
        filename "*.htm";
        soft yes;
    };
    
    allow dcc {
        filename "*.html";
        soft yes;
    };
    
    allow dcc {
        filename "*.xml";
        soft yes;
    };
    
    allow dcc {
        filename "*.php";
        soft yes;
    };
    
    allow dcc {
        filename "*.php3";
        soft yes;
    };
    
    allow dcc {
        filename "*.php4";
        soft yes;
    };
    
    allow dcc {
        filename "*.php5";
        soft yes;
    };
    
    allow dcc {
        filename "*.pl";
        soft yes;
    };
    
    allow dcc {
        filename "*.cgi";
        soft yes;
    };
    
    allow dcc {
        filename "*.tcl";
        soft yes;
    };
    
    allow dcc {
        filename "*.mrc";
        soft yes;
    };
    
    allow dcc {
        filename "*.jpg";
        soft yes;
    };
    
    allow dcc {
        filename "*.jpeg";
        soft yes;
    };
    
    allow dcc {
        filename "*.gif";
        soft yes;
    };
    
    allow dcc {
        filename "*.png";
        soft yes;
    };
    
    allow dcc {
        filename "*.bmp";
        soft yes;
    };
    
    allow dcc {
        filename "*.mp3";
        soft yes;
    };
    
    allow dcc {
        filename "*.mpg";
        soft yes;
    };
    
    allow dcc {
        filename "*.mpeg";
        soft yes;
    };
    
    allow dcc {
        filename "*.avi";
        soft yes;
    };
    
    allow dcc {
        filename "*.wav";
        soft yes;
    };
    
    allow dcc {
        filename "*.wma";
        soft yes;
    };
    
    allow dcc {
        filename "*.wmv";
        soft yes;
    };
    
    allow dcc {
        filename "*.txt";
        soft yes;
    };
    
    allow dcc {
        filename "*.log";
        soft yes;
    };
    
    allow dcc {
        filename "*.pdf";
        soft yes;
    };
    
    allow dcc {
        filename "*.c";
        soft yes;
    };
    
    allow dcc {
        filename "*.zip";
        soft yes;
    };
    
    allow dcc {
        filename "*.exe";
        soft yes;
    };
    
    allow dcc {
        filename "*.rar";
        soft yes;
    };
    
    allow dcc {
        filename "*.ace";
        soft yes;
    };
    
    allow dcc {
        filename "*.tgz";
        soft yes;
    };
    
    allow dcc {
        filename "*.gz";
        soft yes;
    };
    
    allow dcc {
        filename "*.bz2";
        soft yes;
    };
    
    ##################
    # Alias Services #
    ##################
    
    alias "services" {
        format "^#" {
            nick "ChanServ";
            type services;
            parameters "%1-";
        };
        format "^[^#]" {
            nick "NickServ";
            type services;
            parameters "%1-";
        };
        type command;
    };
    
    alias "identify" {
        format "^#" {
            nick "ChanServ";
            type services;
            parameters "IDENTIFY %1-";
        };
        format "^[^#]" {
            nick "NickServ";
            type services;
            parameters "IDENTIFY %1-";
        };
        type command;
    };
    
    alias "ChanServ" {
        nick "ChanServ";
        type services;
    };
    
    alias "cs" {
        nick "ChanServ";
        type services;
    };
    
    alias "NickServ" {
        nick "NickServ";
        type services;
    };
    
    alias "ns" {
        nick "NickServ";
        type services;
    };
    
    alias "BotServ" {
        nick "BotServ";
        type services;
    };
    
    alias "bs" {
        nick "BotServ";
        type services;
    };
    
    alias "HelpServ" {
        nick "HelpServ";
        type services;
    };
    
    alias "he" {
        nick "HelpServ";
        type services;
    };
    
    alias "OperServ" {
        nick "OperServ";
        type services;
    };
    
    alias "os" {
        nick "OperServ";
        type services;
    };
    
    alias "MemoServ" {
        nick "MemoServ";
        type services;
    };
    
    alias "ms" {
        nick "MemoServ";
        type services;
    };
    
    alias "HostServ" {
        nick "HostServ";
        type services;
    };
    
    alias "hs" {
        nick "HostServ";
        type services;
    };
    
    ######################
    ## Salons Officiels ##
    ######################
    
    official-channels {
        "#RealityGaming";
        "#Aide";
        "#Services";
    };



Vous pouvez modifier le unrealircd.conf pendant que votre serveur tourne. Quand vous aurez fini, en tant qu'IrcOp, vous n'aurez qu'à lancer la commende /rehash depuis votre logiciel de tchat.

Voila, ce tuto arrive maintenant à sa fin. Par contre, je les points qui n'ont pas été modifiés dans la configuration n'ont pas besoin d'être modifiés pour vous. J'espère que le tuto vous aura plus et que je n'aurais pas fait 4 heures de rédaction pour rien, n'hésitez pas à le faire savoir ;). Si vous avez des problèmes, n'hésitez pas à me le dire.
Merci à JB, Fabien, et Jeson de m'avoir servi de cobaye ;)
 

Fichiers joints

  • upload_2015-5-3_17-40-50.png
    upload_2015-5-3_17-40-50.png
    12.9 KB · Affichages: 33
Dernière édition:

яε๔уяε∂ ジ GLP

Hey ♥
Premium
Inscription
23 Août 2013
Messages
459
Réactions
123
Points
4 026
Très bon tuto, sa mérite un petit j'aime ;)
Les gens galère pas mal avec linux sur ce forum donc tu as bien fait de le faire ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut