Установил у себя в сети очень маленький, но нужный сервис (чат)
Был выбран UnrealIRCd:
#подключаем модули для работы
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 «marsikom.chat.loc»;
info «marsikom server chat»;
numeric 4;
};
# информация выводимая по команде /admin
admin {
«marsikom»;
«marsik»;
«marsikom@mail.ru»;
};
# класы
class clients
{
pingfreq 90;
maxclients 500;
sendq 100000;
recvq 8000;
};
class servers
{
pingfreq 90;
maxclients 10;
sendq 1000000;
connfreq 100;
};
# разрешения — клиенты начинающиеся с 192.168.1.* в канал #marsik
# с оператором /oper admin 1 с адресов 192.168.1.250 и 192.168.1.21
allow {
ip *@192.168.1.*;
hostname *@192.168.1.*;
class clients;
maxperip 3;
};
allow channel {
channel «#marsik»;
};
oper admin {
class clients;
from {
userhost *@192.168.1.250;
userhost *@192.168.1.21;
};
password «1»;
flags
{
netadmin;
global;
};
};
# адрес сервера и порт на котором слушаем только клиентов
listen 192.168.1.133:6667
{
options
{
clientsonly;
};
};
# пароли для рестарта и выключения oper-ом сервера
drpass {
restart «123456»;
die «123456»;
};
# логируем почти все, размер лога до 2х мегабайт
log «/var/log/ircd/ircd.log» {
maxsize 2097150;
flags {
oper;
connects;
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
spamfilter;
};
};
# подключаем
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };
alias «identify» {
format «^#» {
target «chanserv»;
type services;
parameters «IDENTIFY %1-«;
};
format «^[^#]» {
target «nickserv»;
type services;
parameters «IDENTIFY %1-«;
};
type command;
};
alias «services» {
format «^#» {
target «chanserv»;
type services;
parameters «%1-«;
};
format «^[^#]» {
target «nickserv»;
type services;
parameters «%1-«;
};
type command;
};
alias «identify» {
format «^#» {
target «chanserv»;
type services;
parameters «IDENTIFY %1-«;
};
format «^[^#]» {
target «nickserv»;
type services;
parameters «IDENTIFY %1-«;
};
type command;
};
alias «glinebot» {
format «.+» {
command «gline»;
type real;
parameters «%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123»;
};
type command;
};
files
{
};
# ответ на вопросы про каналы на сервере
official-channels {
«#marsik» { topic «chanel Marsikom»; };
};
# Устанвки сервера
set {
network-name «marsikom.chat.loc«;
default-server «marsikom.chat.loc»;
services-server «marsikom.chat.loc»;
stats-server «marsikom.chat.loc»;
help-channel «#marsik»;
hiddenhost-prefix «marsik»;
# не давать опа первому вошедшему в канал
level-on-join «none»;
# ключи — у вас свои — набираем цифры буквы большие и маленькие
cloak-keys {
«Ctujlyz3vb(hVz4Zb7x4YwpW»;
«fjklYBndjwkswOskk44kkk5kkcsdcq32342ghhhh»;
«ntcnNdfyyzghjikjYf5677Ehf»;
};
/* on-oper host */
hosts {
local «marsikom.chat.loc»;
global «marsikom.chat.loc»;
coadmin «marsikom.chat.loc»;
admin «marsikom.chat.loc»;
servicesadmin «marsikom.chat.loc»;
netadmin «marsikom.chat.loc»;
host-on-oper-up «no»;
};
};
/* Server specific configuration */
set {
kline-address «marsikom@mail.ru»;
modes-on-connect «+ixw»;
modes-on-oper «+xwgs»;
auto-join «#marsik»;
options {
hide-ulines;
show-connect-info;
};
maxchannelsperuser 10;
anti-spam-quit-message-time 10s;
oper-only-stats «okfGsMRUEelLCXzdD»;
throttle {
connections 3;
period 60s;
};
};
Добавляем в /etc/rc.conf:
#irc
unrealircd_enable=»YES»
фаеровол в /etc/pf.conf:
#irc
pass on $int_if proto tcp from any to $int_if port 6667 keep state
подгружаем правила
pfctl -f /etc/pf.conf
и стартуем:
/usr/local/etc/rc.d/unrealircd start
Подключался к серверу 192.168.1.133:6667 канал #marsik пользователь любой, клиентом Kvirc для Windows — так как у меня нету DNS сервера то при старте подключения клиента ругалось что IRC сервер не может определить IP, также не понимало русских и украинских букв в ник пользователя чата — пришлось откорректировать конфиг unrealircd:
….
set {
kline-address «marsikom@mail.ru»;
modes-on-connect «+ixw»;
modes-on-oper «+xwgs»;
auto-join «#marsik»;
options {
hide-ulines;
dont-resolve;
show-connect-info;
};
allowed-nickchars {
russian-w1251;
ukrainian-w1251;
};
maxchannelsperuser 10;
anti-spam-quit-message-time 10s;
oper-only-stats «okfGsMRUEelLCXzdD»;
throttle {
connections 3;
period 60s;
};
};
….
и перегрузка:
/usr/local/etc/rc.d/unrealircd restart
Комментирование закрыто.