Przepis na integracj mksd z qmailem.
Autorem jest Radosaw Ejsmont <admin@tek-art.com.pl>.


Wymagania:

- - qmail - standardowa instalacja (nie dual MTA !!!)
- - mks32
- - mksd
- - mksscan
- - sudo (!)

- ---

Co zrobic:

1) zalogowac sie jako root (oczywiste)
2) rozpakowac paczke z mks_virem, mks_demonem i bazami do jakiegos katalogu
(np. /tmp/mks)

$ cd /tmp/mks

o) Najpierw stworzmy katalogi, gdzie siedzi mks

$ mkdir /usr/local/mksvir
$ mkdir /usr/local/mksvir/bin
$ mkdir /usr/local/mksvir/dat

o) Skopiujmy binarki mks'a tam, gdzie trzeba + stworzmy symlinki dla
dostepnosci przez $PATH - ewentualnie mozna katalog /usr/local/mksvir/bin/
wrzucic do $PATH, ale po co :D

$ cp ./mksd-1.12/mksd /usr/local/mksvir/bin/mksd
$ cp ./mksd-1.12/mksscan /usr/local/mksvir/bin/mksscan
$ cp ./mksLinux/mks32 /usr/local/mksvir/bin/mks32
$ cp ./bazy3/* /usr/local/mksvir/dat
$ chmod 644 /usr/local/mksvir/dat/*
$ ln -s /usr/local/mksvir/bin/mksd /usr/bin/mksd
$ ln -s /usr/local/mksvir/bin/mksscan /usr/bin/mksd
$ ln -s /usr/local/mksvir/bin/mks32 /usr/bin/mks32

o) Stworzmy katalog i usera dla demona mks'a + a bit of security

$ mkdir /var/run/mksd
$ useradd -d /var/run/mksd antivirus
$ chown -R antivirus.antivirus /var/run/mksd
$ chmod 700 /var/run/mksd

o) Dajmy userom prawo do odpalania mks'a w imieniu antivirus'a z parametrami
dla scanu poczty (nie wnikajmy w szczegoly):

$ visudo

idziemy na koniec listy 'User alies specification', wciskamy 'i' i
wpisujemy:

Cmnd_Alias      MKSMAIL = /usr/bin/mksscan -m -c /tmp/antivirus/*

Wciskamy 'ESC', idziemy na koniec listy 'User privilege specification'
wciskamy 'i' i wpisujemy:

ALL     ALL = (antivirus) NOPASSWD: MKSMAIL

i wciskamy radosnie 'ESC' a potem 'ZZ'

o) Teraz wezmiemy sie za stworzenie skryptu dla Qmaila

$ mkdir /tmp/antivirus
$ chmod 777 /tmp/antivirus
$ cat > /var/qmail/bin/qmail-queue-mks
#!/bin/bash
# MKS_VIR scanning script for qmail by Radosaw 'ArcAngel' Ejsmont
# Copyright (C) admin@tek-art.com.pl

# Get user information
USERNAME=`id | cut -d'(' -f2 | cut -d')' -f1`
TEMPFILE=`mktemp /tmp/antivirus/$USERNAME.XXXXXX`

# Scan and deliver message
echo "$@" > $TEMPFILE
chmod 600 $TEMPFILE
cat > $TEMPFILE.body
chmod 600 $TEMPFILE.body
sudo -u antivirus mksscan -m -c $TEMPFILE.body > /dev/null
/var/qmail/bin/qmail-queue-deliver `cat $TEMPFILE` < $TEMPFILE.body

rm -f $TEMPFILE
rm -f $TEMPFILE.body
^C

o) Ok. Jestesmy juz prawie gotowi do startu. W tym momencie stworzmy skrypt
startowy dla mksd

$ cat >> /etc/rc.d/rc.local
rm -rf /var/run/mksd/*
/usr/local/mksvir/bin/mksd
^C

o) Swietnie. Teraz odpalamy demona

$ /usr/local/mksvir/bin/mksd

o) Jak wszytko poszlo dobrze, mksd powinien wstac. Teraz pora przerobic
qmaila...

$ killall -9 qmail-send
$ mv /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue-deliver
$ ln -s /var/qmail/bin/qmail-queue-mks /var/qmail/bin/qmail-queue
$ /var/qmail/rc &

o) To by bylo wszystko, chyba, ze cos pominalem. Jesli tak, to uwagi mile
widziane.

A calosc ta dedykuje znajomym z ICM'u,
szczegolnie Krystianie, Slawkowi i prof. Lesyngowi :)
