20/07/95 v0.61                  INN Setup (INN.ins)

Configuration of Linux Slackware INN_PKG for use with DEMON INTERNET SERVICES

    Copyright (C) 1995 Ivan A. Beveridge.           iab@@dreamtim.demon.co.uk

   This package is freely distributable.

-----------------------------------------------------------------------------

Preliminary Information
-----------------------

My system (For Your Information) is:
Slackware 2.1.1
INN_PKG installed (INN v1.4)
Perl installed (from d-series)
Linux Kernel 1.3.11 (bleedin' edge :^)
Dummy kernel net driver installed
Demon connection with CSLIP
slurp v1.10
slack2.1.help.tar.gz package (modified) from John Phillips
				(from ftp.demon.co.uk /pub/linux/Demon)

Although I set up quite a few bits up before using the Linux/Demon packages
mentioned in my README, I used the scripts for connecting and checking mail
and news (demon.dip, start.dip, stop.dip, querypost, procnews). My personal
preference for the scripts is /usr/local/sbin (except for demon.dip, which is
in /usr/local/etc), as they are locally setup. If you put them in different
places (originally they were in /etc and or /sbin), then check the paths in
start.dip and procnews (that should be all that has changed).

As mentioned earlier, I have included all that is required for News setup, and
so have also included slurp + man page. I use slurp, as I can specify to only
download a few groups, but setup more to be able to post to (via the active
file).

Although it may seem nice and easy to just copy all the configuration files
into the correct place and try to get it working quickly, it is normally better
to look at the changes I have made and make them. I say this because you may
find that some of the files I have included have been changed on your system
by installing it (and hence you may have difficulties). My first recommendation
is to save all "original" files with the extension ".ORIG", so that you have
something to go back to in case of problems. To make changes to the files, I
normally do:
		cp OLD-CONFIG-FILE OLD-CONFIG-FILE.ORIG
		cat NEW-CONFIG-FILE >> OLD-CONFIG-FILE
This adds the new file to the end of the old one, so you can easily take the
pieces that you want from the new file and delete the rest.



PRELIMINARY
==========

The "dummy" kernel network driver is needed for off-line news posting, etc.
This driver can be compiled into the kernel, or used as a module. Setting up 
the dummy driver is detailed in the BASIC package of Slack-help v2.2.0.


CNews -> INN conversion
-----------------------

This is for those of you who currently have CNews installed and would like to
opt for an easier life ;^)

As INN and CNews are effectively competing packages, you must choose which one
you want ... after you choose INN, carry out the following instructions:

1) Copy any configuration files that you want to keep from your CNews setup.
   I would recommend this if you have it working, in case you decide to go
   back to CNews - you can allways delete them later.

2) Remove the CNews package using pkgtool (run as root and select remove
   package .. .then select CNews).

3) Remove all the directories and files that remain from the CNews package
   and setup. The files that were deleted should be named in a file called
   /tmp/PKGTOOL.removed. You should get an idea of what to delete from there.
   Here is a list of what should be deleted from the CNews package that I
   have just looked at:
              rm -fr /var/lib/news
              rm -fr /usr/lib/newsbin
              rm -fr /usr/doc/cnews

4) Ensure that the /etc/password entry for the user "news" is set to 
   /usr/lib/news, eg:
	news:*:9:13:news:/usr/lib/news:

5) Install the INN package from the Slackware "network" series (currently on
   disk n3).


Setting up INN
==============

The INN_PKG is installed by Slackware in /usr/lib/news. The files that have
been changed are found under ./usr/lib/news. Ensure all files in *your*
/usr/lib/news are owned by both user and group "news". Check file ownership of
all other files that you are adding using this package (assume Slackware is
correct)!

For information on what each of the configuration files means, please read
the FILES.descript file. It would be beneficial to read this _short_ text
so you know what I have done and what it means.

The following states the files which you *must* (or may have to) configure - 
these contain computer-specific information, like machine name, your domain 
name, etc:

hosts.nntp
----------
YOURHOST.demon.co.uk		This means that you are able to "feed" news
				to your site (from your news reader).

inn.conf
--------
domain:   demon.co.uk		means that news articles posted from you will
				be in domain demon.co.uk
server:   YOURHOST.demon.co.uk	This sets the default NNTP server that you will
				use to *read* news. This is for when you dis-
				connect from Demon, and want to read news
				locally.

