Mailserver med OpenBSD

Förberedelser

Före installation av qmail måste det skapas en hel del användare och grupper. Detta för att de olika delarna av qmail kör under egna användarkonton (en del av säkerheten i qmail, går ett program sönder på något sätt, så ska inte andra delar av qmail eller systemet drabbas).

/var/qmail måste också skapas innan användarna läggs upp (gid och uid enligt LWQ eftersom dessa i alla system jag råkat ut för är oanvända). I den här guiden installeras qmail under /home/qmail med länkning till (/var/qmail)

mkdir -p /home/qmail
ln -s /home/qmail /var/qmail
groupadd -g 2108 nofiles
useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -u 7790 alias
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 7791 qmaild
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 7792 qmaill
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 7793 qmailp
groupadd -g 2107 qmail
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 7794 qmailq
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 7795 qmailr
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 7796 qmails
Gör det enklare att hitta mysql include filer och libs:
ln -s /usr/local/mysql/lib/mysql /usr/local/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/local/include/mysql

Hämta och packa upp filer

cd /usr/local/src
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/software/qmail-1.03.tar.gz
wget http://qmail.jms1.net/patches/qmail-1.03-jms1.7.08.patch
wget http://www.bsd-guide.net/openbsd-mailserver/files/qmail/qmail-1.03-jms1.7.08-st.patch
wget http://www.bsd-guide.net/openbsd-mailserver/files/qmail/sendmail-flagq.patch
tar xfz qmail-1.03.tar.gz

sendmail-flagq.patch innehåller diverse extraflaggor för sendmail (ersättaren) som kommer med qmail. Läggs inte denna patch på, så kommer det att trilla in ett obegripligt mail i kvarten till root. Patchen gör att det istället skrivs ut ett felmeddelande med instruktioner vad som ska göras för att slippa dessa mail.

En patch till för qmail är värd att nämna:
goodrcptto http://web.netdevice.com:9080/qmail/patch/goodrcptto-12.patch
Eftersom det finns en variant av denna med i JMS (validrcptto.cdb) så har jag inte försökt laga den för att fungera tillsammans med JMS + ST. Men den finns där för de som inte vill ha hela JMS uppsättningen av en eller annan anledning.

Förbered användande av CPAN

CPAN underlättar installationen av Perl moduler som behövs för SpamAssassin och qmail-scanner i andra delen av guiden. I den första delen används CPAN endast för att installera den modul som behövs för 'mkvalidrcptto' (CDB_File). Då CPAN ändå ska användas flitigt senare, så är det enklast att förbereda direkt. I ett root-shell skriver du
pkg_add unzip-5.52p0
perl -MCPAN -e shell
Fortsätt med enter "ca 7 gånger". Efter frågan om hur många rader av kommandon CPAN shellet ska spara får du upp en fråga om vad som ska göras om installation av en modul kräver en annan:

The CPAN module can detect when a module that which you are trying to
build depends on prerequisites. If this happens, it can build the
prerequisites for you automatically ('follow'), ask you for
confirmation ('ask'), or just ignore them ('ignore'). Please set your
policy to one of the three values.

Policy on building prerequisites (follow, ask or ignore)? [ask]

Svara 'follow' på denna fråga, så installeras nödvändiga moduler automatiskt.

Får du inte den frågan kan du vid CPAN-prompten istället skriva
o conf prerequisites_policy follow
o conf commit

