Archiwa tagu: exim

Exim

Podstawowym programem przewidzianym w NND do uruchomienia poczty jest exim w wersji 4.X. Jest to prosta w konfiguracji aplikacja MTA, o wysokim stopniu bezpieczeństwa i niezawodności. Exim został specjalnie przygotowany dla dystrybucji NND. Instalacja pakietu odbywa się standardowym poleceniem:
pacman -S exim.

W chwili pisania tego artykułu (27.11.04) dostępny jest exim 4.42. Zapewne w przyszłości, część opisanych tu czynności zmieni się. Zmierzamy bowiem do większej automatyzacji zadań instalacyjnych. Na pewno jednak pozostanie konieczność dokonania zmian w pliku konfiguracyjnym.
Najpierw powinniśmy wygenerować klucz i certyfikat dla swojego serwera. Najpierw wpisujemy:
openssl genrsa -out /etc/mail/exim.key 1024
i czekamy na wygenerowanie klucza.
Kolejne polecenie:
openssl req -new -x509 -days 365 -key /etc/mail/exim.key -out /etc/mail/exim.crt
wymaga odpowiedzi na kilka pytań. Najważniejsze aby w polu Common Name wpisać prawidłową nazwę serwera (np. u mnie szkola.tuchomie.pl).
W katalogu /etc/mail znajduje się plik exim.conf, który należy wyedytować. Najlepiej użyć wbudowanego edytora w mc (F4). Nie trzeba zmieniać wielu domyślnych ustawień, dla ułatwienia do pakietu został dodany przykładowy plik zawierający większość wymaganych ustawień. Podstawowym zadaniem osoby instalującej pakiet jest zmiana przykładowego serwera na swój własny adres (linie 49, 62, 147, 469, 470). Należy również zmienić wpisy, dostosowując wewnętrzną nazwę swojej sieci, serwera i numery IP w LAN (linie 62 – 64). Można też zmienić sobie linię 54 zawierający tzw. baner smtp (w domyślnej konfiguracji jestMicrosoft Exchange SMTP server ;->).
Kolejnym krokiem jest sprawdzenie w linii 234 i 235 jest sprawdzenie poprawności ścieżki do wygenerowanych zabezpieczeń SSL. Pozostaje jeszcze otworzyć do edycji plik /etc/mail/aliases i na końcu tego pliku dopisać sobie użytkownika, który będzie dostawał pocztę roota. Jest to o tyle ważne, że domyślnie żadna poczta od i do roota przychodzić nie może i system w takim przypadku będzie nam generował niepotrzebne błędy w logach.
Teraz jeszcze pozostaje dopisanie exima do rc.conf w sekcji DAEMONS. W przypadku uruchomienia wraz z serwerem pop3 i skanerem antywirusowym kolejność powinna być następująca: exim clamav tpop3d.
W zasadzie exim jest już gotowy do eksploatacji. Jednak najważniejszą właściwością tej kompilacji jest możliwość uruchamiania w bezpiecznym trybie SSL. W tym celu należy po linii 14 w /etc/rc.d/exim dopisać:
/usr/sbin/exim -bd -q15m -oX 465 -tls-on-connect
Pozwoli to na skonfigurowanie klientów pocztowych aby łączyły się z serwerem na porcie 465 z użyciem połączenia SSL (ważne szczególnie w sieciach wifi).
Poniższy fragment jest ważny dla posiadaczy wersji alfa NND.
Aby exim pracował poprawnie musi mieć możliwość identyfikacji hasła użytkownika. Plik shadow nie jest dostępny dla nikogo poza rootem. Exim dla bezpieczeństwa nie paracuje z prawami roota. W tym celu musimy mieć program pwcheck, który wywoływany jest do wyłącznie do sprawdzenia hasła. Należy w tym celu zainstalować pakiet cyrus-sasl (nie został wpisany do zależności, ponieważ i tak wymaga poniżej opisanych czynności) lub bezpośrednio sam program pwcheck (http://szkola.tuchomie.pl/nnd/pwcheck). Jeśli już mamy ten program obojętnie z jakiego źródła, trzeba utworzyć katalog /var/pwcheck a samo uruchamianie pwcheck dopisać do rc.local. Jest to rozwiazanie tymczasowe, ponieważ w przyszłości pakiet cyrus-sasl zostanie dopracowany i będzie zapewne potrafił sam uruchamiać pwcheck. Teraz już możemy uruchomić exima poleceniem: /etc/rc.d/exim start i sprawdzić wyniki jego działania w logach.
Więcej czynności konfiguracyjnych będą musieli wykonać ci, którzy zechcą ustawić relay na inne domeny, ustawić rekordy MX, czy dodatkowo uruchomić procmaila. Warto w tym celu zajrzeć na:
http://www.baseciq.org/linux/eximconf – to świetna witryna opisująca większość zagadnień związanych z eximem.
W pliku konfiguracyjnym exima można również w bardzo prosty spsoób dodać wpis:
#dodane – korzystanie z listy antyspamowej
deny message = Access denied – $sender_host_address listed by $dnslist_domain $dnslist_text
dnslists = dnsbl.sorbs.net
W ten sposób dodamy obsługę tzw. list RBL. Oczywiście adres serwera RBL może być dowolny. Jest to najprostsza forma ochrony antyspamowej. Jendak trzeba pamiętać, że w ten sposób odetniemy ogromną część użytkowników neostrady, bowiem exim korzysta z list RBL bardzo restrykcyjnie. Powyższy wpis należy dodać po istniejących zahaszowanych przykładach w konfiguracji.
PS. Uwaga, numery linii pliku konfiguracyjnego zapewne będą inne w kolejnych wersjach pakietu, edytując plik użyj klawisza F7 w celu wyszukania odpowiednich wpisów.

W. Trąmpczyński (Maciek)

Format poczty w NND

Domyślnym formatem poczty w NND jest tak zwany format BSD czyli mbox. Oznacza to, że wszystkie kolejne maile kierowane są do jednego pliku przeznaczonego dla danego użytkownika. Można to jednak zmienić. Dlaczego należy to zrobić i jak?

Kiedy członkowie PGF rozpoczynali w 2002 roku prace nad przygotowaniem poprawnej konfiguracji poczty elektronicznej w systemie Freesco (programy exim i teapop), wydawało nam się, że najwłaściwszym będzie format mbox. Było to związane z nietypową strukturą katalogów Freesco i zastosowaniem systemu plików umsdos. Polecanym wówczas rozwiązaniem było przeniesienie poczty do katalogów użytkowników do /mnt/home na odrębną partycję z systemem ext2. Unikało się w ten sposób błędów jakie były wywoływane na podstawowej pratycji Freesco i jej ograniczenia jej pojemności. Przyjęte wówczas zasady były spowodowane zarówno ograniczeniami samego Freesco, jak i wersjami programów tam zastosowanych.
W roku 2004, gdy powstało NND, rozwiązania z Freesco zostały przeniesione do nowego systemu. Dziś z perspektywy czasu można stwierdzić, że czas najwyższy to zmienić.
Dlaczego maildir? D.J. Brenstain – autor qmaila na to pytanie odpowiada dwoma słowami „no lock”. W praktyce oznacza to, że jeśli poczta jest przechowywana w katalogu, każdy mail jako osobny plik, to użytkownik może odbierać pocztę w tym czasie kiedy nowa poczta jest przetwarzana. Unikamy denerwującego komunikatu „mailbox is locked” pojawiającego się czasem podczas odbierania poczty. W przypadku jakichś błędów może się zdarzyć, że zablokowany mbox odblokowac może tylko administrator. Co gorsza w przypadku błędów na dysku może się zdarzyć, że cały plik z pocztą ulegnie uszkodzeniu. Format maildir pozbawia nas tego problemu.
Jak to zrobić? Należy dokonać kilku zmian w plikach konfiguracyjnych programów pocztowych.
Najpierw exim.conf, zamiast:
file = /var/spool/mail/$local_part
wstawić należy:
maildir_format = true
directory = /home/$local_part/Mailbox

i w ten sposób umiejscowimy skrzynkę pocztową w katalogu użytkownika. Może to być przydatne, choćby wtedy, gdy na partycji /home zastosujemy quotę.
Następnie zmienić trzeba plik tpop3d.conf, zamiast:
mailbox: bsd:/var/mail/$(user)
wstawiamy:
mailbox: maildir:$(home)/Mailbox
i jest to opcja analogiczna do tej w exim.conf.
Jeśli używamy procmaila, plik .procmailrc w katalogu użytkownika powinien na początku (niezależnie od innych wpisów) mieć następujące linie:
SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin/:/usr/sbin
MAILDIR=$HOME
DEFAULT=$MAILDIR/Mailbox/
LOGFILE=$HOME/procmail.log

Jeśli już zostały wykonane wszystkie zmiany, należy zrestartować usługi exim i tpop3d.
Oczywiście takie zmiany na już działającym systemie wymagają porozumienia z użytkownikami i czasowego wyłączenia usług, aby nie doszło do utraty poczty.

autor: W. Trąmpczyński (Maciek)

Dodatkowe zabezpieczenie exima

Jeśli przeglądamy logi serwera smtp, możemy zauważyć połączenia, które mają dość charakterystyczną cechę – obcy host próbuje się przedstawiać za pomocą naszego IP lub domeny. To jedna ze sztuczek spamerów, usiłują wysyłać spam jako użytkownik naszego serwera, licząc, że w ten sposób serwer nie odrzuci połączenia. Poniżej przedstawiam metodę, która pozwoli na odrzucenie takich połączeń już na etapie negocjacji.

Na początku pliku konfiguracyjnego dodajemy wpisy:
MY_IP = TU_NASZ_IP
MY_DOM = TU_NASZA_DOMENA

Potem w sekcji MAIN dodajemy jeszcze wpis
acl_smtp_helo = acl_check_helo
i następnie w sekcji ACL:
acl_check_helo:
accept hosts = :
accept hosts = +relay_from_hosts
drop condition = ${if match{$sender_helo_name}{MY_IP}{yes}{no} }
message   = „Dropped spammer pretending to be us”
drop condition = ${if match{$sender_helo_name}{MY_DOM}{yes}{no} }
message   = „Dropped spammer pretending to be us”
drop condition = ${if match{$sender_helo_name}{^[0-9].[0-9].[0-9].[0-9]}{yes}{no} }
message   = „Dropped IP-only or IP-starting helo”
accept

a na koniec zrestartujemy exima. W ten sposób już po EHLO odrzucone zostaną połączenia, które przedstawiają się naszym IP lub domeną, a także te przedstawiające się wyłącznie przez IP.
W razie potrzeby można dodać np. jeszcze zmienną MY_SERV, aby jeszcze dopisać kolejną domeną przypisana do serwera. Zasada jest taka, że zmienne muszą być różne i nie zawierać znaków w tej samej kolejności, tzn nie może być np. MY_DOM2. Do każdej dodanej zmiennej oczywiście musimy dopisać regułkę w sekcji ACL.

Filtry w eximie

Do zalet exima należy i ta, że można mu zlecić wykonywanie różnych dodatkowych czynności, za pomocą filtrów zapisanych w osobnych plikach. W ten sposób niektórzy zbudowali całkiem niezłe systemy antyspamowe, które wspomagane greylistingiem i kilkoma dodatkowymi regułami dają ogromną skuteczność. Jeśli ktoś chciałby zbudować sobie taki system filtrowania, powinien poszukać tekstów z frazami „exim, filter, forward” i zapewne znajdzie sporo przydatnych opisów. W większości po angielsku – ale to chyba nie stanowi problemu 😉
Jak zbudować filtry – o tym poniżej.

Po reorganizacji swojego serwera pocztowego miałem problem. Stosowany do rozmaitych dodatkowych zadań (np wysyłanie sms) procmail już nie mógł zostać zastosowany. Procmail musi mieć swój plik konfiguracyjny w katalogu użytkownika i ten plik musi być własnością tegoż użytkownika. Wirtualnych użytkowników nie ma w systemie – dla procmaila oni więc nie istnieją.
Podobną barierą okazało się stosowanie dyrektywy „userworward”, która działa świetnie, ale tu sprawa rozbiła się o podobny problem. Nie da się jej zastosować w przypadku wirtualnych użytkowników.
Pozostał mi zatem filtr systemowy, a do tego należało dodać kilka opcji konfiguracyjnych, których domyślnie nie ma. W pliku exim.conf w sekcji głównej dodałem:

###############
# filtr systemowy
system_filter = /etc/mail/exim.filter
system_filter_user = mail
message_body_visible = 5000
system_filter_pipe_transport = sms_pipe
system_filter_file_transport = address_file
system_filter_reply_transport = address_pipe
#####################

Nie wszystkie z tych opcji są mi potrzebne, ale mogą się przydać komuś, kto na przykład będzie chciał analizować nagłówki czy treść. Najważniejsza dla mnie opcja „sms_pipe” pozwala wysyłać sms przez mały skrypcik, jaki mam w systemie. Jednak to jest nazwa wymyślona przeze mnie i exim nie będzie wiedział, co ma robić i to zapewne zaowocuje błędem. Dlatego trzeba tę wartość zdefiniować, w sekcji Transport dodałem:

##############
# definicja sms_pipe
sms_pipe:
driver = pipe

Filtr, który sobie wymyśliłem ma wysyłać smsa po otrzymaniu poczty. Od razu zaznaczam, że jest to sensowne, jeśli przychodzi bardzo mało maili i mamy konto w plusie (lub też mamy jakiś specjalny program wysyłający płatne smsy). W przypadku mojego serwera chodzi o jednego użytkownika, który dostaje mail raz na kilka dni i chce dokładnie wiedzieć kiedy.
Teraz pora na konfigurację pliku /etc/mail/exim.filter.
Wygląda on następująco:

# Exim filter

if
$header_to contains „user@domena”
then
unseen pipe „/bin/sendsms 6xxxxxxxx nowa_poczta”
endif

Ważna jest pierwsza linia, żeby exim wiedział – jaki plik czyta. Następnie mamy warunek, że jeśli odbiorcą jest to należy niewidocznie uruchomić program /bin/sendsms z parametrami i następuje konic warunku. W ten sposób poczta dochodzi do użytkownika, a sms na jego komórkę. Oczywiście można znacznie zawęzić warunki wysyłania sms.

if
$header_to contains „synek@domena”
$header_from contains „mama@innadomena”
then unseen pipe „/bin/sendsms 6xxxxxxxxx poczta_od_mamy”
endif

Ważne są podkreślniki i nie możemy z nich zrezygnować. Bezpośrednio z linii poleceń wysyła się cały sms w cudzysłowach, tu z nich trzeba zrezygnować i w takim wypadku bez podkreślników został by wysłany tylko pierwszy wyraz.
Oczywiście możemy wykorzystać filtr np. do tego, żeby robić kopie maili, żeby filtrować je w zależności od tematu, zawartości lub załączników. Wszystko zależy od inwencji administratora.

autor: W. Trąmpczyński (Maciek)

Awk i Exim – przydatny skrypt statystyczny

Od jakiegoś czasu używam nowej wersji Exima, który ma zaimplementowane mechanizmy ochronne. Jest greylistowanie korzystające z bazy MySQL i odrzucanie nadawców, którzy są na listach RBL i takich, którzy się usiłują przedstawiać jako mój własny serwer. Aby wiedzieć co się dzieje wykorzystałem niewielki skrypt.
Pomysł takiego skryptu przedstawił Marcin Krzywonos na zjeździe Freesco w lipcu 2008. Skrypt analizuje plik /var/logexim/rejectlog.

Sam skrypt po przeróbkach wygląda następująco:
# skrypt do analizy logu exima
# napisany przez MKK, modyfikacja WT

/^.*Dropped.*$/ {
Dropped++
}
/^.*Unknown.*$/ {
Unknown++
}
/^.*listed.*$/ {
listed++
}

/^.*temporarily.*$/ {
temporarily++

pos = match($0, „H=”)
if (pos > 0) {
str = substr($0, pos, length($0))
printf(„Greylistowany adres: %s „, substr(str, 4, match(str, „F=”) – 4));
}
}

END {
printf(„Greylistowane: %d „, temporarily);
printf(„Odrzucone (RCPT): %d „, Unknown);
printf(„W tym na (RBL): %d „, listed);
printf(„Odrzucone (EHLO): %d „, Dropped);
}

Skrypt wyświetla następujące dane:
Adresy i IP greylistowanych hostów, może to czasem się przydać w celu dodania problematycznych serwerów do białej listy.
Liczbę greylistowanych wywołań.
Liczbę odrzuconych nadawców,
w tym z powodu obecności nadawcy na listach RBL (pozostałe odrzucone głownie ze względu na nieistniejącego odbiorcę).
Liczbę odrzuconych nadawców przedstawiających się jako mój serwer.
Wynik wywołania skryptu w postaci awk -f /sciezka/skrypt /var/log/exim/rejectlog wygląda tak (wywołanie skryptu można dołączyć do crona):

Greylistowany adres: 89-18-165-3.dsl.telesp.net.br [189.18.165.3]
Greylistowany adres: ads151.neoplus.adsl.tpnet.pl [83.4.96.151]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: eek175.neoplus.adsl.tpnet.pl (viatori-3f5c340) [79.186.114.175]
Greylistowane: 22
Odrzucone (RCPT): 534
W tym na (DNSBL): 55
Odrzucone (EHLO): 43

Dzięki temu wiem, że w ciągu ostatniej doby 22 nadawców było greylistowanych, a większość tak czy inaczej odrzuconych, jeśli do tego dodam podobny skrypt z analizy mainlog i dowiem się, że dostarczonych zostało 7 maili, to mam względnie krótki i pełny wgląd w działanie serwera SMTP i jednocześnie wiem, jaka jest skuteczność wbudowanych w exima zabezpieczeń. Ponieważ wśród dostarczonych maili był tylko jeden list, który w zasadzie można było by zakwalifikować jako spam reklamowy, to wygląda to całkiem nieźle. Jeśli taki stan się utrzyma przez najbliższe tygodnie, to moge uznać, że dodatkowe zabezpieczenie antyspamowe nie jest mi potrzebne.
Przy okazji stwierdziłem, że na niektórych zarządzanych przeze mnie serwerach pojawia się spora ilość prób spamerskich polegających na wysyłaniu maila do nieistniejącego użytkownika, podobnie jak to się dzieje przy atakach botów na ssh. Dodawane są kolejne loginy i ich rozmaite wariacje w nadziej, że któryś kolejny będzie pasował. Na takich spamerów dobrym sposobem jest włączenie ochrony portu 25 przez fail2ban.

autor: W. Trąmpczyński (Maciek)

System z wirtualnymi użytkownikami

W repozytorium testing (stan na 16.09.2008) znajdują się nowe pakiety. Zestaw exim-sql, tpop3d-sql, proftpd-sql oraz mailadmin służy do wdrożenia użytkowników poczty i ftp zawartych w bazie MySQL i nie mających dostępu do systemu. Jest to dobre rozwiązanie na serwerach, które różnym osobom udostępniają usługi pocztowe i ftp, a administartor chciałby wykluczyc negatywne następstwa dla serwera wynikające z niefrasobliwości uzytkowników.

Wymieniony zestaw pakietów można zainstalować w całości lub w części. jeden administrator będzie potrzebował tylko pocztę, a inny wyłącznie ftp. Pakietem łączącym wszystkie element w całość jest mailadmin. Zawiera on łatwy panel www do administrowania wirtualnymi kontami. Można dodawać i kasować użytkowników, aktywować i dezaktywować pocztę lub ftp. Pakiet ten nie jest objęty zależnościami, ale warto go zainstalować, aby ułatwić sobie zadanie.

Instalacja pakietów
Potrzebne pakiety instalujemy poleceniem pacman -S nazwa-pakietu. Jeśli w systemie jest już exim, tpop3d lub proftpd, najpierw lepiej usunąć stare pakiety.

Konfiguracja ProFTPd z bazą użytkowników w MySQL
Po instalacji należy w katalogu /etc plik proftpd.conf.sql zmienić na proftpd.conf. W tym pliku znaleźć linię:
SQLConnectInfo  poczta@localhost poczta twoje-haslo
i wpisać własne hasło, jakie ustaliliśmy dla swojego użytkownika poczta po instalacji exima lub panelu mailadmin.
Panel Mailadmin tworzy użytkowników i nadaje im UID 5001 oraz GID 50, a także ustawia ich katalog domowy na /home/virtual/nazwa.domeny/nazwa.użytkownika.
Zatem przykładowy użytkownik Janek Kowalski mający konto pocztowe o nazwie i loginie j.kowalski@moja.domena.pl, będzie miał swój domowy katalog w /home/virtual/moja.domena.pl/j.kowalski. Tego katalogu jednak na razie nie ma. Pojawi się on dopiero, gdy użytkownikowi odblokujemy usługę FTP w panelu administracyjnym, lecz wcześniej musimy założyć użytkownika virtual, który będzie służył do wszystkich wirtualnych  kont. Wcześniej należy sprawdzić, czy mamy grupę ftp z GID 50, a jeśli nie, to też ją założyć.

[root@serwer ~]# adduser
Login name for new user []: virtual
User ID (‚UID’) [ defaults to next available ]: 5001
Initial group [ users ]: ftp
Additional groups (comma separated) []:
Home directory [ /home/virtual ]
/…/
Creating new account…

Dalej wciskamy tylko enter i nie zakładamy hasła temu użytkownikowi, ponieważ nie będzie on miał żadnych praw poza własnością katalogu /home/virtual. Dla zachowania porządku wyczyścić należy wszystkie wpisy w /home/virtual – założone automatycznie tam pliki nie będą potrzebne.
Teraz kiedy użytkownik, któremu odblokowaliśmy konto FTP, zaloguje się pierwszy raz, jego katalog zostanie utworzony automatycznie.
Jeśli prawo do własnego FTP ma być związane z prezentowaniem własnej strony www przez danego użytkownika, to oczywiście trzeba jeszcze odpowiednio skonfigurować apache. Przykładowo można danemu użytkownikowi założyć wirtualnego hosta, jeśli posiada on jakąś swoją domenę. Można założyć subdomenę dla wszystkich użytkowników wirtualnych n.p users.moja.domena.pl i umiejscowić ją dyrektywa VirtualHost na katalog /home/virtual/moja.domena.pl. Wtedy strony naszego przykładowego użytkownika będą widoczne pod adresem users.moja.domena.pl/j.kowalski. dodatkowo możemy w katalogu nadrzędnym zakładać pliki .htaccess, w których ograniczymy możliwości wykonywania kodu php -np wpiszemy dyrektywę Safe_mode = On. Może mieć to znaczenie w szkole, gdzie w celach ćwiczeniowych rozdajemy konta uczniom, ale jednocześnie nie chcemy psuć bezpieczeństwa serwera.

Konfiguracja serwera smtp i pop3 (exim i tpop3d)
Konfiguracja jest prosta i nieskomplikowana. Obydwu programów można używać bez wsparcia mysql – czyli tradycyjnie (choć MySQL jest w zależnościach i musi zostać zainstalowany). Do konfiguracji exima w takim przypadku można użyć nndconf. Jeśli jednak chcemy korzystać z wersji z użytkownikami wirtualnymi, trzeba zacząć od konfiguracji pliku exim.conf.sql. Edytujemy go ręcznie przeglądając dokładnie. Nasze wpisy będą zależały od konfiguracji domeny. Jeśli nie mamy skonfigurowanego rekordu MX, to promary_hostname i qualify_domain zawierać muszą to samo. W przypadku posiadania MX w postaci mail, primary_hostname to mail.moja.domena.pl, a qualify_domain to moja.domena.pl. Trzeba też wpisać hasło do bazy w linii zawierającej hide mysql_servers = „localhost/poczta/poczta/twoje-haslo”. W pliku tym znajdziemy jeszcze wpisy MY_IP oraz MY_DOM, służą one do wpisania własnego IP oraz domeny, po to by w sekcji ACL odrzucać spamerów, którzy łącząc się z naszym serwerem przedstawiają się jako on sam (jest to opisane na stronie w osobnym artykule i można taki dodatek umieścić w pliku konfiguracyjnym każdej innej instalacji exima).
Należy jeszcze zmienić swój tzw. baner, zmienić nazwę pliku na exim.conf  i można już uruchomić exima.
W pliku tpop3d.conf.sql znajdujemy linię auth-mysql-password: twoje-haslo i wpisujemy własne, następnie w /etc/conf.d/tpop3d musimy mieć linię (zamiast standardowej):
TPOP3D_ARGS=”-f /etc/mail/tpop3d.conf.sql -p /var/run/tpop3d.pid”
i tpop3d również można uruchomić.

Konfiguracja panelu Mailadmin
Jednak poczta nie będzie działać zgodnie z naszymi oczekiwaniami, jeśli nie założymy użytkowników. Wchodzimy na naszym serwerze www do katalogu mailadmin (oczywiście przez przeglądarkę) – http://moja.domena.pl/mailadmin. Podczas pierwszego uruchomienia zostaniemy poproszeni o podanie hasła, które zostanie zapisane do bazy. Będzie to hasło administracyjne, gdy już je podamy, za chwilę pokaże nam się okno logowania. Wpisujemy login admin i wymyślone przed chwilą hasło. Teraz czeka nas zakładanie domen i kont użytkowników. Najpierw zakładamy domenę podstawową, jeśli mamy jeszcze inne to zakładamy je również (uwaga! muszą one istnieć). Potem zakładamy użytkowników. Każdy użytkownik będzie miał teraz login taki sam jak adres poczty, czyli np. j.kowalski.moja.domena.pl. Dobrze jest zlikwidować całkowicie obsługę poczty dla kont systemowych. W tym celu w /etc/mail/aliases wpisujemy:
nazwa: nowy.user@moja.domena.pl
i w ten sposób, jeśli mieliśmy już istniejące konta, poczta nadal będzie dochodzić, tak też ustalamy użytkownika, który będzie dostawał pocztę roota (np. komunikaty systemowe).

UWAGA! Pakiety są w fazie testów, więc w najbliższym czasie mogą się jeszcze zmieniać i zyskiwać nowa funkcjonalność.
Od 19.09.2008 jest mailadmin z zarządzaniem biała i czarną listą, a w eximie dodano skrypt czyszczący czarną listę.

autor: W.Trąmpczyński (Maciek) przy współpracy Bartka Czerwińskiego i Jakuba Cichockiego

Exim i teapop

Poczta elektroniczna, tzw. e-mail, jest realizowana przez programy nazywane MTA (Mail Transport Agent). To te programy utrzymują skrzynki pocztowe użytkowników oraz zajmują się skutecznym dostarczaniem listów do odbiorców. Programy wykorzystują standardowo port 25 komunikując się protokołem nazwanym SMTP (Simple Mail Transport Protocol). Niektóre z tych programów potrafią także obsługiwać przekazywanie odebranych listów ze skrzynek do programów obsługi poczty takich jak Outlook, The Bat itp. Tak jest w przypadku eXtremaila ale np. Exim wymaga dodatkowego programu obsługującego protokół odbioru poczty nazywany POP3. Odbiór poczty poprzez protokół POP3 odbywa się na porcie 110. Nowszy protokół IMAP4 posługuje się portem 143.

Do dyspozycji we Freesco mamy kilka programów: eXtremail (SMTP + POP3) albo exim (SMTP) we współpracy z teapopem (POP3) lub pakietem courier. Ponieważ eXtremail ma świetny opis (manual) na swojej stronie domowej, a ponadto działanie tego programu było powodem wielu problemów użytkowników Freesco, dlatego skupimy się na tandemie exim+teapop.
Warto polecić ostatnią wersję tych programów (exim 3.36, teapop 0.3.5) – o przyczynach takiego wyboru później. Ci którzy lubią tzw. kombajny mogą zainteresować się Communigate Pro. Na www.freescosoft można znaleźć też aplikację Delegated, która spełnia podobne zadania. Można też wspomnieć, że właśnie w fazie testów znajduje się postfix.
INSTALACJA
Poleceniem installpkg http://adres.serwera.z.paczkami/exim rozpoczynamy instalację exima a później teapopa (zamiast teapopa można wybrać courier, który ma możliwość posługiwania się protokołem IMAP4) Przykład:
installpkg http://www.freesco.arx.pl/0.2.7/exim
Instalacja jest standardowa i nie powinna sprawić większych kłopotów. Exim jest programem MTA, czyli jedynie przekazuje pocztę pomiędzy komputerami w Internecie. Zatem nie sprawdzimy jego działania przed instalacją programu do odbioru poczty.
KONFIGURACJA
Po instalacji musimy wyedytować plik „configure” w katalogu /mnt/router/packages/exim. Nie ma sensu podawać tu pliku w całości ponieważ większość domyslnych ustawień zachowamy. Natomiast te które są poniżej, musimy koniecznie zmienić. Niektórym zmiennym pliku configure można przypisać kilka wartości – w tym przypadku oddzielamy je dwukropkiem. Spacje można wstawiać ale nie ma obowiązku, są ignorowane. primary_hostname = wpisz.adres.swojego.serwera.pl
# Przykład:
primary_hostname = pp22.miastko.sdi.tpnet.pl
# qualify_domain =
# Zostawiamy zahaszowane, będzie wykorzystana wartość z primary_hostname
local_domains = localhost : wpisz.adres.swojego.serwera.pl
# Przykład:
local_domains=localhost:pp22.miastko.sdi.tpnet.pl:domenakumpla.pl
Te linie wskazują Eximowi, po nawiązaniu połączenia przychodzącego w celu przesłania maila, jakie przesyłki ma dostarczyć do lokalnych skrzynek a jakie należy przesłać dalej (tzw. relaying). Jeśli adres docelowy e-maila nie zgadza się z którąś z wartości local_domains nie powinniśmy domyślnie pozwalać na przesyłkę dalej bez autentykacji, o czym później, ponieważ stworzymy tzw. open relay chętnie wykorzystywany przez spamerów do nadużyć.
# local_domains_include_host_literals
forbid_domain_literals
Pierwszą domyślnie haszujemy znakiem „#”, drugą należy odhaszować, jeśli nie chcemy dostawać maili zaadresowanych do nas za pomocą naszego adresu IP zamiast nazwy domeny. Przykładowo user@[212.100.111.111] – jest to zaszłość używana dawniej choć nadal będąca częścią standardu, jednak obniża odporność na otrzymywanie niepożądanej poczty.
never_users = root
Definiujemy użytkowników dla których lokalne dostarczanie listów nie będzie wykonywane pod ich numerem uid, w zamian będzie użyte konto nobody. Jest to następna opcja bezpieczeństwa tzw. paranoid. Oczywiscie należałoby jeszcze zmienić wpisy w pliku „aliases” (katalog /mnt/router/packages/mail) – tak żeby listy adresowane do roota trafiały do innej skrzynki, posługiwanie się kontem roota do odbioru poczty nie jest bezpieczne.
Teraz pora na ustawienia dotyczące komputerów, które będą mogły korzystać z serwera smtp (wysyłać listy w świat), domyślnie są to komputery w sieci wewnętrznej i ewentualnie zaufane hosty naszych znajomych, czy nasz własny w pracy (lub odwrotnie) Ważne jest, żeby adresy tych komputerów były stałe – nie będzie to działać ze zmiennymi IP przydzielanymi komputerom łączącym się z internetem za pomocą modemów analogowych np. 0202122 w TPSA, usługa Dialnet co dzień itp.
host_accept_relay = localhost : my.friends.host : 192.168.0.0/16
Oczywiście nie wszystkie wpisy muszą być, jeśli jednak chcemy korzystać z logchecka, powiadamiania sms na telefon komórkowy, czy polecenia „mail” w skryptach php czy cgi, musimy tu również umieścić wpis localhost i wewnętrzną nazwę naszego serwera (jeśli jest inna niż nazwa zewnętrzna).
# relay_domains =
# To zostawiamy zahaszowane bo dotyczny tylko sytuacji, gdy jesteśmy wpisani w DNS dla jakiejś domeny zapasowym serwerem MX czyli poczty. Jeśli jednak jesteśmy to wpisujemy tu te domeny dla których prowadzimy taką usługę.
CZYNNOŚCI KOŃCOWE
Odblokujmy jeszcze komunikację programu ze światem. W tym celu wyedytujmy plik /mnt/router/rc/rcuser/rc_exim i wyszukajmy linijek:
# Comment out the next line to make exim accessable from the internet
# [ „$ENAMSQ” = y ] && ipfwadm -I -a reject -P tcp -W $INET -D 0.0.0.0/0 25
ta druga musi zaczynać się znakiem „#”, jeśli go brak wstawmy go tam i zapiszmy zmiany w pliku.
Na tym można zakończyć konfigurację exima dla najprostszej sytuacji, gdy listy wysyłane w świat będą pochodzić tylko z komputerów w naszej sieci lokalnej. Jednak mogą zaistnieć sytuacje, że sami znajdziemy się na zewnątrz sieci, albo udostępniamy komuś konto e-mail. Temu służy tzw. autentykacja albo inaczej uwierzytelnianie.
host_auth_accept_relay = *
Gwiazdka wpisana w tej linii spowoduje, że ze wszystkich hostów zewnętrznych trzeba będzie stosować uwierzytelnianie.
Ostatnia sekcja pliku „configure” zawiera wpisy pozwalające korzystać z haseł systemowych w celu przeprowadzenia uwierzytelniania, w tym zakresie niczego nie zmieniamy.
Pozostałe elementy konfiguracji można pozostwić bez zmian.
EXIM Z TEAPOPEM
Konfiguracja exima daje wiele różnych możliwości we współpracy z teapopem, fetchmailem i procmailem.
Można np. zmusic tandem teapop i exim do przechowywania listów w formacie „mbox”.
Możemy dodać wpis w sekcji DIRECTORS CONFIGURATION pliku configure exima:
users_aliases:
driver = aliasfile
file = /etc/users_aliases
search_type = lsearch
errors_to = root
i dodać plik users_aliases w katalogu /etc, co spowoduje, że można wstawiać dowolne aliasy np.:
webmaster: maciek@helios.workgroup
postmaster: maciek@helios.workgroup
admin: maciek@helios.workgroup
zdefiniowane aliasy nie muszą mieć w systemie użytkowników… Trzeba pamiętać, że plik ten dodajemy do katalogu /mnt/etc i kopiujemy ręcznie do /etc lub robimy restart.
Można również zmienić domyślny format przechowywania poczty. Obecnie jest to najczęściej tzw. maildir. Exim korzysta z tego domyślnie.
W sekcji „Transport Configuration” są następujące ustawienia:
local_delivery:
driver = appendfile
maildir_format = true
directory = /var/mail/$local_part
require_lockfile = true
use_fcntl_lock = true
use_lockfile = true
delivery_date_add
envelope_to_add
return_path_add
headers_add = „Lines: $body_linecount”
group = mail
# mode = 0660
Jeśli zmienimy „directory” na „file” ( i zahaszujemy linię maildir_format = true) exim będzie składował pocztę w tradycyjnym formacie „mbox” czyli w pliku.
Wielu administratorów Freesco pyta o możliwość założenia skrzynek pocztowych w katalogach domowych, które zwykle są na osobnej partycji, zapobiega to zapchaniu partycji systemowej przez użytkowników lubiących przesyłać i przechowywać wiele dużych plików. Musimy dokonać kilku zmian w konfiguracji exima i teapopa. Przedstawiony schemat zakłada, że katalogi użytkowników znajdują się w /mnt/home.
Zmiany w pliku konfiguracyjnym exima:
local_delivery:
driver = appendfile
# maildir_format = true
file = /mnt/home/$local_part/.Mailbox
require_lockfile = true
use_fcntl_lock = true
use_lockfile = true
delivery_date_add
envelope_to_add
return_path_add
headers_add = „Lines: $body_linecount”
group = mail
# mode = 0660
zmiany w pliku teapop.passwd:
empty:*:passwd:~/.Mailbox:0:
W ten sposób poczta będzie składowana w pliku .Mailbox w katalogu domowym użytkownika. Wybrano tu tradycyjny format „mbox” ze względu na zapewnienie dobrej współpracy z linuxowym klientem e-mail i news – Pine. Zastosowano nazwę pliku z kropką, co oznacza w linuxie plik ukryty i ma zapobiec przypadkowemu skasowaniu pliku podczas sesji ftp, oczywiście nie będzie tragedii jeśli plik zniknie, exim założy go gdy następny raz przyjdzie poczta. Po tej zmianie możemy usunąć plik rc_spool z katalogu /mnt/router/rc/rcuser – ponieważ linkowanie katalogów z pocztą nie będzie już potrzebne.
Jeżeli chcemy korzystać z formatu mbox i jednocześnie zostawić domyślny katalog poczty, założony podczas instalacji, musimy również usunąć plik rc_spool i zamiast niego wpisać w rc_exim:
ln -s /mnt/router/packages/mail /var/spool/mail
w pliku teapop.passwd:
empty:*:passwd:/var/spool/mail:0::mail:
Warto również zmienić plik aliases, aby żadne komunikaty nie przychodziły już na konto root.
Dlaczego warto przeprowadzić tę zmianę? Nie tylko ze względu na ulokowanie poczty. Zmiany te pozwalają również na udostępnienie użytkownikom pliku .forward w katalogu domowym (potrzebny np. do powiadamiania sms).
Teapop
Instalacja tej niewielkiej aplikacji jest prosta i w zasadzie nie wymaga, żadnej konfiguracji (jeśli ma działać wg domyślnych ustawień. Jedynie na co trzeba zwrócić uwagę, to zmiana domyślnego hasła użytkownika „ppp”, które instalator proponuje zmienić. Ewentualna konfiguracja programu do współpracy ze skrzynkami „mbox” została opisana wyżej. Powyższy opis wykonany został na podstawie doświadczeń i prób, więc zawiera sprawdzone informacje. Olek i Maciek – autorzy opisu wykorzystali doświadczenia swoje i innych członków grupy trzepak.freesco, w ostatniej części opisu konsultacjami służył Mis’.
Uzupełnienia:
Konfiguracja klienta e-mail
Jeśli korzystamy z autentykacji w eximie, pozwala on na wysłanie poczty każdemu użytkownikowi systemowemu z dowolnego adresu, pod warunkiem prawidłowej konfiguracji klienta pocztowego.
Nie wszystkie programy udostępniają taką opcję. W Outlooku musimy zaznaczyć we właściwościach konta pocztowego „serwer wymaga uwierzytelniania”, The Bat w nowszych wersjach we właściwościach konta i zakładce serwery ma przycisk „autoryzacja” – tam musimy zaznaczyć „sprawdzaj autoryzację dla smtp”. W kliencie pocztowym zestawu Mozilla (również Netscape) – obecnie dla wszystkich kont poczty przychodzącej jest używany jeden, ten sam, serwer obsługujący wysyłkę. Wpisanie następnych nie jest zalecane ani konieczne i może powodować problemy
. (w nawiasach podane są nazwy po zainstalowaniu langplpl.xpi – polskiego
tłumaczenia dla Mozilli)
Wybieramy menu „Edit” -> „Mail & Newsgroups
Account Settings…” -> „Outgoing Server (SMTP)”
(„Edycja” -> „Konfiguracja kont kuriera poczty…” -> „Serwer poczty wychodzącej…”)
Jako nazwę serwera podajemy IP naszego freesco od strony LANu
np. 192.168.0.1 port standardowo 25.
Zaznaczamy ptaszka przy „Use name and password” („Zawsze podawaj identyfikator użytkownika i hasło”) i wpisujemy nazwę użytkownika do okienka przy „User Name” („Użytkownik”).
Ustawienia szyfrowania połączenia SSL pozostawiamy wyłączone
czyli „Never” („Nigdy”).
Courier
Pakiet courier zwiera dwa demony startujące wraz z systemem – pop3d oraz imap. Jest wygodniejszy od teapopa, ponieważ umożliwia odbieranie poczty zgodnie ze specyfikacją IMAP4. Pozwala to na zarządzanie pocztą bezpośrednio z serwera. Jest to jednak pakiet nowy i jeszcze mało znany. Dlatego też oczekujemy na ewentualne uwagi i pomoc w wykonaniu opisu.
Fetchmail
Składnikiem dodatkowym w tandemie exim+teapop może byc fetchmail, program służący do pobierania poczty z kont zewnętrznych i przekazywania listów na konto lokalne.
Instalacja tego pakietu jest prosta i nie wymaga konfiguracji, poza plikiem fetchmail.conf, w którym ustalamy jak często i z jakiego konta zewnętrznego na jakie lokalne ma byc przekazywana poczta. Ze względu na bezpieczeństwo plik ten jest przeznaczony do zapisu i odczytu tylko dla roota. Zawiera nastepujące wpisy:
set daemon 3600 – interwał czasowy podany w sekundach
poll serwer.zdalny.pl with proto POP3 user „xyz” there with password „XXX” is „user@lokalny.serwer.pl”
Istnieje możliwość udostępnienia tej usługi użytkownikom do samodzielnej konfiguracji, jeśli mają dostęp do shella lub ftp…
(i tutaj nie wiem jak to się robi – zapytam co o tym wie Mis’ – pisal cos kiedys…)
Mail2sms
Skrypt przesyłający smsa po otrzymaniu nowej poczt napisał Marek na grupie trzepak.freesco. Skrypt pracuje w sieci PlusGSM i ściągnąć go można z http://miniwebportal.and.pl, tam też został umieszczony opis przedstawiony na grupie.
SKANER ANTYWIRUSOWY
Należy w tym celu zainstalować dwa pakiety ze strony www.webedited.com/freesco – jest to antivir i avmailgate.
Antivir jest darmowy dla zastosowań niekomercyjnych jednak najpierw trzeba się zarejestrować na stronie producenta, który pocztą przyśle nam plik – klucz.
Jednak najważniejsza jest możliwość użycia antywirusowego skanera poczty.
Do tego służy drugi pakiet – avmailgate.
Najpierw trzeba uaktualnić exima wg ostatniej wersji Dagooba. Ponieważ jednak mam pocztę w $HOME/.Mailbox i procmaila – nie instalowałem paczki, a ręcznie podmieniłem wszystkie pliki zawarte w nowej wersji.
Plik configure pozostał ten sam wzbogacony jedynie o wpisy:
unknown_alias_domains:
driver = aliasfile
file = /etc/aliases
search_type = lsearch*@
# user = exim
file_transport = address_file
pipe_transport = address_file
include_domain

unknown_alias:
driver = aliasfile
file = /etc/aliases
search_type = lsearch*
# user = exim
file_transport = address_file
pipe_transport = address_pipe
(Uwaga! Po kilu doświadczeniach, stwierdziłem, że te wpisy nie są niezbędne.) dodajemy to po istniejących wpisach w sekcji Directory Configuration.
Ponadto po zainstalowaniu antivir i avmailgate sugeruję zmienić dwa wpisy:
### Do not perform any delieveries if the loadavg is above this figure
deliver_load_max = 3.5 #było 1.5

### Only ever use 3 threads at once for delieveries – było 3
smtp_accept_queue= 5
smtp_accept_queue_per_connection = 5
To powinno poprawić działanie exima, także pod względem czasu blokowania skrzynki. Tu mała uwaga, exim dostarczając pocztę zakłada lockfile i kasuje dopiero po zakończeniu czynności, dlatego w trakcie procesu teapop nie ma dostępu do skrzynki. A zatem uwaga na wolniejsze komputery. Powyższe zmiany mogą zadziałać wręcz odwrotnie…
No i na koniec instalujemy avmailgate.
W zasadzie nie musimy nic więcej konfigurować.
Avmailgate działa ze wszystkimi formatami i miejscami składowania poczty. Po prostu otwiera w loop0 2 dodatkowe porty nasłuchu – pobiera od exima pocztę przychodzącą i oddaje z powrotem po sprawdzeniu… exim dalej robi swoje zgodnie z tym jak go ustawiliśmy.
http://www.webedited.com/freesco/ – adres strony z paczkami
UZUPEŁNIENIA
1. Od wersji #2 prawidłowo działa ustawienie strefy czasu w eximie. Dzięki temu mogą zniknąć problemy z nieprawidłową godziną utworzonej wiadomości. Wystarczy w końcowej części sekcji MAIN CONFIGURATION dodać wpis:
timezone = +0200 #dla czasu letniego (dla czasu zimowego będzie to +0100)
2. Od wersji #2 mogą wystąpić problemy z przesyłaniem listów do serwerów obsługiwanych przez Communigate. Spowodowane są przez wysyłanie pustego bloku TLS, który jest dla serwera Communigate impulsem do zamknięcia sesji. I na to jest lekarstwo. Należy dopisać w sekcji TRANSPORTS CONFIGURATION następujący string:
hosts_avoid_tls = *
Dopisujemy to na początku sekcji po:
remote_smtp:
driver = smtp
Od tego momentu nie mamy problemów z serwerami CGpro.
3. Zaawansowane filtrowanie poczty.
Ponieważ instalacja skanera antywirusowego nie ma sensu na komputerach słabszych niż P166 i 32 MB RAM, można zastosować filtry poczty, które nie obciążają tak maszyny, a bardzo skutecznie zabezpieczą użytkowników przed spamem i podejrzanymi przesyłkami.
W wersji #4 dołączany jest plik attachments.filter, który jest prekonfigurowanym filtrem systemowym. Żeby go uruchomić, wpisujemy w końcowej części MAIN CONFIGURATION następujące polecenie:
message_body_visible = 5000
message_filter = /mnt/router/packages/exim/attachments.filter
Filtr został napisany w specjalnym języku skryptowym exima, który jest prosty, ale daje wielkie możliwości (szczegóły na www.exim.org). Poniżej w skrócie przedstawię kilka przykładów, które można dodawać do pliku głównego.
#
——————————————————–
# Usuwanie spamu o charakterze pornograficznym
#
———————————————————

if $header_subject: matches
„ADULT|adult|porn!|Adult|Porn|Sex|porn|sex|Amateur|Teens|shit|pussy|nude”
then
fail text „Wiadomosc zostala usunieta, poniewaz
zawieralan
sygnatury wskazujace na spam lub reklamy pornon
————– n
This message has been rejected since it hasn
the signature of a known spam or porn in the header.”
seen finish
endif
if error_message and $header_from: contains
„Mailer-Daemon@”
then
# looks like a real error message – just ignore it
finish
endif
#
———————————————————–
# Usuwanie listów z załącznikami w formacie .exe,
.com itp…
#
———————————————————–
if $header_content-type: matches
„(?:file)?name=(„[^”]+.(?:ad[ep]|ba[st]|chm|cmd|com|scr|vb[se]|ws[fhc])”)”
then
if $return_path is „”
then
seen finish
endif
fail text „Wiadomosc zostala usunieta poniewaz forma zalacznika bylan
typowa dla znanych wirusow mailowychn
Jesli plik byl wyslany swiadomie nalezy wyslac go ponownien
w formie skompresowanejn
———— n
This message has been rejected because it hasn
potentially executable contentn
t$1n
This form of attachment has been used byn
recent viruses or other malware.n
If you meant to send this file then pleasen
package it up as a zip file and resend it.”
seen finish
endif
#
———————————————————–
Filtrowanie poczty może być też realizowane przez plik „.forward” znajdujący się w katalogu domowym użytkownika. Można tam wpisywać polecenia zapisujące pocztę do oddzielnych plików, przesyłanie określonych listów dalej i wiele jeszcze innych. Filtry exima są na tyle zaawansowane, że mogą zastąpić procmaila.
Należy pamietać, że aby uaktywnić zmiany, które zrobiliśmy należy na koniec w linii poleceń wywołać rc_exim z parametrem restart. Dodawanie nowych reguł filtrujących nie wymaga restartu exima.

Aby serwer poczty miał pełne możliwości należy jeszcze pomyśleć o zainstalowaniu Procmaila i Fetchmaila, choć to juz są odrębne zagadnienia.
Autorzy: Maciek i Olek Podziękowania dla: Marka, Lamera, Misia