Bahamut IRCd Setup - Компилиране и конфигуриране на Bahamut IRCd сървър.

Ако ви се е повредил Windows, не знаете какво да правите с Linux или не знаете как се правят аквариуми - това е мястото за вас
Аватар
LuD
The Sinner's Priest ;-]
The Sinner's Priest ;-]
Мнения: 205
Регистриран на: 10 Окт 2012 15:44
Местоположение: Sofia
Обратна връзка:

Bahamut IRCd Setup - Компилиране и конфигуриране на Bahamut IRCd сървър.

Непрочетено мнение от LuD »

Хм, как да инсталирате Bahamut... Влезте във вашата директория.

$ cd

Трябва да вземете Bahamut от тук. (може да го вземете по следния начин)

$ wget -cb http://download.freeunibg.eu
Continuing in background, pid 214.
Output will be written to `wget-log'.

Ако нямате wget можете да го вземете използвайки lynx или нещо друго.

$ lynx -source http://download.freeunibg.eu > bahamut-1.4.30-
release.tar.gz

След това просто го разкомпресирайте и влезте в директорията, която то създава. (можете да изтриете компресирания файл).

$ tar zxf bahamut-1.4.30-release.tar.gz
$ rm -f bahamut-1.4.30-release.tar.gz
$ cd bahamut-1.4.30-release/

Ако сте на различна платформа на линукс трябва да го разкомпресирате по следния начин:

$ gzip -d bahamut-1.4.30-release.tar.gz
$ tar -xf bahamut-1.4.30-release.tar
$ rm -f bahamut-1.4.30-release.tar.gz
$ cd bahamut-1.4.30-release/

Сега... Нека да стартираме конфигурационния скрипт. (той не трябва да изписва грешки, ако изпише свържете се с нас за помощ). Между другото изписва доста неща просто ги игнорирайте, щом не ви приличат на грешки. (показваме ви крайния резултат):

$ ./configure
....
creating ./config.status
creating Makefile
creating src/Makefile
creating tools/Makefile
creating include/gmp_irc.h
creating include/setup.h
configuring zlib...
Checking for gcc...
Building static library libz.a version 1.1.3 with gcc.
Checking for unistd.h... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.


Така, всичко е готово за сега. =) Така че, остава главната част, редактирането на файловете в директорията include/.


$ cd include/


Редактирайте файловете с любимия си редактор (е не ви говоря за vi =P, опитайте например с mcedit).


$ mcedit config.h


Като за начало трябва да забраните една опция, за да имате разрешение да редактирате файла ръчно.


#define OPTIONS_H


Променете на:


#undef OPTIONS_H


Инсталирайте Bahamut във вашата директория.


#define DPATH "/usr/home/ircd/ircd/"

#define SPATH "/usr/home/ircd/ircd/ircd"


се променя на:


#define DPATH "/home/user/ircd"

#define SPATH "/home/user/ircd"


Ако сте HUB.


#undef HUB


Променете на:


#define HUB


Ако сте параноик и изкате да записвате всичко, това е за вас:


#define SYSLOG_KILL /* log all operator kills */

#define SYSLOG_SQUIT /* log all remote squits */

#define SYSLOG_CONNECT /* log remote connect messages */

#define SYSLOG_USERS /* send userlog stuff to syslog */

#define SYSLOG_OPER /* log all users who successfully oper */

#define SYSLOG_BLOCK_ALLOCATOR /* debug block allocator */


Важно! Ако имате services #define SERVICES_NAME трябва да бъде променено на адреса на вашите services.


#define SERVICES_NAME "services.dal.net" /* services на DALnet*/


Променете на:


#define SERVICES_NAME "host.of.your.services"


От гледна точка на сигурноста е добре да дифинирате следното.


#undef CRYPT_OPER_PASSWORD


Променете на:


#define CRYPT_OPER_PASSWORD


Максималния брой канали, в които един потребител може да влиза.


#define MAXCHANNELSPERUSER 10 /* Recommended value: 10 */


Променете на:


#define MAXCHANNELSPERUSER 40 /*40 is the number of max channels a user is allowed to join */


Сега нека да окажем локалния и глобалния kline адрес.


#define SERVER_KLINE_ADDRESS "[email protected]"

#define NETWORK_KLINE_ADDRESS "[email protected]"


Променете на:


#define SERVER_KLINE_ADDRESS "[email protected]"

#define NETWORK_KLINE_ADDRESS "[email protected]"


Следващото се използва за синхронизация на часовниците. Ако искате никаква синхорнизация просто променете следното.


#define TS_MAX_DELTA 120 /* seconds */

#define TS_WARN_DELTA 15 /* seconds */


Променете на:


#define TS_MAX_DELTA 9999999999999 /* seconds */

#define TS_WARN_DELTA 999999999999 /* seconds */


Дефиниране на продължителността на K-Line по подразбиране. Добре е да е 60 минути.


#define DEFAULT_KLINE_TIME 30


Променете на:


#define DEFAULT_KLINE_TIME 60


Ако искате да спрете clones атаките разрешете следното:


#define CONNECTFAST


Това ще разреши само една свръзка от даден IP адрес на всеки две секунди. Ако искате вашите потребители да използват каквито и да са username-и включвайки .,`/) и т.н. направете следната промяна.


