• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H03-May-2022-2,4742,110

include/H11-Oct-2009-12,5057,623

lib/gnu/H11-Oct-2009-918556

m4/H11-Oct-2009-588550

src/H11-Oct-2009-23,32715,903

test/H11-Oct-2009-631395

tools/H11-Oct-2009-1,6611,165

vfs/H11-Oct-2009-

CHANGESH A D27-Apr-200844.5 KiB1,324883

COPYINGH A D04-Aug-200617.6 KiB342281

INSTALLH A D27-Apr-2008174 116

LICENSEH A D04-Aug-200617.6 KiB342281

Makefile.inH A D10-Apr-20084.6 KiB194118

READMEH A D02-May-200813.3 KiB445283

TODOH A D01-Jul-20082.6 KiB8973

config.guessH A D14-Sep-200743.5 KiB1,5171,305

config.subH A D03-Sep-200731.8 KiB1,6171,473

configureH A D03-May-2022270 KiB9,5458,016

configure.acH A D20-Mar-20088.4 KiB317268

ezb.confH A D11-Oct-20093.7 KiB19262

ezb.conf.defaultH A D03-May-20229.9 KiB429353

install-shH A D12-Sep-200712.9 KiB508340

sample.confH A D10-Apr-20089.9 KiB42999

README

