2009-03-15

LINUX POSTFIX


#################################################################
# USTAWIENIA GLOWNE #
#################################################################

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

# komunikat wyswietlany po polaczeniu z postfixem
smtpd_banner = $myhostname ESMT

mail_name = Microsoft (5.0.2195.5329)
# jw wieksze zmiany w zrodle w plik_postfix/src/bounce/bounce_notify_until.c

# setgid_group = postdrop

# FQDN maszyny
myhostname = [domena]
# FQDN dla poczty wychodzacej taka jak hostname to co bedzie w polu
myorigin = [domena]
# FQDN bez nazwy hosta
mydomain = [domena]
#dla jakich domen serwer bedzie dostarczal poczte lokalnie, poczta przychodzaca akceptowana wylacznie na te domeny
mydestination = [domena],localhost.localdomain, localhost
# adresy sieci,dla ktorych serwer poczty bedzie wykonywal relay, z ktorych bedzie mozna przekierowac poczte(relay)
mynetworks = 127.0.0.0/8
# domyslnie postfix przetwarza poczte od klientow z mynetworks oraz od klientow z relay_domains moze byc /plik w ktorym beda te domeny, dla innych lokalizacji pop-before-smtp lub pop-before-smtp
relay_domains = [domena]

# listy baz aliasow calkowicie kontrolowane przez postfixa
alias_database = hash:/etc/aliases
# lista baz aliasow type:name tutaj typ - hash a name - sciezka do pliku
alias_maps = hash:/etc/aliases
# o skladni [nazwa:wartosc] gdzie nazwa - nazwa alisu a wartosc - adres,forward na dany adres,
#wartosc - |komenda - na przyklad przekazanie do procmaila,
#wartosc - :include:/plik - mail wysylany do adresatow w plik,
#wartosc = /plik - mail wpisywany do pliku gdy /plik/ to typ Maildir

# allow_mail_to_commadns = alias, forward #aby powyzsze komendy mogly byc wykonane nalezy dopisac jeszcze include
# allow_mail_to_files = alias, forward #aby powyzsze komendy mogly byc wykonane nalezy dopisac jeszcze include

# mailbox_command = procmail -a "$EXTENSION"
# obrabianie maili przez procmaila

mailbox_size_limit = 51200000
message_size_limit = 20480000
inet_interfaces = all

# ilosc wolnego miejsca na dysku w systemie plikow kolejek ktorego postfix nie moze przekroczyc, nie bedzie wariowal po zapelnieniu dysku a jedynie odsylal wiadomosci
queue_minfree = 40000000

# notify clases
#ustalamy jakie komunikaty bede kierowane na adres postmaster@domena parametry ponizej
#bounce #wysyla postmasterowi kopie niedostarczonej poczty
#2bounce
#delay #inf o opoznionej poczcie
#policy #inf o odrzuconych zadaniach przez postfix np przez filtry
#protocol #inf o wywolaniu niezaimplementowanych komend
#resource #inf o poczcie nie wyslanej z powodu klopotow z zasobami serwera
#software #inf o poczcie nie wyslanej z powodu klopotow programowych

