I’ve been using INN for long enough now to appreciate some of its quirks and features. Because of this, I don’t really want to install it from a package, but much prefer to build it from the source. One of the primary reasons for this is that INN gets big, even with just the small subset of groups I hold. By installing it from source, everything is (by default) held under a single directory of /usr/local/news. I make this a mountpoint and then my news service is totally self-contained through upgrades, reinstalls and crashes.
Under Debian, the news user exists by default, I just changed the Home Directory and put a password on it. Logged in as news and then copied over .bash_profile and .bashrc from another user account.
Because I want SSL support in INN, I first need to install the openssl package, and also the libssl-dev package.
Next I downloaded the latest INN stable build from ftp.isc.org to /usr/local/src, then untar’d it and changed ownership of the new INN directory to user news.
Ran:
./configure –with-perl –with-openssl –with-sendmail=/usr/sbin/sendmail
Configure went through with no issues.
‘make’ though fails with a:
/usr/bin/ld: cannot find -lperl
This is because the libperl-dev package is not installed. Installed that and tried again.
‘make install’ as root worked with no issues. Hey, I’ve got INN installed now!
make cert fails:
For some reason Makefile thinks the path to SSLBIN is /bin/openssl when it should be /usr/bin/openssl. I just edited the Makefile and changed this and it ran with no problems. I have some concerns though; what impact might this have on other parts of the compile.
Following the INSTALL file now:
storage.conf doesn’t need changing, it defaults to tradspool.
inn.conf needs a couple of parameters changed, all very obvious.
newsfeeds comes next, obviously this requires all the feeds in it, but basic stuff below:
Uncomment the innfeed lines and add a -y on the end of startinnfeed.
Uncomment the inpaths statement to save path information for reporting.
Add feeds as required, standard format for one below:
#Feed to Glorb. Contact: xxxxx. Email: xxxxx@glorb.com
news-in.glorb.com/news.glorb.com
:*,!junk,!control*,!local*
:Tm:innfeed!
Configure incoming.conf – Very obvious one to do
Configure expire.ctl – Very obvious as well, as per INSTALL instructions
Configure readers.conf – Haven’t configured anything whilst testing, localhost only
That’s it for configuration files.
Make sure ~/bin and ~/man are configured in path and manpath. There are options to uncomment for this in .bash_profile.
The old INN requirement to make history databases seems to have gone away. I’ve already got them on this build without doing anything. Need to set ownership correctly though, they should be news:news.
Configure Syslog:
# Logging for INN news system
#
news.crit /usr/local/news/log/news.crit
news.err /usr/local/news/log/news.err
news.notice -/usr/local/news/log/news.notice
#news.debug /usr/local/news/log/news.debug
Configure Crontab:
0 3 * * * /usr/local/news/bin/news.daily expireover lowmark
Configure /etc/hosts:
The hosts file must have the server name directed to 127.0.0.1 or Message-ID’s will come out as <foobarbaz@localhost.localdomain>. This caused me a few issues as my webserver is configured to only listen on its external network interface, so resolving the hostname to 127.0.0.1 meant I couldn’t access it from the local host.
Init Script
I’ve pinched the /etc/init.d/inn2 from the Debian package and modified it to my requirements. Only thing to change is a couple of directories. Having done that and tested it, I can use update-rc.d to write the init script to the correct runlevel dirs.
Permissions
When upgrading, two files (inndstart and startinnfeed) need to have special permissions. Ownership should be root:news, followed by chmod u+s. Without these, INN will not start.