Irc-server redo för Windows LAN. Installera en IRC-server - ngIRCd

Irc-server redo för Windows LAN. Installera en IRC-server - ngIRCd

Ett av målen med att lära känna en del av Linux-användare är att studera driften och inställningarna för olika servrar och tjänster. På grund av öppenheten i detta operativ system att lära sig hur man administrerar ett system är mycket lättare än i Windows, där de flesta projekt är långt ifrån gratis, och det är inte lätt att hitta en distribution. I den här artikeln kommer vi att hjälpa läsarna genom att reda ut konfigurationen av en av IRC-servrarna. Varför IRC? Om du söker på tematiska resurser kommer du att finna att det finns för Linux och Unix Ett stort antal guider för att konfigurera internetservrar, oftast Apache, olika varianter av e-postsystem som skiljer sig åt i de komponenter som används och varianter på ämnet att bekämpa spam och virus. Att hitta en guide för resten är en storleksordning svårare. Detta gäller särskilt det gamla IRC, som troget har fullgjort sin plikt i flera decennier, trots många strider, IRC:s huvudresurser är perfekt på fötterna. Och trots invasionen av nyare tjänster som LiveJournal verkar det som om de inte kommer att ge upp. Det är nykomlingar hela tiden. Idag kommer du inte att överraska någon med nätverk som länkar samman hela områden, så varför inte prova att administrera IRC.

