[svn/pld-doc]: rev 203 - pld-doc/book/pl_book__uslugi
ciesiel w svn.pld-dc.org
ciesiel w svn.pld-dc.org
Pią, 9 Sty 2004, 23:27:13 CET
Author: ciesiel
Date: 2004-01-09 23:27:12 +0100 (Fri, 09 Jan 2004)
New Revision: 203
Modified:
pld-doc/book/pl_book__uslugi/pl_uslugi__exim.sec
Log:
- added first section - not finish yet; do not touch :)
Modified: pld-doc/book/pl_book__uslugi/pl_uslugi__exim.sec
===================================================================
--- pld-doc/book/pl_book__uslugi/pl_uslugi__exim.sec 2004-01-09 21:12:50 UTC (rev 202)
+++ pld-doc/book/pl_book__uslugi/pl_uslugi__exim.sec 2004-01-09 22:27:12 UTC (rev 203)
@@ -1,17 +1,467 @@
<?xml version="1.0" encoding="iso-8859-2"?>
<section>
<title>Exim - Program do transportu poczty elektronicznej (MTA) - autor. Baseciq</title>
- <para></para>
+ <para>Usługa MTA (ang. message transfer agent) jest odpowiedzialna za
+ przesył m.in e-mail między serwerami. Najpopularnieszymi
+ przedstawicielami tego typu usług są: Sendmail, Postfix czy
+ opisany przez nas Exim. Oto zalety jakie przemawiają za
+ wybraniem Exima jako naszego MTA:
+ </para>
+ <itemizedlist>
+ <listitem><para>Bo sendmail jest dziwny :)</para></listitem>
+ <listitem><para>Bo qmail nie jest prawdziwym MTA</para></listitem>
+ <listitem><para>Bo z postfiksem mam traumatyczne doświadczenia</para></listitem>
+ <listitem><para>Autoryzacja w Eximie jest domyślna</para></listitem>
+ <listitem><para>Przystosowany jest do kombinacji alpejskich i
+ slalomów gigantów</para></listitem>
+ <listitem><para>W PLD jest ładnie przygotowana paczka :-)</para></listitem>
+ <listitem><para>Umie gadać z MySQL'em z Postgresem, a także
+ zwykłymi plikami tekstowymi</para></listitem>
+ <listitem><para>Tom Kistner napisał do Exim'a zaj***stą łatkę,
+ rozbudowywującą Exim'a o obsługę programów antywirusowych,
+ daemona SpamAssasin (skanera antyspamowego) oraz wykrywania
+ błędów MIME - dzięki temu nie potrzebujemy wielkich i
+ zasobożernych syfów w perlu</para></listitem>
+ <listitem><para>Za to Tomasz Kojm napisał zaj***sty program
+ antywirusowy: Clam AntiVirus - darmowy, w
+ dodatku rewelacyjnie współpracujący z
+ Exiscanem</para></listitem>
+ </itemizedlist>
+ <para>Podsumowywując - Exim jest rewelacyjnym MTA. Jego możliwości
+ konfiguracji pozwoliły mi na zbudowanie dosyć rozbudowanego
+ serwera poczty obsługującego zarówno konta lokalne jak i konta
+ zapisane w bazie danych MySQL. Dodatkowe 'gwizdki' to np.
+ przeszukiwanie plików konfiguracyjnych serwera cvs w poszukiwaniu
+ adresów docelowych dla aliasów w domenie cvs.rulez.pl. O rzeczach
+ takich jak klasyfikowanie maili czy są spamem czy nie już nawet nie
+ wspomnę. W dodatku Exim jest całkiem bezpiecznym MTA (wersja 4.x wg.
+ securityfocus jak narazie dorobiła się jednego błędu - w końcu jakaś
+ cena musi być za te wodotryski). Zresztą konstrukcja omawianego MTA na
+ początku doprowadzała mnie do szału, gdyż Exim za cholerę nie może sobie
+ poradzić z smtp-auth via PAM z racji braku uruchamiania autoryzacji z własnego
+ uid/gid zamiast root'a ;-)</para>
<section>
<title>Exim: Instalacja</title>
- <para></para>
+ <para>Instalacja pakietu jest prosta. Uruchamiamy program
+ <command>poldek</command> i wykonujemy:</para>
+ <screen>poldek> install exim
+Przetwarzanie zależności...
+exim-4.30-2 zostanie zastąpiony przez exim-4.30-2
+Zaznaczono 1 pakiet do instalacji:
+I exim-4.30-2
+
+Uruchamianie sudo /bin/rpm --upgrade -vh --root / --noorder...
+Przygotowywanie...
+########################################### [100%]
+1:exim
+19 entries written
+Run "/etc/rc.d/init.d/exim start" to start exim daemon.
+poldek></screen>
+ <para>Oczywiście zanim wykonamy zalecenie startu demona powinniśmy
+ dokonać kofiguracji, którą opisuje następny rozdział.</para>
</section>
<section>
<title>Exim: Konfiguracja</title>
- <para></para>
+ <para>Wszelkich zmian w konfiguracji Exima dokonujemy w katalogu
+ <command>/etc/mail/</command>. Edytujemy plik
+ <command>exim.conf</command></para>
+ <para>
+ Domeny lokalne, to takie które Exim ma traktować jako
+ 'swoje' domeny. Mail zadresowany @jakas.domena.lokalna
+ który dotrze do Exim'a zostanie dostarczony lokalnie.
+ Domeny takie definuje w dyrektywie <command>domainlist
+ local_domains</command>. Standardowo, przyjmowana jest poczta
+ wysyłana do domeny identycznej jak hostname serwera:
+ </para>
+ <screen>domainlist local_domains = @</screen>
+ <para>
+ Znak <command>@</command> oznacza właśnie 'moja
+ nazwa'. Aby dopisać kolejne domeny wystarczy dodać je
+ do tej listy rodzielając je dwukropkami:
+ </para>
+ <screen>domainlist local_domains = @ : domena.pl : baseciq.org : /etc/mail/local_domains</screen>
+ <para>
+ Poza domena.pl, baseciq.org, Exim będzie teraz także
+ akceptował domeny wypisane w pliku
+ <command>/etc/mail/local_domains</command>. Domeny tam należy wpisywać w
+ oddzielnych linijkach. Exim o tyle fajnie działa, że
+ po dopisaniu ścieżki do pliku, wystarczy go raz
+ zrestartować. Jakiekolwiek kombinacje w
+ <command>/etc/mail/local_domains</command> nie będą wymagały restartu.
+ Tak więc najwygodniej będzie dopisać do pliku
+ konfiguracyjnego:
+ </para>
+ <screen>domainlist local_domains = @ : /etc/mail/local_domains</screen>
+ <para>
+ I poprostu powpisywać wszystkie domeny do
+ <command>/etc/mail/local_domains</command>.
+ </para>
+ <para>
+ Domeny dla których mamy być zapasowym MX'em tworzy się
+ bardzo łatwo. Linijkę pod <command>domainlist
+ local_domains</command> jest
+ <command>domainlist relay_to_domain</command>. Działa to w taki
+ sam sposób jak konfiguracja domen lokalnych, czyli,
+ piszemy:
+ </para>
+ <screen>domainlist relay_to_domains = /etc/mail/relay_to_domains</screen>
+ <para>
+ Od teraz, Exim będzie akceptował każdą pocztę
+ zaadresowaną do domen zawartych w pliku
+ <command>/etc/mail/relay_to_domains</command>. A co z nią zrobi? Jak
+ wiadomo, jeżeli domena ma kilka MX'ów, to Exim będzie
+ starał się ją dostarczyć do serwera o najniższym
+ priorytecie MX. Chyba że on ma najniższy, to
+ wygeneruje błąd.
+ </para>
+ <para>Relaying, czyli określenie kto może przez nasz serwer
+ wysyłać pocztę. I tutaj, listę adresów i hostów buduje
+ się w podobny sposób do local_domains i
+ relay_to_domains. Wystarczy stworzyć listę o nazwie
+ <command>relay_from_hosts</command>:
+ </para>
+ <screen>hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/16</screen>
+ <para>
+ Na chwile przystopujemy i wyjaśnimy jak zorganizowany
+ jest plik konfiguracyjny Exima. Wygląda to mniej
+ więcej tak:
+ </para>
+ <screen># głowna sekcja ...
+
+opcje i dyrektywy sekcji głównej
+
+begin sekcja1
+
+opcje i dyrketywy sekcji1
+
+begin sekcja3
+
+...</screen>
+ <para>
+ Tak więc plik ten jest zbudowany z sekcji, które rozpoczynają się
+ słowem <command>begin nazwa</command>, z wyjątkiem sekcji głównej, która jest
+ na samym początku pliku i nie posiada swojego begina. Sekcje
+ również nie mają żadnych słów kluczowych które by je zamykały
+ - poprostu początek (begin) nowej sekcji oznacza zakończenie
+ poprzedniej. I tak, standardowo mamy następujące sekcje:
+ </para>
+ <itemizedlist>
+ <listitem><para>główna - odpowiedzialna za podstawowe
+ ustawienia Exim'a</para></listitem>
+ <listitem><para>acl - listy kontroli dostępu,
+ filtrowania, odrzucania i akceptowania
+ poczty</para></listitem>
+ <listitem><para>routers - hm, najprościej jest to
+ przetłumaczyć jako routery, czyli
+ reguły kierowania wiadomości do
+ odpowiednich transporterów</para></listitem>
+ <listitem><para>transports - tutaj tworzymy sposoby
+ doręczenia poczty</para></listitem>
+ <listitem><para>retry - ustawienia ponowień</para></listitem>
+ <listitem><para>rewrite - reguły do przepisywania
+ nagłówków</para></listitem>
+ <listitem><para>authenticators - reguły do autoryzacji</para></listitem>
+ </itemizedlist>
+ <para>Co to są te całe 'transportery' i 'routery'? Właściwie
+ to serce Exima. Jeżeli Exim dostaje jakiegoś maila to
+ najpierw puszcza go przez routery, które można porównać do
+ reguł ipchains/iptables - jeżeli mail załapie się na jakąś
+ regułę (router) to jest przekazywany do transportu określonego
+ przez ten router. Inaczej mówiąc router w Eximie kieruje maila do
+ odpowiedniego transportera. Transporter natomiast robi już z mailem co
+ należy - doręcza go lokalnie, albo przekierowywuje gdzieś indziej albo odsyła
+ do innego serwera. Wiem że w tym momencie może wydawać się to skomplikowane,
+ ale nie przejmujcie się, to tylko wiedza teoretyczna która na początku nie
+ będzie wam potrzebna. Musiałem natomiast wam wytłumaczyć że są sekcje i że
+ musicie nauczyć się tego że jak napiszę 'dopisać w sekcji głównej' to należy
+ coś dopisać na początku pliku.
+ </para>
+ <para>Czasami (czytaj: gdy mamy sieczę w
+ <command>/etc/hosts</command>) Exim
+ zgłasza się nie jako
+ <command>serwer.domena.pl</command> a jako sam
+ 'serwer'. Jeżeli zmiana wpisów w
+ <command>/etc/hosts</command> nie
+ pomaga, albo gdy chcemy aby nasze MTA przedstawiało
+ się inaczej niż hostname maszyny na którym stoi
+ wystarczy ustawić (bądź dodać gdy jej nie ma) opcję
+ <command>primary_hostname</command> w głównej sekcji:</para>
+ <screen>primary_hostname = serwer.domena.pl</screen>
+ <para>
+ W czasach zabawy z sendmailem podawałem także sposób
+ na ograniczenie bannera który się pojawiał po telnecie
+ na port 25. W Eximie nie jest to skomplikowane i służy
+ do tego opcja <command>smtp_banner</command> w sekcji głównej:
+ </para>
+ <screen>smtp_banner = $primary_hostname ESMTP $tod_full</screen>
+ <para>
+ Spowoduje to wyświetlanie następującego tekstu jako
+ bannera:
+ </para>
+ <screen>220 serwer.domena.pl ESMTP Wed, 23 Jul 2003 15:18:04
+ +0200</screen>
+ <para>
+ Chyba nie muszę tłumaczyć że aby usunąć datę, należy
+ wywalić <command>$tod_full</command>?
+ </para>
+ <para>Teraz zajmiemy się aliasami. Plik z aliasami powinnien
+ znajdować się w <command>/etc/mail/aliases</command>.
+ Jest to czysty plik tekstowy, tak więc zmiany w nim
+ wprowadzone nie wymagają żadnego
+ <command>newaliases</command> czy
+ restartu demona. Jeżeli jednak nie macie pewności czy
+ tam powinien być plik z aliasami, w sekcji routers
+ odszukajcie ciągu <command>system_aliases:</command> - jest definicja
+ routera odpowiedzialnego za rozwiązywanie aliasów. Tam
+ też, w linijce data widać ścieżkę do pliku z aliasami:
+ </para>
+ <screen>system_aliases:
+ driver = redirect
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/mail/aliases}}
+ file_transport = address_file
+ pipe_transport = address_pipe</screen>
+ <para>
+ Jeżeli z naszego SMTP korzystają użytkownicy mobilni
+ (dial-up'y) przyda nam się autoryzacja. Sprawa w Eximie jest dosyć zawiła.
+ Otóż Exim zbyt wcześnie zrzuca uprawnienia root'a, tak że opisywany
+ na wielu stronach opis zrobienia autoryzacji via PAM
+ najczęściej nie działa. Z pomocą przyjdzie nam pakiet
+ cyrus-sasl, a dokładniej pwcheck daemon (w PLD
+ cyrus-sasl-saslauthd, W sekcji
+ <command>AUTHENTICATORS</command> wpisujemy
+ następujące linijki (lub kasujemy komentarze
+ <command>#</command> :
+ </para>
+ <screen>plain:
+ driver = plaintext
+ public_name = PLAIN
+ server_condition = ${if saslauthd{{$1}{$3}}{1}{0}}
+ # powyższy wpis zadziała przy saslauthd -a shadow, jeżeli
+ # uruchomicie saslauthd -a pam (np. PLD) wpiszcie wtedy:
+ # server_condition = ${if saslauthd{{$1}{$3}{smtp}}{1}{0}}
+ server_set_id = $2
+
+login:
+ driver = plaintext
+ public_name = LOGIN
+ server_prompts = "Username:: : Password::"
+ server_condition = ${if saslauthd{{$1}{$2}}{1}{0}}
+ # powyższy wpis zadziała przy saslauthd -a shadow, jeżeli
+ # uruchomicie saslauthd -a pam (np. PLD) wpiszcie wtedy:
+ # server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}}
+ server_set_id = $1</screen>
+ <para>Ostatnią rzeczą przy saslauthd (odpalonym z -a pam) jaką trzeba
+ stworzyć (lub sprawdzić czy jest) to plik
+ <command>/etc/pam.d/smtp</command>:
+ </para>
+ <screen>#%PAM-1.0
+#
+# example PAM file for saslauthd - place it as /etc/pam.d/
+# (e.g. /etc/pam.d/smtp if you want to use saslauthd for SMTP
+# AUTH)
+#
+auth required /lib/security/pam_listfile.so
+item=user sense=deny file=/etc/security/blacklist
+onerr=succeed
+auth required /lib/security/pam_unix.so
+auth required /lib/security/pam_tally.so
+file=/var/log/faillog onerr=succeed no_magic_root
+auth required /lib/security/pam_nologin.so
+account required /lib/security/pam_tally.so deny=0
+file=/var/log/faillog onerr=succeed no_magic_root
+account required /lib/security/pam_unix.so
+session required /lib/security/pam_unix.so</screen>
+ <para>Pozostaje mi tylko wam przypomnieć, że przed
+ sprawdzaniem autoryzacji należy także odpalić
+ pwcheck/saslauthd
+ </para>
+ <para>
+ Exim sobie bardzo dobrze radzi sobie z połączeniami
+ szyfrowanymi przy użyciu protokołu SSL (wspiera metodę
+ STARTTLS). Wystarczy wygenerować odpowiednie certyfikaty:
+ </para>
+ <screen>[baseciq w viper baseciq]$ openssl genrsa -out /etc/mail/exim.key 1024
+Generating RSA private key, 1024 bit long modulus
+.......++++++
+..............................++++++
+e is 65537 (0x10001)
+[baseciq w viper baseciq]$ openssl req -new -x509 -days 365 -key /etc/mail/exim.key -out /etc/mail/exim.crt
+Using configuration from /var/lib/openssl/openssl.cnf
+You are about to be asked to enter information that will be
+incorporated
+into your certificate request.
+What you are about to enter is what is called a Distinguished Name or a DN.
+There are quite a few fields but you can leave some blank
+For some fields there will be a default value,
+If you enter '.', the field will be left blank.
+-----
+Country Name (2 letter code) [AU]:PL
+State or Province Name (full name) [Some-State]:Mazowsze
+Locality Name (eg, city) []:Warsaw
+Organization Name (eg, company) [Internet Widgits Pty Ltd]:Baseciq Ltd.
+Organizational Unit Name (eg, section) []:Baseciq's Mail Server
+Common Name (eg, YOUR name) []:viper.baseciq.org
+Email Address []:baseciq w baseciq.org</screen>
+ <para>
+ Oczywiście na pytania odpowiadajcie podając swoje
+ dane... Po takim zabiegu do sekcji głównej Exim'a
+ dopiszcie:
+ </para>
+ <screen>tls_certificate = /etc/mail/exim.crt
+tls_privatekey = /etc/mail/exim.key
+tls_advertise_hosts = *</screen>
+ <para>Po tym zabiegu i restarcie Exim powinien bez problemu
+ komunikować się po SSL, co zresztą widać w logach:
+ </para>
+ <screen>2003-09-07 01:48:36 19vmnC-0006EG-27 <= bensonzow w beer.com H=plug.atn.pl
+[217.8.186.28] U=exim P=esmtp X=TLSv1:DES-CBC3-SHA:168 S=2909
+id=ebb601c374e2$80dace00$cab00a12 w fv</screen>
+ <para>
+ Warto by było, żeby także pop3d obsługiwał SSL'a
+ natywnie ssl'a (bez jakichś stunneli i innych
+ wynalazków). Ja osobiście polecam opisany w rozdziale
+ Exim: MySQL demonik tpop3d, którego konfiguracja jest
+ bardzo prosta. Wystarczy że standardowe
+ 'listen-address' na takie:
+ </para>
+ <screen>listen-address: 0.0.0.0;tls=stls,/etc/mail/exim.crt,/etc/mail/exim.key \
+ 0.0.0.0;tls=immediate,/etc/mail/exim.crt,/etc/mail/exim.key</screen>
+ <para>
+ Od teraz tpop3d na porcie 110 będzie obsługiwał SSL po
+ wykonaniu komendy <command>STLS</command> (np. TheBat potrafi tak
+ zacząć sesję SSL) a na porcie 995 będzie od razu używał
+ SSL'a (TheBat, Outlook Express). Za pomoc w tpop3d+ssl
+ chciałbym w tym miejscu podziękować Arkadiuszowi
+ Miśkiewiczowi ;-) Dzięki Arek! :)
+ </para>
+ <para>Exima i SSL na porcie 465 można osiągnąć jedynie przy
+ użyciu inetd (normalny Exim jako daemon, Exim po SSLu
+ z inetd). Oto przykładowe konfiguracje dla poszczególnych
+ inetd:</para>
+ <para><command>rlinetd</command>:</para>
+ <screen>service "exim-ssl" {
+ protocol tcp;
+ port "465";
+ user "root";
+ tcpd { exit; }
+ exec "/usr/bin/exim -bs -tls-on-connect";
+ }</screen>
+ <para><command>xinetd</command>:</para>
+ <screen>service exim-ssl
+{
+ socket_type= stream
+ protocol = tcp
+ port = 465
+ user = root
+ server = /usr/bin/exim
+ server_args = -bs -tls-on-connect
+ wait = no
+ }</screen>
+ <para><command>inetd</command> (sprawdzone przez kflis'a - dzięki!):</para>
+ <screen>465 stream tcp nowait root /usr/sbin/tcpd /usr/bin/exim -bs -tls-on-connect</screen>
+ <para><command>rc-inetd (PLD)</command> (należy utworzyć plik
+ /etc/sysconfig/rc-inetd/smtps i wstawić tam to co
+ poniżej):</para>
+ <screen>SERVICE_NAME=exim-ssl
+SOCK_TYPE=stream
+PROTOCOL=tcp
+PORT=465
+FLAGS=nowait
+USER=root
+SERVER=tcpd
+DAEMON=/usr/bin/exim
+DAEMONARGS="-bs -tls-on-connect"</screen>
+ <para>
+ Generalnie nie ma sensu męczyć kernela i filesystemu
+ żeby pilnował quoty na pocztę. Szczególnie gdy MTA
+ samo sobie może z tym poradzić. Służy do tego parametr
+ <command>quota</command> w konfiguracji transportów. I tak, w
+ najprostszy sposób można lokalną quotę per user
+ ustawić w konfiguracji transportu
+ <command>local_delivery</command>
+ (odpowiedzialnego za lokalne dostarczanie poczty):
+ </para>
+ <screen>local_delivery:
+ driver = appendfile
+ file = /var/mail/$local_part
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+ # A tutaj dodajemy quotę w wysokości 20MB:
+ quota = 20M</screen>
+ <para>
+ Proste, prawda? Tak naprawdę ma to zastosowanie w
+ systemach poczty wirtualnej gdzie możemy w bazie
+ danych przechowywać quotę użytkownika i można
+ skonstruować zapytanie SQL do odpytania ile miejsca ma
+ dany użytkownik. Ale jeżeli nie możecie sobie poradzić
+ z quotą systemową, możecie zamiast <command>quota = 20M</command>
+ dopisać coś takiego:
+ </para>
+ <screen>quota = ${lookup{$local_part}lsearch{/etc/mail/quota.conf}{$value}{0M}}</screen>
+ <para>
+ Od tego momentu w pliku
+ <command>/etc/mail/quota.conf</command> możesz
+ trzymać wielkości skrzynek dla poszczególnych
+ użytkowników. Jeżeli ktoś nie zostanie tam wymieniony,
+ to nie będzie miał żadnych limitów na swoją skrzynkę
+ pocztową. Plik taki powinien wyglądać mniej-więcej
+ tak:
+ </para>
+ <screen>lukasz: 100M
+kflis: 5M
+ania: 20M</screen>
+ <para>I tak oto ja mam 100mb na pocztę, kubuś tylko 5, a
+ siostra 20 MB ;) Podobnym parametrem każdego
+ transportera jest <command>message_size_limit</command>. Wystarczy
+ wpisać:
+ </para>
+ <screen>message_size_limit = 10M</screen>
+ <para>
+ Podobnie jak powyżej, można zrobić to na bazie pliku -
+ wystarczy zamiast
+ <command>/etc/mail/quota.conf</command> użyć np.
+ <command>/etc/mail/size_limits.conf</command> ;-) BTW. na końcu linijki z
+ quotą, gdzie mamy '0M' możemy wstawić np. '20M'.
+ Wtedy, osoby nie dopisane do
+ <command>/etc/mail/quota.conf</command> będą
+ miały 20MB limitu (limit domyślny).
+ </para>
+ <para>
+ Oczywiście jak na Exim'a przystało, od quoty jest
+ więcej bajerków. Chyba najbardziej pożądanym
+ 'gwizdkiem' będzie opcja
+ <command>quota_warn_message</command>. Jest to
+ nic innego jak mail ostrzegający usera o tym że
+ skrzynka jest zapchana po same brzegi. Zanim jednak
+ polecisz to wdrażać, zainteresuj się jak to działa.
+ Otóż po dostarczeniu każdego maila Exim będzie
+ sprawdzał czy został przekroczony konkretny próg
+ (podany w megabajtach, lub w procentowo). Jeżeli tak,
+ wygeneruje on odpowiednią wiadomość. I tak, dodajemy
+ do molestowanego przez nas
+ <command>local_delivery</command>
+ następujące opcje:
+ </para>
+ <screen>quota_warn_message = "\
+Content-Type: text/plain; charset=ISO-8859-2\n\
+To: $local_part@$domain\n\
+Reply-to: Administratorzy sieci
+<admins w twojadomena.pl>\n\
+Subject: Informacja o Twoim koncie pocztowym\n\
+\n\
+*** Ta wiadomość została wygenerowana automatycznie ***\n\
+\n\
+Uprzejmie informujemy, iż Twoja skrzynka pocztowa została zapełniona w 90%\n\
+swojej pojemności. W momencie zapełnienia jej w 100% nie będą dostarczane\n\
+do Ciebie nowe wiadomości. Opróżnij swoją skrzynkę pocztową ze starych\n\
+wiadomości.\n"
+ quota_warn_threshold = 90%</screen>
</section>
<section>
- <title>Exim: Dodanie możliwość antywirusowych</title>
+ <title>Exim: Dodanie możliwości antywirusowych</title>
<para></para>
</section>
<section>
Więcej informacji o liście dyskusyjnej pld-doc