README
1 __________ ______ ____ _________
2/ \ ____ \ / \ \\ \ / \ ____\
3\ \ \___\ \ \ \ \\ \ \ \ \ \___/
4 \ \ ____ < \ \ \ \ \ \ \ \
5 \ \ \___\ \ \ \ \ \ \ \ \ \_____
6 \ \_______/ \ \__\\ \ __\ \ \_______\
7 \/_______/ \/__/ \/__/ \/_______/ IRC PROXY
8
9BNC 2.9.4 (c) 1998-2005 by James Seter AKA Pharos on efnet
10Site:
11 http://gotbnc.com
12
13Table of Contents
14
15 1. INTRODUCTION ............................................... 2
16 1.1 Features ............................................... 2
17 1.2 Failures ............................................... 2
18 1.3 To Do .................................................. 2
19 2. COMPILATION ................................................ 3
20 2.1 Installation ........................................... 3
21 3. CONFIGURATION .............................................. 4
22 3.1 ON-THE-FLY configuration commands ....................... 5
23 4. SETTING UP CRONTAB ......................................... 6
24 5. CREDITS .................................................... 6
25 6. THE GNU WAY ................................................ 6
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58James Seter [PAGE 1]
59
60BNC IRC Proxy Daemon April 1998
61
62
631. INTRODUCTION
64
65 IRC in general over the years has progressed into a very complex host
66 for multitudes of different types of people. BNC which is a acro for
67 BouNCe is a daemon designed to allow some people who do not have
68 access to the net in general, but who do have access to another pc
69 that can reach the net, the ability to BouNCe though this pc to IRC.
70
71 BNC also satisfies as a host to allow users to Bounce through shells
72 to IRC thus allowing for many features such as an interresting
73 internet address commonly used for show or for benifits such as mild
74 protection from commonly used attacks such as DoS by covering a users
75 real IP with that IP of a machine more capable of handling these
76 attacks.
77
781.1 Features
79
80 BNC sports many important advances, including the following:
81
82 RFC 1459 compatible.
83 Vhost support.
84 Vhost lists in configuration file, to be displayed on call.
85 Password option for securety.
86 ./bncsetup dialog based script for automatically makeing .conf files.
87 Additional password for ADMIN mode.
88 NON-spawning code with crontab script to keep daemon alive.
89 Daemon commands for ON-THE-FLY single-user reconfiguration of Vhosts
90 and connecting to a server.
91 Ability to include the bounce address in the password; for quick,
92 efficient connection to an irc host.
93 Optional Logging of connects, failures, and other important data.
94 Identwd dynamic ident support for on-the-fly per-user ident changing.
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109James Seter [PAGE 2]
110
111BNC IRC Proxy Daemon April 1998
112
113
1141.3 To Do
115
116 Things I hope to accomplish in later versions:
117
118 Ban lists. (skip that, allow lists work just fine)
119 More Admin commands.
120 DCC automatic redirection through Proxy.
121 Improve the IRC Docking
122
123
1242. COMPILATION
125
126 To compile you must extract that compressed tar to some directory
127 such as a subdirectory of a normal users.
128 NOTE BNC IS NOT DESIGNED TO BE RAN AS ROOT OR SUID. DOING SO CAN
129 POTENTIALLY COMPROMISE THE SECURETY OF THE MACHINE.
130
131 With that in mind, log into the shell as a normal user. After
132 uncompressing the archive (considering your reading this, i hope you
133 already figured this out) into your shell, Change to that directory.
134
135 Compiling BNC requires that you run the GNU autoconf created script
136 ./configure which will calculate system-dependent values and option
137 needed by BNC to properly operate on a wider range of OS's. After
138 configure is done doing its job, BNC is made by running 'make' which
139 is included with most GNU C compilers. After make completes, unless
140 an unexpected error has occured, the executable binary 'bnc' should
141 be located in that directory.
142
1432.1 Installation
144
145 The best method for installation is to move the executable to a
146 different subdirectory of your home directory on the shell along with
147 the script bncchk and the configuration file (normally bnc.conf) that
148 you make yourself using the provided example file 'example.conf'.
149 An example is as follows (sizes and directory names depends on you):
150
151 bnc@XNation:/home/bnc/phbnc$ ls -lF
152
153 -rwx______ 1 bnc users 544 Aug 7 11:13 bncchk*
154 -rwx______ 1 bnc users 6794 Aug 7 09:57 bncsetup*
155 -rw------- 1 bnc saints 747 Apr 14 20:08 bnc.conf
156 -rw------- 1 bnc saints 4 Apr 13 19:14 pid.bnc
157
158
159
160
161James Seter [PAGE 3]
162
163BNC IRC Proxy Daemon April 1998
164
165
1663. CONFIGURATION
167
168 Most of the configuration is contained within a configuration file
169 bnc.conf which it looks for in its current directory. BNC will not
170 run if this file is not present, or if the file fails to satisfy the
171 required information to properly load. An option configuration file
172 can be specified on the command line of BNC.
173
174 The configuration file is line based, each line is a seperate option.
175 What option is set is determined by the Directive in this format:
176
177 Directive_Name:Argument:Argument....
178
179 Required directives are D (Daemon Configuration) and S (Supervisor
180 Password).
181
182 Format is as follows:
183
184 D:Listening port number:Maxusers limit number:Password
185
186 Listening port: Port number on the host to attach to.
187 Maxusers limit number: Number of users that can be connected to BNC
188 at the same time, 0 means unlimited.
189 Password: An optional password required for an user to be able to
190 use the proxy daemon.
191
192 S:Password
193
194 Password: A required Password for a normal user to become an admin
195 through use to the pre-connect command /quote MAIN (pass).
196 it is best to make the Supervisor pass and the listening pass be
197 two seperate passes.
198
199
200 All the other directives can be best represented within the
201 example.conf file included with current versions of BNC, and are
202 beyond the scope of this document. Please take time to read the
203 config file and all included documentation before requesting new
204 features.
205
206 Also note that after you compile bnc you can use ./bncsetup to create
207 .conf files for you
208
209
210
211
212
213
214
215
216
217
218
219
220James Seter [PAGE 4]
221
222BNC IRC Proxy Daemon April 1998
223
224
2253.1 ON-THE-FLY configuration commands
226
227 BNC includes raw level commands for control during the connection
228 phase. After the connection password argument has been suceeded and
229 the RFC required NICK and USER (should be provided by the client) are
230 all satisfied, the proxy is in a Limbo stage where as certain
231 configuration commands can be issued to change various options.
232
233 If the client cannot handle the command as just /COMMAND then issue the
234 command as /QUOTE COMMAND or /RAW COMMAND or as the documentation of the
235 client specifies to send directly to a server.
236
237 Syntax is in argument form as <REQUIRED> [optional]
238
239 Commands are as follows:
240
241 Normal users commands
242 ---------------------
243 PASS PASSWORD[:SERVER:PORT:SERVERPASS]
244 Some clients such as Mirc allows you to type /server blah password
245 pass is a feature that allows you to autoconnect to a real server
246 without using CONN inside the pass command.
247 /server irc.blah password:irc.irc.com:6668
248 CONN <server address> [port] [pass]
249 This will initialize a connection to the real irc server and begin
250 the two-way communication between you and the real irc server,
251 ending the bnc command session.
252 DOCK <password>
253 This will dock the current session to the background, closing your
254 client if keepalive is off.
255 RESUME <session> <password>
256 This will resume a docked session. If the server closes on a docked
257 session, it will no longer be resumable.
258 KEEPALIVE
259 turns on the keepalive function, instead of killing your connection
260 when irc dies it resumes to BNC server mode.
261 VIP [new virtual host]
262 Issuing VIP alone will list all the V lines included in the
263 configuration file. These lines are not required to use an address
264 and are only there for reference. VIP with an argument will change
265 the address that BNC will attempt to connect to irc with.
266 VDF
267 Issuing this command will restore the vhost to the address specified
268 on the X line of the connfiguration file, or if that line is absent,
269 restore it to the system default.
270 VN
271 This command will change the vhost to the system default, bypassing
272 the X line of that configuration file.
273 MAIN <Supervisor password>
274 Sucessful usage of this command will allow one to use the Admin
275 level commands.
276 Admin level commands
277 --------------------
278 BWHO
279 This command will list the login time nick, and the File descripter
280 number for all current fully logged on users (meaning the user has
281 to of used the CONN command and be on IRC.
282 BKILL <FD>
283 This command will kill the user who's FD matches the argument.
284 DIE
285 This command is not fully functional, but will kill all users and
286 end the daemons running process.
287 BDIE
288 This command is more friend version of DIE.
289 BMSG
290 Experimental inter-bnc chat.
291
292James Seter [PAGE 5]
293
294BNC IRC Proxy Daemon April 1998
295
296
297 LISTHOST
298 Lists IP's allowed to use BNC.
299 ADDHOST <number (usually 1)> <wildcard IP>
300 Adds an IP to use bnc.
301
3024. SETTING UP CRONTAB
303
304 BNC includes a script called bncchk that uses the pid file created by
305 the BNC executable to determine if it is executing. The bncchk file
306 needs to be edited and the proper lines modified:
307
308 BNCBIN=bnc
309 BNCPIDFILE=pid.bnc
310 BNCPATH=/home/bnc/bnc2.2.7
311
312 The name of the varible basically tells it all.
313
314 Inside the crontab should be the line:
315
316 0,10,20,30,40,50 * * * * /home/myself/bncchk >/dev/null 2>&1
317
318 Modify the path to the bncchk file. This line will check to see if
319 bnc is running every 10 minutes, and if it is not running, will
320 attempt to restart BNC with the information provided by the varibles
321 in the bncchk file.
322
3235. CREDITS
324
325 James Seter (Pharos) ....................: Pharos@gotbnc.com
326 Author of the program.
327 Brian Mitchell (Halflife) ...............: ??
328 One helluva good coder, coded the original base that was used
329 in pre 2.2.8 editions, without him, I may of never learned
330 sockets.
331 Unknown (White_dragon) ..................: WD@DAL.net
332 Ideas. Lots of patches. Major advancements to BNC.
333 Unknown (Volatile) ......................: vol@sekurity.org
334 Help on Bind and other socket protection
335 Unknown (Barubary) ......................: ??
336 Helped on fifo system
337 Unknown (IceWizard) .....................: ice@walt-disney.com
338 Very suggestive and helpfull person, wrote original ./bncsetup
339 James Nonnemaker (Postal Phreak) ........: Postal_Phreak@dal.net
340 Win95 Port/Suggestions
341 Unknown (dopey) .........................: doughpee@usa.net
342 example.conf reorganization and suggestions
343 Unknown (Y0SHi) .........................: yoshi@skipnet.com
344 Provided me with SunOS access for porting purposes.
345 Jason F. Aristide III (PurpleMotion) ....: PurpleMotion@DAL.net
346 Suggestions, Documents and example scripts.
347
348 Anybody else who sent me bug errors or suggestions, Thanks everybody.
349
3506. THE GNU WAY
351
352 The GNU license can be found in the file COPYING included with this
353 distribuition. Please read that file for a complete description of
354 your rights as a user.
355
356
357James Seter [PAGE 6]
358
359