HOWTO - Run a leafnode server on an e-smith server. This procedure works on version 4.1.2 of the e-smith server, although I see no reason why it would not work on earlier versions. LEAFNODE is an NNTP server for small sites that essentially pulls news from your ISP's news servers to be served to clients on your local network. See leafnode's home page (www.leafnode.org) for more information on its intended use and limitations. You will need to obtain the leafnode rpm for Red Hat (I used leafnode- 1.1.18-1.i386.rpm). This can easily be found at www.rpmfind.net. On your e-smith server, get to a command prompt (login as root) and execute rpm -ivh leafnode-1.1.18-1.i386.rpm (or whatever is the name of the rpm file you downloaded). This will install the leafnode binaries and configuration files. The leafnode binary is installed in /usr/sbin and the configuation files are placed in /etc/leafnode. Additionally, news articles will be installed in /var/spool/news. Finally, a cron entry is put in /etc/cron.daily to run a command (texpire) to expire old news articles. Reference the leafnode web page and man pages for more information. You will now need to configure /etc/leafnode/config. I did this manually using pico and saving the file directly without making a template for it, although it would better fit the e-smith way of doing things if a template were written for it. The config file is well commented so you need only follow the directions given in the example config file. Note that leafnode can pull news from more than one server. For example, I pull newsgroups from both my ISP's server and cnews.corel.com, whose groups are not carried by my ISP. Once the configuration file is edited and saved we now need to make two custom templates in the /etc/e-smith/templates-custom directory. Make the following three directories: mkdir /etc/e-smith/templates-custom/etc mkdir /etc/e-smith/templates-custom/etc/hosts.allow mkdir /etc/e-smith/templates-custom/etc/xinetd.conf We now need to edit the fragments that when expanded will insert our changes into /etc/hosts.allow and /etc/xinetd.conf. pico /etc/e-smith/templates-custom/etc/xinetd.conf/25nntp Enter the following: { use esmith::config; use esmith::db; local %services; $services{'nntp'} = $nntp; my $status = db_get_prop(\%services, "nntp", "status"); if (defined $status) { if ($status eq "enabled") { $OUT .= "service nntp\n"; $OUT .= "{\n"; $OUT .= " socket_type = stream\n"; $OUT .= " wait = no\n"; $OUT .= " user = news\n"; $OUT .= " server = /usr/sbin/leafnode\n"; $OUT .= "}\n"; } else { $OUT .= "\n"; $OUT .= "# nntp has been flagged as 'disabled'\n"; $OUT .= "# in the e-smith services database.\n"; } } else { $OUT .= "\n"; $OUT .= "# nntp does not exist in the e-smith services"; $OUT .= " database.\n"; } } Save the file. This template when expanded will be inserted into /etc/xinetd.conf and will allow the service to start when a client connects to your news server. Next we need to give our clients permission to use the servcice, so pico /etc/e-smith/templates-custom/etc/hosts.allow/nntp and enter the following: { my %networks; tie %networks, 'esmith::config', '/home/e-smith/networks'; $OUT = esmith::util::computeHostsAllowSpec( NAME => 'nntp', DAEMON => 'leafnode', SERVICES => { nntp => $nntp }, NETWORKS => \%networks, IPADDR => $LocalIP, NETMASK => $LocalNetmask ); } Save the file. This file when expanded will enter an entry into /etc/hosts.allow to allow ALL computers on your local network access to the nntp server (leafnode). If you wish to restrict access more, make the appropriate changes to the template. Okay, we need to enable the nntp service in the e-smith configuration database, so type /sbin/e-smith/db configuration set nntp service status enabled /sbin/e-smith/signal-event console-save Now we expand the templates: /sbin/e-smith/expand-template /etc/inetd.conf /sbin/e-smith/expand-template /etc/hosts.allow Now if you check /etc/xinetd.conf and /etc/hosts.allow, you should see your nntp entries. From a command prompt, type fetchnews -f. This will connect to your ISP's news server(s) as defined in your config file and pull in all available newsgroups. If you're on a dialup, this may take a few minutes. In the hostnames and address module of the e-smith manager, I added an entry for my news server (hostname news, IP address of my e-smith server). This step isn't strictly required as you can always just access your server by it's ip address. Now on your client machine, just point your news client to your e-smith server. Again, read the man pages for how leafnode works. Leafnode will not pull news unless a group is actively being read by someone and will stop fetching news from a group after x number of days if no one is reading the group (x being the number of days you set up in the config file). You can place a crontab entry to automatically pull news or you can pull news from a command line by using the fetchnews command.