The DarkFire Verification System was designed for use mainly on the DarkFire IRC Network. This page will discuss several aspects of DVS, including the purpose of DVS, how DVS works, why you should or should not use DVS, what to do if the network you are using has implemented DVS, and how to easily remove DVS from this ircd.
For information regarding DVS on the DarkFire IRC Network, go here.
The DarkFire Verification System is designed to protect IRC Networks from attacks or otherwise undesired clients. To use networks with DVS, you must have a registered nickname and you must identify each time you connect. For information, you should seek the help files associated with services by doing /nickserv help.
For help on registering your nickname, please see /nickserv help REGISTER.
Until you identify to a nickname, you will have only limited functionality. You will be able to change your nickname and communicate with services, but you will not be able to use any other commands. The following is a list of commands DVS Protected users may execute:
Note: You must identify within 10 minutes or you will be temporarily banned from the IRC server (an expiring akill is added for 10 minutes).
Implementing DVS can provide an extra layer of security for your IRC Network. To be implemented effectively, however, you must provide an extra layer of protection for registering nicknames. Implementing DVS in IRCd alone will simply require clients (including bots) to register their nicknames. Combined with external authorization for nickname registration, however, DVS can provide a human-only IRC environment in which large amounts of clones and flood-bots are not feasable.
When using DVS, it is necessary that you have services that will be giving users the +r mode when they identify to their nicknames. Otherwise, DVS will prevent effective use of your network.
When you compile DarkFire IRCd v1.3.0 or later, DVS is automatically enabled. To disable DVS, edit include/config.h and find the following line:
#define USE_DVS 1
Change the line to the following:
You can now recompile DarkFire IRCd without DVS support.
DVS operators in 4 stages. It may be adventageous to have an external service monitor conditions (such as the number of clients and the rate of change of that number) and automatically update the DVS status.
Off (Level 0)
During this level, no connecting clients are given the DVS flag.
Limited (Level 1)
Only clients in a class that has a CONNFREQ of "10" are given the DVS flag. See the DVS document in the source distribution for more information on configuration. This allows a general state where most users are not limited but certain masks are required to identify.
Expanded (Level 2)
All clients except those in a class that has a CONNFREQ "20" are given then DVS flag. This is a heightened level of alert but still allows certain clients (opers, administrators, intranets, etc.) to be exempted.
Full (Level 3)
All clients are given the DVS flag.
When a client connects, it is evaluated on the basis of the current DVS status level. Whether services is online or not, the user is given the DVS flag. This flag is then passed on to all other (new) servers via the NICK statement.
When services is not present, the DVS flag is ignored. If a client has the DVS flag when services returns, it will be treated as if it just connected.
Clients that do not identify with 10 minutes are killed. If no other valid clients exist from that host, a temporary (10 minute) akill is added.
DVS status is removed when the user is set +r (after identifying to services) or is set +o (after becoming a GLOBAL IRCop).
No clients may message a DVS limited client unless they are either ULined or an IRCop.
This manual was updated on January 10th, 2004 and is current to df-1.3.6.
Networks using DVS are free to link to this page and/or to borrow from it in order to make their users' experience easier.
The DVS document that is part of the release package is located here.
Hosting services for this project are provided by Sourceforge.
This page is Copyright © 2002-2004, DarkFire Coding Team. All rights reserved. For more information, questions, or comments, please email firstname.lastname@example.org.