#relayhost =
#disable_dns_lookups = yes #logowanie IP a nie nazw
#sender_canonical_maps = hash:/plik #mapowanie uzytkownikow z /plik [user user_po_zmapowaniu] i postmap /plik
#relocated_maps = hash:/plik #wysylanie nadawcy maila odpowiedzi od razu z /plik [user "user zmienil adres na user@wp.pl"]
#home_mailbox #ustawienie typu skrzynki pocztowej domyslnie /var/mail/user gdy Maildir/ to kazdy mail w innym pliku
#default_proces_limit #kontrola procesow domyslnie 100
#initial_destination_concurrency #liczba polaczen do zdalnego hosta
#default_destination_concurrency_limit #max ilosc poloczen > liczby procesow
#local_destination_concurrency_limit #ilosc jednoczesnych maili do jednego uzytkownika
#queue_run_delay #czestotliwosc z jaka skanuje kolejke deferred w poszukiwaniu poczty do wyslania domyslnie 1000s
#maximal_queue_lifetime #jak dlugo ma byc przechowywana poczta ktorej nie udalo sie wyslac np 5s to 5 sekund 5d to 5 dni
#minimal_backoff_time #min czas przez jaki wiadomosc nie bedzie przetwarzana po nieudanej probie dostarczenia
#maximal_backoff_time #max jw
#qmgq_message_recipient_limit #dlugosc listy niedostepnych hostow
#line_length_limit #max dlugosc lini tekstu po przekroczeniu ktorej linia zostanie podzielona
#header_size_limit #max dlugosc naglowka
#extract_recipient_limit #ile adresow odbiorcy zostanie wyluskanych z naglowka
#bounce_size_limit #ile bajtow wiadomosci zostanie zwrocone gdy przekroczy sie wartosc powyzej
#qmgr_message_recipient_limit #liosc struktur adresow odbiorcy w pamieci
#qmgr_message_active_limit #max liczba maili w kolejce active
#duplicate_filter_limit #ilosc adresow odbiorcy pamietanych przez local i cleanup
#always_bcc = user@linux.pl #kopia kazdego maila zostanie wyslana do user@linux.pl
#command_time_limit #czas oczekiwania na |polecenie z pliku aliasow
#usluga_time_limit #czas transportu maila przez program pipe do polecenia
#luser_relay = admin@linux.pl #przechwytywanie poczty dla uzytkownikow ktorzy nie istnieja w systemie
# debug_peer_list = 1.2.3.4 #?do logow

#################################################################
# WIRTUALNE DOMENY #
#################################################################

# virtual_maps = hash:/plik #w /plik wpisuje sie w pierwszej lini [linux.pl cokolwiek] a w nastepnych [userwirt@linux.pl user
#to znaczy ze mail dla usrewirt trafia do user
#wydac komende postmap /plik

# transport_maps = hash:/plik #w /plik wpisujemy [linux.pl virtual] co oznacza ze domena linux.pl jest obslugiwana wirualnie
# virtual_mailbox_base = /home/virtuals #lokalizacja wirualnych skrzynek /home/virtuals - podstawa
# virtual_mailbox_maps = hash:/plik #tablica dopasowania /plik wpisuje sie [user@linux.pl /sciezka] to dla danego usera sciezka to /home/virtuals/sciezka
# virtual_uid_maps = hash:/plik #w /plik wpisujemy user@linux.pl 505
# virtual_gid_maps = static:1000 #dla kazdego uzytkownika zostanie uzyty gid=1000

# virtual_maps = hash:/etc/postfix/virtual
# virtual_mailbox_base = /home/virtuals
# virtual_mailbox_maps = hash:/

#################################################################
# BEZPIECZENSTWO #
#################################################################

smtpd_helo_required = yes
smtpd_recipient_limit = 50
# max liczba wysylanych na raz wiadomosci

strict_rfc821_envelopes = yes

smtpd_delay_reject = no
# gdy yes to restrykcje sprawdzane dopiero po otrzymaniu adresu odbiorcy

smtpd_error_sleep_time = 3
# czas na jaki przerywa dzialanie serwer jesli powstanie blad w sesji SMTP domyslnie 5s

smtpd_soft_error_limit = 3
# liczba bledow sesji SMTP po przekroczeniu ktorej serwer zerwie polaczenie domyslie 10s

smtpd_hard_error_limit = 5
# po ilu bledach polaczenie zostanie przerwane domyslnie 100