Efter den frågan kan du trycka enter på en hel drös med frågor (ca 20 gånger). Vänta gärna nån sekund mellan varje enter så att du inte går förbi valet av närmsta CPAN site (innan du kommer till den frågan så lär du märka att det laddas ner en fil från ftp.perl.org.

Now we need to know where your favorite CPAN sites are located. Push
a few sites onto the array (just in case the first on the array won't
work). If you are mirroring CPAN to your local workstation, specify a
file: URL.

First, pick a nearby continent and country (you can pick several of
each, separated by spaces, or none if you just want to keep your
existing selections). Then, you will be presented with a list of URLs
of CPAN mirrors in the countries you selected, along with previously
selected URLs. Select some of those URLs, or just keep the old list.
Finally, you will be prompted for any extra URLs -- file:, ftp:, or
http: -- that host a CPAN mirror.

(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) []

Välj "4" för "Europe". Efter det valet kommer du till en sida med en lista över de länder som har speglingar av CPAN (många!).
Välj Norge eller Finland, och välj sedan en lämplig server (ex. ftp.funet.fi) som ganska säkert kommer att hållas igång. Den svenska CPAN speglingen verkar ha lagts ner vid kontroll 2009-02-12.
Efter att du tryckt enter så är konfigureringen av CPAN klar. För att spara och avsluta CPAN-shellet skriver du:

Får du inte upp frågan om vilken CPAN spegling du vill använda kan/måste du manuellt göra även denna inställning:

o conf init urllist
o conf commit
exit

Passa på att uppdatera CPAN redan nu (du kommer annars att få en påminnelse att det finns en uppdatering):

cpan -i Bundle::CPAN

Om installationen/uppdateringen avbryts med ett felmeddelande liknande:

...
Trying with "/usr/bin/lynx -source" to get
    ftp://ftp.port80.se/pub/CPAN/authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar.gz
gzip: /root/.cpan/sources/authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar: unknown suffix: ignored
CPAN: Digest::MD5 loaded ok

Checksum mismatch for distribution file. Please investigate.

Distribution id = A/AN/ANDK/Bundle-CPAN-1.857.tar.gz
    CPAN_USERID  ANDK (Andreas J. Koenig )
    CONTAINSMODS
    MD5_STATUS
    localfile    /root/.cpan/sources/authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar.gz
...
måste det trixas lite för att få det att fungera. Ta bort den korrupta filen:
rm /root/.cpan/sources/authors/id/A/AN/ANDK/Bundle-CPAN-1.857.tar.gz
Installera p5-LWP-UserAgent-Determined via packages:
pkg_add p5-LWP-UserAgent-Determined

Sen ska CPAN uppdateringen fungera:

cpan -i Bundle::CPAN

Uppdateringen tar en stund och kräver några tryck på enter för att göras. Starta CPAN shellet igen och svara på det kvarvarande frågorna (enter på 5 frågor):

perl -MCPAN -e shell
Spara inställningarna och avsluta CPAN shellet:
o conf commit
exit
 
 
Visar de 30 senaste vägarna in till guiden. Visa alla
G o o g l e (www.google.se), sökning efter 'mail server openbsd'
G o o g l e (www.google.se), sökning efter 'mail server openbsd'
G o o g l e (www.google.se), sökning efter 'mail server openbsd'
http://www.bing.com/search?q=%22%40src%2ecom%2esg%22+loc%3ASE&filt=all&first=140&FORM=PERE
G o o g l e (www.google.se), sökning efter 'smtp auth'
G o o g l e (www.google.se), sökning efter 'bsd mail server'
G o o g l e (www.google.se), sökning efter 'bsd mail server'
G o o g l e (www.google.se), sökning efter 'mail server guide'
G o o g l e (www.google.se), sökning efter 'mail server guide'
http://www.bing.com/search?q=smpt+f%C3%B6r+live.se&form=CMDTDF&pc=CMDTDF&src=IE-SearchBox
http://new.bsd-guide.net/openbsd-mailserver/index.php?
G o o g l e (www.google.se), sökning efter 'mail server openbsd'
http://new.bsd-guide.net/openbsd-mailserver/index.php?
http://new.bsd-guide.net/openbsd-mailserver/index.php?
http://new.bsd-guide.net/?
http://new.bsd-guide.net/?
G o o g l e (www.google.se), sökning efter 'google.se/webbmail'
G o o g l e (www.google.se), sökning efter 'google.se/webbmail'
G o o g l e (www.google.se), sökning efter 'google.se/webbmail'
http://new.bsd-guide.net/openbsd-mailserver/index.php?
http://new.bsd-guide.net/openbsd-mailserver/index.php?page=4
G o o g l e (www.google.se), sökning efter 'bsd kommandon'
G o o g l e (www.google.se), sökning efter 'bsd kommandon'
G o o g l e (www.google.ru), sökning efter 'dovecot "disable_pop"'
G o o g l e (www.google.se), sökning efter 'virtuell domäner'
G o o g l e (www.google.se), sökning efter 'google.se/webbmail'
G o o g l e (www.google.se), sökning efter 'openbsd mailserver'
G o o g l e (www.google.se), sökning efter 'qmail disable smtp auth'
http://new.bsd-guide.net/openbsd-mailserver/index.php?
http://new.bsd-guide.net/openbsd-mailserver/index.php?page=1