Hittills finns det flera dussintals, om inte hundratals lösningar som är utformade för att bygga en IRC-server. En del av dessa projekt kommer från den första IRCD-servern (http://www.nic.funet.fi/~irc/server/), respektive, och drar ofta med sig sitt arv. Det finns system utformade för ett stort antal användare som kräver en databas som stöder utbyte av information över det säkra SSL-protokollet. Du kan jämföra vissa funktioner hos populära lösningar på http://en.wikipedia.org/wiki/Comparison_of_IRCds. Vi kommer att vända oss till ett projekt som inte gör anspråk på att vara det första, bästa, och så vidare, det kan inte skryta med att ha ett stort antal ytterligare egenskaper. Stabilitet och säkerhet här nyckelord- ngIRCd (Nästa generation IRC Daemon).

?ngIRCd funktioner

Denna server skrevs helt från grunden av författaren Alexander Barton i C. Fokus för dess design låg på kodportabilitet och kodrenhet. Som ett resultat bygger ngIRCd enkelt på de flesta plattformar. Förutom Linux är dessa: AIX, A/UX, FreeBSD, HP-UX 9.10/10.20, HP-UX, IRIX, Mac OS X, NetBSD, OpenBSD, Solaris och Windows med Cygwin-bibliotek. Vid byggtid kräver ngIRCd inga dolda beroenden, och den kompilerar utmärkt. En begriplig konfigurationsfil ger bekvämlighet åt konfigurationen, det kan bli något mer komplicerat med ökad funktionalitet, men jag hoppas att grundprincipen förblir densamma. Dessutom är ngIRCd kompatibel med alla IRC-servrar som överensstämmer med RFC 1459, 2810-2813 specifikationerna, vilket innebär att de flesta kommandon och allt som förväntas från liknande tjänst vanlig användare. I stora nätverk är det förmodligen för tidigt att använda det ännu. Och författaren själv varnar ärligt för att ngIRCd ännu inte har testats på upptagna IRC-nätverk med hög belastning. Men i små nätverk och i träningssyfte kan det rekommenderas. Dessutom, som erfarenheten visar, är han inte särskilt rädd för en tung belastning. Förresten, ngIRCd-servern kan inte bara fungera med en statisk adress, utan beter sig normalt om adressen är dynamiskt tilldelad till systemet. Om bara användare visste var de skulle gå med. För att förbättra säkerheten kan servern enkelt arbeta för att gå in i chroot-miljön och om det uppstår problem kommer angriparen inte längre än den angivna katalogen. Projektets hemsida är http://ngircd.barton.de/.

Installera ngIRCd

Förvaret för KUbuntu 6.06 Daper Drake-distributionen, som användes under testinstallationen, har ngIRCd. Att installera det är enkelt.

$ sudo apt-get uppdatering

$ sudo apt-get installera ngircd

Sant, i skrivande stund var det inte längre den nuvarande versionen - 0.9.2, medan 0.10.1 var tillgänglig på projektets webbplats. För den som inte vill kompilera kan du ta ett färdigt paket för Ubuntu 7.04, där version 0.10 är byggt, eller ett alternativt paket för Debian ftp://arthur.barton.de/debian/pool/main/ n/ngircd/, som underhålls av Alexander. Att kompilera går utan problem, så det är lättare att bygga det själv.

$ 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

Och vi konfigurerar. Det är möjligt att köra skriptet utan parametrar, men jag slog på infångning av IRC-trafik, väldigt användbar möjlighet medan du studerar protokollet. Jag gillar inte heller när program är installerade i /usr/local och konfigurationsfiler är utspridda över hela trädet. Därför angav jag /usr som installationskatalog, och konfigurationsfilen kommer att finnas i /etc.

$ ./configure --enable-sniffer --sysconfdir=/etc --prefix=/usr
När konfigurationen är klar kommer en sammanfattning av inställningarna att ges.

ngIRCd 0.хх har konfigurerats med följande alternativ:

Mål: i686-pc-linux-gnu

Kompilatorflaggor: -pedant -g -O2 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -DSYSCONFDIR=""$(sysconfdir)"'

Bibliotek: -lz -lnsl

'ngircd' binär: /usr/sbin

Konfigurationsfil: /etc

Manualsidor: /usr/man

Dokumentation: /usr/share/doc/ngircd

Syslog-stöd: ja Aktivera felsökningskod: ja

zlib komprimering: ja IRC sniffer: ja

Använd TCP-omslag: nej Strikt RFC-läge: nej

Zeroconf-stöd: inget IRC+-protokoll: ja

IDENT-stöd: ingen I/O-backend: "epoll()"

Och sedan standardsammanställning.

$ sudo make install

Det är faktiskt allt. Hela monteringsprocessen tar dig inte mer än två eller tre minuter.

ngIRCd konfigurationsfil

Vid uppstart läser demonen alla inställningar från en singel konfigurationsfil ngircd.conf. Om den är konfigurerad enligt ovan finns den nu i katalogen /etc. Filstrukturen är traditionell för Unix, så här ser inställningarna ut på de flesta servrar. Filen är uppdelad i flera sektioner, var och en innehåller vissa inställningar. Dessutom, om det är planerat att arbeta flera virtuella servrar ngIRCd, deras inställningar beskrivs i en fil. Det är bekvämt att det är väl kommenterat och nyckelorden förstås i betydelse, så att du kan förstå innebörden av parametern utan att ens titta på dokumentationen. Skarpt tecken "#" och semikolon ";" elak kommentar. Dokumentationen är också värd en del beröm, den är skriven enkelt och tydligt, med kunskaper i grundläggande engelska blir det lätt att navigera. De flesta parametrarna kan lämnas som standard, det vill säga kommenteras bort.

Låt oss börja redigera.

$ sudo mkedit /etc/ngircd.conf

# Avsnittet beskriver grundläggande serverinställningar

# Servernamn på IRC-nätverket.

Namn=irc.grinder.net

# information om servern som kommer att visas när du använder WHOIS och

Info = Min första IRC-server

# Lösenord för att ansluta till servern, om det inte är inställt, kommer användare att ansluta utan lösenord

# server- och administratörsinformation

AdminInfo1 = Min IRC

AdminInfo2 = Hem

AdminEmail= [e-postskyddad]

# Som standard använder servern port 6667, du kan ange andra värden separerade med kommatecken

;Portar = 6667, 6668, 6669

# Som standard väntar servern på en anslutning på alla nätverksgränssnitt, vilket inte alltid är

# behöver. Med denna parameter kan du peka på önskat gränssnitt

;Lyssna=1.2.3.4

MotdFile = /etc/ngircd.motd

# Om ingen motd-fil används kan ett kort (256 tecken) meddelande anges här

;MotdPhrase = "Hej värld!"

# Som standard kommer demonen att köras som user nobody

# Närvaron av ett sjukt antal sådana ingen i systemet gör denna användare åtminstone

# meningsfullt än rot. Med dessa alternativ kan du ange användaren och gruppen

# på uppdrag av vilken demonen kommer att köras efter uppstart

# Det måste finnas i systemet och alla filer måste ägas av denna användare

ServerUID=ngircd

ServerGID=ngircd

# chroot katalogen dit demonen kommer att gå efter uppstart

;ChrootDir = /var/empty

# Filen med processnumret för demonen ngircd, om du inte planerar att chroot, kan du inte röra

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

# Efter denna tid kommer en PING att skickas till klienten för att ta reda på om han lever eller inte

PingTimeout = 120

# om klienten inte svarar på PING med ett PONG-meddelande kommer den att kopplas bort efter denna tid

pongtimeout = 20

# tidsperiod efter vilken ett försök kommer att göras att ansluta till andra servrar

;ConnectRetry = 60

# Aktivera användningen av MODE-kommandot för att ställa in kanalläget

;OperCanUseMode = nej

# maskera begäran som om den kommer från servern

;OperServerMode = nej

# använd endast förinställda kanaler

;PredefChannelsOnly = nej

# det maximala antalet anslutningar som servern accepterar

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

;MaxConnections=-1

# också från endast en IP-adress

;MaxConnectionsIP = 5

# det maximala antalet kanaler en användare kan vara i

# I det här avsnittet definieras IRC-operatörer, var och en har sin egen sektion

namn = operatör1

Lösenord = lösenord

# IRC-kanaler skapade automatiskt av servern.

# Varje kanal beskrivs i ett separat avsnitt

# Kanal namn

# Tema för kanalen

Nu återstår det att skapa en ngircd-användare och tilldela honom ägaren till /etc/ngircd.motd.

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

Lägger till användaren `ngircd'...

Lägger till ny grupp `ngircd' (1003).

Lägger till ny användare `ngircd' (1003) med gruppen `ngircd'.

Skapar inte hemkatalogen `/home/ngircd'.

Ändra användarinformationen för ngircd

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

Allt är klart. Vi lanserar.

Vi sätter upp en IRC-klient på en ny server och kommunicerar. Kontrollerad serverdrift med alla kodningar CP1251, KOI8R, KOI8U och UTF8. Vid användning av ngIRCd var det inga problem med att visa meddelanden på kyrilliska, huvudsaken är att klienterna är konfigurerade på samma sätt.

Du kan se meddelandeförloppet i /var/log/messages.

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

25 feb 19:14:01 localhost ngircd: Läser konfiguration från "/etc/ngircd.conf" …

25 feb 19:14:01 localhost ngircd: Ingen administrativ information konfigurerad men krävs av RFC!

25 feb 19:14:01 localhost ngircd: Körs som användare ngircd(1003), grupp ngircd(1003), med PID 10801.

25 feb 19:14:01 localhost ngircd: Körs inte chrooted.

25 feb 19:14:01 localhost ngircd: IO-undersystem: epoll (tipsstorlek 100, initial maxfd 100, masterfd 4).

25 feb 19:14:01 localhost ngircd: Lyssnar nu på 0.0.0.0:6667 (socket 5).

25 feb 19:14:50 localhost ngircd: Godkänd anslutning 6 från 192.168.1.58:59018 på uttag 5.

25 feb 19:14:50 localhost ngircd: Möjlig förfalskning: 192.168.1.58 löst till grinder (som är på ip 127.0.0.1!)

25 feb 19:14:50 localhost ngircd:User " [e-postskyddad]» registrerad (anslutning 6).

25 feb 19:15:24 localhost ngircd: Godkänd anslutning 7 från 192.168.1.58:59019 på uttag 5.

25 feb 19:15:24 localhost ngircd: Möjlig förfalskning: 192.168.1.58 löst till grinder (som är på ip 127.0.0.1!)

25 feb 19:15:30 localhost ngircd:User " [e-postskyddad]» registrerad (anslutning 7).
Så vi lärde oss hur man ställer in vår IRC-server. Även om ngIRCd inte har en del av de funktioner som finns i mer avancerade produkter, är detta bara början. Linux för alltid!

Det finns många IRC-servrar (Internet Relay Chat) i Ubuntu-förråden. Det här avsnittet kommer att täcka hur man installerar och ställer in den ursprungliga IRC-servern. ircd-irc2.

Installation

att installera ircd-irc2, kör följande kommando vid kommandotolken:

sudo apt-get installera ircd-irc2

Konfigurationsfiler lagras i katalogen /etc/ircd. Dokumentation kommer att finnas tillgänglig i katalogen /usr/share/doc/ircd-irc2.

Miljö

IRC-inställningar kan göras i konfigurationsfilen /etc/ircd/ircd.conf. Du kan ställa in nätverksnamnet på servern i den här filen genom att ändra följande rad:

M:irc.localhost::Debians ircd standardkonfiguration::000A

Se till att du lägger till DNS-poster för IRC-serverns nätverksnamn. Om du till exempel ställer in ditt IRC-nätverksnamn till irc.livecipher.com, se till att irc.livecipher.com går att lösa av din DNS-server. IRC-nätverkets namn behöver inte vara detsamma som det allmänna nätverksnamnet.

IRC-administratörsinformationen kan anpassas genom att redigera följande rad:

A:Organisation, IRC-avdelning: Daemon :ClientServer::IRCnet:

Du kan lägga till separata rader för att ställa in listan över IRC-portar att lyssna på, ställa in information om operatören, ställa in klientauktorisering, etc. Se exemplet på konfigurationsfilen /usr/share/doc/ircd-irc2/ircd.conf.example.gz för detaljer.

IRC-huvudet som kommer att visas på en IRC-klient när du ansluter till en server kan ställas in i filen /etc/ircd/ircd.motd.

Efter att ha gjort de nödvändiga ändringarna i konfigurationsfilen måste du starta om IRC-servern med följande kommando:

sudo /etc/init.d/ircd-irc2 starta om