#undef FOLLOW_IDENT_RFC

#define RFC1035_ANAL


Променете на:


#define FOLLOW_IDENT_RFC

#undef RFC1035_ANAL


Ако не е обозначено в T: линията, ще казвате клиентите си да отидат на ...:


#define DEFAULT_PROXY_INFO_URL "some.proxy.wingate.site.net"

#define STAFF_ADDRESS "DALnet"


Променете на:


#define STAFF_ADDRESS "Your Network"


Това е всичко от редактирането на файла config.h. Ако искате да направите промени във версията редактирайте файла patchlevel.h:


$ mcedit patchlevel.h


Сега нека да погледнем в src/ директорията.


$ cd ..

$ cd src/


Заинтересувани сте в правенето на вашия сървър малко по-интересен? Изписвайки интересни съобщения? Да, това е възможно. ;b


$ mcedit s_err.c


Сега... Наслъждавайте се =)) Върнете се в главната директория където е IRCd-то и пуснете мake скрипта! (след това си направете пица, защото ще отнеме "малко" време)


$ cd ..

$ make


Хмм, отново доста съобщения? Не се притеснявайте от тях =P Не би трябвало да получавате грешки, ако получите не се притеснявайте да ни пишете за помощ.


$ make install


Най-накрая трябва да видите това:


installing ircd as /home/user/ircd/ircd

previous ircd saved as ircd.old

installing example.conf as your /home/user/ircd/ircdircd.conf

installing a sample /home/user/ircd/ircdircd.motd

touching /home/user/ircd/ircdkline.conf

installing opers.txt as /home/user/ircd/ircdopers.txt


Наслъждавайте се =)) Влезте в директорията, която сте описали в config.h (при мен това е /home/user/ircd)


$ cd /home/user/ircd

$ ls

ircd* ircd.old* ircdircd.conf* ircdircd.motd ircdkline.conf


Сега трябва да направим няколко допълнителни файлове.


$ touch kline.conf

$ touch ircd.motd

$ touch ircd.smotd

$ touch ircd.log

$ touch opers.txt

$ rm -f ircdircd.motd ircdkline.conf ircdircd.conf


Сега редактирайте ги с някой редактор. (ee / pico / vi / vim / emacs / joe / jed). Сега най-важната част от създаванет на вашият ircd сървър е редактирането на файла ircd.conf. Ето и пример:


$ mcedit ircd.conf


M:irc.IRCHelp.UniBG.oRG:62.178.42.3:DarkChild's IRC NeTwoRk Main Server:0:1


Първото е адреса на сървъра ви (не трябва да го притежавате), следващото е IP адреса ви, на който ще се отвори порт за връзка на потребителите към сървъра ви(можете да не го пишете и порта ще бъде отворен на 127.0.0.1) последното е някакъв вид текст, който е свързан със сървъра. (ще бъде изписан при /whois). Номерът след главната част трябва да бъде уникален за мрежата, на която сървърът ви е, трябва да е между 1 и 64.


A:DarkChild's Help Group:DarkChild's IRC NeTwoRk Server:Randal L. Schwartz <[email protected]>


Това конфигурира административните функции на сърверът, които ще се появят когато някои напише /admin на този сървер. Тези полета трябва да са точни за администратора на сърверът. В следния ред.


Име на компанията/институцията, описание на сървъра, Администратор <[email protected]>.


Някои Y: линии следват, оставете ги. Ето и кратко обяснение както правят.



Y: клас на идентификация: честота на ping: честота на връзката: максимум връзки: максимум sendQ


