Irc сървър, готов за Windows LAN. Инсталиране на IRC сървър - ngIRCd

Irc сървър, готов за Windows LAN. Инсталиране на IRC сървър - ngIRCd

Една от целите на опознаването на част от потребителите на Linux е изучаването на работата и настройките на различни сървъри и услуги. Поради откритостта на това операционна системада се научите как да администрирате система е много по-лесно, отколкото в Windows, за който повечето проекти далеч не са безплатни и намирането на дистрибуция не е лесно. В тази статия ще помогнем на читателите, като сортираме конфигурацията на един от IRC сървърите. Защо IRC? Ако потърсите в тематични ресурси, ще откриете, че за Linux и Unix има голям бройръководства за конфигуриране на интернет сървъри, най-често Apache, различни варианти на пощенски системи, които се различават по използваните компоненти и вариации по темата за борба със спам и вируси. Намирането на водач за останалите е порядък по-трудно. Това важи особено за стария IRC, който вярно изпълнява дълга си в продължение на няколко десетилетия, издържайки многобройни битки, основните ресурси на IRC са идеално на крака. И въпреки инвазията на по-нови услуги като LiveJournal, те изглежда няма да се откажат. През цялото време има новодошли. Днес няма да изненадате никого с мрежи, свързващи цели области, така че защо не опитате ръката си в администрирането на IRC.

