Disclaimer: I know enough to keep my systems as secure as I feel they need to be, but I am not a security guru. If you install HyperNews, you should familiarize yourself with all the available information on security, and make sure that you are satisfied with the robustness of your particular setup.
As a HyperNews administrator, you have control over who gets to do what. The “who” here has three possible values: administrator, member, and anyone. The “what” includes creating new base articles; reading articles and responses; and adding, deleting, and/or moving responses. You can pretty much mix and match restriction among the access levels and the available activities. For instance, you might want to grant unrestricted read access to your article and responses, but limit response-adding to members.
In all likelihood, you won't want anyone other than administrators (that is, you) creating base articles—otherwise you might wake up one morning to find that your machine has become an outpost of the Barry Manilow fan club. When it comes to adding responses, however, you might want to adopt a more open policy. The one thing about completely open response-adding that worries me is that it's possible to sign with someone else's name and e-mail address. That person will get a confirmation notice by e-mail (if that option is configured, which it is by default); but that may be cold comfort if several hundred web surfers have already read an illegitimately attributed posting. Requiring membership, on the other hand, might be a deterrent to posting, at least for the casual visitor, since it involves taking the time to fill out a form.
I'll describe some further aspects of access and security in the following section.
The HyperNews distributions is a suite of Perl 5 CGI scripts. I hit a bit of a snag here—I had to recompile Perl to get rid of some weird and disabling behavior having to do with reading configuration files. (It's still a mystery to me why it happened.) Perl 5.001m seems to be the Perl release of choice for running HyperNews.
I've installed HyperNews on two machines, using a pretty by-the-book directory structure. The major step is:
cd /usr/local/lib/httpd/cgi-bin cp HyperNews1.version.tgz . tar -xvzf HyperNews1.<version>.tgz
version will be something like 1.9B5.5. This creates the subdirectory HyperNews1.version. The installation instructions recommend moving this directory to HyperNews:
mv HyperNews1.version HyperNews
The HyperNews directory tree must be writeable by your httpd server process during installation (though not thereafter, and in fact it's recommended that you remove write permissions once the package is installed). My server runs as user http, group www, so I did:
chown -R http:www HyperNews
The HyperNews tree is where the scripts and the principal configuration file live. HyperNews documents (base article and response .html files, and the smaller configuration files that go with them) go in a separate subdirectory, generally under /usr/local/lib/httpd/htdocs (or equivalent). Therefore, you will do something like:
cd ../htdoc mkdir hn chown http:www hn
The next step in installation is to run the setup script, which you do with your HTML browser:
You can also run a command-line version of the setup script, but you then have to edit the configuration file manually and run it again. It's handy once you know what you're doing, but not very installer-friendly the first time around.
The setup script asks you a number of questions. I won't cover all of them, but a few things you should be aware of are:
Note that the default path is /usr/local/etc rather than /usr/local/lib, so if your setup is like mine, you'll want to change it.
Make sure to push the “Rebuild Password and Group Files” button, unless you have some reason to want to create the password files by hand.
The name you give for the administrator should be an actual user or valid mail alias.
When you submit the setup form, it creates (backing up if needed) the main configuration file, /usr/local/lib/httpd/HyperNews/hnrc. Once that file is in place, you can change it manually. Some manual changes will take effect immediately; others, specifically those concerning access and membership, are really directives which tell the setup script to create or delete certain access files and symbolic links. For those changes to take effect, you have to run the setup script again; otherwise, your configuration file and actual setup will not accord with each other. (Updating the setup after manually changing hnrc is a good time to run the quicker command-line version, setup.pl.)
If you look at the HyperNews directory after running setup-form.pl, you will see that there are a number of symbolic links to various scripts, as well as two new subdirectories: Admin and SECURED. The basic logic of the directory structure meshes with the levels of access:
All scripts are kept in HyperNews/.scripts.
Those that can be run by anyone have links in HyperNews.
Those that can be run by members have links in SECURED.
Those that can only be run by administrators have links in Admin.
If you change the who-gets-to-do-what settings in hnrc and run the commandline setup.pl script, the relevant links will be added or deleted.
The setup process also creates password and other access-related files. These files are the gatekeepers for the different access policies governing the script directories. This per-directory security is handled through the server; for example, .htaccess files for NCSA httpd. (And that brings us full circle to my security disclaimer!)
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems
Join editor Bill Childers and Bit9's Paul Riegle on April 27 at 12pm Central to learn how to keep your Linux systems secure.
Free to Linux Journal readers.Register Now!
- Cluetrain at Fifteen
- Getting Good Vibrations with Linux
- Embedding Python in Your C Programs
- New Products
- Security Hardening with Ansible
- Monitoring Android Traffic with Wireshark
- [<Megashare>] Watch Mrs Brown's Boys Movie Online Full Movie HD 2014
- diff -u: What's New in Kernel Development
- Memory Ordering in Modern Microprocessors, Part I
- Tech Tip: Really Simple HTTP Server with Python