SmartGuardian v 1.0 Public

by 
SmartSoft Network Solutions, Inc.
SmartGuardian Software System

Distribution site: 
http://senior.ceng.metu.edu.tr/2006/smartsoft/

For problems and assistance please first visit the above website and 
download the latest version. 

If you have any questions and problems not mentioned at the website, 
you can reach the SmartSoft team at: SmartSoftGroup[at]Gmail.com

******************************************************************************

COPYRIGHT

Copyright (C)2006 SmartSoft Software Solutions, Inc.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

******************************************************************************

DESCRIPTION

SmartGuardian is an application level gateway with advanced features 
such as content filtering and web access control according to the rules 
defined by the administrator.

The SmartGuardian system uses Bayesian Algorithm techniques to classify 
new sites based on the previous experiences the system has had. For 
gathering words and frequencies used in classification, a module called 
Crawler has been developed and integrated to the system. This module is 
for administrators wishing to gather specialized web site classification 
data that can be in the native language of the users.

SmartGuardian is composed of 3 major components: SmartGuardian Wall, 
SmartGuardian Crawler and SmartGuardian Controller. SmartGuardian Wall 
and SmartGuardian Crawler is implemented in C++ and SmartGuardian 
Controller is implemented using PHP.

The basic functionalities of the SmartGuardian system is as follows:

SmartGuardian Wall is the module that is at the heart of the system. It 
is the actual interface the users of the system see. The Wall listens 
on default port 3490 and serves the web requests from the clients. The 
policies the user has is enforced by the Wall module. 

SmartGuardian Crawler is the module responsible for the classifications 
of web sites. It uses Bayesian Algorithm techniques to classify web 
sites on-the-fly. This classification is used in deciding whether to 
deny the request or not to the user, based on his/her policy.

SmartGuardian Controller is a PHP interface of the system, so that the 
network administrator is able to control the system via an easy to use 
interface.

******************************************************************************

USAGE

Command line usage:
	
	smartguardian [options]

Options:
	-crawler

	This options starts the crawling process. The crawler module 
	than visits the websites inside the files in the training 
	folder (which is located in the data folder) and examines 
	the content of these websites, this content data will be 
	used when classifying a website and the Wall module will 
	decide whether to block the page or not depending on the 
	access policy of the user.

General Description:

Once installed, SmartGuardian system can be started via executing 
the smartguardian command. To start the Crawler, you can specify 
"-crawler" option.

Web interface usage:

To manage the SmartGuardian system through the web interface, just 
point your browser to the URI your Controller files are located at. 
You will see a login page and after logging in, you will be able to 
manage the system.

******************************************************************************

INSTALLATION

Download the latest version of the SmartGuardian software from the 
website. The software packages are tar gzipped. To extract them, 
issue the command "tar -xvzf SmartGuardian-X.X.tar.gz" where X.X 
is the version number.

Make sure all the project dependencies are resolved. To see what is
required by the SmartGuardian system, read DEPENDENCIES file and 
install needed programs before attempting to install SmartGuardian.

After meeting the dependencies, to install the latest version of 
SmartGuardian, just follow the simple steps defined in the INSTALL 
file. In short, change your working directory to the directory 
where you extracted smartguardian files. After this, usually all 
you have to do is a simple "configure && make && make install". 
Do not forget to become root user before the installation of 
SmartGuardian.

For more information about the installation procedures, please 
read the INSTALL file.

******************************************************************************

POST INSTALLATION PROCEDURES

After installing SmartGuardian, some post installation configurations
have to be made. The following steps are needed to ensure the correct
workings of the system, please follow these steps in order to have a
full working system.


The configuration files are in /usr/local/share/SmartGuardian. To 
configure the system, you must change these documents.


1. Database setup

Database is the vital part of the SmartGuardian system. All user,
policy data as well as the word-frequency table used in web site
classification is kept in the memory. Thus, a working MySQL server
is needed for SmartGuardian. As stated in the DEPENDENCIES file,
you can install MySQL server by downloading the free software the 
MySQL web site.

After installing MySQL server, you now need to create tables and
insert preconfigured data into it. Do not worry about this, we have
prepared SQL script that will automate this task for you. All the 
table data and default values are inside the database script found 
in the database.sql file in the above mentioned directory and in the
data folder inside the program installation directory.
Follow these simple steps to have your database set up:

	(1) First make sure that your MySQL server is up and running.
	To start your MySQL server, check your MySQL server 
	documentation. Usually, you can start the MySQL server from
	the services GUI in linux.
	
	(2) Connect to the database using a user who has database
	creation priveleges. This command is something like:
	
	"mysql -u username -p"
	
	replace username above with your real username and supply
	your password after executing this command, when asked. 
	After this step, you have connected to the MySQL server
	and you will see the MySQL server waiting for your input.
	
	"mysql>"

	(3) Create a database on the server. Change your working
	database to this database. After changing to the database
	that smartguardian will be using, create related tables and
	default information by the following command:

	"source path_to_script"

	After this command, you will see that MySQL server creates 
	you the necessary database and tables and fills with 
	preconfigured data.

2. Database Configuration:

Database configuration is made by modifying the Database.conf 
configuration file found in the above mentioned directory. In order
to have correct database information, fill hostname, database name
username and pasword information in the configuration file. You have
to fill this information in the related line. For example, you will
see the first line as:
"Hostname="
in order to connect to the database, fill this with the hostname of
your MySQL server. If you have your database on the same computer as
where SmartGuardian is installed, you can write here "localhost" for
example, as seen below:
"Hostname=localhost"
Note that do not include white space after the equal sign.

Sample configuration file looks similar to:

Hostname=myserver
Username=mysqluser
Password=pass
Database Name=smartguardian

3. Controller Setup

In order to use the Controller module to manage the SmartGuardian 
server, you need to copy the controller directory in the
/usr/local/share/SmartGuardian directory to the web server directory
where it will be served to the clients as requested.

4. Controller Configuration:

Please read the user manual for detailed information about the
Controller module configuration.

5. Authenticator Configuration:

Authentication configuration data is in this file. Usually users
only need to modify the "Expiration Time" variable as it controls
how long will the inactivity logout time will be. If a logged in
user does not do anything for the specified amount of time, he will
be prompted to login again.

This is all the configuration that is needed to be done. For more 
information, please read the User Manual provided with other 
documentation, in the /usr/local/doc/SmartGuardian directory.

******************************************************************************

INSTALLED FILES

The executable is located in the /usr/local/bin directory.

Documentation files are in the /usr/local/doc/SmartGuardian directory.

The configuration files are in the /usr/local/share/SmartGuardian directory.

******************************************************************************

README Prepared by the SmartSoft Team,

To reach us,
SmartSoftGroup@gmail.com

Enjoy!

/* $Id: README,v 1.1 2006/05/28 13:02:08 tayfun */