Към днешна дата има няколко десетки, ако не и стотици решения, предназначени за изграждане на IRC сървър. Някои от тези проекти произхождат съответно от първия IRCD сървър (http://www.nic.funet.fi/~irc/server/) и често влачат наследството му със себе си. Има системи, предназначени за голям брой потребители, които изискват база данни, която поддържа обмен на информация по защитения SSL протокол. Можете да сравните някои функции на популярни решения на http://en.wikipedia.org/wiki/Comparison_of_IRCds. Ще се обърнем към проект, който не претендира да бъде първият, най-добрият и т.н., той не може да се похвали с голям брой допълнителни функции. Стабилност и сигурност тук ключови думи- ngIRCd (Следващо поколение IRC демон).

?ngIRCd функции

Този сървър е написан изцяло от нулата от автора Александър Бартън в C. Фокусът на неговия дизайн беше върху преносимостта на кода и чистотата на кода. В резултат на това ngIRCd се надгражда лесно на повечето платформи. Освен Linux, това са: AIX, A/UX, FreeBSD, HP-UX 9.10/10.20, HP-UX, IRIX, Mac OS X, NetBSD, OpenBSD, Solaris и Windows с Cygwin библиотеки. По време на изграждане ngIRCd не изисква никакви скрити зависимости и се компилира добре. Разбираемият конфигурационен файл дава удобство на конфигурацията, може да стане малко по-сложно с увеличаване на функционалността, но се надявам, че основният принцип ще остане същият. Освен това ngIRCd е съвместим с всички IRC сървъри, които отговарят на спецификациите RFC 1459, 2810-2813, което означава, че повечето команди и всичко, което се очаква от подобна услуга редовен потребител. В големите мрежи вероятно все още е твърде рано да се използва. И самият автор честно предупреждава, че ngIRCd все още не е тестван в натоварени IRC мрежи с високо натоварване. Но в малки мрежи и за целите на обучението може да се препоръча. Освен това, както показва опитът, той не се страхува много от тежък товар. Между другото, сървърът ngIRCd може да работи не само със статичен адрес, но се държи нормално, ако адресът е динамично присвоен на системата. Ако само потребителите знаеха къде да се присъединят. За да подобри сигурността, сървърът може лесно да работи, за да отиде в chroot средата и ако възникнат проблеми, атакуващият няма да отиде по-далеч от определената директория. Домашният сайт на проекта е http://ngircd.barton.de/.

Инсталирайте ngIRCd

Хранилището на дистрибуцията KUbuntu 6.06 Daper Drake, което беше използвано по време на тестовата инсталация, има ngIRCd. Инсталирането му е лесно.

$ sudo apt-get актуализация

$ 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.xx.1.tar.gz

$ tar xzvf ngircd-0.xx.1.tar.gz

$ cd ngircd-0.xx

И ние конфигурираме. Възможно е да стартирате скрипта без параметри, но аз включих улавянето на IRC трафик, много полезна възможностдокато изучавам протокола. Също така не ми харесва, когато програмите се инсталират в /usr/local и конфигурационните файлове са разпръснати из цялото дърво. Затова посочих /usr като инсталационна директория, а конфигурационният файл ще бъде в /etc.

$ ./configure --enable-sniffer --sysconfdir=/etc --prefix=/usr
След завършване на конфигурацията ще бъде издадено обобщение на настройките.

ngIRCd 0.хх е конфигуриран със следните опции:

Цел: i686-pc-linux-gnu

Флагове на компилатор: -pedantic -g -O2 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -DSYSCONFDIR=""$(sysconfdir)"'

Библиотеки: -lz -lnsl

двоичен файл 'ngircd': /usr/sbin

Конфигурационен файл: /etc

Страници с ръководство: /usr/man

Документация: /usr/share/doc/ngircd

Поддръжка на Syslog: да Активиране на код за отстраняване на грешки: да

zlib компресия: да IRC снифър: да

Използвайте TCP Wrappers: не Стриктен RFC режим: не

Поддръжка на Zeroconf: не IRC+ протокол: да

IDENT поддръжка: без I/O бекенд: "epoll()"

И след това стандартна компилация.

$ sudo make install

Това всъщност е всичко. Целият процес на сглобяване няма да ви отнеме повече от две или три минути.

ngIRCd конфигурационен файл

При стартиране демонът чете всички настройки от една конфигурационен файл ngircd.conf. Ако е конфигуриран, както е показано по-горе, сега се намира в директорията /etc. Файловата структура е традиционна за Unix, така изглеждат настройките на повечето сървъри. Файлът е разделен на няколко раздела, всеки от които съдържа определени настройки. Освен това, ако се планира да работят няколко виртуални сървъри ngIRCd, техните настройки са описани в един файл. Удобно е, че е добре коментиран и ключовите думи са разбрани по смисъл, така че можете да разберете значението на параметъра, без дори да гледате документацията. Остър знак "#" и точка и запетая ";" зъл коментар. Документацията също заслужава отделна похвала, написана е просто и ясно, с познания на основен английски, ще бъде лесно да се ориентирате. Повечето от параметрите могат да бъдат оставени по подразбиране, т.е. коментирани.

Да започнем редактирането.

$ sudo mkedit /etc/ngircd.conf

# Разделът описва основните настройки на сървъра

# Име на сървър в IRC мрежата.

Име=irc.grinder.net

# информация за сървъра, която ще се показва при използване на WHOIS и

Информация = Моят първи IRC сървър

# Парола за свързване към сървъра, ако не е зададена, тогава потребителите ще се свързват без парола

# информация за сървъра и администратора

AdminInfo1 = Моят IRC

AdminInfo2 = Начало

Имейл на администратора= [имейл защитен]

# По подразбиране сървърът използва порт 6667, можете да посочите други стойности, разделени със запетаи

;Портове = 6667, 6668, 6669

# По подразбиране сървърът чака връзка на всички мрежови интерфейси, което не винаги е така

# трябва да. Използвайки този параметър, можете да посочите желания интерфейс

;Слушай=1.2.3.4

MotdFile = /etc/ngircd.motd

# Ако не се използва motd файл, тук може да се укаже кратко (256 знака) съобщение

;MotdPhrase = "Здравей свят!"

# По подразбиране демонът ще работи като потребител nobody

# Наличието на болен номер на такъв никой в ​​системата прави поне този потребител

# по-значим от root. Използвайки тези опции, можете да посочите потребителя и групата

# от името на което демонът ще работи след стартиране

# Трябва да е в системата и всички файлове трябва да са собственост на този потребител

ServerUID=ngircd

ServerGID=ngircd

# chroot директорията, където демонът ще отиде след стартиране

;ChrootDir = /var/празен

# Файлът с номера на процеса на демона ngircd, ако не планирате да правите chroot, не можете да пипате

;PidFile = /var/run/ngircd/ngircd.pid

# След това време на клиента ще бъде изпратен PING, за да разбере дали е жив или не

PingTimeout = 120

# ако клиентът не отговори на PING с PONG съобщение, след това време ще бъде прекъснат

pongtimeout = 20

# период от време, след който ще бъде направен опит за свързване с други сървъри

;ConnectRetry = 60

# Разрешете използването на командата MODE, за да зададете режима на канала

;OperCanUseMode = не

# маскиране на заявката, сякаш идва от сървъра

;OperServerMode = не

# използвайте само предварително зададени канали

;PredefChannelsOnly = не

# максималният брой връзки, които сървърът ще приеме

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

;MaxConnections=-1

# също само от един IP адрес

;MaxConnectionsIP = 5

# максималният брой канали, в които може да бъде даден потребител

# В този раздел са дефинирани IRC операторите, всеки има своя собствена секция

име = оператор1

Парола = парола

# IRC канали, автоматично създадени от сървъра.

# Всеки канал е описан в отделен раздел

# Име на канала

# Тема за канала

Сега остава да създадете ngircd потребител и да му присвоите собственик на /etc/ngircd.motd.

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

Добавяне на потребител `ngircd'...

Добавяне на нова група `ngircd' (1003).

Добавяне на нов потребител `ngircd' (1003) с група `ngircd'.

Не се създава домашна директория `/home/ngircd'.

Промяна на потребителската информация за ngircd

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

Всичко е готово. Ние стартираме.

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

Можете да видите напредъка на съобщенията в /var/log/messages.

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

25 февруари 19:14:01 localhost ngircd: Четене на конфигурация от "/etc/ngircd.conf" …

25 февруари 19:14:01 localhost ngircd: Няма конфигурирана административна информация, но се изисква от RFC!

25 февруари 19:14:01 localhost ngircd: Работи като потребител ngircd(1003), група ngircd(1003), с PID 10801.

25 февруари 19:14:01 localhost ngircd: Не се изпълнява chroot.

25 февруари 19:14:01 localhost ngircd: IO подсистема: epoll (размер на подсказка 100, първоначален maxfd 100, masterfd 4).

25 февруари 19:14:01 localhost ngircd: Сега се слуша на 0.0.0.0:6667 (сокет 5).

25 февруари 19:14:50 localhost ngircd: Приета връзка 6 от 192.168.1.58:59018 на сокет 5.

25 февруари 19:14:50 localhost ngircd: Възможна фалшификация: 192.168.1.58 разрешено за grinder (което е на ip 127.0.0.1!)

25 февруари 19:14:50 localhost ngircd:Потребител " [имейл защитен]» регистриран (връзка 6).

25 февруари 19:15:24 localhost ngircd: Приета връзка 7 от 192.168.1.58:59019 на сокет 5.

25 февруари 19:15:24 localhost ngircd: Възможна фалшификация: 192.168.1.58 разрешено за grinder (което е на ip 127.0.0.1!)

25 февруари 19:15:30 localhost ngircd:Потребител " [имейл защитен]» регистриран (връзка 7).
Така научихме как да настроим нашия IRC сървър. Въпреки че ngIRCd няма някои от функционалностите, които се намират в по-модерните продукти, това е само началото. Linux завинаги!

Има много IRC (Internet Relay Chat) сървъри в хранилищата на Ubuntu. Този раздел ще разгледа как да инсталирате и настроите оригиналния IRC сървър. ircd-irc2.

Инсталация

да инсталираш ircd-irc2, изпълнете следната команда в командния ред:

sudo apt-get инсталирайте ircd-irc2

Конфигурационните файлове се съхраняват в директорията /etc/ircd. Документацията ще бъде достъпна в директорията /usr/share/doc/ircd-irc2.

Настройка

IRC настройките могат да бъдат направени в конфигурационния файл /etc/ircd/ircd.conf. Можете да зададете мрежовото име на сървъра в този файл, като промените следния ред:

M:irc.localhost::Debian ircd default configuration::000A

Моля, уверете се, че сте добавили DNS записи за мрежовото име на IRC сървъра. Например, ако зададете името на вашата IRC мрежа на irc.livecipher.com, уверете се, че irc.livecipher.com може да бъде преобразувано от вашия DNS сървър. Името на IRC мрежата не трябва да е същото като общото име на мрежата.

Информацията за IRC администратора може да бъде персонализирана чрез редактиране на следния ред:

A:Организация, IRC отдел:Daemon :ClientServer::IRCnet:

Можете да добавите отделни редове, за да настроите списъка с IRC портове за слушане, да настроите информация за оператора, да настроите оторизация на клиента и т.н. Вижте примерния конфигурационен файл /usr/share/doc/ircd-irc2/ircd.conf.example.gz за подробности.

IRC заглавката, която ще се показва на IRC клиент при свързване към сървър, може да бъде зададена във файла /etc/ircd/ircd.motd.

След като направите необходимите промени в конфигурационния файл, трябва да рестартирате IRC сървъра, като използвате следната команда:

sudo /etc/init.d/ircd-irc2 рестартирайте