Configuring a Linux Newsgroup (NNTP) Server

Newsgroup Configuration

Newsgroups information is stored in a number of files on the server. Among those is the active file. The active file contains the list of currently active newsgroups. This is a text file that can be edited with any text editor, although that method is not recommended due to the possibility of syntax errors. It is recommended that you use the ctlinnd utility to properly setup your newsgroups. In order to run ctlinnd, innd must be running, and in order for innd to start you must have newsgroups in you active file. The active file usually ships with two default newsgroups, control and junk. If you simply view the active file you will notice the simple syntax.

To add a new newsgroups, simply perform the following command from within the /usr/local/news/bin directory

./ctlinnd newgroup y

This command will create the newsgroup that is a regular open group (y) and is owned by The email address at this stage, although specified, has no use. A group of type m (moderated) will forward all posts to the designated email address for approval before posting. You can review what was created by viewing the active file.

Connecting to Newsgroups

Before any user can connect to a newsgroup you must allow them access to the server. This is done via the readers.conf file in the /usr/local/news/etc folder. Syntax in this file is fairly simple and similar to the storage.conf file. You must define a minimum of two entries for each group of users you want to allow access to newsgroups.

The [auth], or authentication uses the information in the users IP header to act as a filter. Users are identified based on the source IP address of their reader, or their DNS name to match them with an access type. The [access] is used to identify what the user identified by the corresponding [auth] section is allowed to do. Access and Auth sections are matched using a label. Consider the following example of a section that allows all clients on the network to read and post to all newsgroups relating to security.

auth “group1” {
hosts: “”
default: “”

access “group1” {
users: “”
newsgroups: “security.*”
access: RP