ezbounce v1.04c - - - - - - - - - - - - - - Ezbounce is a very configurable, multi-user IRC proxy or 'bouncer'. It has all the basic features of an IRC bouncer, as well as features for the serious IRC user: * User accounts, which allow you to give different priviledges to different users. * Full access control with allow and ban lists * Detach and reattach features to maintain IRC connections while disconnected from the proxy. * Ability to listen and connect on different virtual hosts. * SSL Support * Fully Transparent DCC Proxying (incoming and outgoing) * Remote administration * Uses nonblocking sockets. * Logs chats while you are detached and DCC sends them back to you when you reattach. * Ability to reload configuration at run time. * Can be run in the background or foreground. * Support for fake ident-replies, when used with mdidentd ident daemon. * Numerous other tweakable settings. ezbounce was written by Murat Deligonul (druglord@freelsd.org) The web page is at http://druglord.freelsd.org/ezbounce/ 1. REQUIREMENTS ---------------- You'll need: * a C++ compiler -- if you're using GCC, anything since 2.7.2.x should work. Some versions failed to compile under GCC 2.95.x, but this has been worked around. * The C++ Standard Library might be required, depending on your system setup. (optional, see "other options" in section 2) ezbounce is developed on Linux, but should run on any POSIX compliant system. 2. COMPILING ----------------- Basically: 1. First, type ./configure. It will gather information about your system. 2. Then type 'make' 3. The resulting ezbounce executable can be put anywhere. Other options: There are a few options available with the ./configure script: ./configure --with-ssl[=/path/to/ssl] Configures ezbounce for SSL support. You need OpenSSL or the equivalent installed on the machine. ./configure --enable-use-select Force ezbounce to use select() instead of poll() for all its socket needs. poll() is used by default if found on the system. It is not required. ./configure --disable-link-stdcxx This will attempt to build ezbounce without linking with the C++ libraries. This may or may not work; if it doesn't, you'll be greeted with a plethora of linker errors. ./configure --enable-debug Builds ezbounce with debugging options turned on. Useful if you want to do development. 3. RUNNING ----------------- The syntax for running ezbounce is: ezbounce [options] Only the configuration file is required. Options can be one or more of the following: -f: stay in the foreground -b
: listen on a different interface (virtual host) -u : makes ezbounce use this userid Ezbounce comes with two sample config files, one called `ezb.conf' which is a barebones one, and `sample.conf' which lists all the possible config options and descriptions for them. 4. BASIC CONFIGURATION & OPERATION ----------------------------------- ezbounce 1.0 is based on a user account system. You can have as many users accounts as you'd like, each with different priviledges, but there must be at least one. User accounts are set up like this (in the configuration file): user bob { set password blahblah set enable-detach-command 1 set enable-incoming-dcc-proxying 1 allow { from * to irc.lagged.org to irc.qeast.net to irc.lightning.net } } This defines a user named "bob", with a of password of "blahblah" To log in as "bob", you would connect your IRC client to ezbounce, and use the following command: /quote login bob blahblah Then use the CONN command to connect to an IRC server: /quote conn server[:port] [password] ezbounce will then check if it's configured to allow you to connect there and will proceed if you are. You can cancel a connection attempt by doing /quote cancel Once you connect, you can go about IRCing as normal. Other commands: * HELP Lets you get help on any command. As of ezbounce v1.0, all commands are documented through this system. Typing "/quote help" on its own will just show a list of commands. * VHOST [host] or INTERFACE [host] Lets you bind your connection to an available interface on the machine. You can configure which ones they may use, or let them use all available ones. See the sample config files. * VHOSTS Lists the virtual hosts that a client may use with the VHOST command. It basically dumps everything that was given in the vhosts { } blocks of the configuration file. * IDENT Allows users to set their own idents, regardless of the userid the proxy is running as. Requires mdidentd to be running. See the section below on fake idents. * EZB [args] This command lets you issue commands directly to ezbounce while you are connected to an IRC server. Normally, ezbounce will stop parsing commands once you connect to IRC. However, it will always check for 'ezb'. This is useful, as it lets you issue most any command without dropping the IRC connection. Some examples: This will terminate the IRC server: /quote DIE shutting down the server But using the 'ezb' command you can terminate the proxy instead. /quote ezb DIE die!! note: as of ezbounce 1.0, the 'ezb' command is parsed all the time, even when you have not connected to an IRC server. * EZBOUNCE The 'EZBOUNCE' command is the same as the 'EZB' command (it was the original one); it is simply a shorter and faster to write EZB. * MOTD Shows the proxy's Message of the Day, in case you missed it. * SET