Sendmail FAQ & HowTo by SinusPL
---------------------------------


1. Dlaczego?
2. Co potrzebujemy?
3. Przygotowania.
4. Kompilacja i instalacja "cyrus-sasl"
5. Kompilacja i instalacja "spamassasin"
6. Kompilacja i instalacja "amavis-perl" i "uvscan"
7. Kompilacja i instalacja "procmail"
8. Kompilacja i instalacja "sendmail"
9. I co teraz mamy?


1. Dlaczego?

Ta dokumentacja powstala dla celow kanalu #linux.pl na IRCnecie, na ktorym
przesiaduja dziesiatkami "spece" od wszystkiego, poczynajac od nieznajomosci
komend takich jak ls, ln, md, rm, less a o nieumiejetnosci obslugi edytora vi
ktory _jest_ podstawowym edytorem w unixie (upodobania do emacs, pico, mcedit
zostawiam tutaj na stronie, poniewaz edytory te nie naleza do kazdego swiezo
zainstalowanego systemu unixowego). Po przejsciu wszystkich krokow opisanych
tutaj bedziemy mieli sendmaila z autentyfikacja, skanerem antywirusowym i
filtrem blokujacym spam.


2. Co potrzebujemy?

Potrzebujemy co najmniej spakowane zrodla sendmaila. Jezeli planujemy zrobic
autentyfikacje (SMTP AUTH) to potrzebujemy jeszcze cyrus-sasl. Dla osob nie
lubiacych spamu proponuje zciagniecie tez spamassasin. Dla naszych kochanych
uzytkownikow oprogramowania MS potrzebujemy tez skaner antywirusowy amavis-perl.

Wszystkie wyzej wymienione programy mozna pobrac przez http albo ftp z mojego
serwera pod adresami:
	- http://ftp.sinuspl.net/pub/src/
	- ftp://ftp.sinuspl.net/pub/src/

Na systemach FreeBSD potrzebujemy wylacznie aktualne porty.


3. Przygotowania.

Jezeli systemem jest Linux, tworzymy (jesli jeszcze nie istnieje) folder "/usr/src".
W nim tworzymy folder "sendmail", do ktorego najpierw zciagamy poszczegone pakiety
zrodlowe:

	cd /usr
	mkdir src
	cd src
	mkdir sendmail
	cd sendmail

	ftp [...]

lub

	wget [...]

nastepnie sprawdzamy, czy wszystko mamy (numerki po nazwie pakietu oznaczaja numer
wersji, zciagamy zawsze najnowsza, ktora znajdziemy):

	ls -al

	total 3396
	drwxr-xr-x    2 root     root         4096 Oct 13 14:01 .
	drwxr-xr-x   60 root     root         4096 Oct 13 13:52 ..
	-rw-r--r--    1 root     root       283977 Apr  7  2001 amavis-perl-11.tar.gz
	-rw-r--r--    1 root     root       528252 Mar 24  2001 cyrus-sasl-1.5.27.tar.gz
	-rw-r--r--    1 root     root       532504 Oct  4 17:29 Mail-SpamAssassin-2.42.tar.gz
	-rw-r--r--    1 root     root       226817 Oct 10 00:55 procmail-3.22.tar.gz
	-rw-r--r--    1 root     root      1867436 Aug 27 04:09 sendmail.8.12.6.tar.gz

po czym rozpakowujemy poszczegolne pliki:

	tar xfz amavis-perl-11.tar.gz
	tar xfz cyrus-sasl-1.5.27.tar.gz
	tar xfz Mail-SpamAssassin-2.42.tar.gz
	tar xfz procmail-3.22.tar.gz
	tar xfz sendmail.8.12.6.tar.gz

i sprawdzamy, czy sie wszystko ladnie rozpakowalo:

	ls -al

	total 3416
	drwxr-xr-x    7 root     root         4096 Oct 13 14:07 .
	drwxr-xr-x   60 root     root         4096 Oct 13 13:52 ..
	drwxrwxrwx    5 640      man          4096 Apr  6  2001 amavis-perl-11
	-rw-r--r--    1 root     root       283977 Apr  7  2001 amavis-perl-11.tar.gz
	drwxrwxrwx   15 sinuspl  sinuspl      4096 Mar 24  2001 cyrus-sasl-1.5.27
	-rw-r--r--    1 root     root       528252 Mar 24  2001 cyrus-sasl-1.5.27.tar.gz
	drwxr-xr-x   13 copy     copy         4096 Oct  4 17:29 Mail-SpamAssassin-2.42
	-rw-r--r--    1 root     root       532504 Oct  4 17:29 Mail-SpamAssassin-2.42.tar.gz
	drwxr-xr-x    7 28286    users        4096 Sep 11  2001 procmail-3.22
	-rw-r--r--    1 root     root       226817 Oct 10 00:55 procmail-3.22.tar.gz
	drwxr-xr-x   21 1037     1700         4096 Aug 27 03:42 sendmail-8.12.6
	-rw-r--r--    1 root     root      1867436 Aug 27 04:09 sendmail.8.12.6.tar.gz

Jak widzimy powstaly teraz foldery z plikami zrodlowymi.

Jezeli systemem jest FreeBSD, wystarczy, ze mamy w /usr/ports rozpakowane aktualne porty.


4. Kompilacja i instalacja "cyrus-sasl"

Na systemach linuxowych kompilacja i instalacja jest calkiem prosta:

	cd cyrus-sasl-1.5.27
	./configure --enable-static --enable-login --enable-auth-sasldb --with-pwcheck=/var/pwcheck --with-rc4=openssl
	make
	make install

