3.3. Configuration Guide

The following sections provide detailed system configuration information.

3.3.1. Configuration Tutorial

Highwinds has tried to make the system very easy to configure. These simple step-by-step instructions will jump-start your site configuration.

3.3.2. Configuration File Specification

At startup, the system reads the <typhoon|twister|tornado_be>.conf and the feeds.conf files located in the top of the install area.

In both files, blank lines and lines beginning with a '#' character (except #include lines) are ignored. Entries in configuration files can be continued across multiple lines by ending the lines with the '\' character. Directive names are case-insensitive. The values "True" and "Yes", and the values "False" and "No", are case-insensitive and interchangeable.

3.3.3. Advanced Configuration Examples

3.3.3.1. Server Chaining

Note on Chaining. If you are looking to share spools with multiple servers, Tornado will work significantly better than chaining. Chaining has a number of inefficiencies and should only be used in disaster recovery scenarios.

In server chaining, one news server (the "slave") advertises and serves the articles stored on another news server (the "master"), in addition to its own articles. The user connects only to the slave server and only the slave server itself knows which articles are stored locally and which must be requested from the master. There are many situations where server chaining makes sense:

3.3.3.2. Virtual Servers

The virtual server feature in Typhoon, Twister, and Tornado Back End allows a single news server to appear as different news systems with different newsgroups. In order to create virtual servers, the Subscription, FilterSubscription, GroupAllowFile, and GroupDenyFile directives are used. Other directives such as WelcomeMessage and connection and interface limiting directives are used to describe and enable properties of each virtual server. It can also be enabled on a per-user or per-connection basis with the use of either file or program-based authentication.

After a client connection has connected (and, optionally, has been authenticated with either file-based or program-based authentication), it will be assigned a particular subscription and filter subscription. Also, it might optionally be assigned a group allow file and group deny file as well. The combination of these four parameters define which newsgroups the client is able to read articles from, and where posts may be made. Similar to their effect on spool objects, overview cache objects, and outgoing feeds, these directives allow precise control of which newsgroups are accessible by the connection.

In order for a message to be read or posted, the subscription and group allow file (if it exists) must match at least one newsgroup that the message has been posted to. Furthermore, the filter subscription and group deny file (if it exists) must not match any newsgroups that the message has been posted to. This allows the subscription and filter subscription to specify generalized access lists using glob-style patterns, and also allows the group allow files and group deny files to specify individual newsgroups.

All of the following examples will be described using a feed object context. However, all could be applied to the case where a user has special privileges as granted by an authentication file or an authentication program.

# Virtual server which has access to everything.
<Feed>
	IncomingHostNames 10.0.0.0/24
	Subscription *
	FilterSubscription !*
</Feed>

# Virtual server which has access to everything except clari.*
<Feed>
	IncomingHostNames 10.0.27.0/24
	Subscription *
	FilterSubscription clari.*
</Feed>


# Virtual server which has access to everything except things posted
# exclusively to alt.binaries.* or alt.sex.*
<Feed>
	IncomingHostNames 10.0.51.0/24
	Subscription *, !alt.binaries.*, !alt.sex.*
	FilterSubscription !*
</Feed>

# Virtual server for customer with only their internal newsgroups.
<Feed>
	IncomingHostNames *.company.com
	Subscription company.internal.*
	FilterSubscription !*
</Feed>

# Virtual server without child pornography newsgroups.
<Feed>
	IncomingHostnames *.school.edu
	Subscription *
	FilterSubscription *pedophil*
	GroupDenyFile ../etc/child-groups
</Feed>

../etc/child-groups contains:

alt.binaries.erotic.children
alt.binaries.pictures.child.erotica.female
alt.binaries.pictures.child.erotica.male
alt.binaries.pictures.child.starlets
alt.binaries.pictures.children
alt.binaries.pictures.erotic.children
alt.binaries.pictures.erotica.child
alt.binaries.pictures.erotica.child.female
alt.binaries.pictures.erotica.child.male
alt.binaries.pictures.erotica.children
alt.sex.children