nnrp.access
-----------
YOURHOST.demon.co.uk:Read Post:::*
				means that you machine can read and post 
				articles to all newsgroups. Ensure that you
				put you host name in place of YOURHOST.
				(Note, if you have a domain name like 
				HOST.YOURCO.co.uk, change the name to this.

slurp.news.demon.co.uk
----------------------
This file contains a timestamp. This is the last time you downloaded news.
Set this to something reasonable - say yesterday. The format for the time is:
		YYMMDD HHMMSS



Further setting up
==================
Some other files need to be changed for INN to work correctly.

/etc/inetd.conf
---------------
The NNTP line must be commented out. The INN daemon is used for connections to
the NNTP port, not in.nntp:

#nntp   stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/in.nntpd


/etc/aliases
------------
This is a list of mail aliases, as used by Sendmail and Smail. The two I have
mentioned (news and usenet) are needed for reports to be sent after cronjobs.
Once you have added these lines (they are aliases as root here), do not
forget to run the command "newaliases" as root. This will put the aliases into
a database that the mail transport agent can understand.


/etc/syslog.conf
----------------
I have added an entry to this for news.debug:
news.debug                                      /var/adm/nntplog
		This puts any debugging info in the file named. It is useful
		for finding out any errors!

Also I have changed the original *.warn to *.err (as otherwise news articles
may add a line to the log file!).


/etc/profile and /etc/csh.login
-------------------------------
If you want to read news via NNTP (rather than reading the news files directly
off the local Linux machine), as per tine -r, then you will need to state
your NNTP server that you will read news from. This is generally your host,
although it can be set to any news server you wish. You do this by setting the
NNTPSERVER environment variable. This is done as follows for /etc/profile
(bash, zsh and ksh shells):

export NNTPSERVER=YOURHOST.demon.co.uk

..... and as follows for /etc/csh.login (csh shell):

setenv NNTPSERVER YOURHOST.demon.co.uk

This can just as easily be set to read news "on-line" from the Demon news
server as follows (for /etc/profile):

export NNTPSERVER=news.demon.co.uk

Obviousely this will only work when connected to Demon, and may end up
increasing your on-line time (and hence is not recommended).



Further Preparations
====================
Create the following files as follows:
       :>  /usr/lib/news/history
       :>  /usr/lib/news/history.dir
       :>  /usr/lib/news/history.pag
       :>  /usr/lib/news/errlog
       :>  /usr/lib/news/log

Type:
	chown news.news /usr/lib/news/history*
	chown news.news /usr/lib/news/*log
	chmod 644 /usr/lib/news/history*
	chmod 644 /usr/lib/news/*log


Run the program /usr/lib/news/tools.linux/makedirs.sh
-----------------------------------------------------
This creates the directories for the news articles to go into. It is run as:
	sh makedirs.sh


Read the file /usr/lib/news/tools.linux/INSTALL-linux
-----------------------------------------------------
Most of the above info has been gleaned from this file.



Trying out INN
==============
Reboot your machine, for the inetd and syslogd configurations to take place
(this can be carried out by killing the daemons, if you know what you are
doing, but is more awkward).

Ensure all the files you have changed in /usr/lib/news are owned by news.news.

Check to see if INN is working now. Use the following command to start INN,
when run as root:

/usr/lib/news/etc/rc.news

Use "ps -x" to see if INN is running. The entry should look something like
this:
   88 con S     0:00 /usr/lib/news/etc/innd -p4 -i0
   97 con S     0:00 /usr/lib/news/bin/overchan

Run /usr/lib/news/bin/inncheck (This requires you to have installed the perl 
package) as root. This checks the configuration files for errors and informs 
you. You will probably get the following error, which is OK:
/usr/lib/news/newsfeeds:0: ME entry accepts all incoming article distributions

Run /usr/lib/news/bin/news.daily as user "news". Do this from root user by:
su news -c /usr/lib/news/bin/news.daily &

Ensure every file and directory under /var/log/news is owned by news.news.

Try running a news reader (eg TIN), and posting a message in "junk"- does it
post OK, and come up as a new article?

Try reading man-pages for the files and programs used, as well as the text
files in /usr/lib/news/tools/linux.


FINALLY
=======
This is the last bit, just to make sure that all the administration is setup
OK.

/etc/rc.d/rc.local
------------------
I have added an entry here to start up INN on bootup. Add this when you have
INN working properly.


crontab.news
------------
This is the crontab for the user "news". To add it, use the following command
from root user:
crontab crontab.news -u news

Beware - this replaces any previous one you have for the user "news". All this
crontab does is:
* at 10pm every day, run the "news.daily" script and expire old articles.
* at 15 mins past every hour, unbatch any news that has been received.

This is pretty much the "default" news crontab (installed with Slackware), 
so you may prefer to check the one you have, rather than overwriting it.


READY TO RECEIVE NEWS?
======================
The remaining files that I have included are the binary and manual for
"slurp", and the edited script "procnews". Check that the programs run in 
the script files are correct (ie correct paths). Install all these files 
(I recommend slurp.1 in /usr/local/man/man1, and the rest of the scripts 
+ slurp in /usr/local/sbin [with demon.dip in /usr/local/etc]), and any 
others mentioned.

Try dialing up Demon to test the News connection.


ADDING / DELETING GROUPS
========================
If you want to add or delete (or do pretty much any news admin), you must
use /usr/lib/news/bin/ctlinnd. It is best to read the man page on this, but
here are some elementary processes:

Adding group "demon.local":  /usr/lib/news/bin/ctlinnd newgroup demon.local
Removing above group:	     /usr/lib/news/bin/ctlinnd rmgroup demon.local
Pause INN:		     /usr/lib/news/bin/ctlinnd pause "reason"
Reload all INN config files: /usr/lib/news/bin/ctlinnd reload all "reason"
Restart INN:		     /usr/lib/news/bin/ctlinnd go "reason"



PROBLEMS
========

Here are a few problems that I have encountered / heard of which may help you:

INN exits after I start it
--------------------------
This may be because the permissions for all the history files are incorrect.
A common problem is that they have owner/group as root/root rather than
news/news. Use chown to change this.
Another possible error is that the newsgroups control and junk have not been
added to the active list (this is a problem when trying to run innd in debug
mode).


I specify a newsgroup in SLURP.SYS, but the articles go to "junk"
-----------------------------------------------------------------
This is because you have not specified that newsgroup to INN. You can either
manually edit the "active" file (not so good), or you can use "ctlinnd
newgroup NEWS.GROUP.NAME" to add the group.


Slurp expects slurp.sys to be in /usr/local/lib news
----------------------------------------------------
That is correct, as the author of slurp wrote it for use with CNews. However
it can be used with INN. The Slackware INN_PKG _should_ have made a link
between /usr/local/lib/news and /usr/lib/news upon installation. If this
has not been made use the following command (as root) to create it:
cd /usr/local/lib ; ln -s news ../../lib/news


Sending mail causes a "host unknown" error and returned mail
------------------------------------------------------------
Ah - this is nothing to do with INN as such. It is to do with the setup of
your MTA (Mail Transport Agent) - generally either Sendmail or Smail. The
setup should be detailed in one of the other general Demon/Slackware
packages. I hacked the /etc/sendmail.cf file to work (slap wrist - should
be done using an M4 script), adding the following:
	# "Smart" relay host (may be null)
	DSsmtp:post.demon.co.uk
The DS macro is blank as default. Fingers crossed you should not get this 
error message again - sendmail should send the post to the mail server
pointed to by the MX records at Demon (this is the same for postings 
outside Demon).


When part-way through a news download it stops, mentioning unbatching.
----------------------------------------------------------------------
This is because "rnews -U" has been run in the middle of the download. This
causes slurp to get mixed up. Unfortunately I had set "rnews -U" to run at
quarter-past the hour in the news crontab. This is now fixed (news is
downloaded) to ..../in.coming/tmp and moved back to ..../in.coming for
unbatching.[v0.6]


I don't seem to be connecting to news2 for news downloads.
----------------------------------------------------------
The news machine news2.demon.co.uk was taken off-line around 6 May 1995, due
to great improvement of news.demon.co.uk (imp). Demon's DNS was adjusted to
point requests to news2 on to news. For those who have entries in /etc/hosts
for news2, you are likely to have problems. You should switch back to using
news.demon.co.uk, and delete the entry in your hosts file.


I get my hostname entered twice on the patch line of all my news postings.
--------------------------------------------------------------------------
This should not cause a problem .... just look horrible. This is due to the
work around I had to do to get the "NNTP-Posting-Host" entry correct (rather 
than saying "localhost", it now states your machine). I believe this is a 
Linux-specific problem (not INN) - if this is so it will hopefully get fixed 
soon in the kernel upgrades.
