# Calculate format=postfix\ chmod=0640\ chown=root:postfix #Документация на русском: #http://www.elantech.ru/docs/postfix-docs-ru/ #Рабочая директория Postfix. То место, где временно сохраняется #вся приходящая почта до процесса доставки. queue_directory = /var/spool/postfix #Путь для всех выполняемых программ почтового сервера. command_directory = /usr/sbin # The daemon_directory parameter specifies the location of all Postfix # daemon programs (i.e. programs listed in the master.cf file). This # directory must be owned by root. # daemon_directory = /usr/lib/postfix #Определяет местоположение всех программ системы postfix. mail_owner = postfix #Имя хоста myhostname = #-os_net_hostname-#.#-os_net_domain-# #Определяет домен данного компьютера. По умолчанию преобразуется из myhostname #mydomain = local.calculate.ru #Это имя добавляется локально посланным сообщениям. #Например: если вы посылаете сообщение от пользователя root, #то он его получит таким: from root@mta1.domain.com. #myorigin = $mydomain #Эта директива указывает postfix что он должен принять почту для #пользователя этого домена. Пожалуйста, учтите, что данная директива НЕ #может быть использована для витруального домена или для запасного MX #хоста. В нашем случае, мы сделаем так, чтобы принималась почта для #пользователей следующих доменов: mydestination = $myhostname, localhost.$mydomain, $mydomain #Разрешенные адреса получателей указаны в параметре virtual_alias_maps. SMTP #сервер Postfix отклоняет недопустимые адреса получателей с сообщением "User #unknown in virtual alias table (Пользователь неизвестен в таблице #виртуальных алиасов)". virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-aliases-gr.cf # The unknown_local_recipient_reject_code specifies the SMTP server # response code when a recipient domain matches $mydestination or # ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty # and the recipient address or address local-part is not found. unknown_local_recipient_reject_code = 550 #Эта директива указывает postfix какие сети он должен считать #локальными. Другими словами, компьютеры, соединяющиеся из этих сетей #будут иметь возможность релея почтовых сообщений. В нашем случае мы #прописываем следующие сети 127.0.0.0 (для localhost, собственно сам #сервер), 192.168.10.0 (для всех других компьютеров в нашей внешней сети), #и 192.168.0.0 (для всех компьютеров во внутренней сети). mynetworks = #-os_net_allow-#, 127.0.0.0/8#-sr_mail_relay-# #По умолчанию, Postfix пытается посылать почту в Internet напрямую. В зависимости #от окружения, в котором функционирует Ваш почтовый сервер, это может быть #невозможно или нежелательно. Например, Ваша машина может быть отключена от #Internet-а в нерабочее время, она может быть закрыта файрволлом, Ваш провайдер #может запрещать пересылку почты в Internet напрямую. В таких случаях Вам #необходимо настроить Postfix на пересылку писем через другой почтовый сервер #(relay host). #Вариант, заключенный в квадратные скобки [], заставляет Postfix #не предпринимать поиск записей DNS MX. #по умолчанию: посылать в Internet напрямую #relayhost = [mail.$mydomain] # The alias_maps parameter specifies the list of alias databases used # by the local delivery agent. The default list is system dependent. alias_maps = hash:/etc/mail/aliases # The alias_database parameter specifies the alias database(s) that # are built with "newaliases" or "sendmail -bi". This is a separate # configuration parameter, because alias_maps (see above) may specify # tables that are not necessarily all under control by Postfix. # # If you change the alias database, run "postalias /etc/aliases" (or # wherever your system stores the mail alias file), or simply run # "newaliases" to build the necessary DBM or DB file. #alias_database = hash:/etc/mail/aliases, ldap:/etc/postfix/ldap-aliases.cf alias_database = hash:/etc/mail/aliases #Эта директива указывает postfix где ему искать имена локальных #пользователей для доставки им почты. Здесь ничего не надо указывать #(не удаляйте саму директиву - это может вызвать ошибки). local_recipient_maps = ldap:/etc/postfix/ldap-recipient.cf, ldap:/etc/postfix/ldap-recipient-gr.cf #local_recipient_maps = hash:/etc/postfix/recipient # DELIVERY TO MAILBOX # The home_mailbox parameter specifies the optional pathname of a # mailbox file relative to a user's home directory. The default # mailbox file is /var/spool/mail/user or /var/mail/user. Specify # "Maildir/" for qmail-style delivery (the / is required). #home_mailbox = Maildir/ # The mail_spool_directory parameter specifies the directory where # UNIX-style mailboxes are kept. The default setting depends on the # system type. #mail_spool_directory = /var/spool/mail #Эта директива указывает адрес назначения для недоставленной #(undeliverable) почты для адресата с пустым полем: от (from <> ). В #нашем случае - это MAILER-DAEMON (а еще лучше послать на /dev/null) empty_address_recipient = MAILER-DAEMON #Удалем эту команду (директория в которой храняться письма) !home_mailbox = .maildir/ #Эта директива запрещает принимать какие-либо сообщения, если #пространства на жестком диске осталось менее чем 200Mb. This number #should be 1.5 times the message_size_limit or you will get an error #message. queue_minfree = 200000000 #Эта директива указывает максимальный размер сообщения. Сообщения, #размером более чем 100Mb будут отклоняться. message_size_limit = 100000000 #Эта директива указывает максимальный размер локального почтового #ящика. Установим в 1гб mailbox_size_limit = 1000000000 #Сообщение сервера, подключившемуся компьютеру. Чем меньше информации #при этом будет выдано о сервере, тем лучше... в целях безопасности. smtpd_banner = $myhostname ESMTP # PARALLEL DELIVERY TO THE SAME DESTINATION # How many parallel deliveries to the same user or domain? With local # delivery, it does not make sense to do massively parallel delivery # to the same user, because mailbox updates must happen sequentially, # and expensive pipelines in .forward files can cause disasters when # too many are run at the same time. With SMTP deliveries, 10 # simultaneous connections to the same domain could be sufficient to # raise eyebrows. # # Each message delivery transport has its XXX_destination_concurrency_limit # parameter. The default is $default_destination_concurrency_limit for # most delivery transports. For the local delivery agent the default is 2. local_destination_concurrency_limit = 2 default_destination_concurrency_limit = 20 # Отключает SMTP команду VRFY. В результате чего, невозможно определить # существование определенного ящика. Данная техника (применение команды # VRFY) используется спамерами для сбора имен почтовых ящиков. disable_vrfy_command = yes # Скрываем отображение имени таблицы получателей в ответе "User unknown" # yes: User unknown in virtual mailbox table # no: User unknown show_user_unknown_table_name = no # Чтобы проверка шла в порядке заданном нами smtpd_delay_reject = yes #Эти директивы используются для запрещения доступа к Postfix #Принимаем письма: # от авторизованных клиентов # принимать от локальных сетей # не принимаем от тех кто посылает почту не по назначению # когда когда адрес получателя не соответсвует RFC # не общаться с почтовыми системами, которые не знают имени своего хоста smtpd_sender_restrictions = #smtpd_recipient_restrictions = smtpd_client_restrictions = #smtpd_recipient_restrictions = # permit_sasl_authenticated, # permit_mynetworks, # reject_unauth_destination, # reject_non_fqdn_recipient, # reject_unknown_hostname #проверяем клиент запросивший соединение #smtpd_client_restrictions = # permit_mynetworks, # reject_unknown_client #проверяем HELO если нам его передали #smtpd_helo_restrictions = # permit_mynetworks, # reject_invalid_hostname #проверяем почтовый адрес отправителя #smtpd_sender_restrictions = # permit_mynetworks, # reject_unauth_destination, # reject_unknown_sender_domain, # reject_non_fqdn_sender #проверяем получателя #smtpd_recipient_restrictions = # permit_mynetworks, # permit_sasl_authenticated, # reject_unauth_destination, # check_recipient_maps, # reject_unknown_recipient_domain, # reject_non_fqdn_recipient # не принимать почту от доменов, которые не существуют #smtpd_sender_restrictions = reject_unknown_sender_domain #не принимать почту от доменов, которые не существуют #smtpd_helo_restrictions = reject_unknown_hostname # максимальное время жизни письма. # если в течении 5 часов сервер не достучится сервера адресата. # письмо вернется отправителю. По умолчанию стоит 5 дней. maximal_queue_lifetime = 3h bounce_queue_lifetime = 1h #Эта директива описывает все виды служебных сообщений посылаемых #Postfix на postmaster аккаунт. #вот список возможных опций : # bounce: отсылает постмастеру копию заголовка непринятого сообщения. # 2bounce: отсылает недоставленную непринятую (undelivered) почту постмастеру. # delay: отсылает постмастеру копию заголовка отложенной (delayed) почты. # policy: отсылает постмастеру описание SMTP сессии в том случае, если # клиентское соединение было отвергнуто в соотвествии с правилами # политики. Если вы разрешите эту опцию, вы будете получать по одному # сообщению на каждое спам сообщение - это неплохо для отладки, но плохо # сказывается на производительности # protocol: отсылает постмастеру описание SMTP сессии в случае если # произощла ошибка со стороны клиента или сервера. # resource: информирует постмастера о невозможности доставки почты в # случае нехватки ресурсов. # software: информирует постмастера о невозможности доставки почты в # случае проблемы с программным обеспечением. notify_classes = protocol, resource, software #Пути программ sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /etc/postfix readme_directory = no #Например, если для службы безопасности #требуеться копировать всю почту в отдельный ящик: #В данном примере backup #always_bcc = backup@mydomain.ru #Особенности настройки host.calculate.ru #setgid_group = maildrop #content_filter = smtp-amavis:[127.0.0.1]:10024 #Необходимо для функционирования антивируса - clamsmtp #Первая строка говорит postfix'у о том, что необходимо пересылать всю почту через сервис (фильтр) 'scan' #на 10025-ый порт, который, как раз, открыт clamsmtpd(или иной фильтр) #Вторая строчка говорит о том, чтобы postfix не делал никаких манипуляций с адресами до того, #как они дойдут до content_filter. Так что получается, что фильтр работает с реальными почтовыми #адресами, а не с результатами перевода в виртуальные псевдонимы, маскарадингом и т.п. #content_filter = scan:127.0.0.1:10025 #receive_override_options = no_address_mappings #mailbox_command = /usr/bin/procmail -a $USER #mailbox_command = /usr/bin/procmail mailbox_command = /usr/bin/procmail -m /etc/procmailrc