]>
Commit | Line | Data |
---|---|---|
3bd189cb JR |
1 | Author: Jeff Trim |
2 | jtrim@orion.cair.du.edu | |
3 | Date: Mar 23, 1989 | |
4 | Last Modified: May 15, 1989 | |
5 | ||
6 | ||
7 | Installing IRC - The Internet Relay Chat Program | |
8 | ||
9 | ||
10 | System Requirements: | |
11 | TCP/IP Sockets | |
12 | BSD Unix [4.3]/[4.2], SUN Unix, HP Unix, Dec Ultrix, Most Socket Compat. Unix | |
13 | Knowledge of UNIX/C Programming, helps ;-) | |
14 | ||
15 | ....if you don't have sockets (and a good way to know is if the UNIX TELNET(1) | |
16 | and FTP(1) programs don't work at all) then you can't run IRC! ;-( DRAT! | |
17 | Wouldn't it be great if all UNIX destributions had SOCKETS? | |
18 | ||
19 | ||
20 | -=> To Install IRC <=- | |
21 | ||
22 | This manual attempts to give you the ENTIRE installation procedure for IRC, | |
23 | and I have made it so that you can skip over the parts you don't want to read | |
24 | by looking at the NUMBERS located on the right side of the screen. Here are | |
25 | the CHAPTERS contained in this DOCUMENT: | |
26 | ||
27 | 1) FTP - Getting the program files from "tolsun.oulu.fi" in Finland | |
28 | 2) EDITING THE "struct.h" FILE - and what the various #define's do | |
29 | 3) EDITING THE "Makefile" | |
30 | 4) HOW TO COMPILE AND INITIALIZE THE SOURCE FILES | |
31 | 5) OVERVIEW - of the "irc.conf" file: an introduction to networking | |
32 | 6) A TOUR OF THE /etc/hosts DATABASE - Brief description what it does | |
33 | 7) SERVER CONNECTIONS - How to set up the "irc.conf" file for SERVERS | |
34 | 8) DEFINING YOUR LOCAL HOST INFORMATION - and placing it in "irc.conf" | |
35 | 9) CLIENT CONNECTIONS - How to allow Clients to connect to Servers | |
36 | 10) OPERATOR PRIVILEDGES - How to make yourself an IRC Adminestrator | |
37 | 11) ADMINESTRATOR COMMAND - Telling other IRC users about your site... | |
38 | 12) REMOVING USERS COMPLETELY FROM IRC - How to remove errent users | |
39 | 13) AN EXAMPLE "irc.conf" FILE - Shows you what one REALLY looks like! | |
40 | 14) UPDATES TO THE PROGRAM: - That effect the "irc.conf" file | |
41 | ||
42 | Appendix: | |
43 | ||
44 | A) ADDING SUBNETS: - Adding Multiple Unix Sites (V2.01.5+) | |
45 | ||
46 | If you want to just view over a curtain chapter, take this file into VI and | |
47 | use the VI SEARCH command to search for the NUMBER of your choice, like | |
48 | "1)", "2)" and so forth - those numbers are unique to this table of contents | |
49 | and the CHAPTER headings themselves. | |
50 | ||
51 | Because we have provided you with this nice manual, DON'T BOTHER ME OR | |
52 | ANYONE ELSE UNTIL YOU HAVE PERSONALLY WORKED ATLEAST 40 HOURS ON THE | |
53 | PROGRAM YOURSELF. That way when you do ask questions they'll be | |
54 | intelligent questions ;-) | |
55 | ||
56 | ----------===========>>>>>>>> Begin Manual <<<<<<<==========------------- | |
57 | ||
58 | ||
59 | 1) FTP: Getting the program files and Unarchiveing them: | |
60 | ||
61 | First grab a copy of the program files from the anonymous FTP area of | |
62 | "tolsun.oulu.fi". The files are usually COMPRESS(ed) and TAR(ed) into | |
63 | an ARCHIVE format so you will need to unarchive them. To do this, first | |
64 | transfer the archive file on to your UNIX and make a SUBDRIECTORY to | |
65 | hold the files in -- usually "mkdir IRC". Then place the IRC ARCHIVE into | |
66 | this new sub-directory. | |
67 | ||
68 | To uncompress the ARCHIVE type: "uncompress <archive_file>" | |
69 | For example: "uncompress irc.v2.01.6.tar.Z" | |
70 | ||
71 | To UNARCHIVE the program files type: "tar -xf <archive_file>" | |
72 | For example: "tar -xf irc.v2.01.6.tar" | |
73 | ||
74 | ||
75 | 2) EDIT: The "struct.h" file and make changes to the various #DEFINE's: | |
76 | ||
77 | a) Define what type of UNIX OPERATING SYSTEM your machine uses. IRC currently | |
78 | supports, BSD42, BSD43, APOLLO, SYSV. To select the one you want, | |
79 | replace the "0" with a "1" next to the choice you want. All the other | |
80 | UNIX OPERATING SYSTEM DEFINES should be set to "0". | |
81 | ||
82 | b) Define DOMAINNAME, if your systems supports the "getdomainname()" system | |
83 | call. You can check this by typing "domainname" at the UNIX prompt and | |
84 | seeing if anything appears. IRC will attempt to add your UNIX Internet | |
85 | System Domain to your hostname if it is not currently present on your | |
86 | "hostname()". You should define this if you do support getdomainame(). | |
87 | ||
88 | c) Define NOTTY if you want the IRCD to run as a DAEMON. As a Daemon it | |
89 | will sit in Unix Background and run independant of any Terminal or TTY. | |
90 | If you want to run IRCD in FOREGROUND and attached to a TTY, undefine | |
91 | this option. NORMALLY you will want to DEFINE this option and run IRCD | |
92 | in Unix Background. | |
93 | ||
94 | d) Define MYNAME to be the Unix Directory path (pwd) to the "ircd" | |
95 | ||
96 | e) Define CONFIGFILE to the Unix Directory path to the "irc.conf" | |
97 | password file. The Format of this file will be discussed later. | |
98 | ||
99 | f) Define PORTNUM alters the Internet Socket Port for IRC. IRC will use | |
100 | this port to accept connections from other IRCD Servers and IRC Clients. | |
101 | The current ports being used for IRC are Internet Ports "6667" and "6666" | |
102 | although these are not OFFICIALLY reserved for IRC, they are the ports | |
103 | we have unofficially claimed for the program. I recommend you set your | |
104 | program to use port "6667". | |
105 | ||
106 | g) Define LOGFILE should be set to "/dev/null" unless you plan to DEBUG | |
107 | the program. You should be aware that the logfile grows very quickly | |
108 | so unless you really need a LOGFILE it should be set to "/dev/null". | |
109 | ||
110 | h) Define TIMESEC to be the amount of IDLE time you will allow your server | |
111 | to WAIT before attempting to request status of your neighboring servers. | |
112 | After TIMESEC seconds have passed and no activity has occured on IRC, | |
113 | IRC will enter a routine where it will send a PING message to all of | |
114 | the servers connected to your IRCD. It will send one PING to every | |
115 | server and will expect the other servers to send a PONG message back | |
116 | saying that they are "okay and functioning". The program has a built | |
117 | in time stamp that tells IRC the last time that something was received | |
118 | from a curtain server. PINGFREQUENCY refers to the amount of time | |
119 | you will allow server connections to be IDLE. After this IDLE time | |
120 | has expired (IE the server has been IDLE for PINGFREQUENCY seconds) | |
121 | the program will PING that particular server and will expect a PONG | |
122 | message response from that server. If no reply to a PING message is | |
123 | received in 2 * PINGFREQUENCY seconds the connection will be closed, | |
124 | and reconnection attempts can be made by your IRCD or the remote IRCD | |
125 | depending upon which server connects to whom. | |
126 | ||
127 | i) Define PINGFREQUENCY - (see "h" above) | |
128 | ||
129 | j) Define CONNECTFREQUENCY - will define the number of SECONDS for your | |
130 | server to wait before it attempts reconnection at it's neighboring | |
131 | IRC hosts. The default value is 20 minutes (1200 seconds) and that | |
132 | is generally pretty good for RECONNECTION time. You should probably | |
133 | not change this Define. | |
134 | ||
135 | k) Define MAXUSERSPERCHANNEL - Defines the maximum allowed users per | |
136 | channel in IRC. This effects the number of users that can all talk | |
137 | at once in a given channel and it should be left at 10 unless you | |
138 | have at first consulted with an authorized IRC Adminestrator about | |
139 | it. DO NOT CHANGE THIS DEFINE UNLESS YOU HAVE PERMISSION TO DO SO. | |
140 | It should be defined to "10" users. | |
141 | ||
142 | l) Define WRITEDELAY effects the UNIX Socket command WRITE() which is used | |
143 | to write socket information to the IRCD socket.. and beyond! Sometimes | |
144 | a socket can become very crowded (if say 10-20 people were using IRC) | |
145 | and it will lock up the users keyboard until it can get a return value | |
146 | from the socket, which tells IRC some information about the WRITE() call. | |
147 | To BREAK this lockup, you need to specify the number of seconds you'll | |
148 | allow the SOCKET to stay locked up before you'll BREAK the lock - this | |
149 | typically is 15 seconds and that is a pretty good number for it. I | |
150 | recommend you leave it DEFAULT value. | |
151 | ||
152 | --> Shouldn't have to change anything else! < -- | |
153 | ||
154 | 3) EDIT Makefile: | |
155 | ||
156 | Take the file "Makefile" into a text editor and DEFINE (IE remove the "#") | |
157 | from the Machine type that is yours. Currently the Makefile supports | |
158 | Berkeley Unix 4.2/4.3, System V and Hewlett Packard Unix. The following | |
159 | example shows the Makefile defined for Berkeley Unix: | |
160 | ||
161 | # | |
162 | # SYS = sysv | |
163 | # SYS = hpux | |
164 | SYS = bsd | |
165 | ||
166 | .. all the other machine types should be UNCOMMENTED (IE should have "#" | |
167 | in front of them). | |
168 | ||
169 | 4) HOW TO COMPILE AND INITIALIZE THE SORUCE FILES: | |
170 | ||
171 | To compile everything type "make". Make will compile all of the program | |
172 | files and produce two files for you: "irc" and "ircd". You will need to | |
173 | make sure that the "ircd" has the SETUID bit set on so that OTHER users | |
174 | besides you can boot server if it goes down and you aren't around to boot | |
175 | it yourself. This will allow them to BOOT the server but it will run under | |
176 | *YOUR* UID so that you can kill it later if you need to. To turn on the | |
177 | SETUID bit for IRCD type: | |
178 | ||
179 | % chmod 4111 ircd | |
180 | ||
181 | then your directory files should look something like this: | |
182 | ||
183 | -rwx--x--x 1 wiz 142336 Mar 16 14:17 irc | |
184 | -rwx------ 1 wiz 707 Mar 16 02:42 irc.conf | |
185 | -rws--x--x 1 wiz 110592 Mar 16 14:20 ircd | |
186 | ^ | |
187 | | | |
188 | the SETUID also allows the "IRCD" to read the "irc.conf" file, because it | |
189 | would be accessed as USER instead of GROUP or OTHER. You want to keep the | |
190 | "irc.conf" file PROTECTED because there are PASSWORD in it. Keep your | |
191 | protection up on this file. | |
192 | ||
193 | +-----------------------------------------------------------------------+ | |
194 | | E N A B L I N G / S U M M O N M E S S A G E S | | |
195 | +-----------------------------------------------------------------------+ | |
196 | ||
197 | *NOTE* You must have ROOT or special access to the GROUP tty ('/dev') | |
198 | to do this. It is IMPORTANT that you do enable this option if at all | |
199 | possible!!! The /SUMMON command is pretty important to your users | |
200 | as it allows them to be SUMMONED to IRC by other users inside of the | |
201 | IRC program. | |
202 | ||
203 | The "IRCD" program also needs access to the GROUP of '/dev'. This | |
204 | directory is where user TTY's are stored (as UNIX treats each Terminal | |
205 | as a FILE! (which is a bit uncommon - but interesting!)) IRCD needs | |
206 | GROUP ACCESS to /dev so that users can be SUMMONED to the program | |
207 | by others users that are *in* the program. This allows people from | |
208 | other Universities around the world to SUMMON your users to IRC so that | |
209 | they can chat with them. Berkeley, SUN, HP-UX and most of the newer | |
210 | versions of UNIX check to see if a USER is accepting MESSAGES via the | |
211 | GROUP access rights on their TTY listing in the /dev directory. | |
212 | For example an entry in '/dev' looks like this: | |
213 | ||
214 | (Unix Path on BSD 4.3 UNIX is: /dev/ttyp0) | |
215 | ||
216 | crw------- 1 jtrim 20, 0 Apr 29 10:35 ttyp0 | |
217 | ||
218 | You will note that 'jtrim' OWNS this terminal and can READ/WRITE to this | |
219 | terminal as well (which makes sense because I am ENTERING DATA and | |
220 | RECEIVEING DATA back from the UNIX). I logged into this particular | |
221 | UNIX on "April 29th" at "10:35am" and my TTY is "ttyp0". But further | |
222 | of *note* is that I do not have my MESSAGES ON! (mesg n) -- This is | |
223 | how my terminal would look with MESSAGES ON (mesg y): | |
224 | ||
225 | crw--w---- 1 jtrim 20, 0 Apr 29 10:35 ttyp0 | |
226 | ||
227 | With my MESSAGES ON (mesg y) I can receive TALK(1) requests, use the | |
228 | UNIX WRITE(1) command and other commands that allow users to talk | |
229 | to one another. In IRC this would also allow me to get IRC /SUMMON | |
230 | messages. To set up the "IRCD" program to work with /SUMMON type | |
231 | the following: (using ROOT or an account that has access to '/dev'). | |
232 | ||
233 | % chgrp tty ircd | |
234 | % chmod 6111 ircd | |
235 | ||
236 | The above commands read: "Give IRCD access to GROUP tty (which is /dev) | |
237 | and then when ANYONE runs the IRCD allow SETUID and SETGID priviledges | |
238 | so that they can use the /SUMMON command. | |
239 | ||
240 | +--------------------------------------------------------------------------+ | |
241 | + M A K I N G T H E I R C . C O N F F I L E + | |
242 | +--------------------------------------------------------------------------+ | |
243 | ||
244 | When you first look at this file it can be a bit confusing, so you should pay | |
245 | close attention to the following. I get a lot of messages from people telling | |
246 | me how confusing this is so PLEASE - really read this: | |
247 | ||
248 | 5) OVERVIEW: (difference bewtween NAME and NUMERIC Addresses) | |
249 | ||
250 | There are 2 different types of INETERNET addresses, NAME addresses and | |
251 | NUMERIC addresses. NAME addresses look like ENGLISH words (and indeed | |
252 | they are ENGLISH words that refer to a given host). A NAME address looks | |
253 | like "tolsun.oulu.fi" - and that particular address refers to the UNIX | |
254 | named TOLSUN in Finland. It is a UNIQUE address because no other UNIX in | |
255 | the world has its NAME address the same as "tolsun.oulu.edu". Anytime | |
256 | you say "telnet tolsun.oulu.fi" - you would always connect to TOLSUN in | |
257 | Finland. NUMERIC addresses refer to those addresses that are made up of | |
258 | NUMBERS for example "128.214.5.6" is the NUMERIC address for TOLSUN. This | |
259 | address is also UNIQUE in that no other UNIX in the would should be using | |
260 | those NUMERIC numbers. The NUMERIC address is sometimes more reliable than | |
261 | the NAME address because not all sites can recognize and translate the | |
262 | NAME address into it's numeric counterpart. NUMERIC always seems to work | |
263 | best, but use a NAME address when you can because it is easier to tell | |
264 | what host you are connected to. | |
265 | ||
266 | 6) The /ect/hosts Database: The 0.25 Cent Tour ;-) | |
267 | ||
268 | Every UNIX has a file called "/etc/hosts" on it and this file contains | |
269 | NAME and NUMERIC addresses in it. When you supply IRC with a NAME address | |
270 | it will at first try to look it up in /ect/hosts, and then (if it's | |
271 | really smart), use the Local Network File Server (NFS) to find the NUMERIC | |
272 | address for the host you want to connect to. Thus if you plan to use NAME | |
273 | addresses keep in mind that on SOME sites the entry for the TARGET UNIX must | |
274 | be found in /etc/hosts or the NAME address will fail. A typical entry in | |
275 | /etc/hosts looks like this: | |
276 | ||
277 | 130.253.1.15 orion.cair.du.edu orion.du.edu orion # BSD 4.3 | |
278 | ||
279 | This particular example is the Host ORION at the University of Denver. | |
280 | Notice that on the far left is the NUMERIC Address for orion. The | |
281 | next few ENGLISH words are the NAME addresses that can be used for orion, | |
282 | "orion.cair.du.edu", "orion.du.edu", "orion". ALL of these NAME addresses | |
283 | will return the NUMERIC address "130.253.1.15" which IRC will use to | |
284 | connect to the TARGET UNIX. (when I say TARGET UNIX I am refering to the | |
285 | UNIX you want to connect to for IRC). Any futher questions about /etc/hosts | |
286 | should be directed to "man hosts". | |
287 | ||
288 | ||
289 | 7) SERVER CONNECTIONS: How to connect to other servers/ How other servers can | |
290 | connect to you: | |
291 | ||
292 | EDIT the file you speicifed in "struct.h" under the #DEFINE CONFIGFILE: | |
293 | Create this file using the same UNIX path and Filename you specified in | |
294 | that #DEFINE. (typically this file should be called "irc.conf"). | |
295 | ||
296 | Now you must decide WHICH hosts you want to connect to and WHAT ORDER you | |
297 | want to connect to them in. For my example let us assume I am on the | |
298 | UNIX "tolsun.oulu.fi" and I want to establish SOCKET connections to 3 | |
299 | other IRCD running hosts (yeah - they must be running an IRCD there ;-) | |
300 | ||
301 | My other three hosts I want to connect to are: | |
302 | ||
303 | "naakka.tut.fi" - PRIMARY Connection | |
304 | "orion.cair.du.edu" - Secondary Connection | |
305 | "hal.oce.orst.edu" - Third Connection | |
306 | ||
307 | And I want to connect to them in THAT order, meaning I first want to | |
308 | try connecting to "naakka.tut.fi", then to "orion.cair.du.edu", and | |
309 | finally to "hal.oce.orst.edu". So if "naakka.tut.fi" is DOWN (not | |
310 | functioning or whatever) - the program will try to connect to "orion". | |
311 | If orion is DOWN it will try to connect to "hal" and so forth. | |
312 | PLEASE limit the number of hosts you will attempt to connect to 3 | |
313 | hosts - we are trying to limit the amount of Network Traffic IRC creates. | |
314 | ||
315 | The format for the CONNECT entry in the "irc.conf" is: | |
316 | ||
317 | C:<TARGET Host Addr>:<Password>:<TARGET Host NAME>:<TARGET Host PORT> | |
318 | Field: 1 2 3 4 5 | |
319 | ||
320 | for example: | |
321 | ||
322 | C:orion.cair.du.edu:passwd:orion.cair.du.edu:6667 | |
323 | ||
324 | - or - | |
325 | ||
326 | C:130.253.1.15:passwd:orion.cair.du.edu:6667 | |
327 | ||
328 | Explaination: | |
329 | ||
330 | Each field is separted with a ":" charcter: | |
331 | ||
332 | Field 1: Field 1 tells the IRC program why type of COMMAND we want to | |
333 | carry out. In this case I have specified "C", stating I want | |
334 | to CONNECT to another host. | |
335 | ||
336 | Field 2: Tells the IRC program what HOST we want to connect to and the | |
337 | NAME or NUMERIC address to connect to it. You can use either | |
338 | the NAME or NUMERIC address, but don't use both of them. Use | |
339 | the address that works the best. If the host is listed in | |
340 | /etc/hosts or your program can use the NFS server use the NAME | |
341 | Address, otherwise use the NUMERIC address. | |
342 | ||
343 | Field 3: Is the password needed to CONNECT to the TARGET host. Some hosts | |
344 | require Password protected validation when you connect to them, | |
345 | and it is in this field that you specify any passwords you might | |
346 | need. If there is NO password needed, leave this field BLANK | |
347 | with no SPACES. | |
348 | ||
349 | Field 4: The HOSTNAME of the TARGET Host goes here, including DOMAINNAME | |
350 | if any. This is the name that the TARGET server will identify | |
351 | itself with when you connect to it. If you were connecting to | |
352 | orion you would recieve "orion.cair.du.edu" - and that is what | |
353 | you should place in this field. | |
354 | ||
355 | Field 5: The INTERNET Port that you want to connect to on the TARGET Unix. | |
356 | Most of the time this will be set to "6667". If there is NO | |
357 | information in this field (IT'S BLANK) then no connections will | |
358 | be attempted to the TARGET HOST, and your host will ACCEPT | |
359 | connections FROM the TARGET Host instead. | |
360 | ||
361 | Some examples: | |
362 | ||
363 | C:naakka.tut.fi::naakka.tut.fi:6667 | |
364 | ||
365 | This reads: Connect to host "naakka.tut.fi", with NO PASSWORD, | |
366 | and expect this server to identify itself to you as "naakka.tu.fi". | |
367 | *YOU* will connect to this host at PORT 6667. | |
368 | ||
369 | C:130.253.1.15:Jeff:orion.cair.du.edu:6667 | |
370 | ||
371 | This reads: Connect to a host at adress "130.253.1.15", using a | |
372 | login password of "Jeff". The TARGET server should Identify | |
373 | itself as "orion.cair.du.edu". *YOU* will connect at Internet | |
374 | Port 6667 on this host. | |
375 | ||
376 | C:orion.cair.du.edu::orion.cair.du.edu | |
377 | ||
378 | This reads: *DO NOT CONNECT* to "orion.cair.du.edu", but if | |
379 | "orion.cair.du.edu" happens to request a CONNECTION with me, | |
380 | allow it, and let "orion.cair.du.edu" connect TO ME. | |
381 | ||
382 | Now back to our original problem, we wanted OUR server CONNECT to 3 | |
383 | hosts, "naakka.tut.fi", "orion.cair.du.edu" and "hal.oce.orst.edu" in | |
384 | that order. So as we enter these entries into the file they must be | |
385 | done in REVERSE order of how we could want to connect to them. | |
386 | Here's how it would look if we connected "naakka.tut.fi" first: | |
387 | ||
388 | C:hal.oce.orst.edu::hal.oce.orst.edu:6667 | |
389 | C:orion.cair.du.edu::orion.cair.du.edu:6667 | |
390 | C:naakka.tut.fi::naakka.tut.fi:6667 | |
391 | ||
392 | IRCD would first connect to "naakka..", then to "orion..." and finally | |
393 | to "hal...". | |
394 | ||
395 | *** RECIPROCAL ENTRIES - MUST HAVE FOR IRC TO WORK *** | |
396 | ||
397 | FOR THESE SERVERS TO CONNECT TO YOU, you must also have a CORRESPONDING | |
398 | "N" entry in your file that takes the SAME FORMAT as the "C" entry | |
399 | did (above). | |
400 | ||
401 | Even though you have a "C" entry you also need the "N" entry or the IRC | |
402 | Program will fail. the "N" entry allows you to SPECIFY any passwords | |
403 | that you will REQUIRE from any CONNECING servers to give you so that they | |
404 | can be authorized to connect to your IRCD. (If your lost, stay with me it | |
405 | will be clearer in a moment). | |
406 | ||
407 | Let us assume that "orion.cair.du.edu" connects to *YOUR* server: | |
408 | Well you want to place PASSWORD authorization on ORION so you | |
409 | make your "N" entry for Orion to be: | |
410 | ||
411 | N:orion.cair.du.edu:golden:orion.cair.du.edu | |
412 | ||
413 | What this line says is: Expect a Connection from host "orion.cair.du.edu", | |
414 | and expect a login password of "golden" (or any other password *YOU* want) | |
415 | and expect the host to Identify itself as "orion.cair.du.edu". | |
416 | ||
417 | N:130.253.1.15::orion.cair.du.edu | |
418 | ||
419 | What this line says is: Expect a Connection from host "130.253.1.15", and | |
420 | DON'T EXPECT a login password. The TARGET Host should identify itself | |
421 | as "orion.cair.du.edu". | |
422 | ||
423 | ** NOTE ** Do not add a PORT NUMBER to any "N" entry fields, it is not | |
424 | needed because the OTHER HOSTS are CONNECTING TO YOU, you aren't connecting | |
425 | to them. | |
426 | ||
427 | So now, our "irc.conf" file looks like this: | |
428 | ||
429 | ||
430 | C:hal.oce.orst.edu::hal.oce.orst.edu:6667 | |
431 | C:orion.cair.du.edu::orion.cair.du.edu:6667 | |
432 | C:naakka.tut.fi::naakka.tut.fi:6667 | |
433 | ||
434 | N:hal.oce.orst.edu::hal.oce.orst.edu | |
435 | N:orion.cair.du.edu::orion.cair.du.edu | |
436 | N:naakka.tut.fi::naakka.tut.fi | |
437 | ||
438 | ||
439 | a good rule of thumb is - "For every "C" entry you have in the file, you | |
440 | MUST have a cooresponding "N" entry". | |
441 | ||
442 | ||
443 | 8) DEFINING YOUR LOCAL HOST INFORMATION - How to tell IRC about your local | |
444 | UNIX Host. | |
445 | ||
446 | IRC needs to know a few things about your UNIX site, and the "M" command | |
447 | specifies this information for IRC. The fomat of this command is: | |
448 | ||
449 | M:<YOUR Host NAME>:xxx:<Geographic Location>:<Internet Port> | |
450 | Field: 1 2 3 4 5 | |
451 | ||
452 | Explaination: | |
453 | ||
454 | Field 1: Tells IRC that you are providing local UNIX HOST infomation | |
455 | Command "M". | |
456 | ||
457 | Field 2: The name of YOUR host adding any Internet DOMAINNAME that | |
458 | might also be present. | |
459 | ||
460 | Field 3: -- NOT USED --: Set to Value NULL (No spaces at ALL!). | |
461 | ||
462 | Field 4: Geographic Location is used to say WHERE YOUR SEVRER is, | |
463 | and gives people in other parts of the world a good | |
464 | idea of where you are! If your server is in the USA, it is | |
465 | usually best to say: <CITY> <STATE>, USA. Like for Denver | |
466 | I say: "Denver Colorado, USA". Finnish sites (like | |
467 | tolsun.oulu.fi generally say something like "Oulu, Finland". | |
468 | ||
469 | Field 5: This specifed which Internet Port you wish to use for your | |
470 | IRC Server. Use the same port as you defined in "struct.h". | |
471 | ||
472 | Example: | |
473 | M:tolsun.oulu.fi::Oulu, Finland:6667 | |
474 | ||
475 | This line reads: My Host's name is "tolsun.oulu.fi" and | |
476 | my site is Geographically located in "Oulu, Finland". | |
477 | I have defied Internet Port Number "6667" to be used as | |
478 | my IRCD Socket Port. | |
479 | ||
480 | ||
481 | M:orion.cair.du.edu::Denver Colorado, USA:6667 | |
482 | ||
483 | This line reads: My Hosts name is "orion.cair.du.edu" | |
484 | and my site is geographically located in "Denver | |
485 | Colorado, USA". I have defined Internet Port | |
486 | number "6667" to be used as my IRCD Socket Port. | |
487 | ||
488 | ||
489 | 9) CLIENT CONNECTIONS - How to let Clients Connect to your IRCD. | |
490 | ||
491 | A Client is a program that connects to the "ircd". When you compile | |
492 | all of the program files, two different files are created "irc" and | |
493 | "ircd". The "irc" program is the CLIENT and the "ircd" is the SERVER | |
494 | [Deamon]. Whenever ANYONE wants to talk to other users on IRC they | |
495 | must run the CLIENT program (irc). | |
496 | ||
497 | To allow you and your users to connect and run a session of Internet Relay | |
498 | Chat you must make some entries to the "irc.conf" file. | |
499 | ||
500 | A) LOCAL CLIENTS: (Defined the DEFAULT Host to connect to when IRC is run) | |
501 | ||
502 | This defines the DEFAULT connection for the "irc" CLIENT. If you are | |
503 | running an "ircd" SERVER on this SAME UNIX, you will want to define | |
504 | this command to connect to *YOUR OWN* host. If your site is not running | |
505 | a server then this command should contain the TARGET Hosts connection | |
506 | information and login password (if any). The format for this command is: | |
507 | ||
508 | U:<TARGET Host addr>:<Password>:<TARGET Host NAME>:<Internet Port> | |
509 | Field: 1 2 3 4 5 | |
510 | ||
511 | [ For a DETAILED description of the FIELD NUMBERS - see item "7)" above ] | |
512 | ||
513 | For example: | |
514 | ||
515 | U:tolsun.oulu.fi::tolsun.oulu.fi:6667 | |
516 | ||
517 | - OR - | |
518 | ||
519 | U:128.214.5.6::tolsun.oulu.fi:6667 | |
520 | ||
521 | You can also optionally leave off the Internet PORT Number | |
522 | and IRC will attempt a DEFAULT connection to Internet Port 6667 as in: | |
523 | ||
524 | U:tolsun.oulu.fi::tolsun.oulu.fi | |
525 | ||
526 | B) REMOTE CLIENTS: | |
527 | ||
528 | This command tells the "ircd" SERVER what clients are allowed to connect | |
529 | to *YOUR SERVER*. Obviously you want to let your *OWN* clients connect, | |
530 | and also any other CLIENTS that want to connect as well. REMOTE CLIENTS | |
531 | are those clients which are run by users on other UNIXES (anywhere in | |
532 | the world) and connect your server so that they can talk to other users. | |
533 | The CLIENTS would be using your server as a CONNECTION point, therefore | |
534 | the SERVER will be SERVE-ING the CLIENT, even though the REMOTE client | |
535 | was not part of your LOCAL UNIX Network. All IRC Messages that were | |
536 | sent to this REMOTE CLIENT would be sent to your server and then passed | |
537 | on to where-ever the REMOTE CLIENT was connecting from by *your* "ircd". | |
538 | ||
539 | ----------------------------------------------------------------------- | |
540 | ||
541 | The way a REMOTE CLIENT can connect to your "ircd" server is to type: | |
542 | (At the UNIX "%" prompt:) | |
543 | ||
544 | % irc <nickname> <TARGET Host Addr> <Internet Port> | |
545 | ||
546 | - For Example - | |
547 | ||
548 | % irc Jeff tolsun.oulu.fi 6667 | |
549 | ||
550 | ... would connect a USER on a REMOTE UNIX to the IRCD Server at | |
551 | "tolsun.oulu.edu" - using a NICKNAME of "Jeff" and connecting | |
552 | to TOLSUN's Internet Port 6667. | |
553 | ||
554 | ------------------------------------------------------------------------ | |
555 | ||
556 | Format of this command in the "irc.conf" file is: | |
557 | ||
558 | I:<TARGET Host Addr>:<Password>:<TARGET Hosts NAME>:<Internet Port> | |
559 | Field: 1 2 3 4 5 | |
560 | ||
561 | [For a detailed description of these fields see item "7)" above] | |
562 | ||
563 | For examples sake let us assume you were making this file for TOLSUN | |
564 | and you wanted to let your *OWN* clients to connect to your server, | |
565 | you would add this entry to the file: | |
566 | ||
567 | I:tolsun.oulu.fi::tolsun.oulu.fi | |
568 | ||
569 | If you wanted to let REMOTE CLIENTS from other UNIX's to connect to your | |
570 | server (for examples sake let's say you wanted let REMOTE UNIX Sites: | |
571 | "naakka.tut.fi", "orion.cair.du.edu" and "hal.oce.orst.edu" connect their | |
572 | CLIENTS to your site) You *could* add them to "irc.conf" like this: | |
573 | ||
574 | I:orion.cair.du.edu::orion.cair.du.edu | |
575 | I:128.193.64.132::hal.oce.orst.edu | |
576 | I:naakka.tut.fi:password:naakka.tu.fi | |
577 | ||
578 | and any REMOTE CLIENTS that want to connect to you can. The ORDER in | |
579 | which these is entered into the file is NOT IMPORTANT, enter them in | |
580 | any way you want, it won't effect the PRIORITY of IRC in any way. | |
581 | ||
582 | ||
583 | ||
584 | 10) OPERATOR PRIVILEDGES: How to become the IRC Adminestor on your site | |
585 | ||
586 | To become an IRC Adminestrator, IRC must know who is authorized to become | |
587 | an operator and what their "Nickname" and "Password" is. To add this | |
588 | information, EDIT your "irc.conf" file and add the following command | |
589 | line to it: | |
590 | ||
591 | O:<TARGET Host NAME>:<password>:<nickname> | |
592 | Field: 1 2 3 4 | |
593 | ||
594 | Explaination: | |
595 | ||
596 | Field 1: Is the command to tell IRC that this is an OPERATOR command | |
597 | entry. This is the "O" command. | |
598 | ||
599 | Field 2: Tells IRC which host you have the PRIVILEDGES FROM. This | |
600 | means that you should be logged into this host when you | |
601 | ask for the priviledges. If you specify "tolsun.oulu.fi" | |
602 | then IRC will expect your CLIENT to be connected at | |
603 | "tolsun.oulu.fi" - when you ask for OPERATOR PRIVILEDGES | |
604 | from "tolsun.oulu.fi". You cannot be logged in at any | |
605 | other host and be able to use your OPERATOR PRIVILEDGES | |
606 | at tolsun, only when you are connected at TOLSUN will this | |
607 | work - this is a safe guard against unauthorized sites | |
608 | trying to STEAL your operator priviledges. | |
609 | ||
610 | Field 3: If your AUTHORIZATION Password - this is the password that | |
611 | let's IRC know you are who you say you are! Never tell anyone | |
612 | your password and always keep the "irc.conf" file protected | |
613 | from all of the other users. | |
614 | ||
615 | Field 4: The Nickname you usually go by - but you can make this what | |
616 | you want. It is better to make this a NICKNAME that no one | |
617 | else knows, but anything will do. I usually use my own | |
618 | loginname (or Unix) | |
619 | ||
620 | Example: | |
621 | O:orion.cair.du.edu:pyunxc:Jeff | |
622 | ||
623 | There is an OPERATOR at "orion.cair.du.edu" that can get | |
624 | Operator priviledges if he specifies a password of "pyunxc" | |
625 | and uses a NICKNAME of "Jeff". | |
626 | ||
627 | +-----------------------------------------------------------------------+ | |
628 | + E N A B L I N G O P E R A T O R P R I V I L E D G E S + | |
629 | +-----------------------------------------------------------------------+ | |
630 | ||
631 | If you ever want (or need) to use your OPERATOR priviledges, run "irc" and | |
632 | login to the "ircd" normally - then type the following: | |
633 | ||
634 | /oper <nickname> <password> | |
635 | ||
636 | If you entered the OPERATOR COMMAND the way I did in the example above you | |
637 | would type: | |
638 | ||
639 | /oper Jeff pyunxc | |
640 | ||
641 | and if you entered everything correctly you would get the message: | |
642 | "Good morning Gentleman, I am a Hal 9000 Computer" - if you MESSED up | |
643 | you will probable get a message like "No mere mortals may enter the | |
644 | twilight zone" - or other funny messages ;-) | |
645 | ||
646 | You can confirm that your operator priviledges are ACTIVE by typing "/w" | |
647 | and seeing if there is a "*" next to your name in the listing. If there | |
648 | is then you have successfully become an IRC ADMINESTRATOR. | |
649 | ||
650 | ||
651 | ||
652 | 11) ADMINESTRATOR - Tell Other IRC users about your IRCD server: | |
653 | ||
654 | The "A" command is used for telling a few things about youself, like who | |
655 | you are, who is responsible for your server, and who users should contact | |
656 | at your site if they have any questions. The "A" command stands for | |
657 | the ADMINESTRATOR Command line, and in the "irc.conf" file it looks like | |
658 | this: | |
659 | ||
660 | A:<Your Name/Location>:<Your Electronic Mailing Addr>:<other> | |
661 | Field: 1 2 3 4 | |
662 | ||
663 | Explaination: | |
664 | ||
665 | Field 1: "A" tells IRC that you are making an Adminestrative Command | |
666 | entry. | |
667 | ||
668 | Field 2: Use this field to say tell your FULL NAME and where in the | |
669 | world your UNIX is. Be sure to add your City, State | |
670 | (Province?) and Country to this entry so everyone will know | |
671 | what country your UNIX Host is in. | |
672 | ||
673 | Field 3: Use this field to specify your Electronic Mailing Address | |
674 | preferably your Internet Mailing Address. If you have | |
675 | a UUCP or ARAPnet address - please add that as well. Be | |
676 | sure to add any extra DOMAIN information that is needed, | |
677 | for example "mail jtrim@orion" probably won't work as a | |
678 | mail address to me if you happen to be in Alaska. But | |
679 | "mail jtrim@orion.cair.du.edu" would work because you | |
680 | know that "orion" is part of the DOMAIN "cair.du.edu". | |
681 | So be sure to add your DOMAINNAMES to your mailing addresses. | |
682 | ||
683 | Field 4: Is really an OTHER field - you can add what you want here, | |
684 | I suggest you add your Government Mailing Address in this | |
685 | field so that people can send you REAL mail if they want to, | |
686 | but you can add funny sayings or just general comments | |
687 | in this field as well if you so desire. | |
688 | ||
689 | ||
690 | Examples: | |
691 | ||
692 | A:Jeff Trim - Denver Colorado, USA:INET jtrim@orion.cair.du.edu UUCP {hao, isi | |
693 | s}!udenva!jtrim:Terve! Hei! Moro! Heippa! Have you said hello in Finnish today? | |
694 | ;) | |
695 | ||
696 | Would look like this when printed out with the /admin command: | |
697 | ||
698 | Jeff Trim - Denver Colorado, USA | |
699 | INET jtrim@orion.cair.du.edu UUCP {hao, isis}!udenva!jtrim | |
700 | Terve! Hei! Moro! Heippa! Have you said hello in Finnish today? ;) | |
701 | ||
702 | ||
703 | *NOTE* that the "A" line cannot be BROKEN in anway - so you must WRAP THIS | |
704 | line so that is remains one CONTINUOUS line with *NO* Carrige Return Line | |
705 | Feeds in it. *ALSO* Remeber that you CANNOT use the ':' within the TEXT | |
706 | of the message it'self - all *other* pieces of text are usable. | |
707 | ||
708 | ||
709 | ||
710 | 12) REMOVING A USER FROM IRC - Remove an Errent User from IRC on your site. | |
711 | ||
712 | Obviously it is hoped that you wouldn't have to use this command ;-(. | |
713 | Unfortunately sometimes a user can become unmannagable and this is your | |
714 | only recourse - the KILL USER command. THIS COMMAND ONLY EFFECTS YOUR | |
715 | SERVER - If this user can connect to another SERVER somewhere else in | |
716 | the IRC-Network then you would have to talk to the adminestrator on that | |
717 | site to disable his access from that IRCD Server as well. | |
718 | ||
719 | The format of this command is: | |
720 | ||
721 | K:<Host Name>::<User> | |
722 | Field: 1 2 3 4 | |
723 | ||
724 | Explaination: | |
725 | ||
726 | Field 1: "K" tells the IRCD that you are making a KILL USER command | |
727 | entry. | |
728 | ||
729 | Field 2: In this field you specify the Hostname that the user is | |
730 | connecting from. If you user you wanted REMOVED connects | |
731 | to IRC from "orion.cair.du.edu" then you would want to enter | |
732 | "orion.cair.du.edu". If you want to REMOVE ALL HOSTS | |
733 | access you can use '*' (Wild Card notation) and no matter | |
734 | what host the USERNAME (specified in Field 4) connects from | |
735 | s/he will be denied access. | |
736 | ||
737 | Field 3: ** NOT USED ** -- leave NULL (no spaces) | |
738 | ||
739 | Field 4: The USERNAME of the user you want removed from IRC. For | |
740 | example 'root'. | |
741 | ||
742 | ||
743 | Some Examples: | |
744 | K:orion.cair.du.edu::jtrim | |
745 | ||
746 | If user 'jtrim' connects to IRC from host "orion.cair.du.edu" | |
747 | then IMMEDIATELY REMOVE HIM from my IRCD. | |
748 | ||
749 | K:*.cair.du.edu::root | |
750 | ||
751 | If user 'root' connects to IRC from any host that has the | |
752 | suffix "cair.du.edu" - then IMMEDIATELY REMOVE THEM from | |
753 | my IRCD. | |
754 | ||
755 | K:*::vijay | |
756 | ||
757 | This line reads "I don't care WHAT HOST user 'vijay' is on, | |
758 | I will NEVER allow username 'vijay' to login to my IRCD. | |
759 | ||
760 | ||
761 | ||
762 | 13) AN EXAMPLE "irc.conf" FILE: | |
763 | ||
764 | Keep one last thought in mind, if the OTHER IRCD Unix Site doesn't have | |
765 | your site listed in THEIR "irc.conf" file - you won't be able to | |
766 | connect to them - no matter how right your file is! It is simply | |
767 | useless to attempt connections to IRCD Hosts that don't have you listed | |
768 | in their files because they'll just HANGUP on you everytime you | |
769 | connect. | |
770 | ||
771 | After an exhausting description of every aspect of the "irc.conf" file, | |
772 | here is a REAL and working example of a totally complete "irc.conf" | |
773 | file. This is the real file I use on my UNIX site (orion.cair.du.edu) | |
774 | and I am displaying it for you now so that you'll know how yours should | |
775 | look after you've completed it: | |
776 | ||
777 | Since this is that last time I will be speaking to you - good luck and | |
778 | make a prayer to whichever UNIX God's you may worship ;-) I pray to | |
779 | UUCP and Yellow Pages myself ;-) Have fun and hope to talk to you | |
780 | soon on IRC. | |
781 | ||
782 | ----------------- Cut here -------------------------- Cut here --------------- | |
783 | ||
784 | C:128.193.64.132::hal.oce.orst.edu:6667 | |
785 | C:accuvax.nwu.edu::accuvax.nwu.edu:6667 | |
786 | C:128.214.5.6::tolsun.oulu.fi | |
787 | ||
788 | N:128.193.64.132::hal.oce.orst.edu | |
789 | N:accuvax.nwu.edu::accuvax.nwu.edu | |
790 | N:128.214.5.6::tolsun.oulu.fi | |
791 | ||
792 | I:orion.cair.du.edu::orion.cair.du.edu | |
793 | I:128.193.64.132::hal.oce.orst.edu | |
794 | I:accuvax.nwu.edu::accuvax.nwu.edu | |
795 | I:128.214.5.6::tolsun.oulu.fi | |
796 | I:128.193.32.13::jacobs.CS.ORST.EDU | |
797 | ||
798 | O:orion.cair.du.edu:*censored*:jtrim | |
799 | ||
800 | K:*.cair.du.edu::root | |
801 | ||
802 | U:orion.cair.du.edu::orion.cair.du.edu:6667 | |
803 | M:orion.cair.du.edu::Denver Colorado, USA:6667 | |
804 | ||
805 | A:Jeff Trim - Denver Colorado, USA:INET jtrim@orion.cair.du.edu UUCP {hao, isi | |
806 | s}!udenva!jtrim:Terve! Hei! Moro! Heippa! Have you said hello in Finnish today? | |
807 | ;) | |
808 | ||
809 | -------------- Cut Here ---------------------------- Cut Here ---------------- | |
810 | ||
811 | ||
812 | 14) UPDATES TO THE PROGRAM: Lists any program changes that were done after | |
813 | this manual was written | |
814 | ||
815 | This section was written to show any changes or upgrading that was done | |
816 | after version v2.01.4 was released. We have been releasing new versions | |
817 | of the program very quickly so it is necessary to Document what's new | |
818 | about each version to the best of our ability ;-) The above documentation | |
819 | is by no means out of date - and any MAJOR changes that take place in | |
820 | the program will mean that I will rewrite the ABOVE Documentation so | |
821 | that it once again reflect reality. This section is used to tell you | |
822 | about the SMALL fixes to the program that may or may not effect you, | |
823 | for example MY SITE does not use SUBNETING, but many other sites do, | |
824 | so if you were using a SUBNET you would want to know that we do in fact | |
825 | support subneting. | |
826 | ||
827 | *NOTE* That if we added a new feature in ONE VERSION, the feature *is* | |
828 | included in the next version as well. For example we added SUBNETING | |
829 | in version v2.01.5 and it will be included in all future versions of | |
830 | IRC. | |
831 | ||
832 | ||
833 | A) SUBNETING (v2.01.5+) | |
834 | ||
835 | IRC now supports SUBNETING, which is the ability to use WILD CARDS | |
836 | (*.*) notation when refering to a NAME or NUMERIC host. For example, | |
837 | Let us say that you wanted the CLIENTS of ANY HOST in your UNIX domain | |
838 | of "cair.du.edu" to be able to connect to your IRCD Server. You can | |
839 | now specify a WILD CARD host listing in the "irc.conf" file of: | |
840 | ||
841 | C:*.cair.du.edu::*.cair.du.edu:6667 | |
842 | N:*.cair.du.edu::*.cair.du.edu | |
843 | ||
844 | ... and that would allow ANY HOST that has a UNIX domainname of | |
845 | "cair.du.edu" to connect to your host. | |
846 | ||
847 | This also works for NUMERIC addresses as well. If you wanted all | |
848 | of the UNIX. For example if you wanted to allow ANY UNIX with | |
849 | a NUMERIC address of "130.253.1.*" to be able to connect to your | |
850 | host you could say: | |
851 | ||
852 | C:130.253.1.*::*.cair.du.edu:6667 | |
853 | N:130.253.1.*::*.cair.du.edu | |
854 | ||
855 | The reason I added the "*.cair.du.edu" is because the CONNECTING | |
856 | Host would indetify itself as a REAL NAME address, like | |
857 | "orion.cair.du.edu", but your don't care if IT IS "orion", but | |
858 | rather you care that it is FROM A DOMAIN of "cair.du.edu". You | |
859 | would set this up so that "130.253.1.*" refers to ALL OF THE | |
860 | MACHINES in the "cair.du.edu" domain, and you would hope that any | |
861 | Machine within this UNIX DOMAIN would have an INTERNET ADRESS | |
862 | that begins with "130.253.1", the LAST NUMBER would be the only | |
863 | ones that's different. But, this isn't always the case. | |
864 | ||
865 | Examples: | |
866 | ||
867 | C:128.214.5.*::*.oulu.fi:6667 | |
868 | N:128.214.5.*::*.oulu.fi | |
869 | ||
870 | This line reads: If any machine with an INTERNET ADDRESS | |
871 | that starts with "128.214.5" connects to my server, and | |
872 | identifies itself with a NAME address that ENDS in "oulu.fi", | |
873 | let them connect to my server. | |
874 | ||
875 | C:*.du.edu::*.du.edu:6667 | |
876 | N:*.du.edu::*.du.edu | |
877 | ||
878 | This line reads: If any host conects to me and identifies itself | |
879 | as a host that ENDS with a NAME Address of "du.edu". | |
880 | ||
881 | C:*::*:6667 | |
882 | N:*::* | |
883 | ||
884 | This ones says: Let ANYONE connect to my server! ;-) In | |
885 | Reality the computer reads this as: I don't care what | |
886 | what INTERNET ADRESS or NAME ADDRESS they are from, just | |
887 | let them connect. I DON'T RECOMMEND YOU DO THIS, but this | |
888 | is a possible option if you need it. | |
889 | ||
890 | ||
891 | -=> End of IRC README Document <=- |