Na FreeBSD jeszcze latwiejsza:

	cd /usr/ports/security/cyrus-sasl
	make install
	(wybieramy nastepujace opcje: PWCHECK SASLAUTHD)

5. Kompilacja i instalacja "spamassasin" 

Na Linuxie:

	cd Mail-SpamAssassin-2.42
	./configure
	make
	make install

Na FreeBSD nie musimy nic robic; spamassasin nalezy do standardowego systemu.
	

6. Kompilacja i instalacja "amavis-perl" i "uvscan"

Najpierw instalacja pod FreeBSD:

	cd /usr/ports/security/amavis-perl
	make

nie robimy tutaj "make install" poniewaz amavis modyfikuje plik konfiguracyjny sendmaila
czego _jeszcze_ nie potrzebujemy.

Ewentualnie (jezeli instalacja nie nastepuje samoczynnie z portow) amavis-perl potrzebuje
"uvscan" firmy McAfee. Pod FreeBSD instalacja wyglada tak:

	cd /usr/ports/security/vscan
	make install

Nastepnie ponownie kompulujemy amavis-perl komenda:

	cd /usr/ports/security/amavis-perl
	make

Pod Linuxem robimy to tak:

	cd amavis-perl-11
	./configure
	make
	make install

Amavis potrzebuje tez pod linuxem jakiegos skanera antywirusowego. Bierzemy ten od firmy
McAfee, zciagamy go ze strony www.nai.com, albo z mojego serwera.


8. Kompilacja i instalacja "sendmail"

Majac skompilowany cyrus-sasl, amavis-perl, procmail, sendmail i skaner uvscan mozemy
przystapic do niezwykle prostej czynnosci jaka jest tworzenie pliku konfiguracyjnego
dla sendmaila, aby uzywal wszystkie uprzednio przygotowane programy. Uzywamy do tego
jezyka skryptowego "m4" ktory jest uzywany miedzy innymi do tworzenia dlugich plikow
konfiguracyjnych np. do sendmaila.

Tworzymy najpierw folder /etc/mail (jesli jeszcze nie istnieje, co jest bardzo malo prawdopodobne).

	cd /etc
	mkdir mail
	cd mail

W tym folderze tworzymy pusty plik sendmail.mc

	touch sendmail.mc

Edytujemy go naszym wybranym edytorem (tutaj vi, albo lepiej vim). Pod FreeBSD wpisujemy to tego
pliku nastepujace rzeczy:

dnl #################################################
dnl ### sendmail.mc by SinusPL @ 2002.10.10 19:33 ###
dnl #################################################
include(`/usr/share/sendmail/cf/m4/cf.m4')
divert(0)
VERSIONID(`$Id: sendmail.mc,v 8.12.6 2002/10/10 01:26:02 sinuspl Exp $')
OSTYPE(freebsd4)
DOMAIN(generic)
FEATURE(access_db)
FEATURE(local_procmail)
FEATURE(mailertable)
FEATURE(virtusertable)
MAILER(local)
MAILER(smtp)
define(`confAUTH_OPTIONS', `A')
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define(`confRUN_AS_USER',`root:mail')
define(`confMAX_MESSAGE_SIZE', `104857600')
define(`confMAX_MIME_HEADER_LENGTH', `256/128')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `noexpn,novrfy')
define(`confPROCMAIL_MAILER_PATH',`/usr/local/bin/procmail')
define(`confALIAS_FILE', `/etc/mail/aliases')
define(`confSTATUS_FILE', `/etc/mail/statistics')
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')
define(`confCW_FILE', `/etc/mail/sendmail.cw')
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6')
define(`confQUEUE_LA', `10')
define(`confREFUSE_LA', `20')
define(`confSMTP_LOGIN_MSG', `mx1.sinuspl.net Sendmail $v/av/auth/gs/shell; $b')
define(`confTRUSTED_USERS', `www sinuspl')

Mozemy a raczej musimy zmienic wiele tych opcji. Oznaczaja one:

define(`confMAX_MESSAGE_SIZE', `104857600') - maksymalna wielkosc maila w bajtach

define(`confPROCMAIL_MAILER_PATH',`/usr/local/bin/procmail') - sciezka do procmaila

DAEMON_OPTIONS(`Name=IPv6, Family=inet6') - te linijke mozna wywalic, jezeli nie uzywamy
					    IPv6 badz nie chcemy aby mail dzialal na tym
					    protokole

define(`confSMTP_LOGIN_MSG', `host.domena.pl Sendmail $v/av/auth; $b') - ta linijka ustawia
					    to, co bedzie sie pokazywalo jako tzw. SMTP-Greeting:

	telnet localhost 25

	Trying 127.0.0.1...
	Connected to localhost.
	Escape character is '^]'.
	220 mx1.sinuspl.net ESMTP Sendmail 8.12.6/av/auth/gs/shell; Sun, 13 Oct 2002 20:33:13 +0200 (CEST)

define(`confTRUSTED_USERS', `www sinuspl') - ci userzy systemowi beda mogli uzywac sendmaila bez
					     zadnych restrykcji. Wazne, aby dodac tutaj np. usera
					     pod ktorym dziala apache, aby mogl poprawnie wysylac
					     maile.




[...]

TO BE CONTINUED...

[...]




9. I co teraz mamy?

Jezeli dotarlismy tutaj, to jestesmy szczesliwymi posiadaczami sendmaila z autoryzacja,
skanerem antywirusowym i filtrem blokujacym spam.