Night Light IRC Proxy is a multi-user IRC (Internet Relay Chat) proxy written in C.
Night Light IRC Proxy (ircproxy) is a multi-user IRC (Internet Relay Chat) proxy written in C for UNIX compatible systems.
If you do not know what IRC is, then IRC proxy probably isn't for you.
This way you are protected behind the machine running the IRC proxy, connecting through a proxy will hide your machine's IP-address from other users on IRC.A IRC proxy is a program which works like a server, you connect to it with your IRC client and it connects you to the chosen server.
More simply explained, the IRC proxy will forward data sent by the IRC server to one or more IRC clients connected to the ircproxy, and forward data sent by the IRC clients to the IRC server.
The IRC proxy can also keep your connection to IRC alive even when you disconnect from the IRC proxy.
This IRC proxy is very flexible, it allows to configure multiple ports for listening, access by hostname or IP-address, multiple users and multiple connections and a optional ident server.
This is all done through the following configuration files:
A listen configuration file (listen.conf) where you specify what hosts and ports users can connect to.
A access configuration file (access.conf), where you specify which IP-addresses or hostnames users can connect to the ircproxy from.
A optional user configuration file (user.conf) (with optional encrypted passwords), where you specify usernames/password allowed that IRC clients must send to get access.
A connection configuration file (conn.conf) where the actual IRC connections to IRC servers is specified, each connection is owned by a specific user defined in user.conf.
The ircproxy can compile and run successfully on most UNIX systems. It has been successfully compiled and installed on FreeBSD, OpenBSD, NetBSD, Linux, Solaris, OSF1, HP-UX, AIX and Windows (Cygwin).
What exactly can ircproxy do?
Share your internet connection.
If you dont have direct access to the internet but another machine (router or server) on the network has internet access. You can share the internet connection using a this ircproxy for IRC access. Even your already using NAT, SOCKS or a forwarding proxy, ircproxy is probably preffered because it will allow you to have ident on IRC, and different ident can be replied for different users.
Get your own hostname from a shell ISP or hide your host behind a server.
If your internet service provider does not allow you to have a static IP with your own hostname, or you simply want to hide your real host. You can buy shell access from a ISP and eventually buy your own IP-address from the ISP to use with ircproxy.
Keep your IRC connection alive even when you disconnect with your IRC client.
If you have a dial up connection but want your client connected to IRC 24/7, you can install ircproxy on a server. This ircproxy will keep the IRC connection alive after you disconnect from the ircproxy with your IRC client.
Restrict data sent to the IRC server to prevent flooding the IRC server.
Solve problems getting disconnected with "Excess Flood", possible cause for this is that someone is flooding you with CTCP's or similar. This ircproxy will restrict you from sending data faster to the IRC server then the IRC server will allow. It will simply queue the data you send and keep it until the IRC server is ready to take more data without disconnecting you. However the queue is also restricted, there is a max sendQ, if it is reached your IRC client will be disconnected but the connection to the IRC server still stay alive.
One connection to IRC from more then one machine at the same time.
With ircproxy you can be connected to IRC from two or more machines at the same time without more then one connection to the IRC server. This ircproxy will allow you to resume a IRC server connection from more then one machine at the same time.
When you connect to the ircproxy with your IRC client, your host is first checked against the access configuration to see whether it can allow access from your host.
If access is denied by the access configuration rules, your IRC client will be disconnected with a message. Otherwise, your IRC client must send a "PASS", "USER" and "NICK" command to the ircproxy, once that is received, the username sent in "USER" and the password sent in "PASS" will be matched against usernames/password on the system (or user.conf), if it matches, the IRC client will be grated access.
Once your IRC client is connected to the ircproxy, you may select which connection to resume, as a user can have several IRC server connections defined in the connection configuration file. However users can only connect to the IRC servers defined in the connection configuration file, which give you more control. Connections stay alive independent of users, which mean that if a user disconnect from the proxy, the connection will still stay alive.
Several users can connect to the proxy with same username and resume the same IRC server connection. This feature is useful if you want to connect to IRC both from home and work at the same time without cloning.
A server administrator for a UNIX machine can install the ircproxy with the root option so that usernames and passwords are read from the system, instead of using a seperate configuration file for usernames and passwords. This way all users that have access to the system automatically have access to ircproxy.
With the root option and ident installed, the ircproxy can set correct ident for each connection. It can also save each users log files in their respective home directory.
The root option does not make the ircproxy run as root, it will immediately drop root privilege to the UID you set in 'make config' and only switch back to do small operations such as setting correct ident for a connection.