cookbooks/fb_postfix/attributes/default.rb (342 lines of code) (raw):
# vim: syntax=ruby:expandtab:shiftwidth=2:softtabstop=2:tabstop=2
#
# Copyright (c) 2011-present, Facebook, Inc.
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
default['fb_postfix'] = {
'enable' => true,
'mask_service' => false,
'aliases' => {},
'access' => {},
'canonical' => {},
'etrn_access' => {
'127.0.0.1' => 'OK',
},
'local_access' => {},
'localdomains' => [],
'main.cf' => {
'daemon_directory' => '/usr/libexec/postfix',
'queue_directory' => '/var/spool/postfix',
'mail_owner' => 'postfix',
'mynetworks' => '/etc/postfix/mynetworks',
'relay_domains' => '/etc/postfix/relaydomains',
'alias_maps' => 'hash:/etc/postfix/aliases',
'recipient_delimiter' => '+',
'smtpd_banner' => '$myhostname ESMTP',
'debug_peer_level' => 2,
'debugger_command' =>
'PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ' +
'ddd $daemon_directory/$process_name $process_id & sleep 5',
'newaliases_path' => '/usr/bin/newaliases.postfix',
'alias_database' => 'hash:/etc/postfix/aliases',
'disable_vrfy_command' => 'yes',
'smtpd_client_restrictions' =>
'hash:/etc/postfix/access, permit_mynetworks',
'smtpd_helo_required' => 'yes',
'smtpd_recipient_restrictions' =>
'check_recipient_access hash:/etc/postfix/local_access,' +
'permit_mynetworks, reject_unauth_destination',
'biff' => 'no',
'require_home_directory' => 'no',
'local_transport' => 'local',
'forward_path' =>
'$home/.forward$recipient_delimiter$extension,$home/.forward',
'allow_mail_to_commands' => 'alias,forward',
'allow_mail_to_files' => 'alias,forward',
'readme_directory' => 'no',
'sample_directory' => '/etc/postfix',
'sendmail_path' => '/usr/sbin/sendmail.postfix',
'setgid_group' => 'postdrop',
'manpage_directory' => '/usr/share/man',
'mailq_path' => '/usr/bin/mailq.postfix',
'mydestination' =>
'$myhostname, localhost.$mydomain /etc/postfix/localdomains',
'myorigin' => '$myhostname',
'inet_protocols' => 'all',
'header_checks' => 'regexp:/etc/postfix/custom_headers.regexp',
'2bounce_notice_recipient' => nil,
'bounce_notice_recipient' => nil,
'bounce_queue_lifetime' => nil,
'command_expansion_filter' => nil,
'command_time_limit' => nil,
'default_destination_concurrency_limit' => '10',
'default_privs' => 'nobody',
'default_process_limit' => nil,
'export_environment' => nil,
'home_mailbox' => 'Mailbox',
'inet_interfaces' => 'loopback-only',
'initial_destination_concurrency' => nil,
'local_destination_concurrency_limit' => '2',
'local_recipient_maps' => '$alias_maps unix:passwd.byname',
'luser_relay' => nil,
'mailbox_command' => '/usr/bin/procmail',
'mailbox_size_limit' => nil,
'maximal_backoff_time' => '300',
'maximal_queue_lifetime' => nil,
'message_size_limit' => nil,
'minimal_backoff_time' => '120',
'mydomain' => 'localhost',
'queue_run_delay' => '60',
'smtpd_client_connection_count_limit' => nil,
'smtpd_error_sleep_time' => '3',
'smtp_destination_concurrency_limit' => '4',
'smtpd_hard_error_limit' => '10',
'smtpd_recipient_limit' => '1000',
'smtpd_sender_restrictions' =>
'reject_unknown_sender_domain, hash:/etc/postfix/access',
'smtpd_soft_error_limit' => '5',
'smtpd_timeout' => '120s',
'smtp_sasl_auth_enable' => nil,
'smtp_sasl_mechanism_filter' => nil,
'smtp_sasl_password_maps' => nil,
'transport_maps' => nil,
'unknown_local_recipient_reject_code' => '450',
'virtual_maps' => nil,
# Postfix will interpret this to be hostname
'smtp_helo_name' => '$myhostname',
},
# master.cf as per http://www.postfix.org/master.5.html
# In master.cf, unique by service:type and not just service.
'master.cf' => {
'anvil' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '1',
'command' => 'anvil',
},
},
'bounce' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '0',
'command' => 'bounce',
},
},
'cleanup' => {
'unix' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '0',
'command' => 'cleanup',
},
},
'defer' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '0',
'command' => 'bounce',
},
},
'discard' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'discard',
},
},
'error' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'error',
},
},
'flush' => {
'unix' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '1000?',
'maxproc' => '0',
'command' => 'flush',
},
},
'lmtp' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'lmtp',
},
},
'local' => {
'unix' => {
'private' => '-',
'unpriv' => 'n',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'local',
},
},
'pickup' => {
'fifo' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '60',
'maxproc' => '1',
'command' => 'pickup',
},
},
'proxymap' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'proxymap',
},
},
'proxywrite' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '1',
'command' => 'proxymap',
},
},
'qmgr' => {
'fifo' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '300',
'maxproc' => '1',
'command' => 'qmgr',
},
},
'relay' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'smtp -o smtp_fallback_relay=',
},
},
'retry' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'error',
},
},
'rewrite' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'trivial-rewrite',
},
},
'scache' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '1',
'command' => 'scache',
},
},
'showq' => {
'unix' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'showq',
},
},
'smtp' => {
'inet' => {
'private' => 'n',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'smtpd',
},
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'smtp',
},
},
'tlsmgr' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '1000?',
'maxproc' => '1',
'command' => 'tlsmgr',
},
},
'trace' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '0',
'command' => 'bounce',
},
},
'verify' => {
'unix' => {
'private' => '-',
'unpriv' => '-',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '1',
'command' => 'verify',
},
},
'virtual' => {
'unix' => {
'private' => '-',
'unpriv' => 'n',
'chroot' => 'n',
'wakeup' => '-',
'maxproc' => '-',
'command' => 'virtual',
},
},
},
'mynetworks' => [
'127.0.0.1/32',
'[::1]/128',
],
'relaydomains' => [],
'sasl_auth' => {},
'sasl_passwd' => {},
'transport' => {},
'virtual' => {},
'custom_headers' => {},
}