2415 lines
48 KiB
HTML
2415 lines
48 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>INN Configuration Files</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.57"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux Network Administrators Guide"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Internet News"
|
|
HREF="x-087-2-inn.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Configuring INN: the Basic Setup"
|
|
HREF="x18326.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Running INN"
|
|
HREF="x19004.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux Network Administrators Guide</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x18326.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Chapter 23. Internet News</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="x19004.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN18341"
|
|
>23.5. INN Configuration Files</A
|
|
></H1
|
|
><P
|
|
>
|
|
Having completed these general tasks, you can now turn to the really
|
|
interesting part of INN: its configuration files. All these files reside in
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/news</TT
|
|
>. Some changes to configurations files were
|
|
introduced in Version 2, and it is Version 2 that we describe here. If you're
|
|
running an older version, you should find this chapter useful to guide you in
|
|
upgrading your configuration. During the next few sections, we will discuss
|
|
them one by one, building the Virtual Brewery's configuration as an example.</P
|
|
><P
|
|
>If you want to find out more about the features of individual configuration
|
|
files, you can also consult the manual pages; the INN distribution contains
|
|
individual manual pages for each of them.</P
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18352"
|
|
>23.5.1. Global Parameters</A
|
|
></H2
|
|
><P
|
|
> There are a number of INN parameters that are global in nature; they
|
|
are relevant to all newsgroups carried.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18358"
|
|
>23.5.1.1. The inn.conf file</A
|
|
></H3
|
|
><P
|
|
> INN's main configuration file is <TT
|
|
CLASS="FILENAME"
|
|
>inn.conf</TT
|
|
>. Among other
|
|
things, it determines the name by which your machine is known on Usenet.
|
|
Version 2 of INN allows a baffling number of parameters to be configured in
|
|
this file. Fortunately, most parameters have default values that are
|
|
reasonable for most sites. The <TT
|
|
CLASS="FILENAME"
|
|
>inn.conf(5)</TT
|
|
> file details
|
|
all of the parameters, and you should read it carefully if you experience any
|
|
problems.</P
|
|
><P
|
|
>A simple example <TT
|
|
CLASS="FILENAME"
|
|
>inn.conf</TT
|
|
> might look like:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># Sample inn.conf for the Virtual Brewery
|
|
server: vlager.vbrew.com
|
|
domain: vbrew.com
|
|
fromhost: vbrew.com
|
|
pathhost: news.vbrew.com
|
|
organization: The Virtual Brewery
|
|
mta: /usr/sbin/sendmail -oi %s
|
|
moderatormailer: %s@uunet.uu.net
|
|
#
|
|
# Paths to INN components and files.
|
|
#
|
|
pathnews: /usr/lib/news
|
|
pathbin: /usr/lib/news/bin
|
|
pathfilter: /usr/lib/news/bin/filter
|
|
pathcontrol: /usr/lib/news/bin/control
|
|
pathdb: /var/lib/news
|
|
pathetc: /etc/news
|
|
pathrun: /var/run/news
|
|
pathlog: /var/log/news
|
|
pathhttp: /var/log/news
|
|
pathtmp: /var/tmp
|
|
pathspool: /var/spool/news
|
|
patharticles: /var/spool/news/articles
|
|
pathoverview: /var/spool/news/overview
|
|
pathoutgoing: /var/spool/news/outgoing
|
|
pathincoming: /var/spool/news/incoming
|
|
patharchive: /var/spool/news/archive
|
|
pathuniover: /var/spool/news/uniover
|
|
overviewname: .overview</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The first line tells the programs <B
|
|
CLASS="COMMAND"
|
|
>rnews</B
|
|
> and
|
|
<B
|
|
CLASS="COMMAND"
|
|
>inews</B
|
|
> which host to contact when delivering articles.
|
|
This entry is absolutely crucial; to pass articles to
|
|
<B
|
|
CLASS="COMMAND"
|
|
>innd</B
|
|
>, they have to establish an NNTP connection with
|
|
the server.</P
|
|
><P
|
|
>The <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>domain</SPAN
|
|
> keyword should specify
|
|
the domain portion of the host's fully qualified domain name. A couple of
|
|
programs must look up your host's fully qualified domain name; if your
|
|
resolver library returns the unqualified hostname only, the name given in the
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>domain</SPAN
|
|
> attribute is tacked onto it. It's not a problem to configure it either way, so it's best
|
|
to define <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>domain</SPAN
|
|
>.</P
|
|
><P
|
|
>The next line defines what hostname <B
|
|
CLASS="COMMAND"
|
|
>inews</B
|
|
> is going to use
|
|
when adding a <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>From:</I
|
|
></TT
|
|
> line to articles posted by local users.
|
|
Most newsreaders use the <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>From:</I
|
|
></TT
|
|
> field when composing a
|
|
reply mail message to the author of an article. If you omit this field, it
|
|
will default to your news host's fully qualifed domain name. This is ot
|
|
always the best choice. You might, for example, have news and mail handled
|
|
by two different hosts. In this case, you would supply the fully qualified
|
|
domain name of your mail host after the
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>fromhost</SPAN
|
|
> statement.</P
|
|
><P
|
|
>The <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>pathhost</SPAN
|
|
> line defines the hostname
|
|
INN is to add to the <TT
|
|
CLASS="LITERAL"
|
|
>Path:</TT
|
|
> header field whenever it
|
|
receives an article. In most cases, you will want to use the fully
|
|
qualified domain name of your news server; you can then omit this field since
|
|
that is the default. Occasionally you may want to use a generic name, such as
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>news.vbrew.com</I
|
|
>, when serving a large
|
|
domain. Doing this allows you to move the news system easily to a different
|
|
host, should you choose to at some time.</P
|
|
><P
|
|
>The next line contains the <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>organization</SPAN
|
|
>
|
|
keyword. This statement allows you to configure what text
|
|
<B
|
|
CLASS="COMMAND"
|
|
>inews</B
|
|
> will put into the <TT
|
|
CLASS="LITERAL"
|
|
>Organization:</TT
|
|
>
|
|
line of articles posted by your local users. Formally, you would place a
|
|
description of your organization or your organization's name in full here.
|
|
Should you not wish to be so formal, it is fashionable for organizations with
|
|
a sense of humor to exhibit it here.</P
|
|
><P
|
|
>The <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>organization</SPAN
|
|
> keyword is mandatory
|
|
and specifies the pathname of the mail transport agent that will be used
|
|
for posting moderator messages. <TT
|
|
CLASS="LITERAL"
|
|
>%s</TT
|
|
> is replaced by the
|
|
moderator email address.</P
|
|
><P
|
|
>The <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>moderatormailer</SPAN
|
|
> entry defines a
|
|
default address used when a user tries to post to a moderated newsgroup. The
|
|
list of moderator addresses for each newsgroup is usually kept in a separate
|
|
file, but you will have a hard time keeping track of all of them. The
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>moderatormailer</SPAN
|
|
> entry is therefore
|
|
consulted as a last resort; if it is defined, <B
|
|
CLASS="COMMAND"
|
|
>inews</B
|
|
> will
|
|
replace the <TT
|
|
CLASS="LITERAL"
|
|
>%s</TT
|
|
> string with the (slightly transformed)
|
|
newsgroup name and send the entire article to this address. For instance,
|
|
when posting to <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>soc. feminism</SPAN
|
|
>, the
|
|
article is mailed to
|
|
<SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>soc-feminism@uunet.uu.net</SPAN
|
|
>, given
|
|
the above configuration. At UUNET, there should be a mail alias installed for
|
|
each of these submissions addresses that automatically forwards all messages
|
|
to the appropriate moderator.</P
|
|
><P
|
|
>Finally, each of the remaining entries specifies the location of some component
|
|
file or executable belonging to INN. If you've installed INN from a package,
|
|
these paths should have been configured for you. If you're installing from
|
|
source, you'll need to ensure that they reflect where you've installed INN.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18401"
|
|
>23.5.2. Configuring Newsgroups</A
|
|
></H2
|
|
><P
|
|
>
|
|
|
|
The news administrator on a system is able to control which newsgroups
|
|
users have access to. INN provides two configuration files that
|
|
allow the administrator to decide which newsgroups to support and provide
|
|
descriptions for them.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18414"
|
|
>23.5.2.1. The active and newsgroups files</A
|
|
></H3
|
|
><P
|
|
>
|
|
The <TT
|
|
CLASS="FILENAME"
|
|
>active</TT
|
|
> and <TT
|
|
CLASS="FILENAME"
|
|
>newsgroups</TT
|
|
> files
|
|
are used to store and describe the newsgroups hosted by this news server.
|
|
They list which newsgroups we are interested in receiving and serving
|
|
articles for, and administrative information about them. These files are
|
|
found in the <TT
|
|
CLASS="FILENAME"
|
|
>/var/lib/news/</TT
|
|
> directory.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>active</TT
|
|
> file determines which newsgroups this
|
|
server supports. Its syntax is straightforward. Each line in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>active</TT
|
|
> file has four fields delimited by whitespace:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>name himark lomark flags</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>name</I
|
|
></TT
|
|
> field is the name of the
|
|
newsgroup. The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> field is the highest
|
|
number that has been used for an article in that newsgroup. The
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lomark</I
|
|
></TT
|
|
> field is the lowest active number in
|
|
use in the newsgroup. To illustrate how this works, consider the
|
|
follow scenario. Imagine that we have a newly created newsgroup:
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> and
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
> are both 0 because there are no
|
|
articles. If we post 5 articles, they will be numbered 1 through
|
|
5. <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> will now equal 5, the highest
|
|
numbered article, and <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
> will equal 1,
|
|
the lowest active article. If article 5 is cancelled there will be no
|
|
change; <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> will remain at 5 to ensure
|
|
that that article number is not reallocated and
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
> will remain at 1, the lowest active
|
|
article. If we now cancel article 1, <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
>
|
|
will remain unchanged, but <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
> will now
|
|
equal 2, because 1 is no longer active. If we now post a new article,
|
|
it will be assigned article number 6, so
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> will now equal 6. Article 5 has been
|
|
in use, so we won't reassign it. <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
>
|
|
remains at 2. This mechanism allows us to easily allocate unique
|
|
article numbers for new articles and to calculate approximately how
|
|
many active articles there are in the group:
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
>–<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lowmark</I
|
|
></TT
|
|
>.</P
|
|
><P
|
|
>The field may contain one of the following:
|
|
|
|
<P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>y</DT
|
|
><DD
|
|
><P
|
|
>Posting directly to this news server is allowed. </P
|
|
></DD
|
|
><DT
|
|
>n</DT
|
|
><DD
|
|
><P
|
|
>Posting directly to this news server is not allowed. This prevents newsreaders
|
|
from posting directly to this news server. New articles may only be received
|
|
from other news servers.</P
|
|
></DD
|
|
><DT
|
|
>m</DT
|
|
><DD
|
|
><P
|
|
>The group is moderated. Any articles posted to this newsgroup are forwarded
|
|
to the newsgroup moderator for approval before they enter the newsgroup. Most
|
|
newsgroups are unmoderated.</P
|
|
></DD
|
|
><DT
|
|
>j</DT
|
|
><DD
|
|
><P
|
|
>Articles in this group are not kept, but only passed on. This causes the
|
|
news server to accept the article, but all it will do with it is pass it to
|
|
the “up-stream” news servers. It will not make the articles
|
|
available to newsreaders reading from this server.</P
|
|
></DD
|
|
><DT
|
|
>x</DT
|
|
><DD
|
|
><P
|
|
>Articles cannot be posted to this newsgroup. The only way that news articles
|
|
are delivered to this server is by feeding them from another news server.
|
|
Newsreaders may not directly write articles to this server.</P
|
|
></DD
|
|
><DT
|
|
>=<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>foo.bar</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Articles are locally filed into the ``foo.bar'' group.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
>
|
|
|
|
In our simple server configuration we'll carry a small number of
|
|
newsgroups, so our <TT
|
|
CLASS="FILENAME"
|
|
>/var/lib/news/active</TT
|
|
> file will
|
|
look like:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>control 0000000000 0000000001 y
|
|
junk 0000000000 0000000001 y
|
|
rec.crafts.brewing 0000000000 0000000001 y
|
|
rec.crafts.brewing.ales 0000000000 0000000001 y
|
|
rec.crafts.brewing.badtaste 0000000000 0000000001 y
|
|
rec.crafts.brewing.brandy 0000000000 0000000001 y
|
|
rec.crafts.brewing.champagne 0000000000 0000000001 y
|
|
rec.crafts.brewing.private 0000000000 0000000001 y</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> and <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lomark</I
|
|
></TT
|
|
>
|
|
numbers in this example are those you would use when creating new newsgroups.
|
|
The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>himark</I
|
|
></TT
|
|
> and <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>lomark</I
|
|
></TT
|
|
>
|
|
numbers will look quite different for a newsgroup that has been active for
|
|
some time.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>newsgroups</TT
|
|
> file is even simpler. It provides
|
|
one-line descriptions of newsgroups. Some newsreaders are
|
|
able to read and present this information to a user to help them decide
|
|
whether they want to subscribe.</P
|
|
><P
|
|
>The format of the <TT
|
|
CLASS="FILENAME"
|
|
>newsgroups</TT
|
|
> file is simply:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>name description</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>name</I
|
|
></TT
|
|
> field is the name of a newsgroup, and the <<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>description</I
|
|
></TT
|
|
> is a single line description of that newsgroup.</P
|
|
><P
|
|
>We want to describe the newsgroups that our server supports, so we'll build
|
|
our <TT
|
|
CLASS="FILENAME"
|
|
>newsgroups</TT
|
|
> file as follows:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>rec.crafts.brewing.ales Home brewing Ales and Lagers
|
|
rec.crafts.brewing.badtaste Home brewing foul tasting brews
|
|
rec.crafts.brewing.brandy Home brewing your own Brandy
|
|
rec.crafts.brewing.champagne Home brew your own Champagne
|
|
rec.crafts.brewing.private The Virtual Brewery home brewers group</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18490"
|
|
>23.5.3. Configuring Newsfeeds</A
|
|
></H2
|
|
><P
|
|
>
|
|
|
|
INN provides the news administrator the ability to control which
|
|
newsgroups are forwarded on to other news servers and how they will be
|
|
forwarded. The most common method uses the NNTP protocol described
|
|
earlier, but INN also allows newsfeeds via other protocols, such as UUCP.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18502"
|
|
>23.5.3.1. The newsfeeds file</A
|
|
></H3
|
|
><P
|
|
> The <TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
> file determines where news articles
|
|
will be sent. It normally resides in the <TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/</TT
|
|
>
|
|
directory.</P
|
|
><P
|
|
>The format of the <TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
> is a little complicated at
|
|
first. We'll describe the general layout here, and the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds(5)</TT
|
|
> manual page describes
|
|
what we leave out. The format is as follows:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># newsfeeds file format
|
|
site:pattern:flags:param
|
|
site2:pattern2\
|
|
:flags2:param2</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
Each news feed to a site is described by a single line, or may be
|
|
spread across multiple lines using the \ continuation character. The
|
|
: characters delimit the fields in each line. The # character at the
|
|
start of a line marks that line as a comment.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>site</I
|
|
></TT
|
|
> field names the site to which this feed
|
|
description relates. The sitename can be coded any way you like and
|
|
doesn't have to be the domain name of the site. The site name will be
|
|
used later and will refer to an entry in a table that supplies the
|
|
hostname to the <B
|
|
CLASS="COMMAND"
|
|
>innxmit</B
|
|
> program that transmits the
|
|
news articles by NNTP to the remote server. You may have multiple
|
|
entries for each site; each entry will be treated individually.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>pattern</I
|
|
></TT
|
|
> field specifies which news groups are
|
|
to be sent to this site. The default is to send all groups, so if that
|
|
is what you want, just make this field empty. This field is usually a
|
|
comma-delimited list of pattern-matching expressions. The * character
|
|
matches zero or more of any character, the . character has no special
|
|
significance, the ! character (if used at the start of an expression)
|
|
performs a logical NOT, and the @ character at the start of a
|
|
newsgroup name means “Do not forward any articles that are
|
|
posted or crossposted to this group.” The list is read and
|
|
parsed from left to right, so you should ensure that you place the
|
|
more specific rules first. The pattern:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>rec.crafts.brewing*,!rec.crafts.brewing.poison,@rec.crafts.brewing.private</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>would send all of the <I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing</I
|
|
> news heirarchy
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>except</I
|
|
> the <I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.poison</I
|
|
>.
|
|
It would not feed any articles that were either posted or crossposted to the
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.private</I
|
|
> newsgroup; these articles will
|
|
be trapped and available only to those people who use this server.
|
|
If you reversed the first two patterns, the first pattern would be overridden
|
|
by the second and you would end up feeding articles for the
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.poison</I
|
|
> newsgroup. The same is true of
|
|
the first and last patterns; you must always place the more specific
|
|
patterns before any less specific patterns for them to take effect.</P
|
|
><P
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>flags</I
|
|
></TT
|
|
> controls and places constraints on the feed
|
|
of news articles to this site. The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>flags</I
|
|
></TT
|
|
> field is a
|
|
comma delimited list can contain any of the items from the following list, delimited by commands:</P
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
><<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>size</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Article must be less then size bytes.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>A</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>items</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Article checks. <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>items</I
|
|
></TT
|
|
> can be one or more of
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>d</TT
|
|
> (must have Distribution header) or
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>p</TT
|
|
> (don't check for site in Path header).</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>B</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>high</I
|
|
></TT
|
|
>/<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>low</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Internal buffer size before writing to output.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>H</TT
|
|
>[<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>count</I
|
|
></TT
|
|
>]</DT
|
|
><DD
|
|
><P
|
|
>Article must have less then <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>count</I
|
|
></TT
|
|
> hops; the default is 1.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>I</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>size</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Internal buffer size (for a file feed).</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>M</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>pattern</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Only moderated groups that match the pattern.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>N</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>pattern</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Only unmoderated groups that match the pattern.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>S</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>size</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Start spooling if more than size bytes get queued.</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>T</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>type</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Feed types: <TT
|
|
CLASS="LITERAL"
|
|
>f</TT
|
|
> (file), <TT
|
|
CLASS="LITERAL"
|
|
>m</TT
|
|
> (funnel; the
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>param</I
|
|
></TT
|
|
> field names the entry that articles will be
|
|
funneled to), <TT
|
|
CLASS="LITERAL"
|
|
>p</TT
|
|
> (pipe to program), <TT
|
|
CLASS="LITERAL"
|
|
>c</TT
|
|
>
|
|
(send to stdin channel of the <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>param</I
|
|
></TT
|
|
> field's
|
|
subprocess), and <TT
|
|
CLASS="LITERAL"
|
|
>x</TT
|
|
> (like c, but handles commands on stdin).</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>W</TT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>items</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>What to write: <TT
|
|
CLASS="LITERAL"
|
|
>b</TT
|
|
> (article bytesize), <TT
|
|
CLASS="LITERAL"
|
|
>f</TT
|
|
>
|
|
(full path), <TT
|
|
CLASS="LITERAL"
|
|
>g</TT
|
|
> (first newsgroup), <TT
|
|
CLASS="LITERAL"
|
|
>m</TT
|
|
>
|
|
(Message ID), <TT
|
|
CLASS="LITERAL"
|
|
>n</TT
|
|
> (relative path), <TT
|
|
CLASS="LITERAL"
|
|
>s</TT
|
|
> (site
|
|
that fed article), <TT
|
|
CLASS="LITERAL"
|
|
>t</TT
|
|
> (time received), <TT
|
|
CLASS="LITERAL"
|
|
>*</TT
|
|
>
|
|
(names of funnel feed-ins or all sites that get the article),
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>N</TT
|
|
> (newsgroups header), <TT
|
|
CLASS="LITERAL"
|
|
>D</TT
|
|
> (distribution
|
|
header), <TT
|
|
CLASS="LITERAL"
|
|
>H</TT
|
|
> (all headers), <TT
|
|
CLASS="LITERAL"
|
|
>O</TT
|
|
> (overview
|
|
data), and <TT
|
|
CLASS="LITERAL"
|
|
>R</TT
|
|
> (replication data).</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
>The <TT
|
|
CLASS="LITERAL"
|
|
>param</TT
|
|
> field has special coding that is dependent on
|
|
the type of feed. In the most common configuration it is where you specify
|
|
the name of the output file to which you will write the outgoing feed.
|
|
In other configurations you can leave it out. In yet other configurations
|
|
it takes on different meanings. If you want to do something unusual, the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds(5)</TT
|
|
> manual page will explain the use of the
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>param</TT
|
|
> field in some detail.</P
|
|
><P
|
|
>There is a special site name that should be coded as <TT
|
|
CLASS="LITERAL"
|
|
>ME</TT
|
|
>
|
|
and should be the first entry in the file. This entry is used to control
|
|
the default settings for your news feeds. If the <TT
|
|
CLASS="LITERAL"
|
|
>ME</TT
|
|
>
|
|
entry has a distribution list associated with it, this list will
|
|
be prepended to each of the other site entries before they are sent.
|
|
This allows you to, for example, declare some
|
|
newsgroups to be automatically fed, or automatically blocked from
|
|
feeding, without having to repeat the pattern in each site entry.</P
|
|
><P
|
|
>We mentioned earlier that it was possible to use some special feeds to
|
|
generate thread data that makes the newsreader's job easier. We'll do this
|
|
by exploiting the <B
|
|
CLASS="COMMAND"
|
|
>overchan</B
|
|
> command that is part of the
|
|
INN distribution. To do this, we've created a special local feed called
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>overview</TT
|
|
> that will pass the news articles to the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>overchan</B
|
|
> command for processing into overview data.</P
|
|
><P
|
|
>Our news server will provide only one external news feed, which goes to
|
|
the Groucho Marx University, and they receive articles for
|
|
all newsgroups except the <I
|
|
CLASS="EMPHASIS"
|
|
>control</I
|
|
> and
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>junk</I
|
|
> newsgroups, the
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.private</I
|
|
> newsgroup, which will be
|
|
kept locally, and the <I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.poison</I
|
|
>
|
|
newsgroup, which we don't want people from our brewery seen posting to.</P
|
|
><P
|
|
>We'll use the <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> command to transport the news via
|
|
NNTP to the <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>news.groucho.edu</SPAN
|
|
> server. <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> requires us to use the “file”
|
|
delivery method and to write the article's pathname and article ID. Note
|
|
that we've set the <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>param</I
|
|
></TT
|
|
> field to the name of the output
|
|
file. We'll talk a little more about the <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
>
|
|
command in a moment. Our resulting newsfeed's configuration is:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># /etc/news/newsfeeds file for the Virtual Brewery
|
|
#
|
|
# Send all newsgroups except the control and junk ones by default
|
|
ME:!control,!junk::
|
|
#
|
|
# Generate overview data for any newsreaders to use.
|
|
overview::Tc,WO:/usr/lib/news/bin/overchan
|
|
#
|
|
# Feed the Groucho Marx University everything except our private newsgroup
|
|
# and any articles posted to the rec.crafts.brewing.poison newsgroup.
|
|
gmarxu:!rec.crafts.brewing.poison,@rec.crafts.brewing.private:\
|
|
Tf,Wnm:news.groucho.edu
|
|
#</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
> </P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18637"
|
|
>23.5.3.2. The nntpsend.ctl file</A
|
|
></H3
|
|
><P
|
|
>
|
|
The <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> program manages the transmission of
|
|
news articles using the NNTP protocol by calling the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>innxmit</B
|
|
> command. We saw a simple use of the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> command earlier, but it too has a
|
|
configuration file that provides us with some flexibility in how we
|
|
configure our news feeds.</P
|
|
><P
|
|
>The <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> command expects to find batch files
|
|
for the sites it will feed. It expects those batch files to be named
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/var/spool/news/out.going/<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>sitename</I
|
|
></TT
|
|
></TT
|
|
>. <B
|
|
CLASS="COMMAND"
|
|
>innd</B
|
|
>
|
|
creates these batch files when acting on an entry in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
>, which we saw in the previous
|
|
sections. We specified the sitename as the filename in the
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>param</I
|
|
></TT
|
|
> field, and that satisfies the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> command's input requirements.</P
|
|
><P
|
|
>The <B
|
|
CLASS="COMMAND"
|
|
>nntpsend</B
|
|
> command has a configuration file called
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>nntpsend.ctl</TT
|
|
> that is usually stored in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/</TT
|
|
> directory.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>nntpsend.ctl</TT
|
|
> file allows us to associate a fully
|
|
qualified domain name, some news feed size constraints, and a number of
|
|
transmission parameters with a news feed site name. The sitename is a means
|
|
of uniquely identifying a logical feed of articles.
|
|
The general format of the file is:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>sitename:fqdn:max_size:[args]</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The following list describes the elements of this format:</P
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>sitename</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The sitename as supplied in the <TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
> file</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>fqdn</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The fully qualified domain name of the news server to which we will be feeding
|
|
the news articles</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>max_size</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The maximum volume of news to feed in any single transfer</P
|
|
></DD
|
|
><DT
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>args</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Additional arguments to pass to the <B
|
|
CLASS="COMMAND"
|
|
>innxmit</B
|
|
> command</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
>Our sample configuration requires a very simple
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>nntpsend.ctl</TT
|
|
> file. We have only one news feed. We'll
|
|
restrict the feed to a maximum of 2 MB of traffic and we'll pass an
|
|
argument to the <B
|
|
CLASS="COMMAND"
|
|
>innxmit</B
|
|
> that sets a 3-minute
|
|
(180 second) timeout. If we were a larger site and had many news feeds,
|
|
we'd simply create new entries for each new feed site that looked much
|
|
the same as this one:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># /etc/news/nntpsend.ctl
|
|
#
|
|
gmarxu:news.groucho.edu:2m:-t 180
|
|
#</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
> </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18693"
|
|
>23.5.4. Controlling Newsreader Access</A
|
|
></H2
|
|
><P
|
|
>
|
|
Not so many years ago, it was common for organizations to provide public
|
|
access to their news servers. Today it is difficult to locate public news
|
|
servers; most organizations carefully control who has access to their
|
|
servers, typically restricting access to users supported on their network.
|
|
INN provides configuration files to control this access.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18703"
|
|
>23.5.4.1. The incoming.conf file</A
|
|
></H3
|
|
><P
|
|
>
|
|
We mentioned in our introduction to INN that it achieves some of its
|
|
efficiency and size by separating the news feed mechanism from the
|
|
newsreading mechanism. The
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/incoming.conf</TT
|
|
> file is where you specify
|
|
which hosts will be feeding you news using the NNTP protocol, as well
|
|
as where you define some parameters that control the way articles are
|
|
fed to you from these hosts. Any host not listed in this file that
|
|
connects to the news socket will not be handled by the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>innd</B
|
|
> daemon; instead, it will be handled by the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>nnrpd</B
|
|
> daemon.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/incoming.conf</TT
|
|
> file syntax is
|
|
very simple, but it takes a moment to come to terms with. Three types of
|
|
valid entries are allowed: key/value pairs, which are how you specify
|
|
attributes and their values; peers, which is how you specify the name
|
|
of a host allowed to send articles to us using NNTP; and groups, a means
|
|
of applying key/value pairs to groups of peers. Key/value
|
|
pairs can have three different types of scope. Global pairs apply to
|
|
every peer defined in the file. Group pairs apply to all peers defined
|
|
within that group. Peer pairs apply only to that one peer. Specific
|
|
definitions override less specific ones: therefore, peer definitions
|
|
override group definitions, which in turn override global pairs.</P
|
|
><P
|
|
>Curly brace characters (<TT
|
|
CLASS="LITERAL"
|
|
>{}</TT
|
|
>) are used to delimit the
|
|
start and end of the <TT
|
|
CLASS="LITERAL"
|
|
>group</TT
|
|
> and <TT
|
|
CLASS="LITERAL"
|
|
>peer</TT
|
|
>
|
|
specifications. The # character marks the rest of the
|
|
line it appears on as a comment. Key/value pairs are separated by the
|
|
colon character and appear one to a line.</P
|
|
><P
|
|
>A number of different keys may be specified. The more common
|
|
and useful are:
|
|
|
|
<P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>hostname</DT
|
|
><DD
|
|
><P
|
|
>This key specifies a comma-separated list of fully qualifed names or IP
|
|
addresses of the peers that we'll allow to send us articles. If this key is
|
|
not supplied, the hostname defaults to the label of the peer.</P
|
|
></DD
|
|
><DT
|
|
>streaming</DT
|
|
><DD
|
|
><P
|
|
>This key determines whether streaming commands are allowed from this host.
|
|
It is a Boolean value that defaults to <TT
|
|
CLASS="LITERAL"
|
|
>true</TT
|
|
>.</P
|
|
></DD
|
|
><DT
|
|
>max-connections</DT
|
|
><DD
|
|
><P
|
|
>This key specifies the maximum number of connections allowed from this group
|
|
or peer. A value of zero means unlimited (which can also be specified using
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>none</TT
|
|
>).</P
|
|
></DD
|
|
><DT
|
|
>password</DT
|
|
><DD
|
|
><P
|
|
>This key allows you to specify the password that must be used by a peer if it
|
|
is to be allowed to transfer news. The default is to not require a password.</P
|
|
></DD
|
|
><DT
|
|
>patterns</DT
|
|
><DD
|
|
><P
|
|
>This key specifies the newsgroups that we accept from the associated peer.
|
|
This field is coded according to precisely the same rules as we used in our
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
> file.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
> </P
|
|
><P
|
|
>In our example we have only one host that we are expecting to feed us
|
|
news: our upstream news provider at Groucho Marx
|
|
University. We'll have no password, but we will ensure that we don't
|
|
accept any articles for our private newsgroup from outside. Our
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>hosts.nntp</TT
|
|
> looks like:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># Virtual Brewery incoming.conf file.
|
|
|
|
# Global settings
|
|
streaming: true
|
|
max-connections: 5
|
|
|
|
# Allow NNTP posting from our local host.
|
|
peer ME {
|
|
hostname: "localhost, 127.0.0.1"
|
|
}
|
|
|
|
# Allow groucho to send us all newsgroup except our local ones.
|
|
peer groucho {
|
|
hostname: news.groucho.edu
|
|
patterns: !rec.crafts.brewing.private
|
|
}</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
> </P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18749"
|
|
>23.5.4.2. The nnrp.access file</A
|
|
></H3
|
|
><P
|
|
>
|
|
We mentioned earlier that newsreaders, and in fact any host not listed
|
|
in the <TT
|
|
CLASS="FILENAME"
|
|
>hosts.nntp</TT
|
|
>, that connect to the INN news
|
|
server are handled by the <B
|
|
CLASS="COMMAND"
|
|
>nnrpd</B
|
|
> program. <B
|
|
CLASS="COMMAND"
|
|
>nnrpd</B
|
|
> uses the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/nnrp.access</TT
|
|
> file to determine who is
|
|
allowed to make use of the news server, and what permissions they
|
|
should have.</P
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>nnrp.access</TT
|
|
> file has a similar structure to the other
|
|
configuration files we've looked at. It comprises a set of patterns used to
|
|
match against the connecting host's domain name or IP address, and fields
|
|
that determine what access and permission it should be given. Each entry
|
|
should appear on a line by itself, and fields are separated by colons. The
|
|
last entry in this file that matches the connecting host will be the one
|
|
used, so again, you should put general patterns first and follow them with
|
|
more specific ones later in the file. The five fields of each entry in
|
|
the order they should appear are:
|
|
|
|
<P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>Hostname or IP address</DT
|
|
><DD
|
|
><P
|
|
>This field conforms to <TT
|
|
CLASS="FILENAME"
|
|
>wildmat(3)</TT
|
|
> pattern-matching rules. It is a pattern that describes the connecting host's name or IP address.</P
|
|
></DD
|
|
><DT
|
|
>Permissions</DT
|
|
><DD
|
|
><P
|
|
>This field determines what permissions the matching host should be granted.
|
|
There are two permissons you may configure: <TT
|
|
CLASS="LITERAL"
|
|
>R</TT
|
|
> gives
|
|
read permissions, and <TT
|
|
CLASS="LITERAL"
|
|
>P</TT
|
|
> gives posting permissions.</P
|
|
></DD
|
|
><DT
|
|
>Username</DT
|
|
><DD
|
|
><P
|
|
>This field is optional and allows you to specify a username that an NNTP
|
|
client must log into the server before being allowed to post news
|
|
articles. This field may be left blank. No user authentication is required
|
|
to read articles.</P
|
|
></DD
|
|
><DT
|
|
>Password</DT
|
|
><DD
|
|
><P
|
|
>This field is optional and is the password accompanying the
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>username</I
|
|
></TT
|
|
> field. Leaving this field blank means that no
|
|
password is required to post articles.</P
|
|
></DD
|
|
><DT
|
|
>Newsgroups</DT
|
|
><DD
|
|
><P
|
|
>This field is a pattern specifying which newsgroups the client is allowed to
|
|
access. The pattern follows the same rules as those used in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>newsfeeds</TT
|
|
> file. The default for this field is no
|
|
newsgroups, so you would normally have a pattern configured here.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
> </P
|
|
><P
|
|
>In the virtual brewery example, we will allow any NNTP client in the Virtual
|
|
Brewery domain to both read and post to all newsgroups. We will allow any NNTP
|
|
client read-only access to all newsgroups except our private internal
|
|
newsgroup. Our <TT
|
|
CLASS="FILENAME"
|
|
>nnrp.access</TT
|
|
> file will look like this:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># Virtual Brewery - nnrp.access
|
|
# We will allow public reading of all newsgroups except our private one.
|
|
*:R:::*,!rec.crafts.brewing.private
|
|
|
|
# Any host with the Virtual Brewery domain may Read and Post to all
|
|
# newsgroups
|
|
*.vbrew.com:RP::*</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18793"
|
|
>23.5.5. Expiring News Articles</A
|
|
></H2
|
|
><P
|
|
>
|
|
|
|
When news articles are received by a news server, they are stored to
|
|
disk. News articles need to be available to users for some period of
|
|
time to be useful, so a large operating news server can consume lots
|
|
of disk space. To ensure that the disk space is used effectively, you
|
|
can opt to delete news articles automatically after a period of
|
|
time. This is called <B
|
|
CLASS="COMMAND"
|
|
>article expiration</B
|
|
>. Naturally,
|
|
INN provides a means of automatically expiring news articles.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18807"
|
|
>23.5.5.1. The expire.ctl file</A
|
|
></H3
|
|
><P
|
|
> The INN server uses a program called <B
|
|
CLASS="COMMAND"
|
|
>expire</B
|
|
> to delete
|
|
expired news articles. The <B
|
|
CLASS="COMMAND"
|
|
>expire</B
|
|
> program in turn uses a
|
|
file called <TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/expire.ctl</TT
|
|
> to configure
|
|
the rules that govern article expiration.</P
|
|
><P
|
|
>The syntax of <TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/expire.ctl</TT
|
|
> is fairly simple.
|
|
As with most configuration files, empty lines or lines beginning with the #
|
|
character are ignored. The general idea is that you specify
|
|
one rule per line. Each rule defines how article expiration will be performed
|
|
on newsgroups matching a supplied pattern. The rule syntax looks like this:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>pattern</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>modflag</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>keep</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>default</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>purge</I
|
|
></TT
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The following list describes the fields:
|
|
|
|
<P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>pattern</DT
|
|
><DD
|
|
><P
|
|
>This field is a comma-delimited list of patterns matching names of
|
|
newsgroups. The <TT
|
|
CLASS="FILENAME"
|
|
>wildmat</TT
|
|
> (3) routine is used to
|
|
match these patterns. The last rule matching a newsgroup name is the
|
|
one that is applied, so if you want to specify wildcard (*) rules,
|
|
they should be listed first in this file.</P
|
|
></DD
|
|
><DT
|
|
>modflag</DT
|
|
><DD
|
|
><P
|
|
>This flag describes how this rule applies to moderated newsgroups. It can be
|
|
coded with an <TT
|
|
CLASS="LITERAL"
|
|
>M</TT
|
|
> to mean that this rule applies only to
|
|
moderated newsgroups, a <TT
|
|
CLASS="LITERAL"
|
|
>U</TT
|
|
> to mean that this rule applies
|
|
only to unmoderated newsgroups, or an <TT
|
|
CLASS="LITERAL"
|
|
>A</TT
|
|
> to mean that this
|
|
rule ignores the moderated status and applies to all groups.</P
|
|
></DD
|
|
><DT
|
|
>keep</DT
|
|
><DD
|
|
><P
|
|
>This field allows you to specify the minimum time an article with an
|
|
“Expires” header will be kept before it is expired. The units
|
|
are days, and are a floating point, so you may specify values like
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>7.5</TT
|
|
> for seven-and-a-half days. You may also specify
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>never</TT
|
|
> if you wish articles to stay in a newsgroup forever.</P
|
|
></DD
|
|
><DT
|
|
>default</DT
|
|
><DD
|
|
><P
|
|
>This field is the most important. This field allows you to specify the
|
|
time an article without an <TT
|
|
CLASS="LITERAL"
|
|
>Expires</TT
|
|
> header will be
|
|
kept. Most articles won't have an <TT
|
|
CLASS="LITERAL"
|
|
>Expires</TT
|
|
>
|
|
header. This field is coded in the same way as the
|
|
<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>keep</I
|
|
></TT
|
|
> field, with <TT
|
|
CLASS="LITERAL"
|
|
>never</TT
|
|
> meaning
|
|
that articles without <TT
|
|
CLASS="LITERAL"
|
|
>Expires</TT
|
|
> headers will never be
|
|
expired.</P
|
|
></DD
|
|
><DT
|
|
>purge</DT
|
|
><DD
|
|
><P
|
|
>This field allows you to specify the maximum time an article with an
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>Expires</TT
|
|
> header will be kept before it is expired. The coding
|
|
of this field is the same as for the <TT
|
|
CLASS="LITERAL"
|
|
>keep</TT
|
|
> field.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></P
|
|
><P
|
|
>Our requirements are simple. We will keep all articles in all newsgroups
|
|
for 14 days by default, and between 7 and 21 days for articles that have
|
|
an <TT
|
|
CLASS="LITERAL"
|
|
>Expires</TT
|
|
> header.
|
|
The <I
|
|
CLASS="EMPHASIS"
|
|
>rec.crafts.brewing.private</I
|
|
> newsgroup is our internal
|
|
newsgroup, so we'll make sure we don't expire any articles from it:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
># expire.ctl file for the Virtual Brewery
|
|
|
|
# Expire all articles in 14 days by default, 7-21 days for those with
|
|
# Expires: headers
|
|
*:A:7:14:21
|
|
|
|
# This is a special internal newsgroup, which we will never expire.
|
|
rec.crafts.brewing.private:A:never:never:never</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
> </P
|
|
><P
|
|
>We will mention one special type of entry you may have in your
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/news/expires.ctl</TT
|
|
> file.
|
|
You may have exactly one line that looks like this:
|
|
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>/remember/:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>days</I
|
|
></TT
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
This entry allows you to specify the minimum number of days that an article
|
|
will be remembered in the history file, irrespective of whether the article
|
|
itself has been expired or not. This might be useful if one of the sites that
|
|
is feeding you articles is infrequent and has a habit of sending you old
|
|
articles every now and again. Setting the <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>/remember/</I
|
|
></TT
|
|
>
|
|
field helps to prevent the upstream server from sending you the article again,
|
|
even if it has already been expired from your server. If your server remembers
|
|
it has already received the article, it will reject attempts to resend it.
|
|
It is important to remember that this setting has no effect at all on article
|
|
expiration; it affects only the time that details of an article are kept in the history database.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN18867"
|
|
>23.5.6. Handling Control Messages</A
|
|
></H2
|
|
><P
|
|
> Just as with C News, INN can automatically process control messages.
|
|
INN provides a powerful configuration mechanism to control what action will
|
|
occur for each of a variety of control messages, and an access control
|
|
mechanism to control who can initiate actions against which newsgroups.</P
|
|
><DIV
|
|
CLASS="SECT3"
|
|
><H3
|
|
CLASS="SECT3"
|
|
><A
|
|
NAME="AEN18873"
|
|
>23.5.6.1. The control.ctl file</A
|
|
></H3
|
|
><P
|
|
> The <TT
|
|
CLASS="FILENAME"
|
|
>control.ctl</TT
|
|
> file is fairly simple in structure.
|
|
The syntax rules for this file are much the same as for the other INN
|
|
configuration files. Lines beginning with <TT
|
|
CLASS="LITERAL"
|
|
>#</TT
|
|
>
|
|
are ignored, lines may be continued using <TT
|
|
CLASS="LITERAL"
|
|
>/</TT
|
|
>, and
|
|
fields are delimited by <TT
|
|
CLASS="LITERAL"
|
|
>:</TT
|
|
>.</P
|
|
><P
|
|
>When a control message is received, it is tested against each rule in turn.
|
|
The last rule in the file that matches the message is the rule that will be
|
|
used, so you should put any generic rules at the start of the file and
|
|
more specific rules at the end of the file. The general syntax of the file is:</P
|
|
><P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
><TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>message</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>from</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>newsgroups</I
|
|
></TT
|
|
>:<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>action</I
|
|
></TT
|
|
></PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></P
|
|
><P
|
|
>The meanings of each of the fields are:
|
|
|
|
<P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>message</DT
|
|
><DD
|
|
><P
|
|
>This is the name of the control message. Typical control messages are
|
|
described later.</P
|
|
></DD
|
|
><DT
|
|
>from</DT
|
|
><DD
|
|
><P
|
|
>This is a shell-style pattern matching the email address of the person
|
|
sending the message. The email address is converted to lowercase before comparison. </P
|
|
></DD
|
|
><DT
|
|
>newsgroups</DT
|
|
><DD
|
|
><P
|
|
>If the control message is <TT
|
|
CLASS="LITERAL"
|
|
>newgroup</TT
|
|
> or
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>rmgroup</TT
|
|
>, this field is a shell-style pattern matching
|
|
the newsgroup created or removed.</P
|
|
></DD
|
|
><DT
|
|
>action</DT
|
|
><DD
|
|
><P
|
|
>This field specifies what action to take for any message matching the rule.
|
|
There are quite a number of actions we can take; they are
|
|
described in the next list.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></P
|
|
><P
|
|
>The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>message</I
|
|
></TT
|
|
> field of each line can have one of the following values:</P
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>checkgroups</DT
|
|
><DD
|
|
><P
|
|
>This message requests that news administrators resynchonrize their
|
|
active newsgroups database against the list of newsgroups supplied in
|
|
the control message.</P
|
|
></DD
|
|
><DT
|
|
>newgroup</DT
|
|
><DD
|
|
><P
|
|
>This message requests the creation of a new newsgroup. The body of the
|
|
control message should contain a short description of the purpose of
|
|
the newsgroup to be created.</P
|
|
></DD
|
|
><DT
|
|
>rmgroup</DT
|
|
><DD
|
|
><P
|
|
>requests that a newsgroup be removed.</P
|
|
></DD
|
|
><DT
|
|
>sendsys</DT
|
|
><DD
|
|
><P
|
|
> This message requests that the <TT
|
|
CLASS="FILENAME"
|
|
>sys</TT
|
|
> file of this
|
|
news server be transmitted by mail to the originator of the control
|
|
message. RFC-1036 states that it is a requirement of Usenet membership
|
|
that this information be publicly available because it is used to
|
|
keep the map of Usenet up to date.</P
|
|
></DD
|
|
><DT
|
|
>version</DT
|
|
><DD
|
|
><P
|
|
> This message requests that the hostname and version of news server
|
|
software be returned to the originator of the control message. </P
|
|
></DD
|
|
><DT
|
|
>all</DT
|
|
><DD
|
|
><P
|
|
>This is a special coding that will match any control message.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
>The <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>message</I
|
|
></TT
|
|
> field may include the following actions:</P
|
|
><P
|
|
></P
|
|
><DIV
|
|
CLASS="VARIABLELIST"
|
|
><DL
|
|
><DT
|
|
>doit</DT
|
|
><DD
|
|
><P
|
|
>The requested command is performed. In many cases, a mail message will
|
|
be sent to the administrator to advise them that the action has taken place.</P
|
|
></DD
|
|
><DT
|
|
>doit=<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>file</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is the same as the <TT
|
|
CLASS="LITERAL"
|
|
>doit</TT
|
|
> action except
|
|
that a log message will be written to the <I
|
|
CLASS="EMPHASIS"
|
|
>file</I
|
|
>
|
|
log file. If the specified file is <I
|
|
CLASS="EMPHASIS"
|
|
>mail</I
|
|
>, the log
|
|
entry is sent by email. If the specified file is the null string, the
|
|
log message is written to <TT
|
|
CLASS="FILENAME"
|
|
>/dev/null</TT
|
|
> and is equivalent
|
|
to using the unqualified <TT
|
|
CLASS="LITERAL"
|
|
>doit</TT
|
|
> action. If the
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>file</I
|
|
> name begins with a / character, the name is
|
|
taken to be an absolute filename for the logfile; otherwise, the specified
|
|
name is translated to
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/var/log/news/file.log</TT
|
|
>.</P
|
|
></DD
|
|
><DT
|
|
>doifarg</DT
|
|
><DD
|
|
><P
|
|
>The requested command is performed if the command has an argument.
|
|
If the command has no argument, the control message is ignored.</P
|
|
></DD
|
|
><DT
|
|
>drop</DT
|
|
><DD
|
|
><P
|
|
>The requested command is ignored.</P
|
|
></DD
|
|
><DT
|
|
>log</DT
|
|
><DD
|
|
><P
|
|
>A log message is sent to the <TT
|
|
CLASS="LITERAL"
|
|
>stderr</TT
|
|
> output of the
|
|
<B
|
|
CLASS="COMMAND"
|
|
>innd</B
|
|
> process. This is normally directed out to the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/var/log/news/errlog</TT
|
|
> file.</P
|
|
></DD
|
|
><DT
|
|
>log=<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>file</I
|
|
></TT
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is the same as a <TT
|
|
CLASS="LITERAL"
|
|
>log</TT
|
|
> action, except the
|
|
logfile is specified as per the rules given for the
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>doit</TT
|
|
>=<TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>file</I
|
|
></TT
|
|
> action.</P
|
|
></DD
|
|
><DT
|
|
>mail</DT
|
|
><DD
|
|
><P
|
|
>An email message is sent to the news administrator containing the
|
|
requested command details. No other action takes place.</P
|
|
></DD
|
|
><DT
|
|
>verify-*</DT
|
|
><DD
|
|
><P
|
|
>
|
|
If an action begins with the string “<TT
|
|
CLASS="LITERAL"
|
|
>verify-</TT
|
|
>”,
|
|
then the control message is authenticated using PGP (or
|
|
GPG).<A
|
|
NAME="AEN18994"
|
|
HREF="#FTN.AEN18994"
|
|
>[1]</A
|
|
></P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
><P
|
|
>So that you can see what a <TT
|
|
CLASS="FILENAME"
|
|
>control.ctl</TT
|
|
> file would look
|
|
like in practice, here is a very short illustrative sample:</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
>## Sample /etc/news/control.ctl
|
|
##
|
|
## Warning: You should not use this file, it is illustrative only.
|
|
|
|
## Control Message Handling
|
|
all:*:*:mail
|
|
checkgroups:*:*:mail
|
|
ihave:*:*:drop
|
|
sendme:*:*:drop
|
|
sendsys:*:*:log=sendsys
|
|
senduuname:*:*:log=senduuname
|
|
version:*:*:log=version
|
|
newgroup:*:*:mail
|
|
rmgroup:*:*:mail
|
|
|
|
## Handle control messages for the eight most important news heirarchies
|
|
## COMP, HUMANITIES, MISC, NEWS, REC, SCI, SOC, TALK
|
|
checkgroups:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop
|
|
newgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop
|
|
rmgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop
|
|
checkgroups:group-admin@isc.org:*:verify-news.announce.newgroups
|
|
newgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups
|
|
newgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups
|
|
newgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups
|
|
rmgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups
|
|
rmgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups
|
|
rmgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups
|
|
|
|
## GNU ( Free Software Foundation )
|
|
newgroup:gnu@prep.ai.mit.edu:gnu.*:doit
|
|
newgroup:news@*ai.mit.edu:gnu.*:doit
|
|
rmgroup:gnu@prep.ai.mit.edu:gnu.*:doit
|
|
rmgroup:news@*ai.mit.edu:gnu.*:doit
|
|
|
|
## LINUX (Newsfeed from news.lameter.com)
|
|
checkgroups:christoph@lameter.com:linux.*:doit
|
|
newgroup:christoph@lameter.com:linux.*:doit
|
|
rmgroup:christoph@lameter.com:linux.*:doit</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><H3
|
|
CLASS="FOOTNOTES"
|
|
>Notes</H3
|
|
><TABLE
|
|
BORDER="0"
|
|
CLASS="FOOTNOTES"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="5%"
|
|
><A
|
|
NAME="FTN.AEN18994"
|
|
HREF="x18341.html#AEN18994"
|
|
>[1]</A
|
|
></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="95%"
|
|
><P
|
|
>PGP and GPG are tools designed to authenticate or encrypt messages using
|
|
public key techniques. GPG is the GNU free version of PGP. GPG may be found
|
|
at <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>http://www.gnupg.org/</SPAN
|
|
>, and PGP may be
|
|
found at <SPAN
|
|
CLASS="SYSTEMITEM"
|
|
>http://www.pgp.com/</SPAN
|
|
>.</P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x18326.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x19004.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Configuring INN: the Basic Setup</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="x-087-2-inn.html"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Running INN</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |