NAME
FILES - File structure of the server/client.
Last update: 2004-09-15
SERVER
OVERVIEW
The typical server setup looks like this:
tpl/ HTML templates
tpl/styles/ styles for HTML output
tpl/mail/ email template files
tpl/help/ HTML versions of the /doc POD files
doc/ documentation in pod format
build/ scripts related to building the
distribution and HTML help
worker/ the worker files
target/ job targets
target/dictionaries dictionary files
target/data Job/Chunk description files (dynamically
created by the server)
config/ configuration files
lib/ source code (the program itself)
logs/ log files are stored here
scripts/ scripts to convert input files to
target hashes or target files
msg/ message strings in various languages
def/ Various definition files, f. i. for
the valid requests, objects etc
Note that several of the directorie names can be changed through the config file settings. This includes f.i. the log and script directories.
Templates
The template directory contains HTML template files, which will be read in and filled with information for each request.
See also styles.
Styles
Under tpl/styles
are the various GUI styles that can be selected to change to look of the web interface. Files inside these directories override the files in tpl/
, e.g. they will be prefered over the normal version in tpl/
if present in the current style directory.
Help
The HTML versions of the .pod files were created at build-time and are located under tpl/help/
.
To re-generate them, you can use the scripts provided in the build/
directory.
Worker
The default directory for the worker files is worker
. This can be changed in the configuration file server.cfg
, although a differently named directory doe currently not work properly - it must start with worker/
!
For each platform/architecture exists one directory in the worker directory:
worker/linux/
worker/mswin32/
etc
The worker files are then located in these directories.
Other directories under each architecture directory can contain files for sub-architectures. For instance:
worker/linux/i386/
Could contain files that should be server to clients reporting in as linux-i386
. These override the normal files, so if a file does not exist in worker/architecture/sub-arch/
then it will be served from worker/architecture
as a fallback.
Dictionaries
Each dictionary charset is tied to a dictionary file. These dictionary files are located in target/dictionaries/
.
Data files
The default directory for the server main data files is data
. This is the offline storage of the server's memory - e.g. the current state of anything.
This can be changed in the configuration file server.cfg
.
The following file names are used per default. This can be overwritten in the server.cfg
file as well:
cases.lst
charsets.lst
clients.lst
groups.lst
jobs.lst
jobtypes.lst
proxies.lst
results.lst
testcases.lst
users.lst List of user accounts (for administation)
CLIENT
The typical client setup looks like this:
client The client in itself
lib/ The libraries the client uses
msg/ The messages the client outputs in different
languages
def/ Definition files used by the client
config/client.cfg Client config file
In addition, the following directories must exist with write permission for the user and group the client is running under, because the client will be storing some things in them.
worker/ Worker files
target/ Target files are stored here
cache/ Certain files are cached here (f.i. by wget)
log/ The log files in case of errors.
It is safe to delete anything when the client is not running in these directories (you might want to keep the logfiles, though), because everything that is missing will be downloaded by the client automatically.
Worker files
Just as with the server, the workers are stored inside the worker/
directory. Each architecture get's its own subdirectory, so your client will typically store the workers inside of only one subdirectory. Some of the known archictures are:
linux
mswin32
os2
armv4l
darwin
solaris
If a directory for the current archictecture the client is running on does not exist, it will be created.
Sub-architecture directories will not be used by the client, the client will store files from them in the architecture directory directly as to override the files there.
Charset definitions
Charset definitions are usually stored in a file called worker/charsets.def
.
Dictionaries
Each dictionary charset is tied to a dictionary file. These dictionary files are downloaded and stored by the client in target/dictionaries/
.
Log files
The client creates a logfile named client_ID.log
, where ID is replaced with the ID the client is currently running under (see commandline option --id
in CLient.pod). When the initialization of the client failes, especially when it got no ID, then it will try to write an error log to the file client.log
.
Target files files
Each job might have zero or more target files. These are files that contain additional info about that particular job. They are typical stored in the target/
directory and are named like:
job_123.tgt
Where 123 is the ID of the job.
Job description files
Additional data about a job (like the prefix and dictionary to use etc) were stored in a file named like:
target/123.set
where 123 is the ID of the job. These files were automatically creatred by the server and downloaded also automatically by the client.
Chunk/Job Description Files (CDF or JDF)
Additional data about a particular chunk (like the prefix for each password, a dictionary to use, or some extra data etc) are stored in a file named like:
Chunk description file:
target/data/2/2-2.txt
Job description file:
target/data/2/2.set
These files are created by the server, automatically downloaded by the client and, in case of a CDF, are deleted after the chunk has been processed.
Here is an example file:
## This file was automatically generated. Do not edit.
## Chunk description file for job 3, chunk 2.
charset_id=222
image_file="target/images/image_3_2.img"
image_type=0
extract_set_id=2
start=3
end=11
password_prefix=666f6f626172
target=4142434445
For a full specification of the contents of these files, see doc/Config.pod
in the Dicop::Workeframe
package which you can find at our web site.
AUTHOR
(c) Bundesamt fuer Sicherheit in der Informationstechnik 1998-2004
DiCoP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
See the file LICENSE or http://www.bsi.bund.de/ for more information.