irc სერვერი გაიხსნა. დააინსტალირეთ IRC სერვერი - ngIRCd. ngIRCd კონფიგურაციის ფაილი

Ubuntu-ს საცავებში მასპინძლობს მრავალი IRC (Internet Relay Chat) სერვერი. ეს განყოფილება განიხილავს, თუ როგორ უნდა დააინსტალიროთ და დააკონფიგურიროთ ორიგინალური 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 ნაგულისხმევი კონფიგურაცია::000A

გთხოვთ, დარწმუნდით, რომ დამატებული გაქვთ DNS ჩანაწერები IRC სერვერის ქსელის სახელისთვის. მაგალითად, თუ თქვენ დააყენეთ თქვენი IRC ქსელის სახელი irc.livecipher.com, დარწმუნდით, რომ irc.livecipher.com გადაწყვეტილია თქვენი DNS სერვერის მიერ. IRC ქსელის სახელი არ უნდა იყოს იგივე, რაც საჯარო ქსელის სახელი.

IRC ადმინისტრატორის ინფორმაციის მორგება შესაძლებელია შემდეგი ხაზის რედაქტირებით:

პასუხი: ორგანიზაცია, IRC განყოფილება: Daemon :კლიენტ სერვერი::IRCnet:

თქვენ შეგიძლიათ დაამატოთ ცალკეული ხაზები მოსმენის IRC პორტების სიის კონფიგურაციისთვის, ოპერატორის ინფორმაციის კონფიგურაციისთვის, კლიენტის ავტორიზაციის კონფიგურაციისთვის და ა.შ. დეტალებისთვის იხილეთ კონფიგურაციის ფაილის მაგალითი /usr/share/doc/ircd-irc2/ircd.conf.example.gz.

IRC სათაური, რომელიც გამოჩნდება IRC კლიენტზე სერვერთან დაკავშირებისას, შეიძლება დაყენდეს /etc/ircd/ircd.motd ფაილში.

კონფიგურაციის ფაილში აუცილებელი ცვლილებების განხორციელების შემდეგ, თქვენ უნდა გადატვირთოთ IRC სერვერი შემდეგი ბრძანების გამოყენებით:

Sudo /etc/init.d/ircd-irc2 გადატვირთვა

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 Daemon).

?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 სერვერს შეუძლია იმუშაოს არა მხოლოდ სტატიკური მისამართით, არამედ ნორმალურად იქცევა, თუ მისამართი სისტემას დინამიურად ენიჭება. თუ მხოლოდ მომხმარებლებმა იცოდნენ, სად უნდა შეუერთდნენ. უსაფრთხოების გაზრდის მიზნით, სერვერს შეუძლია მარტივად დააბრუნოს გარემო და თუ პრობლემები წარმოიქმნება, თავდამსხმელი არ წავა მითითებულ დირექტორიაზე შორს. პროექტის მთავარი საიტია 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.хх.1.tar.gz

$ cd ngircd-0.xx

და დააკონფიგურირეთ. თქვენ შეგიძლიათ სკრიპტის გაშვება პარამეტრების გარეშე, მაგრამ მე ჩავრთე IRC ტრაფიკის გადაღება, ძალიან სასარგებლო ფუნქცია პროტოკოლის სწავლისას. მე ასევე არ მომწონს, როდესაც პროგრამები დაინსტალირებულია /usr/local-ში და კონფიგურაციის ფაილები მიმოფანტულია ხეზე. ამიტომ, მე დავაზუსტე /usr როგორც ინსტალაციის დირექტორია და კონფიგურაციის ფაილი განთავსდება /etc-ში.

$ ./configure --enable-sniffer --sysconfdir=/etc --prefix=/usr
კონფიგურაციის დასრულების შემდეგ გამოჩნდება პარამეტრების შეჯამება.

ngIRCd 0.xx კონფიგურირებულია შემდეგი პარამეტრებით:

სამიზნე: 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 sniffer: დიახ

გამოიყენეთ TCP Wrappers: არ არის მკაცრი RFC რეჟიმი: არა

Zeroconf მხარდაჭერა: არ არის IRC+ პროტოკოლი: დიახ

IDENT მხარდაჭერა: არ არის I/O backend: “epoll()”

