From CA Greens wiki
Revision as of 15:50, 18 December 2011 by Boftgp (talk | contribs) (Email server: Postfix and Mailman)

Jump to: navigation, search


A "benchfile" is the book you leave in your desk drawer for your replacement in case you suddenly get a better job.


The Green Party of California rents a virtual private server (VPS) from Godmama's Forge. It's Ubuntu-9.0 ("Karmic Koala") based on Debian-5.0 ("Squeeze") plus some work-in-progress from Debian Unstable ("Sid"). The virtual host is named and runs under Vmware Enterprise.

Secrets and Authentication

There's no root password. Members of the "admin" user group can get a root shell by

sudo su -

or run other single commands under sudo. That's how Ubuntu does things. Passwords such as the MySQL root user's are shown in a text file "notes" in root's home directory.

Domain Name Service

The domain is served by two DNS vendors with five public name servers. The master is "" running on Cameron's "bract" VPS (, at Chunkhost. The four slaves are on ("The Dynamic DNS") where Cameron has a "VIP" account.

About fifty other domains depend on a name server "", which is running right now on Cameron's "rachel" dedicated server. These domains include,,,, etc.

LAMP Stack

apt-get install apache2-mpm-prefork php5-pear php5-gd php5-cli libapache2-mod-php5 mysql-server mysql-client

Look in the /etc/apache2/sites-enabled, /etc/php5, and /var/log/apache2 directories.


apt-get install rsync

Backup is a nightly rsync via ssh to a host in Cameron's garage. Authentication is by a key in ~root/.ssh/authorized_keys.

Local name service

apt-get install maradns

A lightweight caching name server, itself authoritative for no domains, listens on address It queries customer name servers belonging to and Godmama's Forge. It's mentioned first in our resolver configuration file /etc/resolv.conf which is obliquely mentioned (as "files") in /etc/nsswitch.conf. To see its configuration,

egrep -v '^#|^$' /etc/maradns/mararc

A local caching name server, also known as a "DNS forwarder", means you don't have to use the network for most name queries. For an email server that's looking up sender's PTR records, it's a real speed-up.

DNS block list

apt-get install rbldnsd

The blocklist file is /var/lib/rbldns/iparanges. It's maintained on another server, and pushed here by rsync via ssh. Configuration is in /etc/default/rbldnsd. This is one of two servers of the "" blocklist. At least four hosts refer to this DNSBL.

Email server: Postfix and Mailman

Postfix is set up the "Debian Way". Postfix' configuration files are in /etc/postfix and the mapfiles they use are in /etc/postfix/maps. Tradition has the email aliases file in /etc/, so we have a symlink there pointing at the real one.

apt-get install postfix postfix-pcre mailman

There's a Makefile in /etc/postfix. Most of the time you can edit a file and type


and it will do whatever's needed. If you're not sure, run

make -n

first and decide. The Makefile also knows how to pull in updates to the map files used for spam reduction, currently from a public rsync server on Cameron's garage PC. We use maps in Postfix mapfile formats "hash", PCRE, and CIDR.

Mailman runs as the "list" user. GNU Mailman installs into its data directories and runs there. Debian installs the software in /usr/lib/cgi-bin/mailman and /usr/lib/mailman/, with data files in /var/lib/mailman/. They've done a nice job of separating the files their package maintainer updates from those Mailman updates as it runs, so you can do

apt-get install mailman

when there's an update, without losing/breaking anything. The /var/lib/mailman run directory has a bunch of symlinks under it, pointing into the software location.

Mailman generates two files /var/lib/mailman/data/aliases and /var/lib/mailman/data/aliases.db which are mentioned in /etc/postfix/ That's where the aliases for Mailman posting and admin functions are.

There's a popular script for further integration between Postfix and Mailman. Debian distributes it with Mailman but we're not using it. It makes Postfix depend on Python. The main advantage would be pre-queue rejection of rejectable messages, reducing backscatter and administrative noise.

In a wide terminal window,

tail -f /var/log/

Drupal and carve-outs

Most of the site is on Drupal, installed by the mbrennan user in /w/d7 Sept. 2011. Margot Brennan is a principal of the Radical Designs web design shop. Many directories and individual files are "carved out" of the virtual web server. These "carve-outs" are listed as Alias directives in the file /etc/apache2/sites-available/ They refer to files on the pre-Drupal web site, in /w/cal/. That site appears intact at


A demonstration instance of CiviCRM was installed in March 2011. This instance was abandoned because no first-tier technical support was available for its lone user.