sobota, 11 luty 2012 
Start arrow FreeBSD arrow POCZTA arrow Postfix - bezpieczny i wydajny serwer MTA
Menu BSD4u
FreeBSD
OpenBSD
NetBSD
Dla *BSD
FAQ BSD4u
Forum BSDGuru.org
Security Advisory
Licencje
Images BSD
Menu ogólne
Start
Aktualności
Download
Sondy
Szukaj
Książki
About BSD4u
Info
Team BSD4u
Regulamin
Kanał #BSD4u
Kontakt
Sondy
Co sądzisz o naszym nowym Projekcie, i jak oceniasz zmianę koncepcji Projektu?
 
Popularne
SQUID - najpopularni...
Kompilacja i konfigu...
Samba - serwer plikó...
Neostrada+ i modem ...
Praktyczne IPFW
Upgrade systemu
NATowanie czyli jak ...
Apache (konfiguracja...
MRTG - statystyki ru...
Postfix - bezpieczny...
CVSup - pomocny podc...
Postfix z autoryzacj...
Neostrada na modemie...
System Portów (Kolek...
Instalacja FreeBSD 5...
Top Download
File icon Postfix - "Krok po kroku" v1.18107
File icon Postfix - "Krok po kroku" v1.06803
File icon PPTPd - "Prosty i szybki VPN" v1.0b6420
File icon sdi.sh3887
File icon uEagle 1.0p12975
File icon named.sh2945
File icon uEagle 0.99b2869
File icon cs.sh2834
File icon uEagle 1.02759
File icon uEagle 1.12568
Ostatnie komentarze
jeden raz na konto
Dodał: arti
Dnia: 2011-06-15 15:10:56
Re: Kod rabatowy na...
Dodał: cooler
Dnia: 2011-06-15 13:59:07
JAK NIE DZIALA opti...
Dodał: wierzba86
Dnia: 2010-02-25 21:37:29
JAK NIE DZIALA opti...
Dodał: wierzba86
Dnia: 2010-02-25 21:36:09
RE: transparent a v...
Dodał: Trash
Dnia: 2009-10-06 15:45:18
transparent a virus...
Dodał: grzywka18
Dnia: 2008-05-13 11:19:58
Postfix - bezpieczny i wydajny serwer MTA - 1. Instalacja Drukuj E-mail
Oceny: / 27
KiepskiBardzo dobry 
sobota, 24 kwiecień 2004 - Napisał: Tomasz Stała (49052 odsłon)
Spis treści
1. Instalacja
2. Podstawowa konfiguracja
3. Instalacja popa3d
4. Uruchamianie Postfixa
5. Konfiguracja SMTP AUTH
6. Konfiguracja TLS
7. Instalacja i konfiguracja ClamAV
8. Instalacja i konfiguracja AMaViS
9. Administracja Postfixem

8. Instalacja i konfiguracja AMaViS (A Mail Virus Scanner)

AMaViS, jak zostało napisane na jego oficjalnej stronie (http://www.amavis.org/), jest wysoko-wydajnym interfejsem pośredniczącym pomiędzy MTA i programami (skryptami) zajmujących się filtrowaniem treści: skanerów antywirusowych lub filtrów antyspamowych. Jest napisany w Perlu, co w znaczący sposób wpływa (pozytywnie) na jego wydajność. Zwraca się do MTA przez (E)SMTP lub LMTP, lub używając pomocniczych programów. Najlepiej współpracuje z Postfixem.Zainstalujmy naszego AMaViS'a. Jak zwykle posłużymy się portami. Przechodzimy do katalogu gdzie znajduje się AMaViS i wydajemy poniższe polecenia:

# cd /usr/ports/security/amavisd-new
# make build && make install && make clean

Nie pozostaje nam nic innego jak przystąpić do konfiguracji. Nie będę tutaj opisywał dokładnie jego wszystkich opcji, jedynie te, które uznałem za najważniejsze i które należy zmienić abyś mógł używać na swoim serwerze AMaViS'a. Jego plik konfiguracyjny składa się z 8 sekcji, po bliższe informacje dotyczące pozostałych parametrów zapraszam na oficjalną stronę projektu lub skorzystanie z dokumetacji. Edytuj plik `amavisd.conf` i pozmieniaj w nim następujące linijki. Warto przypomnieć jak wiemy wartość 0 odpowiada słowu false, a wartość 1 odpowiada słowu true. Oto przykładowe opcje, które powinniśmy zmienić. Pozostałe zostawiamy bez zmian, lub czytamy dokumentację, aby dowiedzieć się o nich więcej. Oczywiście definiujemy je według własnych upodobań i potrzeb. Uwaga, zmieniasz je na własną odpowiedzialność:

# cp /usr/local/etc/amavisd.conf-dist /usr/local/etc/amavisd.conf
# vi /usr/local/etc/amavisd.conf

--- amavisd.conf ---

# Początek pliku:

use strict;

# Section I - Essential daemon and MTA settings

# Katalog domowy AMaViS'a:
$MYHOME = '/var/amavis';
# Domena Twojego serwera:
$mydomain = 'domena.pl';
# Z poziomu jakiego użytkownika i grupy będzie uruchamiany demon:
$daemon_user = 'vscan';
$daemon_group = 'vscan';
# Roboczy katalog domowy, w którym będą przechowywane rozpakowane wiadomości:
$TEMPBASE = $MYHOME;
# Ustawienie zmiennej środowiskowej `TMPDIR`:
$ENV{TMPDIR} = $TEMPBASE;
# Maksymalna liczba uruchomionych serwerów:
$max_servers = 2;
$max_requests = 10;
$child_timeout=5*60;
</font># Wpisujemy tu nazwy domen obsługiwanych przez nasz serwer w formacie takim jak poniżej:
@local_domains_acl = ( ".$mydomain", '.domena2.pl' );

# Section II - MTA specific (defaults should be ok)

# Ścieżka do pliku z gniazdem:
$unix_socketname = "$MYHOME/amavisd.sock";
# Port na którym będzie nasłuchiwał AMaViS:
$inet_socket_port = 10024;
# Dopuszczaj połączenia jedynie poprzez lokalny adres IP:
@inet_acl = qw( 127.0.0.1 );

# Section III - Logging

# Włączenie logowania od syslog'a, ustawiamy na nie (0), ponieważ będziemy wszystko logować do osobnego pliku:
$DO_SYSLOG = 0;
# Ścieżka do pliku z logami:
$LOGFILE = "$MYHOME/amavis.log";
# Poziom logowania
# (Standardowo - 0 informacje o uruchomieniu, zatrzymaniu, komunikaty o niepowodzeniach, wykrytych wirusach):
$log_level = 0;
# Logowanie zarówno zawirusowanych i niezawirusowanych wiadomości:
$log_templ = '[? %#V |[? %#F |[?%#D|Not-Delivered|Passed]|BANNED name/type (%F)]|INFECTED (%V)], #
<%o> -> [<%R>|,][? %i ||, quarantine %i], Message-ID: %m, Hits: %c';
# Wybór strony kodowej, kolejno dla nagłówna i dla sekcji body wiadomości:
$hdr_encoding = 'iso-8859-2';
$bdy_encoding = 'iso-8859-2';
# Ścieżki do plików z szablonem wiadomości (zawiadomienia), które będą zwracane do nadawcy, odbiorcy i
# administratora, jeśli wiadomość będzie zawierała wirusy, po więcej informacji zapraszam do `README.customize`:
$notify_virus_sender_templ= read_text('/var/amavis/notify_virus_sender.txt');
$notify_virus_admin_templ = read_text('/var/amavis/notify_virus_admin.txt');
$notify_virus_recips_templ= read_text('/var/amavis/notify_virus_recips.txt');
# Podajemy naszemu AMaViS co ma zrobić z wiadomościami:
# D_PASS - Poczta zostanie wysłana do adresata nie patrząc na jej złą zawartość
# D_DISCARD - Poczta nie zostanie dostarczona do adresata oraz nadawca nie dostanie o tym zawiadomienia
# D_BOUNCE - Poczta nie zostanie dostarczona do, ale zostanie do niego wysłane zawiadomienie
# (wyjątek: zawiadomienie nie zostanie dostarczone jeśli adresat znajduje się w $viruses_that_fake_sender_re)
# D_REJECT - Poczta zostanie odrzucona, a nadawca otrzyma jej zwrot wraz z informacją o niepowodzeniu od Postfix'a
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_BOUNCE;
$final_spam_destiny = D_REJECT;
$final_bad_header_destiny = D_PASS;
# Zawiadomienie nadawcy o wirusie:
$warnvirussender = 0;
# Zawiadomienie odbiorcy o wirusie:
$warnvirusrecip = 0;
# Definiujemy nazwy najczęściej spotykanych robaków:
$viruses_that_fake_sender_re = new_RE(
qr'nimda|hybris|klez|bugbear|yaha|braid|sobig|fizzer|palyh|peido|holar'i,
qr'tanatos|lentin|bridex|mimail|trojan\.dropper|dumaru|parite|spaces'i,
qr'dloader|galil|gibe|swen|netwatch|bics|sbrowse|sober|rox|val(hal)?la'i,
qr'frethem|sircam|be?agle|tanx|mydoom|novarg|shimg|netsky|somefool|moodown'i,
qr'@mm|@MM', # mass mailing viruses as labeled by f-prot and uvscan
qr'Worm'i, # worms as labeled by ClamAV, Kaspersky, etc
[qr'^(EICAR|Joke\.|Junk\.)'i => 0],
[qr'^(WM97|OF97|W95/CIH-|JS/Fort)'i => 0],
[qr/.*/ => 1], # true by default (remove or comment-out if undesired)
);
# Definiujemy konto, na które będą wysyłane powiadomienia o wirusach itp. Musisz pamiętać aby utworzyć alias lub
# dodać nowe konto wirtualne o nazwie `virusalert`. O tym w dalszej części artykułu.
$virus_admin = "virusalert\@$mydomain";
# Definiujemy konta, z których będą wysyłane zawiadomienia do użytkowników:
$mailfrom_notify_admin = "virusalert\@$mydomain";
$mailfrom_notify_recip = "virusalert\@$mydomain";
# Wyłączamy kwarantanne, która jest nam niepotrzebna:
$virus_quarantine_to = undef;
# Zmiana nagłówka, aby wyłączyć całkowicie wyświetlanie nagłówka ustaw de dwie zmienne jako `undef`,
# zmienne te możemy edytować dodając np. swoje nazwy:
$X_HEADER_TAG = 'X-Virus-Scanned';
$X_HEADER_LINE = "by amavisd-new at $mydomain";
# Tytuł wiadomości, ktory będzie wysyłany w wypadku gdy archiwa będą zabezpieczone hasłem:
$undecipherable_subject_tag = '***UNCHECKED*** '; # undef disables it
# Kasowanie istniejących nagłówków - ustawiamy wartość false:
$remove_existing_x_scanned_headers = 0;
# Definiujemy typy plików, których nasz AMaViS ma nierozpakowywać. Ma je trzymać w spakowanej formie dla narzędzia
# antywirusowego:
$keep_decoded_original_re = new_RE(
# qr'^MAIL$', # retain full original message for virus checking (can be slow)
qr'^MAIL-UNDECIPHERABLE$', # retain full mail if it contains undecipherables
qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)'i,
# qr'^Zip archive data',
);
# Zabronione nazwy plików, które muszą zostać przepuszczone przez skaner antywirusowy:
$banned_filename_re = new_RE(
# qr'^UNDECIPHERABLE$', # is or contains any undecipherable components
qr'\.[^.]*\.(exe|vbs|pif|scr|bat|cmd|com|dll)$'i, # double extension
# qr'.\.(exe|vbs|pif|scr|bat|cmd|com)$'i, # banned extension - basic
# qr'.\.(ade|adp|bas|bat|chm|cmd|com|cpl|crt|exe|hlp|hta|inf|ins|isp|js|
# jse|lnk|mdb|mde|msc|msi|msp|mst|pcd|pif|reg|scr|sct|shs|shb|vb|
# vbe|vbs|wsc|wsf|wsh)$'ix, # banned extension - long
# qr'.\.(mim|b64|bhx|hqx|xxe|uu|uue)$'i, # banned extension - WinZip vulnerab.
# qr'^\.(zip|lha|tnef|cab)$'i, # banned file(1) types
qr'^\.exe$'i, # banned file(1) types
qr'^application/x-msdownload$'i, # banned MIME types
qr'^application/x-msdos-program$'i,
# qr'^message/partial$'i, qr'^message/external-body$'i, # block rfc2046
);

# Section V - Per-recipient and per-sender handling, whitelisting, etc.

# Rezygnujemy z bazy SQL, w której przechowywane są tzw. whitelist i blacklist:
$sql_select_white_black_list = undef;
# Czarna lista użytkowników, od których wiadomości będą automatycznie odrzucane:
$blacklist_sender_re = new_RE(
qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou|greatcasino)@'i,
qr'^(investments|lose_weight_today|market.alert|money2you|MyGreenCard)@'i,
qr'^(new\.tld\.registry|opt-out|opt-in|optin|saveonlsmoking2002k)@'i,
qr'^(specialoffer|specialoffers|stockalert|stopsnoring|wantsome)@'i,
qr'^(workathome|yesitsfree|your_friend|greatoffers)@'i,
qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i,
);

# Section VI - Resource limits

# Maksymalny poziom dla rozpakowania/rozkodowania (0 - bez limitu):
$MAXLEVELS = 14;
# Maksymalna liczba rozpakowanych plików (0 - bez limitu)
$MAXFILES = 1500;

# Section VII - External programs, virus scanners

# Ścieżki do narzędzi wymienionych poniżej:
$path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';

# Narzędzia, które nasz AMiViS będzie wykorzystywał do dekompresji plików:

$file = 'file';

$gzip = 'gzip';
$bzip2 = 'bzip2';
$lzop = 'lzop';
$uncompress = ['uncompress', 'gzip -d', 'zcat'];
$unfreeze = ['unfreeze', 'freeze -d', 'melt', 'fcat'];
$arc = ['nomarch', 'arc'];
$unarj = ['arj', 'unarj'];
$unrar = ['rar', 'unrar'];
$zoo = 'zoo';
$lha = 'lha';
$cpio = 'cpio';

# Definiujemy ustawienia dla naszego skanera antywirusowego, którym będzie ClamAV,
# pamiętaj o poprawnym podaniu ścieżki do pliku socket:

@av_scanners = (

['Clam Antivirus-clamd',
\&ask_daemon, ["CONTSCAN {}\n", '/var/amavis/clamd'],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

);

# Możliwe jest również dodanie zapasowego skanera, którym może być na przykład MKSd, do tego służy zmienna
# @av_scanners_backup = (" ");

# Koniec pliku:
1;

--- end of amavisd.conf ---

To tylko moim zdaniem najważniejsze opcje, z którymi powinieneś się zapoznać podczas używania AMaViS'a. Po więcej informacji dotyczących tego właśnie programu jak wspomniałem już wcześniej zapraszam do przejrzenia dokumentacji, która znajduje się w katalogu `/usr/local/share/doc/amavisd-new`.Edytuj teraz plik `main.cf` i dodaj do niego następującą linikę:

# vi /etc/postfix/main.cf

--- main.cf

# AMaViS
content_filter=smtp-amavis:[127.0.0.1]:10024

--- end of main.cf ---

Na koniec edytujemy plik `master.cf`, do którego wstawiamy poniższe linijki:

# vi /etc/postfix/master.cf

--- master.cf ---

smtp-amavis unix - - n - 2 smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes

127.0.0.1:10025 inet n - n - - smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000

--- end of master.cf ---

Pozostało nam już tylko uruchomienie AMaViS'a oraz ClamAV. Do pliku `rc.conf` wstawiamy poniższe zmienne:

# vi /etc/rc.conf

--- rc.conf ---

clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"
amavisd_enable="YES"

--- end of rc.conf ---

Teraz wydajemy polecenia, po których zostaną uruchomione programy, przed uruchomieniem, jak wspomniałem wcześniej pamiętaj o dodaniu do bazy wirusów konta wirtualnego, lub aliasa o nazwie `virusalert`. W tym celu zobacz rozdział 'Administracja Postfix'em' w tym artykule:

# /usr/local/etc/rc.d/clamav-clamd.sh start
# /usr/local/etc/rc.d/clamav-freshclam.sh start
# /usr/local/etc/rc.d/amavisd.sh start

I oczywiście restartujemy Postfix'a:

# /usr/local/etc/rc.d/postfix.sh reload

W celu sprawdzenia czy nasz AMaViS uruchomił się i działa poprawnie, zaloguj się przez telnet na port 10024 naszego serwera, powinieneś ujrzeć następujący komunikat (QUIT wpisujemy w celu zakończenia sesji):

$ telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
QUIT
221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel
Connection closed by foreign host.

Jeśli pojawił Ci się taki lub podobny komunikat to znaczy, że wszystko działa jak należy. Sprawdź jeszcze w logach, czy system nie pokazuje żadnych błędów. Jeśli takowe się pojawią, polecam przejrzenie raz jeszcze wszystkich plików, w celu upewnienia się czy nie popełniliśmy jakiegoś drobnego błędu (mowa tu o literówkach), lub nie dopisaliśmy jakiejś niezbędnej opcji, bez której nasz serwer nie mógłby działać poprawnie.



Ostatnio aktualizowany ( wtorek, 08 listopad 2005 )

« wstecz   dalej »
Ciekawostki
Potrzebujesz zobaczyć swoją tabele routingową? Wpisz "netstat -rn". Wpis z flagą G jest Twoją domyślną bramą.
Pobierz
FreeBSD
OpenBSD
NetBSD
DragonFlyBSD
PC-BSD
FreeSBIE LiveCD
4.4BSD Lite
Domeny
Google

Google


Newsletter
Zapisz się na nasz newsletter, jeżeli chcesz być na bieżąco informowany o aktualnościach..




Licznik odwiedzin
Odwiedziło już nas
3815530
Internautów od lutego 2003

Korzystamy ze statysyk