Home
Documentation
Design Docs
Download
Screen Shots
Jar/Tar Files
Source
Email

Help support
open source at

Amalgam
 def: a mixture of different elements

Managing multiple Operating Systems under a single administrative umbrella

05/17/05

Yesterday I got all the parts working together. I concede it only does a directory listing of /tmp, but it works on any server from the admin client.  I will have the new source posted today.
Grab it here: [download
Screenshots: [screenshots]
Amalgam, the idea
behind the technology
During my Master's work in which I majored in Network Security I learned a great deal more about security than I ever imagined. There are a near infinite number of hacks, software and techniques that help evil doers thwart network security and the forensics' that seek to find who, what, when and where. It was during the last couple of semesters that I starting thinking of ways to prevent these attacks. Since I'm an avid supported Linux I thought it might be possible to write an API that would, at minimal, prevent some of the misfortunes that befall system administrators. Any admin will tell you it is quite impossible, regardless of how much you harden your systems, to prevent an internal attack. I went on to find a couple of statistics that show nearly 80% of backdoors and root-kits attacks are installed by people who work within a company. Armed with this information I came to the conclusion that if you could keep people off of your machines, a great many mischievous opportunities could be prevented. As I began designing an API that could securely, remote administer a Linux server I had the epiphany that it should not stop at Linux. Windows, Mac, IBM, Solaris or any machine that supported SUN's Java development kit should be capable of fitting the requirements. I went back to the drawing board to revise my thinking. With the second stage of design and analysis out of the way the software is slowing making it's way into the beta stage. 

It is the intent of this software to allow a single system administrator to have the ability to simultaneously administer multiple servers of any flavor, at any location, so long as they meet these two requirements:
1) They must be capable of supporting the Java API of 1.4.2 of greater.
2) Have the ability to keep a persistent connection open to the repository.

Please note that this application is under development in both design and software.  Input and/or suggestions would be greatly appreciated.
Purpose To bring any given number of OS's together under a single administrative umbrella. This application will support any OS that is Java compliant with network capability.
How does it work? Amalgam works in three tiers. 1) Client tier. Machines that are to be managed by the Amalgam remote admin. 2) Client Repository. Clients register with the repository and remain in a 'listen' mode for incoming commands. The clients can be configured to report errors or send reports based on pre-set configurations. 3) Remote Admin. This client (not yet decided if it is to be application based or web-based) will allow administrators to view log files, see processor information, stop/start applications, push or pull files (binaries .. etc). Each of these features can be done on a single server, group or global scale.
Basic Flow 1) Install the client on any java enabled platform.  Bring up the config UI, or manually edit the amalgam.client.xml. Enable/disable the modules that will be available for the client.  Modules can be written externally and manually added to the xml config. The config file is passed to the repository when it connects so it knows what modules are available. 

2) The Repository keeps a list of all client connections and stores a list of each module that is available per client.  Client modules are not stored in the repository, they remain at all times client side. [however...these can be auto-configured to download new versions by making use of the 'JAUUS' utility when a client initializes (Home) (Download)]

3) The Remote Client connects to the repository and can view all active client sessions and issue commands based on each clients permissions settings.

Examples of Client Modules: push/pull file, start/stop service, view statistics, restart system, send fax, print (remote).  Development will be quit lean in the beginning until I get all the bugs worked out.

Database

I have stood by a single, open source, java database for around 7 years now. This tiny database is fast, effective and has not once failed me in any of my open source projects.

Hypersonic Database [hsqldb] will be the engine which will control and maintain all of the configuration settings and control information for each client.  The DDL has been developed in such a way as to allow for -ANY- database to be used. Basic SQL will be taken advantage to keep the application portable.

Design Flow

 
Author
I presently work as a Sr. Application Architect for an ATM transaction processing company.  I received my B.S. in Computer Science and a Masters in Information Technology specializing in Network Security/Computer Forensics. Linux is my operating system of choice and I work hard to keep on top of the new and exciting changes that Java brings to the development table. I am a strong advocate of the Open Source movement and remain very thankful to the SourceForge community.
 

Copyright 2005 Steve Gee, All Rights Reserved