Puppet Class: postfix::virtual_hosting
- Inherits:
- postfix::defaults
- Defined in:
- manifests/virtual_hosting.pp
Overview
postfix use case for virtual hosting
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'manifests/virtual_hosting.pp', line 2
class postfix::virtual_hosting (
# main.cf options
$myorigin = $::postfix::defaults::myorigin,
$smtpd_banner = $::postfix::defaults::smtpd_banner,
$biff = $::postfix::defaults::biff,
$append_dot_mydomain = $::postfix::defaults::append_dot_mydomain,
$compatibility_level = $::postfix::defaults::compatibility_level,
$smtpd_use_tls = $::postfix::defaults::smtpd_use_tls,
$smtpd_tls_cert_file = $::postfix::defaults::smtpd_tls_cert_file,
$smtpd_tls_key_file = $::postfix::defaults::smtpd_tls_key_file,
$smtpd_tls_session_cache_database = $::postfix::defaults::smtpd_tls_session_cache_database,
$smtp_tls_session_cache_database = $::postfix::defaults::smtp_tls_session_cache_database,
$smtpd_relay_restrictions = $::postfix::defaults::smtpd_relay_restrictions,
$myhostname = $::postfix::defaults::myhostname,
$alias_maps = $::postfix::defaults::alias_maps,
$alias_database = $::postfix::defaults::alias_database,
$mydestination = $::postfix::defaults::mydestination,
$mynetworks = $::postfix::defaults::mynetworks,
$mailbox_size_limit = $::postfix::defaults::mailbox_size_limit,
$recipient_delimiter = $::postfix::defaults::recipient_delimiter,
$inet_interfaces = 'all',
$inet_protocols = $::postfix::defaults::inet_protocols,
# mastercf options
$smtpd_maxproc= $::postfix::defaults::smtpd_maxproc,
$smtpd_options= $::postfix::defaults::smtpd_options,
$message_size_limit = 52428800,
$content_filter = false,
$smtpd_proxy_filter = false,
$enable_dane = false,
$enable_submission = false,
$submission_smtpd_proxy_filter = '',
) inherits postfix::defaults {
class { 'postfix':
myorigin => $myorigin,
smtpd_banner => $smtpd_banner,
biff => $biff,
append_dot_mydomain => $append_dot_mydomain,
compatibility_level => $compatibility_level,
smtpd_use_tls => $smtpd_use_tls,
smtpd_tls_cert_file => $smtpd_tls_cert_file,
smtpd_tls_key_file => $smtpd_tls_key_file,
smtpd_tls_session_cache_database => $smtpd_tls_session_cache_database,
smtp_tls_session_cache_database => $smtp_tls_session_cache_database,
smtpd_relay_restrictions => $smtpd_relay_restrictions,
myhostname => $myhostname,
alias_maps => $alias_maps,
alias_database => $alias_database,
mydestination => $mydestination,
mynetworks => $mynetworks,
mailbox_size_limit => $mailbox_size_limit,
recipient_delimiter => $recipient_delimiter,
inet_interfaces => $inet_interfaces,
inet_protocols => $inet_protocols,
smtpd_maxproc => $smtpd_maxproc,
smtpd_options => $smtpd_options,
}
postfix::maincf::param { 'message_size_limit':
value => $message_size_limit,
}
class { 'postfix::access': }
postfix::maincf::param { 'smtpd_client_restrictions':
value => "check_client_access hash:${::postfix::access::path}",
}
class { 'postfix::virtual_aliases':}
postfix::maincf::param { 'virtual_alias_maps':
value => "hash:${::postfix::virtual_aliases::path}",
}
class { 'postfix::virtual_alias_domains':}
postfix::maincf::param { 'virtual_alias_domains':
value => "hash:${::postfix::virtual_alias_domains::path}",
}
class { 'postfix::virtual_mailboxes':}
postfix::maincf::param { 'virtual_mailbox_maps':
value => "hash:${::postfix::virtual_mailboxes::path}",
}
class { 'postfix::virtual_mailbox_domains':}
postfix::maincf::param { 'virtual_mailbox_domains':
value => "hash:${::postfix::virtual_mailbox_domains::path}",
}
class { 'postfix::reject_bogus_ip': }
postfix::maincf::param { 'smtpd_recipient_restrictions':
value => "permit_mynetworks,
reject_unauth_pipelining,
check_sender_mx_access cidr:/etc/postfix/reject_bogus_ip.cidr
check_sender_ns_access cidr:/etc/postfix/reject_bogus_ip.cidr
reject_non_fqdn_recipient,
reject_invalid_helo_hostname,
reject_unknown_recipient_domain,
reject_unauth_destination,
check_policy_service { inet:127.0.0.1:12345,
timeout=10s,
default_action=DUNNO
},
permit",
}
postfix::maincf::param { 'smtpd_sender_restrictions':
value => 'reject_non_fqdn_sender,
reject_unknown_sender_domain',
}
if( $content_filter ) {
class { 'postfix::content_filter': }
} elsif( $smtpd_proxy_filter ) {
class { 'postfix::smtpd_proxy_filter': }
}
if( $enable_submission ) {
class { 'postfix::submission':
smtpd_proxy_filter => $submission_smtpd_proxy_filter,
}
class { 'postfix::sasl': }
class { 'postfix::sender_login_map': }
postfix::maincf::param { 'smtpd_sender_login_maps':
value => "hash:${postfix::sender_login_map::path}",
}
}
class { 'postfix::smtp_tls_parameters':
enable_dane => $enable_dane,
}
class { 'postfix::dovecot_lda': }
}
|