Y-линията въввежда класът на връзка. Класът на идентификация е номер, който идентифицира класът, и се използва в I-линията и в C/N-линиите, за да идентифицира използваните Y-линиите. Честота на ping-а се определя във времето (в секунди) между исканията за ping (за да се уверите че връзката все още е "жива"). Честотата на връзката е времето между автоматичните опити за свръзка към даден сървер (би трябвало да е 0 за класовете на връзка на клиентите). Максимум връзките сами по себе си говорят за значението си. "SendQ" се равнява на данните (в байтове) преди сърверът да го/я затвори (с съобщение от сорта "SendQ Exceeded"). И кратко обяснение за I:



I: адресна маска: парола: адресна маска: клас на връзката


I-линиите определят дали даден клиент има способност да се свърже с вашият сървер. Допълнително, те определят какъв е класът на връзка (определен от Y-линиите), в която е клиента. Паролата обикновенно е празно място.


Y:1:240:20:1500:500000

Y:2:240:20:4000:500000

Y:3:240:20:4000:500000

Y:4:240:20:4000:500000

Y:50:190:50:25000:1000000

Y:60:190:50:2000:1000000

Y:150:190:100:1500:4000000


Коментираме


#I:*@*:oper.$packWitU:*@*:7149:10

#I:*@*:oper.$packWitU:*@*:7149:10


И добавете тази линия за I:, тя позволява всички да се свързват към вашия сървър.


I:*@*::*@*::1



В случай, че не искате всички да имат способността да се свързват към вашият сървър, просто добавете следното.:


I:*@*.com::*@*.com::2

I:*@*.net::*@*.net::2

I:*@*.org::*@*.org::2

I:*@*.edu::*@*.edu::2

I:*@*.us::*@*.us::2

I:*@*.ca::*@*.ca::2

I:*@*.fr::*@*.fr::2


Искате да сте лошо момче и да използвате spoof?


I:smurfurs.are.lame:password:=username@hostname::3


Сега нека да продължим. Коментирайте всички O: линии. Те са, за да дадат операторски привилегии.


#O:jdoe@*.generic.com:j0hnsPa$$:john:OaA:10


Добавете ваша собствена:


O:*Randal@*:-CRYPT PASSWORD-:randal:rRDgwlCAKBNufsO:10


Е на мене ми трябват всички флагове =P Ако наистина искате да знаето какво означават всички тези rRDgwlCAKBNufsO флагове, погледнете файла ircdircd.conf. Използвайте ./mkpasswd, за да създадете своя криптирана парола:


$ ./mkpasswd

plaintext:

c4/Cxq0iqB0bU


'mkpasswd' се намира в:


$ cd /home/user/bahamut-1.4.30-release/tools

$ ls

CVS/ Makefile.in chkconf* chkconf.o fixklines.c install_ircd* mkpasswd.c viconf* viconf.o

Makefile buildm4* chkconf.c fixklines* fixklines.o mkpasswd* mkpasswd.o viconf.c


Ако не сте избрали да използвате криптирани пароли можете да добавите вашите O: линии по следния начин:


O:*Randal@*:-ENCRYPTED PASSWORD-:RandaL::50



С: сървер hostname: парола: сървер име: порт:клас на връзката
N: сървер hostname: парола: сървер име: hostmask: клас на връзката


C/N-линиите са връзки към други сървeри. С-линията дефинира към какъв сървер вашият сървер може да се свърже, а N-линията дефинира какви сървери са позволени да правят връзка към вашият сървер. Никога не сам виждал едната без другата,и според обикновения неконфигуриран ircd.conf те трябва да се използват винаги в двойка. Сърверът, хостнаме-а, паролата, и името на сърверът са сами по себе си доста обстоятелни. Портът се използва за да се покаже на какъв порт сърверът ще се опитва да се свързва автоматично, ако мястото за порта е оставено празно вашият сървер няма да се свързва автоматично към дефинирания сървер. Никога не съм виждал да се използва хостмаск (даже и неразбирам какво и е значението тук). Класът на връзката е цифрена част, и дефинира Y-линиите.



C:24.95.128.27:linktome:irc.DarkBoy.net:6667:30

N:24.95.128.27:linktome:irc.DarkBoy.net:Z:30


Коментирайте C: и N: линиите в конфигурационния файл.


К: хостмаск: време: причина


Повечето хора вече знаят какво е К-линия, но за да сме точни в обобшението си, тя е просто бан от сървера. По принцип К-линиите се добавят с команда от сърверът и причината се записва като бележка в конфигурационния файл. Коментирайте линиите в конфигурационния файл.


#K:*.au:"Please use a nearer server":*

