QCMD is intended as an access control manager for the ABONE. At the current time access control through a list in a file that are mirrored over the network.
QCMD uses a simple client-server architecture to mirror files located at the server site onto client sites. The mirroring is accomplished using one of two alternative protocols, push and pull.
In this protocol, the client maintains a hash of the file being mirrored. Periodically, it sends requests to the server, asking if the file in question had changed (a change is established through a change in the hash). The server reponds with either the new version of the file, or a no change message. A nonce together with a timestamp are used to prevent replay of messages.
In this protocol, the client registers with the server to receive updates of the file being mirrored. The server then sends the latest version of the file as soon as change happens. Again, a nonce and timestamp are part of the message.
After a period of time (the default is a week) the server stops sending update messages to the client. The client must resend a RegisterMe message again.
Note: the push protocol is currently being revised to work with TCP connections.
The distribution (consisting of binaries for each of the supported OS, installed at SRI's code server) includes three binaries. The way to start up the programs is to load the binaries onto an anetd through the aload command; refer to the anetd documentation for instructions on how to use the aload command.
As the name implies, this binary implements the QCMD server. The following options are supported:
The server program uses a 512 bit RSAREF keypair to communicate with the clients. This key can be generated with any standard RSAREF key generation program. The program expects to find the keypair in HOME/qcmd/public_key and HOME/qcmd/private_key.
The server gets it's configuration info from a config file. The config file that gets distributed (`qcmdserver.config') contains one line:
hosts = ACLfile "hosts.allow.txt"
The "hosts.allow.txt" is the name of the ACL file that the server distributes. This can be changed if you want the server to distribute some other file. For example:
hosts = ACLfile "my.allow.txt"
would make the server mirror a file called "my.allow.txt".
This binary implements the pull client. The following options are supported:
This binary implements the push client. The following options are supported:
This section explains some of the options which are common to all three qcmd executables.
The QCMD logs can get large pretty quickly. This option lets you limit the size of the logfile. When the log gets larger than the maximum size it gets copied into a file logfile .old (deleting any previous logfile .old file) and a new log is started.
When qcmd processes communicate each message gets stamped with the current time. Qcmd processes refuse to respond to messages which are too old (this stops adversaries from corrupting the ACL by resending old messages). The window option specifies the maximum age (positive or negative) a message can be and still be accepted by the qcmd process.
This document was generated using the LaTeX2HTML translator Version 97.1 (release) (July 13th, 1997)
Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -t QCMD manual -split +0 -no_navigation manual.
The translation was initiated by Michael McDougall on 5/8/2000