vn_server is a C++ server which automatically or semi-automatically explores the network environment the host computer exists in.
Other network hosts are checked for available services like ftp or HTTP.
Different modules can be used to create, access and modify the
information about available hosts.
For example a simple HTTP server is included to provide the gathered
information to the user via a simple web browser.
This software can be used for example on LAN-Parties to generate an overview of the network, the available servers and their offered services.
NOTE: The vn_server software is in an early development stage so
it's likely to find some bugs or other nasty stuff. Thus I don't take
any kind of responsibility for harm or other sort of problems this software may cause.
Anyhow, the main features of the software should work. I'm currently working on improvements and
more features.
Requirements
vn_server needs the port scanner nmap properly installed to do it's
magic.
Check out www.insecure.org
The mySQL-Module needs the mySQL client library libmysqlclient
installed within the system. This library comes with the release of
the mySQL-database server.
Check www.mysql.com
The libxml2 library is used to load the configuration file. It
must be installed in the system.
Check out http://xmlsoft.org
Download
Download the latest source code release of vn_server at the Sourceforge Project Home. The current release has
only been tested on a Linux 2.4 system, but it should compile on all
Unix platforms. Please mail me your experiences !
Configuration
vn_server is configured by a configuration file called
".vn_server.xml" which must be located in the home directory of the
user which executes the server. This file MUST exists, if otherwise
vn_server won't start.
The usage of this file is fairly easy. It must comply to the
XML-standard and mainly contains the configuration of the modules. The
source code download contains a default configuration file which can
be used. You just need to set some specific values for some
modules. The configuration file contains comments which should explain
the correct settings.
It's important to go through the settings of the config file,
especially if you want to use the mySQL module
Different modules
Scan Module
This Module plays a vital role within the vn_server application
structure. Its task is to scan all available subnets for existing
hosts and the services of the hosts. The module utilizes the nmap
port scanner for this tasks. Once this data is gathered it's
written into the global hosts list.
The functionality of this module is implemented in the vnScanModule
class contained in the files vn_scanmodule.h and
vn_scanmodule.cpp.
mySQL Module
The mySQL module writes the list of hosts and their provided services
into a mySQL database. The mySQL database is kept up-to-date while the
server is running.
The functionality of this module is implemented in the vnDBmySQLModule
class contained in the files vn_dbmysqlmodule.h and vn_dbmysqlmodule.cpp.
HTTP Module
Via the HTTP-module the gathered information may be
provided to a standard web browser. Users just
"browse" to the address of the vn_server and can get a complete list
of all available hosts and their services. By default the port 2505 is
used. So you must insert http://localhost:2505 into your browsers
address bar. You can change this port in the configuration file. If
you want to use the default HTTP port, just insert 80 there. But keep
in mind that only processes stared by root can take ports under
1024.. !
You also may create your own style sheets to modify the look of the HTML
output. Please check the vnHTTPModule-section in the configuration file for details.
I've planned to extend this so a user can also sort or filter the
output.
The functionality of this module is implemented in the vnHTTPModule
class contained in the files vn_httpmodule.h and vn_httpmodule.cpp.
Please have a look at the code documentation contained in the doc
folder for further reference !
... further modules for nearly every task are planned !
Screen shots
.. at least I've got one screen shot for you ! It shows the HTTP module
which just returned the "complete" host list. OK, in fact this list
only contains my local machine, there are no other hosts on the
net... anyhow, the look is defined by the style sheet blue.css.
Work to do
..quite a lot...
But I think most important is to somehow optimize the scan process and
the automatic exploration of new subnets.
I'll also insert a module which provides a high level network
interface like CORBA to offer access for other applications. When this
is done, I plan to write a graphical client in Python which allows
full control over all modules and displays all gathered information.
Links and Contact
If you want to contact me, please drop me an email at Thomas.Hauth at
web.de ! I would like to hear from you !