Встановлюємо irc сервер

Home> Встановлюємо IRC сервер - ngIRCd

Однією з цілей знайомства частини користувачів Linux є вивчення роботи і налаштувань різних серверів і сервісів. В силу відкритості цієї операційної системи навчитися адмініструвати систему набагато простіше, ніж в Windows, для якої більшість проектів далеко не безкоштовні, та й знайти дистрибутив буває не просто. У цій статті допоможемо читачам, розібравши настройку одного з IRC серверів. Чому саме IRC? Якщо пошукати на тематичних ресурсах, можна виявити, що для Linux і Unix існує велика кількість посібників з налаштування Інтернет серверів, найчастіше Apache, різних варіантів поштових систем, що відрізняються використовуваними компонентами і варіаціями на тему боротьби зі спамом і вірусами. Знайти посібник з іншим на порядок важче. Особливо це стосується дідка IRC, який вже кілька десятків років чесно виконує свій обов'язок, витримуючи численні баталії, основні ресурси IRC, відмінно тримаються на ногах. І не дивлячись на навалу новіших сервісів на зразок ЖЖ, здаватися схоже не збираються. Постійно з'являються новачки. Сьогодні вже нікого не здивуєш мережами зв'язують цілі райони, тому чому б не випробувати себе в адмініструванні IRC.

?можливості ngIRCd

встановлюємо ngIRCd

В репозитарії дистрибутива KUbuntu 6.06 Daper Drake, який використовувався при тестовій установці, ngIRCd є. Встановити його просто.

$ Sudo apt-get update

$ Sudo apt-get install ngircd

Правда на момент написання це була вже не актуальна на поточний момент версія - 0.9.2, тоді як на сайті проекту була доступна 0.10.1. Тим, хто не хоче компілювати можна взяти готовий пакет до Ubuntu 7.04, де зібрана версія 0.10 або альтернативний пакет до Debian ftp://arthur.barton.de/debian/pool/main/n/ngircd/, який підтримується Олександром. Компілювання проходить без проблем, тому простіше зібрати його самому.

$ Wget -c ftp://ftp.berlios.de/pub/ngircd/ngircd-0.хх.1.tar.gz

$ Tar xzvf ngircd-0.хх.1.tar.gz

І конфігуруємо. Можна запустити скрипт без параметрів, але я включив захоплення IRC трафіку, вельми корисна можливість при вивченні протоколу. Також я не люблю, коли програми встановлюються в / usr / local, а конфігураційний файли розкидані по всьому дереву. Тому в якості каталогу для установки вказав / usr, а конфігураційний файл буде лежати в / etc.

$ ./configure -enable-sniffer -sysconfdir = / etc -prefix = / usr
Після закінчення конфігурації буде видано резюме по установкам.

ngIRCd 0.хх has been configured with the following options:

Compiler flags: -pedantic -g -O2 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -DSYSCONFDIR = ' »$ (sysconfdir)»'

Libraries: -lz -lnsl

'Ngircd' binary: / usr / sbin

Configuration file: / etc

Manual pages: / usr / man

Syslog support: yes Enable debug code: yes

zlib compression: yes IRC sniffer: yes

Use TCP Wrappers: no Strict RFC mode: no

Zeroconf support: no IRC + protocol: yes

IDENT support: no I / O backend: «epoll ()»

І потім стандартна компіляція.

$ Sudo make install

Ось власне і все. Весь процес складання не відніме у вас часу більше двох-трьох хвилин.

Конфігураційний файл ngIRCd

Приступаємо до редагування.

$ Sudo mkedit /etc/ngircd.conf

# Секція [Global] описує основні настройки сервера

# Ім'я сервера в мережі IRC network.

# Інформація про сервер, яка буде виводитися при використанні команд WHOIS і

Info = My First IRC Server

# Пароль для приєднання до сервера, якщо не встановлено, то користувачі будуть з'єднуватися без пароля

# Інформація про сервер і адміністратора

AdminInfo1 = My IRC

# За замовчуванням сервер використовує 6667 порт, через кому можна вказати інші значення

; Ports = 6667, 6668, 6669

# За замовчуванням сервер очікує з'єднання на всіх мережеві інтерфейси, що не завжди

# Потрібно. Використавши цей параметр, можна вказати на потрібний інтерфейс

# Файл містить «Повідомлення дня» (message of the day - MOTD), виподімое користувачеві приєднався до сервера.

# Якщо не використовується файл motd, тут можна вказати короткий (256 знаків) повідомлення

; MotdPhrase = «Hello world!»

# За замовчуванням демон буде працювати як користувач nobody

# Наявність хворого числа таких nobody в системі, робить цього користувача не менше

# Значущим ніж root. Використавши ці параметри, можна вказати користувача і групу

