FreeBSD - Unreal IRCd в простейшей конфигурации

Появилась задача - поставить для офиса локальный IRC-сервер с поддержкой кодировки UTF-8. IRC-сервер будет только локальным, для обслуживания 10-20 человек с одним активным каналом.
Выбор пал на Unreal IRCd, т.к. его активно поддерживают и есть документация на русском.

Установка

cd /usr/ports/irc/unreal/ && make install clean

Если сборка завершается аварийно с ошибкой: unreal undefined reference to `libintl_gettext', то в Makefile порта добавьте в переменную IRCDLIBS строку »-lintl»

Конфиг порта unreal

cd /usr/ports/irc/unreal/ && make showconfig
     HUB=off: Configure as a hub (otherwise configure as a leaf)
     NOSPOOF=off: Enable anti-spoof protection
     ZIPLINKS=off: Enable ziplinks support
     SSL=off: Support SSL connecions
     IPV6=off: Enable ipv6 support
     PREFIXAQ=off: Enable prefixes for chanadmin and chanowner
     REMOTE=off: Enable remote includes

Настройка

Мой конфиг /usr/local/etc/Unreal/unrealircd.conf

loadmodule "/usr/local/lib/Unreal/commands.so";
loadmodule "/usr/local/lib/Unreal/cloak.so";

include "help.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";

me
{
        name "имя IRC-сервера";
        info "доп. информация";
        numeric 1;
};

admin {
        "Anton Bugreev";
        "vukor";
        "электропочта админа";
};

class clients
{
        pingfreq 90;
        maxclients 50;
        sendq 100000;
        recvq 8000;
};

class servers
{
        pingfreq 90;
        maxclients 10;          /* Max servers we can have linked at a time */
        sendq 1000000;
        connfreq 100; /* How many seconds between each connection attempt */
};

allow {
        ip             *@*;
        hostname       *@*;
        class           clients;
        maxperip 5;
};

allow channel {
        channel "#активный-канал";
};

listen         IP-адрес IRC сервера:6667;

log "/var/log/ircd/ircd.log" {
        maxsize 2097152;
        flags {
                oper;
                connects;
                server-connects;
                kills;
                errors;
                sadmin-commands;
                chg-commands;
                oper-override;
                spamfilter;
        };
};

files
{
        /* The Message Of The Day shown to users who log in: */
        motd ircd.motd;

        /* Shown upon /RULES */
        rules ircd.rules;
};

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

/* Network configuration */
set {
        network-name            "имя-сети";
        default-server          "имя IRC-сервера";
        services-server         "services.имя-сети";
        help-channel            "#HELP";
        hiddenhost-prefix       "fuck";
        cloak-keys {
                "xUf7QHg7X1ycKBDfe";
                "f8fBjgjk1ROjGsS9fZdrtrfsvnX";
                "mlASLfRrpzD1kj7yqwcy9i7rSpDrWkzW4";
        };
        /* on-oper host */
        hosts {
                local           "locop.имя-сети";
                global          "ircop.имя-сети";
                coadmin         "coadmin.имя-сети";
                admin           "admin.имя-сети";
                servicesadmin   "csops.имя-сети";
                netadmin        "netadmin.имя-сети";
                host-on-oper-up "no";
        };
};

/* Server specific configuration */

set {
        kline-address "электропочта админа";
        auto-join "#активный-канал";

        maxchannelsperuser 5;
        anti-spam-quit-message-time 10s;

        /* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
        throttle {
                connections 5;
                period 60s;
        };

        /* Anti flood protection */
        anti-flood {
                nick-flood 3:60;        /* 3 nickchanges per 60 seconds (the default) */
        };

        /* Spam filter */
        spamfilter {
                ban-time 1d; /* default duration of a *line ban set by spamfilter */
                ban-reason "Spam/Advertising"; /* default reason */
                virus-help-channel "#help"; /* channel to use for 'viruschan' action */
                /* except "#help"; channel to exempt from filtering */
        };
};

Запуск

echo 'unrealircd_enable="YES"' >> /etc/rc.conf
service unrealircd start

Ссылки

Комментарии

 
blog/2012/08/01-freebsd_-_unreal_ircd_в_простейшей_конфигурации.txt · Последние изменения: 2012/08/01 18:05 — Антон Бугреев · []