--------------------------------------------------------------------
SMTP-Proxy (alias SMTP-gated)
Strona domowa projektu: http://smtp-proxy.klolik.org
Bartlomiej Korupczynski
bartek {malpa} klolik {kropka} org
(c) Warszawa 2004-2005
--------------------------------------------------------------------


WSTEP
-----

Co potrafi lub nie potrafi:
- Skanowanie odbywa sie na bieco; nie ma w zwizku z tym opnie i
ewentualnych timeout-w serwera {by moe clamsmtpd te tak robi}
- Akceptuje STARTTLS oraz PIPELINING (w przygotowaniu take akceptacja
chunking RFC3030)
- Umoliwia zbudowanie farmy 'skanerw' (wymaga to spatchowanego oidentd,
by moe wkrtce wprowadz jakie prostsze rozwizanie), dla jednego bd
kilku routerw. (*)
- Umoliwia wstawianie w nagwku informacji o rdowym IP (i ewentualnie
idencie - patrz punkt poprzedni)
- Dziaa z NAT-em wycznie netfilter-owym
- Ma bardzo fajny podgld w to co si aktualnie dzieje ;)
- Umoliwia wprowadzenie ogranicze na ilo sesji: wszystkich, per IP
(ewentualnie per ident - patrz punkt *)
- Odrzucanie pocze przy wysokim loadavg (z komunikatem)
- Ograniczenie skanowania do przesyek mniejszych ni administrator sobie
zayczy
- Wsppraca z clamav oraz mksd (to drugie nie testowane od jakiego czasu)
- Umoliwia skanowaniem spamassasinem kadej przesyki (rezultaty lduj w
syslogu).
- Dla kadego poczenia tworzy nowy proces
- (obecnie) Nie obsuguje akcji w wypadku napotkania wirusa; do klienta
dociera wycznie komunikat o jego napotkaniu. W przygotowaniu jest blokada
czasowa dla takiego osobnika.
- Nie ma zbyt uporzdkowanego kodu ;]
- Brak szczeglnej dokumentacji


Wbrew pozorom nie ma (narazie) supportu dla PostgreSQL.
Obsluga BDAT nie jest obecnie (<=1.4.4) przetestowana i prawdopodobnie nie
dziala.


INSTALACJA
----------

Plik wykonywalny instaluje sie domyslnie w /usr/local/sbin.
Do kompilacji potrzebne sa naglowki netfilter-a. Jesli jadro zainstalowane
zostalo z dystrybucji, to zazwyczaj oznacza to koniecznosc instalacji pakietu
iptables-dev badz iptables-devel.


0. Dostosowanie kompilacji - przejrzyj src/setup.h oraz src/Makefile
   W chwili obecnej interesujace moga byc polskie komunikaty (#define POLISH).

1. Kompilacja

	make

2. Instalacja w /usr/local/sbin + zalozenie konta + katalogow

	make install

   Podczas instalacji zostanie zainstalowany skrypt startowy
   (/etc/init.d/smtp-gated). Jesli nie zostanie nie zostanie wyswietlona
   informacja o sposobie uruchomienia, wykonaj jedno z (w zaleznosci od
   dystrybucji)

	make debian
	make redhat

4. Ewentualne uaktualnienia: podmienia program, weryfikuje
   plik konfiguracyjny i restartuje proces

	make upgrade


KONFIGURACJA - WSTEP
--------------------

1. Wszystkie opcje konfiguracyjne opisane sa w kodzie programu
   (wystarczy znalezc tekst "smtp-proxy.isp").

2. Uzywane ustawienia mozna zweryfikowac poprzez:

	smtp-gated -t /etc/smtp-gated.conf
	smtp-gated -T /etc/smtp-gated.conf (*)

   Powinna sie wyswietlic rzeczywista konfiguracja uzywane przez program.
   Jesli nie pokaze sie nic, nalezy poszukac bledow w logach systemowych.
   (*) drugie wywolanie pokazuje dodatkowo uzywane teksty komunikatow.
   Komunikaty takze mozna dostosowac do wlasnych potrzeb.

3. Plik konfiguracyjny do edycji mozna przygotowac przez:

	smtp-gated -t >nowy_plik

   Wartosci domyslne (lub nie uzywane) nalezy zakomentowac, aby nie
   przeszkadzaly przy upgrade-ach. Zostawiamy tylko to co jest inne
   niz domyslne. Linie zaczynajace sie od znakow '#' oraz ';' sa ignorowane.
   Ignorowane sa takze spacje i tabulatory na poczatku i koncu linii, oraz
   po nazwie opcji. Wszystkie inne znaki sa traktowane jako czesc parametru
   (takze cudzyslowy).

4. Przekierowanie iptables (najprostsza wersja)

	iptables -t nat -A PREROUTING
	  -p tcp --dport 25 -j DNAT --to ip_proxy:port_proxy

   Najlepiej jednak przekierowac wylacznie polaczenia z interfejsu
   wewnetrznego i sieci wewnetrznej, np.:

	iptables -t nat -A PREROUTING
	  -p tcp --dport 25 -i eth1 -s 192.168.1.0/24 -j DNAT --to ip:port

5. Status demona mozemy uzyskac poprzez:

	/etc/init.d/smtp-gated status


UWAGA!
   Jesli dzieje sie cos nie halo i nie wiadomo o co chodzi - w pierwszej
   kolejnosci sprawdz logi systemowe.

   Poziom logowania okreslony przez log_level dotyczy *wszystkich* wpisow,
   a co za tym idzie ustawiony zbyt nisko moze wyciac np. wpisy dotyczace
   adresow e-mail.


INNE
----

Uzywasz tego oprogramowania na wlasne ryzyko. Autor nie ponosi
odpowiedzialnosci za jakiekolwiek straty badz szkody spowodowane jego
uzyciem, ani odpowiedzialnosci z jakichkolwiek innych przyczyn.

Jesli uzywasz programu powyzej miesiaca, chetnie sie dowiem o jego
stabilnosci. Tym chetniej im bedzie ona nizsza ;) Wszelkie tego typu
informacje prosze na maila, wraz z gzip-owanym logiem.

Adres: smtp-proxy {mapa} klolik {kropka} org


PODZIEKOWANIA
-------------

Dla Grzegorza Janoszki za zgloszenie kilku niedorobek.