# Від імені, якого буде працювати демон після запуску

# Він повинен бути в системі і всі файли повинні належати цьому користувачу

# Chroot каталог, в який буде переходити демон після запуску

# Файл з номером процесу демона ngircd, якщо не планується chroot можна не чіпати

# Після закінчення цього часу клієнту буде посланий PING, щоб з'ясувати «живий» він чи ні

# Якщо клієнт не відповість на PING повідомленням PONG, після закінчення цього часу він буде відключений

# Проміжок часу, через які буде здійснюватися спроба з'єднання з іншими серверами

# Дозвіл використання команди MODE, який встановлює режим каналу

# Маскування запиту ніби він йде від сервера

# Використання тільки попередньо встановлених каналів

# Максимальну кількість з'єднань, яке буде приймати сервер

# (<=0: без ограничений):

# Максимальну кількість каналів, в яких може бути присутнім користувач

# У цій секції визначаються оператори IRC, для кожного створюється своя секція

Password = password
[Channel]

# IRC канали автоматично створювані сервером.

# Кожен канал описується в окремій секції

# Тема для каналу

Тепер залишилося завести користувача ngircd, і призначити його власником /etc/ngircd.motd.

$ Sudo adduser ngircd -no-create-home -disabled-login

Adding user `ngircd '...

Adding new group `ngircd '(1003).

Adding new user `ngircd '(1003) with group` ngircd'.

Not creating home directory `/ home / ngircd '.

Changing the user information for ngircd

$ Sudo chown ngircd: ngircd /etc/ngircd.motd

Все готово. Запускаємо.

Налаштовуємо IRC клієнта на новий сервер і спілкуємося. Перевірив роботу сервера з усіма кодуваннями CP1251, KOI8R, KOI8U і UTF8. При використанні ngIRCd ніяких проблем з виведенням повідомлень на кирилиці не виникало, головне, щоб клієнти були налаштовані однаково.

$ Sudo cat / var / log / messages | grep ngircd

Feb 25 19:14:01 localhost ngircd [10800]: Reading configuration from «/etc/ngircd.conf» ...

Feb 25 19:14:01 localhost ngircd [10800]: No administrative information configured but required by RFC!

Feb 25 19:14:01 localhost ngircd [10801]: Running as user ngircd (1003), group ngircd (1003), with PID 10801.

Feb 25 19:14:01 localhost ngircd [10801]: Not running chrooted.

Feb 25 19:14:01 localhost ngircd [10801]: IO subsystem: epoll (hint size 100, initial maxfd 100, masterfd 4).

Feb 25 19:14:01 localhost ngircd [10801]: Now listening on 0.0.0.0:6667 (socket 5).

Feb 25 19:14:50 localhost ngircd [10801]: Accepted connection 6 from 192.168.1.58:59018 on socket 5.

Feb 25 19:14:50 localhost ngircd [10806]: Possible forgery: 192.168.1.58 resolved to grinder (which is at ip 127.0.0.1!)

Feb 25 19:14:50 localhost ngircd [10801]: User «sergej!

[email protected] »registered (connection 6).

Feb 25 19:15:24 localhost ngircd [10801]: Accepted connection 7 from 192.168.1.58:59019 on socket 5.

Feb 25 19:15:24 localhost ngircd [10808]: Possible forgery: 192.168.1.58 resolved to grinder (which is at ip 127.0.0.1!)

Feb 25 19:15:30 localhost ngircd [10801]: User «grinder!

[email protected] »registered (connection 7).
Ось ми і навчилися налаштовувати свій IRC сервер. Хоча ngIRCd? Нє? Володіє деякою функціональністю властивих більш розвиненим продуктам, але це тільки початок. Linux forever!

А як мені стати операторм. Щоб потім використовувати команди типу / kick / op і т.д.

> А як мені стати операторм.
> Щоб потім використовувати команди типу / kick / op і т.д.
Зазвичай перший зайшов на канал автоматично отримує опа, так що по мінімуму достатньо зайти на новий канал (/ join #chan) і якщо його не існувало - отримаєте на ньому опа, зможете кикать і т.п..Адмін сервера також може отримати права опа на будь-якому каналі, навіть не створеним самостійно «нечесними» методами використовуючи привілеї IRC-оператора (іркопа) - для цього як правило треба прописати себе як іркопа в конфіги сервера і почитати мануал на предмет іркопскіх команд використовуваного сервера.Более новорічний варіант (який використовується в багатьох IRC мережах) має на увазі установку ще й так званих «сервісів» (Services) видимих ​​користувачеві як правило як ChanServ, NickServ та інші - вони займаються автоматичної роздачею прав зареєструвалися.

Схожі статті