# smtpd_sender_restrictions = #sprawdzane poczty na podstawie adresu odbiorcy listu (from)
# reject_unknown_client #odrzucenie ip ktorego nie ma w DNS
# reject_unknown_sender_domain #odrzuca mail jesli po @ nie ma wpisu w DNS
# reject_unknown_recipient_domain #
# reject_invalid_hostname #
# reject_non_fqdn_hostname #odrzuca mail jesli czesc po @ nie jest pelna
# check_sender_access hash:/plik #przeszukuje /plik ktory zawira co zrobic np heniek@ reject lub heniek@wp.pl ok lub wp.pl reject
#aby dzialalo wpisac postmap /plik aby utworzyc /plik.db
# reject_non_fqdn_sender

smtpd_sender_restrictions = reject_unknown_client, reject_unknown_sender_domain, reject_invalid_hostname,reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_rbl_client dynamic.dnsbl.rangers.eu.org, reject_rbl_client spam.dnsbl.rangers.eu.org, check_relay_domains

# smptd_recipient_restrictions = #dla adresu odbiorcy listu, na podstawie adresu nadawcy listu(rcpt to)
# reject_non_fqdn_recipient #odrzuc list jezeli adres odbiorcy nie jst pelny
# reject_unknown_recipient_domain #odrzuc jezeli adres docelowy nie istnieje w DNS
# check_recipient_access hash:/plik #przeszukuje plik podany jako argument i na jego podstawie decyduje czy wyslac list
# permit_auth_destination #przyjmij mail jesli nasz serwer jest jego celem lub adres przeznaczenia zawiera sie w zmiennaj $relay_domains
# reject_unauth_destination #jw tylko odrzuc list jezeli nasz serwer nie jest jego celem ...
# check_relay_domains #jesli ip ktory wysyla pasuje do relay_domains lub celem jest ip z relay_domains to przyjmij, w przeciwnym wypadku odrzuc
# reject_rbl_client /plik_z_lista_rbli #
# reject_unknown_hostname
# reject_non_fqdn_hostname

smtpd_recipent_restrictions = reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unauth_destination, check_relay_domains

# smtpd_client_restrictions = #dla hosta laczacego sie z serwerem, sprawdzenie komputera z ktorego wysylana jest wiadomosc
# check_sender_access regexp:/etc/postfix/bany, #
# permit_mynetworks, #pozwolenie dla hostow ujetych w zmiennej $mynetworks
# reject_unknown_client, #odrzucenie ip ktorego nie ma w DNS
# check_helo_access hash:/etc/postfix/helo.access, #
# check_client_access hash:/plik, #sprawdaz ip/nazwe kompa w /plik i pisze co z nim robic np 192.168.1.15 OK
# check_client_access cidr:/plik #baza cidr w /plik pozwala na blokowanie zakresow ip np dla korei i chin z www.okean.com
# permit #dwa zachowania gdy na koncu gdy powyzsze reguly nie pasuja
# reject


smtpd_client_restrictions = reject_unknown_client, reject_rbl_client dynamic.dnsbl.rangers.eu.org, reject_rbl_client, spam.dnsbl.rangers.eu.org

# smtpd_helo_restrictions = #helo $hostname
# reject_unauth_pipelining #gdy serwer smtp ktory wysyla do nas maila nie czeka na odpowiedz to go odrzuc
# reject_invalid_hostname #
# permit_mynetworks, #
# check_helo_access hash:/plik #/plik zawiera [ REJECT you aren't me
# localhost REJECT you aren't me]
# reject_rbl_client /plik #lista rbli

smtpd_helo_restrictions = reject_invalid_hostname, reject_invalid_hostname, check_helo_access hash:/etc/postfix/helo_access

mailbox_command = /usr/bin/procmail


content_filter=smtp-amavis:[127.0.0.1]:10024


#################################################################
# DODATKOWE #
#################################################################
#apt-get install pflogsumm
#polecenie pflogsumm.pl -e -d yesterday /var/log/mail.log
#dodatkowo polecenie postsuper
#dodatkowo mailq pokazuje kolejke
#dodatkowo postcat /var/spool/postfix/deferred/0/0/plik |more pokazuje skolejkowana wiadomosc