1                     ezbounce v2.0
2             - - - - - - - - - - - - - - -
3
4Last updated: $Date: 2008-05-01 22:23:04 -0500 (Thu, 01 May 2008) $
5
6ezbounce is a highly configurable, multi-user Internet Relay Chat proxy.
7
8In addition to basic proxying, it has several features for the serious
9IRC user:
10
11	* Multiple user accounts with full access control.
12	* Allow/deny lists and configuable privileges for each user.
13	* Detach and reattach features to maintain IRC connections while
14	  disconnected from the proxy.
15	* Automatic server reconnection.
16	* Chat logging with automatic compression.
17	* Support for fake Ident replies.
18	* Numerous customizable user preferences.
19	* SSL and IPv6 Support.
20	* Transparent DCC proxying.
21	* Support for encrypted passwords.
22	* Uses nonblocking sockets and DNS lookups.
23
24ezbounce was written by Murat Deligonul (murat@linuxftw.com)
25
26The project web site is at http://www.ezbounce.net/
27
28There's also a page at SourceForge: http://sourceforge.net/projects/ezbounce/
29
30
311. REQUIREMENTS
32----------------
33
34	* a C++ compiler (gcc >= 3.2 recommended)
35	* GNU Make
36	* (Optional) Boost C++ Libraries, version 1.33 or later
37	* (Optional) OpenSSL
38
39
40ezbounce is written in C++ and developed on Linux.  It has been tested under Linux
41and FreeBSD, but should work on any modern Unix-like system.
42
43
442. COMPILING
45-----------------
46
47  1. First, type ./configure. It will gather information about your system.
48
49  2. Then type 'make' (NOTE: BSD users may need to type 'gmake')
50
51  3. The resulting ezbounce executable can be put anywhere.
52
53
54Other options:
55
56  A few options are available to the ./configure script:
57
58  	--with-ssl[=/path/to/ssl]
59
60  Configures ezbounce for SSL support. You need OpenSSL or the
61  equivalent installed on the machine.  By default, SSL support is not compiled.
62
63	--with-boost[=/path/to/boost]
64
65  Configures ezbounce for Boost support.  Boost is a collection of useful C++ libraries
66  which is currently used for implementing chat log compression.  By default, this
67  is not enabled.
68
69	--enable-debug
70
71   Builds ezbounce with debugging options turned on.  This is useful for
72   development or tracking down bugs.  By default, debugging is turned off
73   NOTE: enabling debug will mode will result in a much larger binary and a
74   tremendous amount of debugging output being printed.
75
76
773. RUNNING
78-----------------
79
80The syntax for running ezbounce is:
81
82	./ezbounce [options] <configuration file>
83
84A configuration file must be specified.  The following command line options
85are also recognized:
86
87	-f: 		  stay in the foreground
88	-b <address>:     listen for connections on a different interface
89
90
914. SETUP & OPERATION
92---------------------
93
94For your convenience, two sample configuration files are provided.
95One is 'ezb.conf' which is a quick and simple one, and the other `sample.conf'
96which lists all the possible configuration settings and describes them.  Both
97are extensively commented and will be good starting points in configuring the
98proxy for you needs.
99
100ezbounce operates with a user account system.  You can have as many user accounts as
101you'd like, each with different privileges, but there must be at least one.  You also
102have full control over what hosts the users are allowed to connect from, what IRC
103servers they may use, and how many of them are allowed at once.
104
105User accounts are defined in the configuration file.  Here is an example:
106
107	user "bob" {
108		set password "secret1"
109		set enable-detach-command 1
110		set enable-incoming-dcc-proxying 1
111
112		allow {
113			from *
114			to *
115		}
116	}
117
118This defines a user named "bob", with a of password of "secret1".  It also
119allows him to connect from any host and connect to any IRC server.
120
121To log in as bob, connect your IRC client to ezbounce, and issue the
122following command:
123
124	/quote login bob secret1
125
126
127Then use the CONN command to connect to an IRC server:
128
129	/quote conn server [port] [password]
130
131ezbounce will then attempt to connect you to that server.
132You can cancel a connection attempt by doing:
133
134	/quote cancel
135
136
137Once connected, you can go about IRCing as normal.
138
139Other basic commands:
140
141	* HELP <command>
142	   Lets you get help on any command. As of ezbounce v1.0, all commands
143	   are documented through this system. Typing "/quote help" on its own
144	   will just show a list of commands.
145
146	* VHOST [host] or INTERFACE [host]
147	   Lets you bind your connection to an available interface on the machine.
148	   You can configure which ones they may  use, or let them use all
149	   available ones. See the sample config files.
150
151 	* VHOSTS
152	   Lists the virtual hosts that a client may use with
153	   the VHOST command.  It basically dumps everything that was given
154	   in the vhosts { } blocks of the configuration file.
155
156	* EZB <command> [args]
157	    This command lets you issue commands directly to ezbounce while you
158	    are connected to an IRC server.
159
160	    Normally, ezbounce will stop parsing commands once you connect to IRC.
161	    However, it will always check for 'ezb'. This is useful, as it lets you
162	    issue most any command without dropping the IRC connection.
163
164	    Some examples:
165
166	    This will terminate the IRC server:
167
168		/quote DIE shutting down the server
169
170	    But using the 'ezb' command you can terminate the proxy instead.
171
172		/quote ezb DIE shutting down
173
174	* MOTD
175	    Shows the Message of the Day.
176
177
1785. ADMIN FEATURES
179------------------
180
181ezbounce lets you define certain user accounts as administrators.
182Designating a user to be an admin is very easy; simply put this line in his
183configuration:
184
185	set is-admin 1
186
187An admin gains his priviledges as soon as he connects and logs in.  There is
188no need to use an additional "admin" command.
189
190An administrator can:
191
192	* Get detailed information on users and connections.
193	* Kill any user off the proxy.
194	* Shut down the proxy entirely.
195	* Send messages to a user(s).
196	* Use any network interface available on the machine.
197	* Use any command and feature he wants, even if it has been disabled.
198	* Connect to any IRC server he wants regardless of config settings.
199
200
201Some admin commands are listed below:
202
203	* STATUS
204	    Display detailed information on the proxy, including uptime, resource usage, users,
205	    and their connection states.
206
207	* WHOIS <connection id or username>
208	    Displays information about a user.
209
210	* KILL <connection id> <reason>
211	    Kicks a user off the proxy.
212
213	* TRACE <id>
214            Shows a text diagram of a user's connection.
215
216	* DIE <reason>
217	    Kills the proxy gracefully.
218
219	* DIENOW <reason>
220	    Immediately kills the proxy.
221
222	* REHASH
223	    Reloads the proxy configuration file. Has the same effect as
224	    sending the proxy a SIGHUP signal. It will let you know whether
225	    it was successful or not and dump any possible error messages
226	    into the proxy log file.
227
228 	* WRITE <userid> <message>
229	    With this command you can send a message to another user. You
230	    get the userid from the status command. You can use 'all' for
231	    the userid to broadcast the message. Unfortunately, regular users
232	    have no way of responding to your messages right now.
233
234
2356. DETACHING AND REATTACHING
236----------------------------
237
238An extremely useful feature of ezbounce is the detach feature.  This allows a
239user to disconnect from the proxy but keep the conncetion to the IRC server
240alive.  He can later reconnect to the proxy and reattach to and resume his
241detached connection.
242
243By default, detaching is automatic.  If your connection to the proxy is abruptly
244terminated, ezbounce will still maintain IRC connection.  You can also force a
245detach with the following command:
246
247	/ezb detach
248
249
250To reattach, log in to proxy as usual, and type:
251
252	/ezb sessions
253
254
255This will list your  detached sessions along with unique IDs for them.
256To reattach, type:
257
258	/ezb reattach <id>
259
260
261By default, all users are permitted to detach.  You may disable detach capabilities
262if desired; the configuration option is 'enable-detach-command'.  Here is an example:
263
264	user "steve" {
265		....
266		# Disable detach capabilities for steve
267		set enable-detach-command 0
268	}
269
270
271The proxy can be setup to log chats while detached.  See the file "ChatLogging.txt"
272in the docs/ directory.
273
274
2757. FAKE IDENTS
276-----------------
277
278ezbounce allows users to set custom replies for IDENT queries.  Many IRC servers today
279require identd to be running on the clients' machines.  Unfortunately, when connecting
280through a proxy, a user's ident becomes the username that the proxy software is running
281under on its host system.  This can be undesirable.
282
283ezbounce provides a couple of methods for users to set custom ident replies.  Please see
284"FakeIdents.txt" in the docs/ directory for details.
285
286
2878. DCC PROXYING
288-----------------
289
290ezbounce supports DCC proxying.  This is especially useful for people
291behind firewalls or on a LAN -- but note that ezbounce must be running on
292a machine that has both global Internet access *and* local LAN access.
293
294It's completely transparent, meaning the client can just use the regular
295/dcc commands to send and receive DCC chats and file transfers. No special
296settings or commands are required on the client software.
297
298For more information on setting up DCC proxying, please see "DCCFeatures.txt" in the
299docs/ directory.
300
301
3029. VIRTUAL FILE SYSTEM
303------------------------
304
305A major new feature in ezbounce 2.0 is the Virtual File System.  This provides a common
306location for not only chat log storage, but also for DCC transfers and other files.
307
308The VFS is described in depth in "VirtualFileSystem.txt" in the docs/ directory.
309
310
31110. USER PREFERENCES
312----------------------
313
314ezbounce has several preferences that users may customize to their liking.  They control
315logging, auto-reconnection, detaching, and many other things.  In addition, they can be
316set not only globally, but for specific IRC networks and servers as well, and sometimes even
317for specific channels.
318
319Please see "UserPreferences.txt" in the docs/ directory for more information.
320
321
32211. LOGGING
323------------
324
325ezbounce can be set up to log chats while connected to IRC.  Users can then retrieve their
326logs via DCC Send or even view them in their clients through DCC Chat.
327
328Chat logging setup is described in "ChatLogging.txt" in the docs/ directory.
329
330In addition, ezbounce maintains a "Event Log" for each user account.  This documents
331connections, detaches, errors, and other information in a log file which the user can retrieve
332via DCC.  For more information see "EventLog.txt" in the docs/ directory.
333
334
33512. SSL SUPPORT
336-----------------
337
338ezbounce has basic support for SSL connections.
339
340To enable SSL, you must first compile ezbounce with support for it.  See
341the section above for compiling with SSL support.
342
343Then you must define some settings in your configuration file:
344
345
346	set cert-file <SSL certificate file>
347
348This sets the certificate file.  You can generate one by using the scripts in the
349tools/ directory.
350
351        ssl-listen <ports>
352
353This specifies the ports to listen for SSL connections on.  This is just like the
354'listen' config command, except it makes the sockets listen in SSL mode.
355
356Here is an example setup:
357
358        ssl-listen 6900,6901,6902
359        set cert-file "ezb.pem"
360
361
362Finally, to connect to an IRC server in SSL mode, all you need to do is:
363
364    /quote conn -ssl irc.server.com
365
366
36713. OTHER FEATURES
368--------------------
369
370   Here are some other commands available in ezbounce:
371
372	  /quote LOGIN <user> <password> [server[:port]] [IRC server password]
373
374	Well you knew the LOGIN command already. But it has a special
375	feature that lets you rapidly connect to an IRC server w/o
376	having to issue the CONN command. Simply enter the name of the
377	IRC server right after your password. You can also provide a port
378	to connect on as well as a password to send to that IRC server.
379
380	  /quote PASS <username:password> [server[:port]]
381
382	There is also a PASS command, retained for compatibility reasons.
383	An example for user bob, and password "blahblah" would be:
384
385	  /quote pass bob:blahblah
386
387	This is mainly useful if you want to set up your IRC client to
388	automatically log in for you.
389
390
39114. OTHER CONFIGURATION
392-----------------------
393
394Nobody wants to read boring manuals.  If you want to know all the commands
395and what they do, try '/ezb help'
396
397If you need help with configuration file details, please look at
398the sample.conf file included with the ezbounce distribution.
399
400
40115. ACKNOWLEDGEMENTS
402--------------------
403
404Special thanks to:
405
406	* Seth W. and yewnix.net for many suggestions and many years
407	  of providing web space.
408	* Matt Sams for numerous suggestions and testing of potentially
409	  dangerous untested code.
410	* Jack M. for letting me test on his machine.
411	* logiclrd, who asked if i could "make a bounce server" for him
412	* Karl S. for writing a man page and patches.
413	* HoE for contributing the original SSL code.
414	* Nfs for helping with IPv6 testing efforts.
415	* SNS for donating the ezbounce.net domain.
416	* Andrew C. for machines to test on.
417
418
41916. LICENSE
420---------------
421
422ezbounce is released under the GNU General Public License.  The COPYING file
423has details about the license.
424
425
42617. FEEDBACK
427-------------
428
429My e-mail address:    murat@linuxftw.com
430
431If you have any questions, complaints, comments, suggestions, feel free
432to drop me a line.  This project stays alive because of YOUR feedback.
433
434
43518. OTHER
436------------------
437
438This program has a rather silly name. If you think of a better one let me
439know please...
440
441Also, if anyone has some ANSI Artwork skills and wants to make a l33t banner
442or two, please let me know...
443
444
445