#K:*.edu:"Please use a nearer server":*

#K:unixbox.flooder.co.uk:!kline/youflooded.txt:*luser

#k:192.168.*:!klines/martians:*

#K:$R*sub7*:"You are infected with a Trojan":*


Можете да добавите своя собствена.


K:*most-hated.edu::Screamer



Н: отдалечен сървер: хъб сървер

Това определя хъб сърверът, който е сървер, който има и други връзки от други сървери. "Отдалечен сървер" почти винаги е "*" или може да има хостмаск за да ограничи връзките от други сървери. Никакви хъбове.


#H:*::nowhere.hub.us.dal.net



Р: хостмаск: : : : порт


Това са портовете, на които могат да се свързват потребители към вашият сървер (в добавка към портът вписан в М-линията). Хостмаската е незадължително поле, чрез което можете да определите какви клиенти могат да се свързват на този порт. Добавете своя собствена.


P:*:*::6667


U:irc.server.com


Хъбовете трябва да имат U: линии. Kline-ите ще бъдат изпращани там. LOCOPS и SLOCOPS също. Коментирайте линиите и добавете свои, ако има нужда.


#U:services.dal.net:*:*

#U:stats.dal.net:*:*


Q::reason:server



Q: причина: сървер


Q-линията определя сървер, който няма да бъде допуснат да се свърже към мрежата като цяло (всички сървери трябва да имат една и съща Q-линия. Не коментирайте примера.


Q::Reserved for services:ChanServ

Q::Reserved for services:NickServ

Q::Reserved for services:MemoServ

Q::Reserved for services:OperServ

Q::Reserved for services:HelpServ

Q::Reserved for operators:DALnet

Q::Reserved for operators:IRCop


Накрая вашият конфигурационен файл трябва да изглежда така =)


M:irc.IRCHelp.UniBG.oRG:62.178.42.3:DarkChild's IRC NeTwoRk Main Server:0:1

A:DarkChild's Help Group:DarkChild's IRC NeTwoRk Server:Randal L. Schwartz <[email protected]>

Y:1:240:20:1500:500000

Y:2:240:20:4000:500000

Y:3:240:20:4000:500000

Y:4:240:20:4000:500000

Y:50:190:50:25000:1000000

Y:60:190:50:2000:1000000

Y:150:190:100:1500:4000000

I:*@*::*@*::1

O:*Randal@*:-CRYPT PASSWORD-:randal:rRDgwlCAKBNufsO:10

C:24.95.128.27:linktome:irc.DarkBoy.net:6667:30

N:24.95.128.27:linktome:irc.DarkBoy.net:Z:30

P:*:*::6667

Q::Reserved for services:ChanServ

Q::Reserved for services:NickServ

Q::Reserved for services:MemoServ

Q::Reserved for services:OperServ

Q::Reserved for services:HelpServ

Q::Reserved for operators:DALnet

Q::Reserved for operators:IRCop



Не е зле? Готови сме да стартираме сървъра. =) Добавете -l за логване. Ако системата ви поддържа crontab можете да добавите вашият сървър да бъде проверяван на всеки 10 минути.


$ ./ircd -l ircd.log

$ cat > crontab

0,10,20,30,40,50 * * * * /home/user/ircd/ircdcheck >/dev/null 2>&1

CTRL+C


Чудите се какво е това ircdcheck? Хм... Този файл би трябвало да съдържа следните линии.

$ cat > ircdcheck

#!/bin/sh

# Set this to the directory where IRCd is located

hpath="/home/user/ircd"

# Set this to the name of the pid file

hpidfile="ircd.pid

# Set this to the path to the configuration file

conffile="ircd.conf"

if test -r $hpath/$hpidfile; then

hpid=`cat $hpath/$hpidfile`

if `kill -CHLD $hpid >/dev/null 2>&1`; then

# still running

exit 0

fi

fi

echo ""

echo "Restarting IRCd..."

if test -x $hpath/ircd; then

$hpath/ircd $conffile -l ircd.log

exit 0

fi

echo "Unable to execute $hpath/ircd"
exit 0

CTRL+C


Сега да стартираме crontab-а, но преди това да му дадем права за стартиране:


$ chmod a+x ircdcheck
$ crontab crontab


Всичко мина добре, нали? Проверете:


$ crontab -l


Честит ви нов сървър!!
The quieter you become, the more you are able to hear! :AR! https://www.FreeUniBG.eu :YMDEVIL:
Публикувай отговор

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта