/ \ ____ \ / \ \\ \ / \ ____\ \ \ \___\ \ \ \ \\ \ \ \ \ \___/ \ \ ____ < \ \ \ \ \ \ \ \ \ \ \___\ \ \ \ \ \ \ \ \ \_____ \ \_______/ \ \__\\ \ __\ \ \_______\ \/_______/ \/__/ \/__/ \/_______/ IRC PROXY
BNC 2.9.4 (c) 1998-2005 by James Seter AKA Pharos on efnet
Site:
http://gotbnc.com
Table of Contents
- INTRODUCTION ............................................... 2 1.1 Features ............................................... 2 1.2 Failures ............................................... 2 1.3 To Do .................................................. 2
- COMPILATION ................................................ 3 2.1 Installation ........................................... 3
- CONFIGURATION .............................................. 4 3.1 ON-THE-FLY configuration commands ....................... 5
- SETTING UP CRONTAB ......................................... 6
- CREDITS .................................................... 6
- THE GNU WAY ................................................ 6
James Seter [PAGE 1]
BNC IRC Proxy Daemon April 1998
- INTRODUCTION
IRC in general over the years has progressed into a very complex host for multitudes of different types of people. BNC which is a acro for BouNCe is a daemon designed to allow some people who do not have access to the net in general, but who do have access to another pc that can reach the net, the ability to BouNCe though this pc to IRC.
BNC also satisfies as a host to allow users to Bounce through shells to IRC thus allowing for many features such as an interresting internet address commonly used for show or for benifits such as mild protection from commonly used attacks such as DoS by covering a users real IP with that IP of a machine more capable of handling these attacks.
1.1 Features
BNC sports many important advances, including the following:
RFC 1459 compatible.
Vhost support.
Vhost lists in configuration file, to be displayed on call.
Password option for securety.
./bncsetup dialog based script for automatically makeing .conf files.
Additional password for ADMIN mode.
NON-spawning code with crontab script to keep daemon alive.
Daemon commands for ON-THE-FLY single-user reconfiguration of Vhosts
and connecting to a server.
Ability to include the bounce address in the password; for quick,
efficient connection to an irc host.
Optional Logging of connects, failures, and other important data.
Identwd dynamic ident support for on-the-fly per-user ident changing.
James Seter [PAGE 2]
BNC IRC Proxy Daemon April 1998
1.3 To Do
Things I hope to accomplish in later versions:
Ban lists. (skip that, allow lists work just fine)
More Admin commands.
DCC automatic redirection through Proxy.
Improve the IRC Docking
2. COMPILATION
To compile you must extract that compressed tar to some directory such as a subdirectory of a normal users. NOTE BNC IS NOT DESIGNED TO BE RAN AS ROOT OR SUID. DOING SO CAN POTENTIALLY COMPROMISE THE SECURETY OF THE MACHINE.
With that in mind, log into the shell as a normal user. After uncompressing the archive (considering your reading this, i hope you already figured this out) into your shell, Change to that directory.
Compiling BNC requires that you run the GNU autoconf created script ./configure which will calculate system-dependent values and option needed by BNC to properly operate on a wider range of OS's. After configure is done doing its job, BNC is made by running 'make' which is included with most GNU C compilers. After make completes, unless an unexpected error has occured, the executable binary 'bnc' should be located in that directory.
2.1 Installation
The best method for installation is to move the executable to a different subdirectory of your home directory on the shell along with the script bncchk and the configuration file (normally bnc.conf) that you make yourself using the provided example file 'example.conf'. An example is as follows (sizes and directory names depends on you):
bnc@XNation:/home/bnc/phbnc$ ls -lF
-rwx______ 1 bnc users 544 Aug 7 11:13 bncchk* -rwx______ 1 bnc users 6794 Aug 7 09:57 bncsetup* -rw------- 1 bnc saints 747 Apr 14 20:08 bnc.conf -rw------- 1 bnc saints 4 Apr 13 19:14 pid.bnc James Seter [PAGE 3] BNC IRC Proxy Daemon April 1998
3. CONFIGURATION
Most of the configuration is contained within a configuration file bnc.conf which it looks for in its current directory. BNC will not run if this file is not present, or if the file fails to satisfy the required information to properly load. An option configuration file can be specified on the command line of BNC.
The configuration file is line based, each line is a seperate option. What option is set is determined by the Directive in this format:
Directive_Name:Argument:Argument....
Required directives are D (Daemon Configuration) and S (Supervisor Password).
Format is as follows:
D:Listening port number:Maxusers limit number:Password
Listening port: Port number on the host to attach to. Maxusers limit number: Number of users that can be connected to BNC at the same time, 0 means unlimited. Password: An optional password required for an user to be able to use the proxy daemon.
S:Password
Password: A required Password for a normal user to become an admin
through use to the pre-connect command /quote MAIN (pass).
it is best to make the Supervisor pass and the listening pass be
two seperate passes.
All the other directives can be best represented within the example.conf file included with current versions of BNC, and are beyond the scope of this document. Please take time to read the config file and all included documentation before requesting new features.
Also note that after you compile bnc you can use ./bncsetup to create .conf files for you
James Seter [PAGE 4]
BNC IRC Proxy Daemon April 1998
3.1 ON-THE-FLY configuration commands
BNC includes raw level commands for control during the connection phase. After the connection password argument has been suceeded and the RFC required NICK and USER (should be provided by the client) are all satisfied, the proxy is in a Limbo stage where as certain configuration commands can be issued to change various options.
If the client cannot handle the command as just /COMMAND then issue the command as /QUOTE COMMAND or /RAW COMMAND or as the documentation of the client specifies to send directly to a server.
Syntax is in argument form as <REQUIRED> [optional]
Commands are as follows:
Normal users commands
PASS PASSWORD[:SERVER:PORT:SERVERPASS]
Some clients such as Mirc allows you to type /server blah password
pass is a feature that allows you to autoconnect to a real server
without using CONN inside the pass command.
/server irc.blah password:irc.irc.com:6668
CONN <server address> [port] [pass]
This will initialize a connection to the real irc server and begin
the two-way communication between you and the real irc server,
ending the bnc command session.
DOCK <password>
This will dock the current session to the background, closing your
client if keepalive is off.
RESUME <session> <password>
This will resume a docked session. If the server closes on a docked
session, it will no longer be resumable.
KEEPALIVE
turns on the keepalive function, instead of killing your connection
when irc dies it resumes to BNC server mode.
VIP [new virtual host]
Issuing VIP alone will list all the V lines included in the
configuration file. These lines are not required to use an address
and are only there for reference. VIP with an argument will change
the address that BNC will attempt to connect to irc with.
VDF
Issuing this command will restore the vhost to the address specified
on the X line of the connfiguration file, or if that line is absent,
restore it to the system default.
VN
This command will change the vhost to the system default, bypassing
the X line of that configuration file.
MAIN <Supervisor password>
Sucessful usage of this command will allow one to use the Admin
level commands.
Admin level commands
BWHO
This command will list the login time nick, and the File descripter
number for all current fully logged on users (meaning the user has
to of used the CONN command and be on IRC.
BKILL <FD>
This command will kill the user who's FD matches the argument.
DIE
This command is not fully functional, but will kill all users and
end the daemons running process.
BDIE
This command is more friend version of DIE.
BMSG
Experimental inter-bnc chat.
James Seter [PAGE 5]
BNC IRC Proxy Daemon April 1998
LISTHOST
Lists IP's allowed to use BNC.
ADDHOST <number (usually 1)> <wildcard IP>
Adds an IP to use bnc.
4. SETTING UP CRONTAB
BNC includes a script called bncchk that uses the pid file created by the BNC executable to determine if it is executing. The bncchk file needs to be edited and the proper lines modified:
BNCBIN=bnc
BNCPIDFILE=pid.bnc
BNCPATH=/home/bnc/bnc2.2.7
The name of the varible basically tells it all.
Inside the crontab should be the line:
0,10,20,30,40,50 * * * * /home/myself/bncchk >/dev/null 2>&1
Modify the path to the bncchk file. This line will check to see if bnc is running every 10 minutes, and if it is not running, will attempt to restart BNC with the information provided by the varibles in the bncchk file.
5. CREDITS
James Seter (Pharos) ....................: Pharos@gotbnc.com
Author of the program.
Brian Mitchell (Halflife) ...............: ??
One helluva good coder, coded the original base that was used
in pre 2.2.8 editions, without him, I may of never learned
sockets.
Unknown (White_dragon) ..................: WD@DAL.net
Ideas. Lots of patches. Major advancements to BNC.
Unknown (Volatile) ......................: vol@sekurity.org
Help on Bind and other socket protection
Unknown (Barubary) ......................: ??
Helped on fifo system
Unknown (IceWizard) .....................: ice@walt-disney.com
Very suggestive and helpfull person, wrote original ./bncsetup
James Nonnemaker (Postal Phreak) ........: Postal_Phreak@dal.net
Win95 Port/Suggestions
Unknown (dopey) .........................: doughpee@usa.net
example.conf reorganization and suggestions
Unknown (Y0SHi) .........................: yoshi@skipnet.com
Provided me with SunOS access for porting purposes.
Jason F. Aristide III (PurpleMotion) ....: PurpleMotion@DAL.net
Suggestions, Documents and example scripts.
Anybody else who sent me bug errors or suggestions, Thanks everybody.
6. THE GNU WAY
The GNU license can be found in the file COPYING included with this distribuition. Please read that file for a complete description of your rights as a user.
James Seter [PAGE 6]