შემდეგ კი სტანდარტული შედგენა.

$ sudo make install

Სულ ეს არის. შეკრების მთელი პროცესი ორ ან სამ წუთზე მეტს არ წაგართმევთ.

ngIRCd კონფიგურაციის ფაილი

გაშვებისას, დემონი კითხულობს ყველა პარამეტრს ერთი კონფიგურაციის ფაილიდან, ngircd.conf. თუ კონფიგურირებულია როგორც ზემოთ ნაჩვენები, ის ახლა მდებარეობს /etc დირექტორიაში. ფაილის სტრუქტურა ტრადიციულია Unix-ისთვის, სერვერების უმეტესობის პარამეტრები ასე გამოიყურება. ფაილი დაყოფილია რამდენიმე განყოფილებად, თითოეულს აქვს კონკრეტული პარამეტრები. უფრო მეტიც, თუ თქვენ გეგმავთ რამდენიმე ngIRCd ვირტუალურ სერვერზე მუშაობას, მათი პარამეტრები აღწერილია ერთ ფაილში. მოსახერხებელია, რომ ის კარგად არის კომენტირებული და საკვანძო სიტყვები გასაგებია მნიშვნელობით, ასე რომ თქვენ შეგიძლიათ გაიგოთ პარამეტრის მნიშვნელობა დოკუმენტაციის დათვალიერების გარეშე. მკვეთრი ნიშანი "#" და მძიმით ";" ნიშნავს კომენტარი. დოკუმენტაციაც განსაკუთრებული შექების ღირსია, ის დაწერილია მარტივად და გარკვევით, თუ საბაზისო ინგლისური იცით, ადვილი იქნება ნავიგაცია. პარამეტრების უმეტესობა შეიძლება დარჩეს ნაგულისხმევად, ანუ კომენტარის გაკეთება.

დავიწყოთ რედაქტირება.

$ sudo mkedit /etc/ngircd.conf

# სექცია აღწერს სერვერის ძირითად პარამეტრებს

# სერვერის სახელი IRC ქსელში.

სახელი = irc.grinder.net

# სერვერის ინფორმაცია, რომელიც გამოჩნდება WHOIS-ის გამოყენებისას და

ინფორმაცია = ჩემი პირველი IRC სერვერი

# სერვერთან შეერთების პაროლი, თუ არ არის მითითებული, მაშინ მომხმარებლები დაუკავშირდებიან პაროლის გარეშე

# ინფორმაცია სერვერისა და ადმინისტრატორის შესახებ

AdminInfo1 = ჩემი IRC

AdminInfo2 = მთავარი

AdminEMmail = [ელფოსტა დაცულია]

# ნაგულისხმევად სერვერი იყენებს პორტს 6667, შეგიძლიათ მიუთითოთ მძიმით გამოყოფილი სხვა მნიშვნელობები

პორტები = 6667, 6668, 6669

# ნაგულისხმევად, სერვერი ელოდება კავშირს ყველა ქსელის ინტერფეისზე, რაც ყოველთვის ასე არ არის

# საჭიროა. ამ პარამეტრის გამოყენებით შეგიძლიათ მიუთითოთ სასურველი ინტერფეისი

; მოსმენა = 1.2.3.4

MotdFile = /etc/ngircd.motd

# თუ არ იყენებთ motd ფაილს, შეგიძლიათ მიუთითოთ მოკლე (256 სიმბოლო) შეტყობინება აქ

;MotdPhrase = "გამარჯობა სამყარო!"

# ნაგულისხმევად, დემონი იმუშავებს როგორც მომხმარებლის არავინ

# სისტემაში ასეთი არავის ავადმყოფი რაოდენობის არსებობა ამ მომხმარებელს არანაკლებ ხდის

# მნიშვნელოვანი ვიდრე 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 ლოკალური მასპინძელი ngircd: IO ქვესისტემა: epoll (მინიშნება ზომა 100, საწყისი maxfd 100, masterfd 4).

25 თებერვალი 19:14:01 localhost ngircd: ახლა უსმენს 0.0.0.0:6667 (სოკეტი 5).

25 თებერვალი 19:14:50 ლოკალური მასპინძელი 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 ლოკალური მასპინძელი 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 სამუდამოდ!



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: