openship 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -24
- package/dist/bare-2HYDXQEH.js +23 -0
- package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
- package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
- package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
- package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
- package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
- package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
- package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
- package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
- package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
- package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
- package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
- package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
- package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
- package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
- package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
- package/dist/chunk-FQGJZ2HS.js +248 -0
- package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
- package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
- package/dist/chunk-ILFETZOM.js +131 -0
- package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
- package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
- package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
- package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
- package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
- package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
- package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
- package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
- package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
- package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
- package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
- package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
- package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
- package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
- package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
- package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
- package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
- package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
- package/dist/cloud-7QYOGF7F.js +11 -0
- package/dist/cloud-ZSKOS4GY.js +30 -0
- package/dist/detect-SH4FHFBI.js +36 -0
- package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
- package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
- package/dist/dist-es-JSTDUS7Q.js +26 -0
- package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
- package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
- package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
- package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
- package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
- package/dist/docker-U7AF5PTA.js +16 -0
- package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
- package/dist/edge-import-V5CBA47C.js +45 -0
- package/dist/ensure-container-edge-CMYROUSI.js +33 -0
- package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
- package/dist/executor-YPT6RH6O.js +30 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +258 -245
- package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
- package/dist/local-executor-V7U5VOZW.js +12 -0
- package/dist/nginx-2GTRUIDE.js +24 -0
- package/dist/noop-FMMFG2EZ.js +11 -0
- package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -3
- package/dist/server/engine/ChangeLog +2289 -0
- package/dist/server/engine/Documentations +5 -0
- package/dist/server/engine/LICENSE +674 -0
- package/dist/server/engine/README.md +34 -0
- package/dist/server/engine/conf/amavisd +150 -0
- package/dist/server/engine/conf/clamav +71 -0
- package/dist/server/engine/conf/core +632 -0
- package/dist/server/engine/conf/dovecot +151 -0
- package/dist/server/engine/conf/fail2ban +72 -0
- package/dist/server/engine/conf/global +698 -0
- package/dist/server/engine/conf/iredapd +52 -0
- package/dist/server/engine/conf/logwatch +28 -0
- package/dist/server/engine/conf/postfix +97 -0
- package/dist/server/engine/conf/postgresql +93 -0
- package/dist/server/engine/conf/spamassassin +39 -0
- package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
- package/dist/server/engine/dialog/optional_components.sh +122 -0
- package/dist/server/engine/dialog/pgsql_config.sh +52 -0
- package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
- package/dist/server/engine/functions/amavisd.sh +267 -0
- package/dist/server/engine/functions/backend.sh +85 -0
- package/dist/server/engine/functions/clamav.sh +100 -0
- package/dist/server/engine/functions/cleanup.sh +393 -0
- package/dist/server/engine/functions/dovecot.sh +583 -0
- package/dist/server/engine/functions/fail2ban.sh +209 -0
- package/dist/server/engine/functions/iredapd.sh +356 -0
- package/dist/server/engine/functions/optional_components.sh +24 -0
- package/dist/server/engine/functions/packages.sh +522 -0
- package/dist/server/engine/functions/packages_freebsd.sh +179 -0
- package/dist/server/engine/functions/postfix.sh +457 -0
- package/dist/server/engine/functions/postgresql.sh +239 -0
- package/dist/server/engine/functions/spamassassin.sh +49 -0
- package/dist/server/engine/functions/system_accounts.sh +128 -0
- package/dist/server/engine/iRedMail.sh +144 -0
- package/dist/server/engine/pkgs/get_all.sh +338 -0
- package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
- package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
- package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
- package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
- package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
- package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
- package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
- package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
- package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
- package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
- package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
- package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
- package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
- package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
- package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
- package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
- package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
- package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
- package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
- package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
- package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
- package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
- package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
- package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
- package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.local +6 -0
- package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
- package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
- package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
- package/dist/server/engine/samples/firewall/nftables.conf +58 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
- package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
- package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
- package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
- package/dist/server/engine/samples/logrotate/dovecot +13 -0
- package/dist/server/engine/samples/logrotate/iredapd +13 -0
- package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
- package/dist/server/engine/samples/logrotate/openldap +19 -0
- package/dist/server/engine/samples/logrotate/php-fpm +13 -0
- package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
- package/dist/server/engine/samples/openbsd/pf.conf +28 -0
- package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
- package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
- package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
- package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
- package/dist/server/engine/samples/postfix/main.cf +282 -0
- package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
- package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
- package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
- package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
- package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
- package/dist/server/engine/samples/postfix/master.cf +87 -0
- package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
- package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
- package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
- package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
- package/dist/server/engine/samples/spamassassin/local.cf +186 -0
- package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
- package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
- package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
- package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
- package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
- package/dist/server/engine/tools/add_enabled_service.py +60 -0
- package/dist/server/engine/tools/backup_mysql.sh +238 -0
- package/dist/server/engine/tools/backup_openldap.sh +230 -0
- package/dist/server/engine/tools/backup_pgsql.sh +217 -0
- package/dist/server/engine/tools/backup_sogo.sh +156 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
- package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
- package/dist/server/engine/tools/enable_postscreen.sh +144 -0
- package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
- package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
- package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
- package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
- package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
- package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
- package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
- package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
- package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
- package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
- package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
- package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
- package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
- package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
- package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.2/last_login.mysql +16 -0
- package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
- package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
- package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
- package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
- package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
- package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
- package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
- package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
- package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
- package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
- package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
- package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
- package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
- package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
- package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
- package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
- package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
- package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
- package/dist/server/engine/update/README.md +1 -0
- package/dist/server/engine/update/ldap/README.md +40 -0
- package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
- package/dist/server/index.js +55574 -53675
- package/dist/server/migrations/0071_gh_device_token.sql +3 -0
- package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
- package/dist/server/migrations/meta/_journal.json +14 -0
- package/dist/setup-HQIZLUOJ.js +20 -0
- package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
- package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
- package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
- package/package.json +1 -1
- package/dist/bare-ITM45QBX.js +0 -18
- package/dist/cloud-JMPHO3CW.js +0 -7
- package/dist/cloud-W5G6YXAY.js +0 -24
- package/dist/dist-es-4C322O5D.js +0 -22
- package/dist/docker-3FVJMFC3.js +0 -12
- package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
- package/dist/edge-import-Y34YL6JK.js +0 -39
- package/dist/executor-J7BHW5HF.js +0 -26
- package/dist/nginx-YZWKYKQU.js +0 -16
- package/dist/noop-RRNCIUI5.js +0 -7
- package/dist/setup-5X3WEEHA.js +0 -14
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Author: Zhang Huangbin <zhb _at_ iredmail.org>
|
|
4
|
+
|
|
5
|
+
#---------------------------------------------------------------------
|
|
6
|
+
# This file is part of iRedMail, which is an open source mail server
|
|
7
|
+
# solution for Red Hat(R) Enterprise Linux, CentOS, Debian and Ubuntu.
|
|
8
|
+
#
|
|
9
|
+
# iRedMail is free software: you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
# (at your option) any later version.
|
|
13
|
+
#
|
|
14
|
+
# iRedMail is distributed in the hope that it will be useful,
|
|
15
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
# GNU General Public License for more details.
|
|
18
|
+
#
|
|
19
|
+
# You should have received a copy of the GNU General Public License
|
|
20
|
+
# along with iRedMail. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
#---------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
install_all()
|
|
24
|
+
{
|
|
25
|
+
export OPENLDAP_VER='26'
|
|
26
|
+
export MYSQL_VER='84'
|
|
27
|
+
export PHP_VER='83'
|
|
28
|
+
export PY3_VER='3.11'
|
|
29
|
+
export PY_FLAVOR='py311'
|
|
30
|
+
|
|
31
|
+
if [ X"${WEB_SERVER}" == X'NGINX' ]; then
|
|
32
|
+
export IREDMAIL_USE_PHP='YES'
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
ALL_PKGS="${PY_FLAVOR}-sqlalchemy14"
|
|
36
|
+
|
|
37
|
+
if [ X"${BACKEND}" == X'OPENLDAP' ]; then
|
|
38
|
+
ALL_PKGS="${ALL_PKGS} openldap${OPENLDAP_VER}-server"
|
|
39
|
+
ALL_PKGS="${ALL_PKGS} mysql${MYSQL_VER}-server"
|
|
40
|
+
|
|
41
|
+
# Python modules.
|
|
42
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-python-ldap ${PY_FLAVOR}-pymysql"
|
|
43
|
+
|
|
44
|
+
# Perl modules.
|
|
45
|
+
ALL_PKGS="${ALL_PKGS} p5-DBD-LDAP p5-DBD-mysql"
|
|
46
|
+
|
|
47
|
+
elif [ X"${BACKEND}" == X'MYSQL' ]; then
|
|
48
|
+
ALL_PKGS="${ALL_PKGS} mysql${MYSQL_VER}-client"
|
|
49
|
+
|
|
50
|
+
if [ X"${USE_EXISTING_MYSQL}" != X'YES' ]; then
|
|
51
|
+
ALL_PKGS="${ALL_PKGS} mysql${MYSQL_VER}-server"
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# Python modules.
|
|
55
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-pymysql"
|
|
56
|
+
|
|
57
|
+
# Perl modules.
|
|
58
|
+
ALL_PKGS="${ALL_PKGS} p5-DBD-mysql"
|
|
59
|
+
|
|
60
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
61
|
+
ALL_PKGS="${ALL_PKGS} postgresql${PGSQL_VERSION}-server postgresql${PGSQL_VERSION}-contrib"
|
|
62
|
+
|
|
63
|
+
# Python modules.
|
|
64
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-psycopg2"
|
|
65
|
+
|
|
66
|
+
# Perl modules.
|
|
67
|
+
ALL_PKGS="${ALL_PKGS} p5-DBD-Pg"
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
# Dovecot
|
|
71
|
+
if [[ "${BACKEND}" == "OPENLDAP" ]]; then
|
|
72
|
+
# We need both LDAP and MySQL support.
|
|
73
|
+
ALL_PKGS="${ALL_PKGS} dovecot-mysql dovecot-pigeonhole-mysql"
|
|
74
|
+
elif [[ "${BACKEND}" == "MYSQL" ]]; then
|
|
75
|
+
ALL_PKGS="${ALL_PKGS} dovecot-mysql dovecot-pigeonhole-mysql"
|
|
76
|
+
elif [[ "${BACKEND}" == "PGSQL" ]]; then
|
|
77
|
+
ALL_PKGS="${ALL_PKGS} dovecot-pgsql dovecot-pigeonhole-pgsql"
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# SpamAssassin
|
|
81
|
+
ALL_PKGS="${ALL_PKGS} spamassassin"
|
|
82
|
+
|
|
83
|
+
# Amavisd-new.
|
|
84
|
+
ALL_PKGS="${ALL_PKGS} amavisd-new"
|
|
85
|
+
|
|
86
|
+
# Postfix.
|
|
87
|
+
if [[ "${BACKEND}" == 'OPENLDAP' ]]; then
|
|
88
|
+
ALL_PKGS="${ALL_PKGS} postfix-ldap"
|
|
89
|
+
elif [[ "${BACKEND}" == 'MYSQL' ]]; then
|
|
90
|
+
ALL_PKGS="${ALL_PKGS} postfix-mysql"
|
|
91
|
+
elif [[ "${BACKEND}" == 'PGSQL' ]]; then
|
|
92
|
+
ALL_PKGS="${ALL_PKGS} postfix-pgsql p5-Class-DBI-Pg"
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
if [ X"${WEB_SERVER}" == X'NGINX' ]; then
|
|
96
|
+
ALL_PKGS="${ALL_PKGS} nginx uwsgi-${PY_FLAVOR}"
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
# PHP and extensions
|
|
100
|
+
if [ X"${IREDMAIL_USE_PHP}" == X'YES' ]; then
|
|
101
|
+
ALL_PKGS="${ALL_PKGS} php${PHP_VER} php${PHP_VER}-extensions"
|
|
102
|
+
|
|
103
|
+
if [ X"${BACKEND}" == X'OPENLDAP' ]; then
|
|
104
|
+
ALL_PKGS="${ALL_PKGS} php${PHP_VER}-ldap php${PHP_VER}-mysqli"
|
|
105
|
+
elif [ X"${BACKEND}" == X'MYSQL' ]; then
|
|
106
|
+
ALL_PKGS="${ALL_PKGS} php${PHP_VER}-mysqli"
|
|
107
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
108
|
+
ALL_PKGS="${ALL_PKGS} php${PHP_VER}-pdo_pgsql"
|
|
109
|
+
fi
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
ALL_PKGS="${ALL_PKGS} p5-Exporter-Tiny ca_root_nss clamav"
|
|
113
|
+
|
|
114
|
+
# mlmmj: mailing list manager
|
|
115
|
+
ALL_PKGS="${ALL_PKGS} mlmmj"
|
|
116
|
+
|
|
117
|
+
# Roundcube webmail.
|
|
118
|
+
if [ X"${USE_ROUNDCUBE}" == X'YES' ]; then
|
|
119
|
+
[ X"${BACKEND}" == X'OPENLDAP' ] && ALL_PKGS="${ALL_PKGS} php${PHP_VER}-pear-Net_LDAP2"
|
|
120
|
+
ALL_PKGS="${ALL_PKGS} roundcube-php${PHP_VER} mod_php${PHP_VER}"
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
# SOGo groupware.
|
|
124
|
+
if [ X"${USE_SOGO}" == X'YES' ]; then
|
|
125
|
+
if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
126
|
+
ALL_PKGS="${ALL_PKGS} sope-mysql sogo-mysqlactivesync"
|
|
127
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
128
|
+
ALL_PKGS="${ALL_PKGS} sope-pgsql sogo-pgsqlactivesync"
|
|
129
|
+
fi
|
|
130
|
+
fi
|
|
131
|
+
|
|
132
|
+
# iRedAPD
|
|
133
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-dnspython ${PY_FLAVOR}-multipart"
|
|
134
|
+
|
|
135
|
+
# iRedAdmin dependencies.
|
|
136
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-Jinja2 ${PY_FLAVOR}-bcrypt ${PY_FLAVOR}-simplejson ${PY_FLAVOR}-requests ${PY_FLAVOR}-netifaces ${PY_FLAVOR}-more-itertools ${PY_FLAVOR}-passlib"
|
|
137
|
+
|
|
138
|
+
# Fail2ban.
|
|
139
|
+
if [ X"${USE_FAIL2BAN}" == X'YES' ]; then
|
|
140
|
+
ALL_PKGS="${ALL_PKGS} ${PY_FLAVOR}-fail2ban"
|
|
141
|
+
fi
|
|
142
|
+
|
|
143
|
+
# netdata
|
|
144
|
+
if [ X"${USE_NETDATA}" == X'YES' ]; then
|
|
145
|
+
ALL_PKGS="${ALL_PKGS} netdata"
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
# Misc
|
|
149
|
+
ALL_PKGS="${ALL_PKGS} logwatch"
|
|
150
|
+
|
|
151
|
+
# ECHO_INFO "Set pkg repo to: ${FREEBSD_PKG_MIRROR_URL}."
|
|
152
|
+
# [[ -d /usr/local/etc/pkg/repos ]] || mkdir -p /usr/local/etc/pkg/repos
|
|
153
|
+
# cat > /usr/local/etc/pkg/repos/FreeBSD.conf <<EOF
|
|
154
|
+
#FreeBSD: {
|
|
155
|
+
# url: "${FREEBSD_PKG_MIRROR_URL}",
|
|
156
|
+
#EOF
|
|
157
|
+
#
|
|
158
|
+
# if [[ ${FREEBSD_PKG_MIRROR_TYPE} != "" ]]; then
|
|
159
|
+
# cat >> /usr/local/etc/pkg/repos/FreeBSD.conf <<EOF
|
|
160
|
+
# mirror_type: "${FREEBSD_PKG_MIRROR_TYPE}",
|
|
161
|
+
#EOF
|
|
162
|
+
# fi
|
|
163
|
+
#
|
|
164
|
+
#echo "}" >> /usr/local/etc/pkg/repos/FreeBSD.conf
|
|
165
|
+
|
|
166
|
+
ECHO_INFO "Run: pkg update -f"
|
|
167
|
+
pkg update -f || exit 255
|
|
168
|
+
|
|
169
|
+
# Install all packages.
|
|
170
|
+
ECHO_INFO "Install packages: pkg install -y ${ALL_PKGS}"
|
|
171
|
+
pkg install -y ${ALL_PKGS} || exit 255
|
|
172
|
+
|
|
173
|
+
ECHO_DEBUG "Create symbol links for python3."
|
|
174
|
+
ln -sf /usr/local/bin/python${PY3_VER} /usr/local/bin/python3
|
|
175
|
+
|
|
176
|
+
# Create syslog.d and logrotate.d
|
|
177
|
+
mkdir -p ${SYSLOG_CONF_DIR} >> ${INSTALL_LOG} 2>&1
|
|
178
|
+
mkdir -p ${LOGROTATE_DIR} >> ${INSTALL_LOG} 2>&1
|
|
179
|
+
}
|
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Author: Zhang Huangbin <zhb _at_ iredmail.org>
|
|
4
|
+
|
|
5
|
+
#---------------------------------------------------------------------
|
|
6
|
+
# This file is part of iRedMail, which is an open source mail server
|
|
7
|
+
# solution for Red Hat(R) Enterprise Linux, CentOS, Debian and Ubuntu.
|
|
8
|
+
#
|
|
9
|
+
# iRedMail is free software: you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
# (at your option) any later version.
|
|
13
|
+
#
|
|
14
|
+
# iRedMail is distributed in the hope that it will be useful,
|
|
15
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
# GNU General Public License for more details.
|
|
18
|
+
#
|
|
19
|
+
# You should have received a copy of the GNU General Public License
|
|
20
|
+
# along with iRedMail. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
#---------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
# -------------------------------------------------------
|
|
24
|
+
# ---------------------- Postfix ------------------------
|
|
25
|
+
# -------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
postfix_config_basic()
|
|
28
|
+
{
|
|
29
|
+
ECHO_INFO "Configure Postfix (MTA)."
|
|
30
|
+
|
|
31
|
+
if [ X"${DISTRO}" == "DEBIAN" -o X"${DISTRO}" == X"UBUNTU" ]; then
|
|
32
|
+
# Store FQDN in /etc/mailname.
|
|
33
|
+
# FYI: https://wiki.debian.org/EtcMailName
|
|
34
|
+
echo "${HOSTNAME}" > /etc/mailname
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
#
|
|
38
|
+
# main.cf
|
|
39
|
+
#
|
|
40
|
+
export queue_directory="$(postconf -d queue_directory | awk '{print $NF}')"
|
|
41
|
+
export command_directory="$(postconf -d command_directory | awk '{print $NF}')"
|
|
42
|
+
export daemon_directory="$(postconf -d daemon_directory | awk '{print $NF}')"
|
|
43
|
+
export data_directory="$(postconf -d data_directory | awk '{print $NF}')"
|
|
44
|
+
|
|
45
|
+
export sendmail_path="$(postconf -d sendmail_path | awk '{print $NF}')"
|
|
46
|
+
export newaliases_path="$(postconf -d newaliases_path | awk '{print $NF}')"
|
|
47
|
+
export mailq_path="$(postconf -d mailq_path | awk '{print $NF}')"
|
|
48
|
+
export mail_owner="$(postconf -d mail_owner | awk '{print $NF}')"
|
|
49
|
+
export setgid_group="$(postconf -d setgid_group | awk '{print $NF}')"
|
|
50
|
+
|
|
51
|
+
if [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
52
|
+
export setgid_group='maildrop'
|
|
53
|
+
elif [ X"${DISTRO}" == X'OPENBSD' ]; then
|
|
54
|
+
export command_directory='/usr/local/sbin'
|
|
55
|
+
export daemon_directory='/usr/local/libexec/postfix'
|
|
56
|
+
export mail_owner='_postfix'
|
|
57
|
+
export setgid_group='_postdrop'
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Copy sample main.cf and update values.
|
|
61
|
+
backup_file ${POSTFIX_FILE_MAIN_CF} ${POSTFIX_FILE_MASTER_CF}
|
|
62
|
+
cp ${SAMPLE_DIR}/postfix/main.cf ${POSTFIX_FILE_MAIN_CF}
|
|
63
|
+
|
|
64
|
+
ECHO_DEBUG "Enable submission and additional transports required by Amavisd and Dovecot."
|
|
65
|
+
cat ${SAMPLE_DIR}/postfix/master.cf >> ${POSTFIX_FILE_MASTER_CF}
|
|
66
|
+
|
|
67
|
+
perl -pi -e 's#PH_POSTFIX_DEFAULT_DB_TYPE#$ENV{POSTFIX_DEFAULT_DB_TYPE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
68
|
+
perl -pi -e 's#PH_QUEUE_DIRECTORY#$ENV{queue_directory}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
69
|
+
perl -pi -e 's#PH_COMMAND_DIRECTORY#$ENV{command_directory}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
70
|
+
perl -pi -e 's#PH_DAEMON_DIRECTORY#$ENV{daemon_directory}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
71
|
+
perl -pi -e 's#PH_DATA_DIRECTORY#$ENV{data_directory}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
72
|
+
|
|
73
|
+
perl -pi -e 's#PH_SENDMAIL_PATH#$ENV{sendmail_path}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
74
|
+
perl -pi -e 's#PH_NEWALIASES_PATH#$ENV{newaliases_path}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
75
|
+
perl -pi -e 's#PH_MAILQ_PATH#$ENV{mailq_path}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
76
|
+
perl -pi -e 's#PH_MAIL_OWNER#$ENV{mail_owner}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
77
|
+
perl -pi -e 's#PH_SETGID_GROUP#$ENV{setgid_group}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
78
|
+
|
|
79
|
+
unset queue_directory command_directory daemon_directory data_directory
|
|
80
|
+
unset mail_owner sendmail_path newaliases_path mailq_path setgid_group
|
|
81
|
+
|
|
82
|
+
# Append LOCAL_ADDRESS in `mynetworks`
|
|
83
|
+
if [ X"${LOCAL_ADDRESS}" != X'127.0.0.1' ]; then
|
|
84
|
+
perl -pi -e 's#^(mynetworks.*)#${1} $ENV{LOCAL_ADDRESS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
if [ X"${IREDMAIL_HAS_IPV6}" == X'YES' ]; then
|
|
88
|
+
# Append local IPv6 address in `mynetworks`
|
|
89
|
+
perl -pi -e 's#^(mynetworks.*)#${1} [::1]#g' ${POSTFIX_FILE_MAIN_CF}
|
|
90
|
+
else
|
|
91
|
+
# Disable ipv6 protocol
|
|
92
|
+
perl -pi -e 's#^(inet_protocols.*=).*#${1} ipv4#g' ${POSTFIX_FILE_MAIN_CF}
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# Update normal settings.
|
|
96
|
+
perl -pi -e 's#PH_HOSTNAME#$ENV{HOSTNAME}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
97
|
+
perl -pi -e 's#PH_MESSAGE_SIZE_LIMIT_BYTES#$ENV{MESSAGE_SIZE_LIMIT_BYTES}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
98
|
+
perl -pi -e 's#PH_STORAGE_BASE_DIR#$ENV{STORAGE_BASE_DIR}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
99
|
+
perl -pi -e 's#PH_SYS_USER_VMAIL_UID#$ENV{SYS_USER_VMAIL_UID}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
100
|
+
|
|
101
|
+
perl -pi -e 's#PH_SYS_GROUP_VMAIL_GID#$ENV{SYS_GROUP_VMAIL_GID}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
102
|
+
perl -pi -e 's#PH_SYS_USER_VMAIL_UID#$ENV{SYS_USER_VMAIL_UID}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
103
|
+
|
|
104
|
+
perl -pi -e 's#PH_SSL_DH512_PARAM_FILE#$ENV{SSL_DH512_PARAM_FILE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
105
|
+
perl -pi -e 's#PH_SSL_DH1024_PARAM_FILE#$ENV{SSL_DH1024_PARAM_FILE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
106
|
+
perl -pi -e 's#PH_SSL_CERT_FILE#$ENV{SSL_CERT_FILE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
107
|
+
perl -pi -e 's#PH_SSL_KEY_FILE#$ENV{SSL_KEY_FILE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
108
|
+
perl -pi -e 's#PH_SSL_CERT_DIR#$ENV{SSL_CERT_DIR}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
109
|
+
perl -pi -e 's#PH_SSL_CA_FILE#$ENV{SSL_CA_FILE}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
110
|
+
|
|
111
|
+
if [ X"${DISTRO}" == X'FREEBSD' -o X"${DISTRO}" == X'OPENBSD' ]; then
|
|
112
|
+
perl -pi -e 's#^(smtpd_tls_CApath=).*#${1}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
113
|
+
perl -pi -e 's#^(smtpd_tls_dh1024_param_file.*)##g' ${POSTFIX_FILE_MAIN_CF}
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
# Replace deprecated parameters on Postfix >= 3.7.
|
|
117
|
+
if [ X"${DISTRO_CODENAME}" == X'trixie' -o X"${DISTRO_CODENAME}" == X'resolute' ]; then
|
|
118
|
+
# main.cf
|
|
119
|
+
perl -pi -e 's#^(smtpd_tls_dh1024_param_file.*)##g' ${POSTFIX_FILE_MAIN_CF}
|
|
120
|
+
elif [[ X"${DISTRO}" == X'FREEBSD' ]]; then
|
|
121
|
+
# main.cf
|
|
122
|
+
perl -pi -e 's#^(smtpd_tls_dh1024_param_file.*)##g' ${POSTFIX_FILE_MAIN_CF}
|
|
123
|
+
|
|
124
|
+
# master.cf
|
|
125
|
+
perl -pi -e 's#disable_dns_lookups=yes#smtp_dns_support_level=disabled#g' ${POSTFIX_FILE_MASTER_CF}
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
perl -pi -e 's#PH_POSTFIX_FILE_ALIASES#$ENV{POSTFIX_FILE_ALIASES}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
129
|
+
perl -pi -e 's#PH_POSTFIX_FILE_HELO_ACCESS#$ENV{POSTFIX_FILE_HELO_ACCESS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
130
|
+
perl -pi -e 's#PH_POSTFIX_FILE_HEADER_CHECKS#$ENV{POSTFIX_FILE_HEADER_CHECKS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
131
|
+
perl -pi -e 's#PH_POSTFIX_FILE_BODY_CHECKS#$ENV{POSTFIX_FILE_BODY_CHECKS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
132
|
+
perl -pi -e 's#PH_POSTFIX_FILE_SENDER_ACCESS#$ENV{POSTFIX_FILE_SENDER_ACCESS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
133
|
+
perl -pi -e 's#PH_POSTFIX_FILE_SMTPD_COMMAND_FILTER#$ENV{POSTFIX_FILE_SMTPD_COMMAND_FILTER}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
134
|
+
|
|
135
|
+
# Create required files and set correct owner + permission
|
|
136
|
+
_files="${POSTFIX_FILE_HELO_ACCESS} ${POSTFIX_FILE_HEADER_CHECKS} ${POSTFIX_FILE_BODY_CHECKS} ${POSTFIX_FILE_SENDER_ACCESS}"
|
|
137
|
+
touch ${_files}
|
|
138
|
+
chown ${SYS_USER_ROOT}:${SYS_GROUP_POSTFIX} ${_files}
|
|
139
|
+
chmod 0640 ${_files}
|
|
140
|
+
unset _files
|
|
141
|
+
|
|
142
|
+
# iRedAPD
|
|
143
|
+
perl -pi -e 's#PH_IREDAPD_SERVER_ADDRESS#$ENV{IREDAPD_SERVER_ADDRESS}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
144
|
+
perl -pi -e 's#PH_IREDAPD_LISTEN_PORT#$ENV{IREDAPD_LISTEN_PORT}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
145
|
+
perl -pi -e 's#PH_IREDAPD_SRS_FORWARD_PORT#$ENV{IREDAPD_SRS_FORWARD_PORT}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
146
|
+
perl -pi -e 's#PH_IREDAPD_SRS_REVERSE_PORT#$ENV{IREDAPD_SRS_REVERSE_PORT}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
147
|
+
|
|
148
|
+
# Dovecot quota-status service
|
|
149
|
+
perl -pi -e 's#PH_DOVECOT_SERVICE_QUOTA_STATUS_PORT#$ENV{DOVECOT_SERVICE_QUOTA_STATUS_PORT}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
150
|
+
|
|
151
|
+
# Distro releases ship Postfix 3.6+.
|
|
152
|
+
# - Ubuntu 22.04
|
|
153
|
+
# - Debian 12
|
|
154
|
+
# - OpenBSD
|
|
155
|
+
# - FreeBSD
|
|
156
|
+
if [[ X"${DISTRO}" == X'RHEL' ]]; then
|
|
157
|
+
if [[ X"${DISTRO_VERSION}" == X'10' ]]; then
|
|
158
|
+
# Postfix 3.8.5
|
|
159
|
+
postconf -e compatibility_level=3.6
|
|
160
|
+
postconf -e default_database_type=${POSTFIX_DEFAULT_DB_TYPE}
|
|
161
|
+
else
|
|
162
|
+
# Postfix 3.5.x
|
|
163
|
+
postconf -e compatibility_level=2
|
|
164
|
+
fi
|
|
165
|
+
elif [[ X"${DISTRO}" == X'FREEBSD' ]]; then
|
|
166
|
+
postconf -e compatibility_level=3.11
|
|
167
|
+
else
|
|
168
|
+
postconf -e compatibility_level=3.6
|
|
169
|
+
fi
|
|
170
|
+
|
|
171
|
+
perl -pi -e 's/^(smtp.*inet)(.*)(n)(.*)(n)(.*smtpd)$/${1}${2}${3}${4}-${6}/' ${POSTFIX_FILE_MASTER_CF}
|
|
172
|
+
|
|
173
|
+
# set smtp server
|
|
174
|
+
perl -pi -e 's#PH_SMTP_SERVER#$ENV{SMTP_SERVER}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
175
|
+
perl -pi -e 's#PH_AMAVISD_CONTENT_FILTER_ORIGINATING#$ENV{AMAVISD_CONTENT_FILTER_ORIGINATING}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
176
|
+
|
|
177
|
+
# set mailbox owner: user/group
|
|
178
|
+
perl -pi -e 's#PH_SYS_USER_VMAIL#$ENV{SYS_USER_VMAIL}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
179
|
+
perl -pi -e 's#PH_SYS_GROUP_VMAIL#$ENV{SYS_GROUP_VMAIL}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
180
|
+
|
|
181
|
+
# Amavisd integration.
|
|
182
|
+
perl -pi -e 's#PH_LOCAL_ADDRESS#$ENV{LOCAL_ADDRESS}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
183
|
+
perl -pi -e 's#PH_AMAVISD_MAX_SERVERS#$ENV{AMAVISD_MAX_SERVERS}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
184
|
+
perl -pi -e 's#PH_AMAVISD_MYNETWORKS#$ENV{AMAVISD_MYNETWORKS}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
185
|
+
perl -pi -e 's#PH_POSTFIX_MAIL_REINJECT_PORT#$ENV{POSTFIX_MAIL_REINJECT_PORT}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
186
|
+
perl -pi -e 's#PH_AMAVISD_ORIGINATING_PORT#$ENV{AMAVISD_ORIGINATING_PORT}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
187
|
+
|
|
188
|
+
# Enable `content_filter` for `pickup` transport:
|
|
189
|
+
# - Treat all emails generated locally as outbound
|
|
190
|
+
# - sign DKIM signature
|
|
191
|
+
# - do spam/virus scanning
|
|
192
|
+
_pickup_orig="$(postconf -M |grep '^pickup')"
|
|
193
|
+
echo ${_pickup_orig} | grep 'content_filter=' &>/dev/null
|
|
194
|
+
if [ X"$?" != X'0' ]; then
|
|
195
|
+
postconf -M "pickup/unix=${_pickup_orig}"
|
|
196
|
+
postconf -P "pickup/unix/content_filter=${AMAVISD_CONTENT_FILTER_ORIGINATING}"
|
|
197
|
+
fi
|
|
198
|
+
|
|
199
|
+
_postfix_version="$(postconf -d mail_version | awk '{print $NF}')"
|
|
200
|
+
if echo ${_postfix_version} | grep '^3' &>/dev/null; then
|
|
201
|
+
# The master.cf chroot default value has changed from "y" (yes) to "n" (no).
|
|
202
|
+
for i in $(postconf -Mf | grep '^[0-9a-zA-Z]' | awk '{print $1"/"$2"/chroot=n"}'); do
|
|
203
|
+
postconf -F $i
|
|
204
|
+
done
|
|
205
|
+
|
|
206
|
+
# Disable smtputf8 if EAI support is not compiled in.
|
|
207
|
+
if postconf -m 2>&1 |grep 'warning: smtputf8_enable' &>/dev/null; then
|
|
208
|
+
postconf -e smtputf8_enable=no
|
|
209
|
+
fi
|
|
210
|
+
fi
|
|
211
|
+
|
|
212
|
+
ECHO_DEBUG "Enable chroot."
|
|
213
|
+
# mlmmj integration.
|
|
214
|
+
perl -pi -e 's#PH_POSTFIX_MLMMJ_REINJECT_PORT#$ENV{POSTFIX_MLMMJ_REINJECT_PORT}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
215
|
+
|
|
216
|
+
# Dovecot LDA
|
|
217
|
+
perl -pi -e 's#PH_DOVECOT_DELIVER_BIN#$ENV{DOVECOT_DELIVER_BIN}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
218
|
+
|
|
219
|
+
# mlmmj
|
|
220
|
+
perl -pi -e 's#PH_SYS_USER_MLMMJ#$ENV{SYS_USER_MLMMJ}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
221
|
+
perl -pi -e 's#PH_SYS_GROUP_MLMMJ#$ENV{SYS_GROUP_MLMMJ}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
222
|
+
perl -pi -e 's#PH_CMD_MLMMJ_AMIME_RECEIVE#$ENV{CMD_MLMMJ_AMIME_RECEIVE}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
223
|
+
perl -pi -e 's#PH_MLMMJ_SPOOL_DIR#$ENV{MLMMJ_SPOOL_DIR}#g' ${POSTFIX_FILE_MASTER_CF}
|
|
224
|
+
|
|
225
|
+
ECHO_DEBUG "Copy: /etc/{hosts,resolv.conf,localtime,services} -> ${POSTFIX_CHROOT_DIR}/etc/"
|
|
226
|
+
mkdir -p ${POSTFIX_CHROOT_DIR}/etc/ >> ${INSTALL_LOG} 2>&1
|
|
227
|
+
for i in /etc/hosts /etc/resolv.conf /etc/localtime /etc/services; do
|
|
228
|
+
[[ -f $i ]] && cp ${i} ${POSTFIX_CHROOT_DIR}/etc/
|
|
229
|
+
done
|
|
230
|
+
|
|
231
|
+
backup_file ${POSTFIX_FILE_HELO_ACCESS}
|
|
232
|
+
cp -f ${SAMPLE_DIR}/postfix/helo_access.pcre ${POSTFIX_FILE_HELO_ACCESS}
|
|
233
|
+
|
|
234
|
+
backup_file ${POSTFIX_FILE_SMTPD_COMMAND_FILTER}
|
|
235
|
+
cp -f ${SAMPLE_DIR}/postfix/command_filter.pcre ${POSTFIX_FILE_SMTPD_COMMAND_FILTER}
|
|
236
|
+
|
|
237
|
+
# Update Postfix aliases file.
|
|
238
|
+
add_postfix_alias nobody ${SYS_USER_ROOT}
|
|
239
|
+
add_postfix_alias ${SYS_USER_VMAIL} ${SYS_USER_ROOT}
|
|
240
|
+
add_postfix_alias ${SYS_USER_ROOT} ${DOMAIN_ADMIN_EMAIL}
|
|
241
|
+
|
|
242
|
+
if [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
|
|
243
|
+
# Since `mail.*` is logged to /var/log/mail.log, no need to log
|
|
244
|
+
# `mail.err` to /var/log/mail.err separately.
|
|
245
|
+
ECHO_DEBUG "Disable duplicate log entries (mail.{info,warn,err}) in syslog config file."
|
|
246
|
+
|
|
247
|
+
for f in ${SYSLOG_CONF} ${SYSLOG_CONF_DIR}/50-default.conf; do
|
|
248
|
+
if [ -f ${f} ]; then
|
|
249
|
+
perl -pi -e 's/^(mail.info.*mail.info)$/#${1}/' ${f}
|
|
250
|
+
perl -pi -e 's/^(mail.warn.*mail.warn)$/#${1}/' ${f}
|
|
251
|
+
perl -pi -e 's/^(mail.err.*mail.err)$/#${1}/' ${f}
|
|
252
|
+
fi
|
|
253
|
+
done
|
|
254
|
+
elif [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
255
|
+
# FreeBSD: Start postfix when system start up.
|
|
256
|
+
backup_file /etc/mail/mailer.conf
|
|
257
|
+
cp -f ${SAMPLE_DIR}/postfix/freebsd/mailer.conf /etc/mail/mailer.conf
|
|
258
|
+
chmod +r /etc/mail/mailer.conf
|
|
259
|
+
|
|
260
|
+
# Start service when system start up.
|
|
261
|
+
service_control enable 'postfix_enable' 'YES'
|
|
262
|
+
service_control enable 'sendmail_enable' 'NO'
|
|
263
|
+
service_control enable 'sendmail_submit_enable' 'NO'
|
|
264
|
+
service_control enable 'sendmail_outbound_enable' 'NO'
|
|
265
|
+
service_control enable 'sendmail_msp_queue_enable' 'NO'
|
|
266
|
+
service_control enable 'daily_clean_hoststat_enable' 'NO'
|
|
267
|
+
service_control enable 'daily_status_mail_rejects_enable' 'NO'
|
|
268
|
+
service_control enable 'daily_status_include_submit_mailq' 'NO'
|
|
269
|
+
service_control enable 'daily_submit_queuerun' 'NO'
|
|
270
|
+
|
|
271
|
+
elif [ X"${DISTRO}" == X'OPENBSD' ]; then
|
|
272
|
+
# Replace sendmail, opensmtpd by Postfix
|
|
273
|
+
echo 'sendmail_flags=NO' >> ${RC_CONF_LOCAL}
|
|
274
|
+
echo 'smtpd_flags=NO' >> ${RC_CONF_LOCAL}
|
|
275
|
+
/usr/local/sbin/postfix-enable >> ${INSTALL_LOG} 2>&1
|
|
276
|
+
perl -pi -e 's/(.*sendmail -L sm-msp-queue.*)/#${1}/' ${CRON_FILE_ROOT}
|
|
277
|
+
fi
|
|
278
|
+
|
|
279
|
+
# Update /etc/host.conf to solve warning message in Postfix like this:
|
|
280
|
+
# "warning: hostname xxx does not resolve to address 127.0.0.1"
|
|
281
|
+
if [ -f /etc/host.conf ]; then
|
|
282
|
+
if ! grep '^multi on$' /etc/host.conf &>/dev/null; then
|
|
283
|
+
echo 'multi on' >> /etc/host.conf
|
|
284
|
+
fi
|
|
285
|
+
fi
|
|
286
|
+
|
|
287
|
+
# Create symbol link: /var/log/mail.log -> maillog
|
|
288
|
+
# So that all linux/bsd distributions have the same maillog file.
|
|
289
|
+
if [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
|
|
290
|
+
if [ -f ${MAILLOG} -a ! -f /var/log/maillog ]; then
|
|
291
|
+
ln -s ${MAILLOG} /var/log/maillog
|
|
292
|
+
fi
|
|
293
|
+
fi
|
|
294
|
+
|
|
295
|
+
echo 'export status_postfix_config_basic="DONE"' >> ${STATUS_FILE}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
postfix_config_vhost()
|
|
299
|
+
{
|
|
300
|
+
ECHO_DEBUG "Configure Postfix for SQL/LDAP lookup."
|
|
301
|
+
|
|
302
|
+
# Create directory which used to store sql/ldap lookup files.
|
|
303
|
+
[[ -d ${POSTFIX_LOOKUP_DIR} ]] || mkdir -p ${POSTFIX_LOOKUP_DIR}
|
|
304
|
+
|
|
305
|
+
cat ${SAMPLE_DIR}/postfix/main.cf.${POSTFIX_LOOKUP_DB} >> ${POSTFIX_FILE_MAIN_CF}
|
|
306
|
+
perl -pi -e 's#PH_POSTFIX_LOOKUP_DIR#$ENV{POSTFIX_LOOKUP_DIR}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
307
|
+
|
|
308
|
+
cp -f ${SAMPLE_DIR}/postfix/${POSTFIX_LOOKUP_DB}/*.cf ${POSTFIX_LOOKUP_DIR}
|
|
309
|
+
|
|
310
|
+
chown ${SYS_USER_ROOT}:${SYS_GROUP_POSTFIX} ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
311
|
+
chmod 0640 ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
312
|
+
|
|
313
|
+
if [ X"${BACKEND}" == X'OPENLDAP' ]; then
|
|
314
|
+
# LDAP server and bind dn/password
|
|
315
|
+
perl -pi -e 's#PH_LDAP_SERVER_HOST#$ENV{LDAP_SERVER_HOST}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
316
|
+
perl -pi -e 's#PH_LDAP_SERVER_PORT#$ENV{LDAP_SERVER_PORT}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
317
|
+
perl -pi -e 's#PH_LDAP_BIND_VERSION#$ENV{LDAP_BIND_VERSION}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
318
|
+
perl -pi -e 's#PH_LDAP_BASEDN#$ENV{LDAP_BASEDN}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
319
|
+
perl -pi -e 's#PH_LDAP_BINDDN#$ENV{LDAP_BINDDN}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
320
|
+
perl -pi -e 's#PH_LDAP_BINDPW#$ENV{LDAP_BINDPW}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
321
|
+
|
|
322
|
+
perl -pi -e 's#PH_LDAP_ATTR_GROUP_USERS#$ENV{LDAP_ATTR_GROUP_USERS}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
323
|
+
perl -pi -e 's#PH_LDAP_ATTR_GROUP_GROUPS#$ENV{LDAP_ATTR_GROUP_GROUPS}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
324
|
+
elif [ X"${BACKEND}" == X'MYSQL' -o X"${BACKEND}" == X'PGSQL' ]; then
|
|
325
|
+
# SQL server, port, bind username, password
|
|
326
|
+
perl -pi -e 's#PH_SQL_SERVER_ADDRESS#$ENV{SQL_SERVER_ADDRESS}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
327
|
+
perl -pi -e 's#PH_SQL_SERVER_PORT#$ENV{SQL_SERVER_PORT}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
328
|
+
perl -pi -e 's#PH_VMAIL_DB_BIND_USER#$ENV{VMAIL_DB_BIND_USER}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
329
|
+
perl -pi -e 's#PH_VMAIL_DB_BIND_PASSWD#$ENV{VMAIL_DB_BIND_PASSWD}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
330
|
+
perl -pi -e 's#PH_VMAIL_DB_NAME#$ENV{VMAIL_DB_NAME}#g' ${POSTFIX_LOOKUP_DIR}/*.cf
|
|
331
|
+
fi
|
|
332
|
+
|
|
333
|
+
echo 'export status_postfix_config_vhost="DONE"' >> ${STATUS_FILE}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
postfix_config_postscreen()
|
|
337
|
+
{
|
|
338
|
+
ECHO_DEBUG "Enable postscreen service."
|
|
339
|
+
|
|
340
|
+
backup_file ${POSTSCREEN_FILE_ACCESS_CIDR} ${POSTSCREEN_FILE_DNSBL_REPLY}
|
|
341
|
+
|
|
342
|
+
export POSTFIX_VERSION="$(postconf mail_version 2>/dev/null | awk '{print $NF}')"
|
|
343
|
+
if echo ${POSTFIX_VERSION} | grep '^2\.[01234567]\.' &>/dev/null; then
|
|
344
|
+
ECHO_ERROR "postscreen requires Postfix 2.8 or later, you're running ${POSTFIX_VERSION}."
|
|
345
|
+
ECHO_ERROR "postscreen service not enabled."
|
|
346
|
+
else
|
|
347
|
+
ECHO_DEBUG "Comment out 'smtp inet ... smtpd' service in ${POSTFIX_FILE_MASTER_CF}."
|
|
348
|
+
perl -pi -e 's/^(smtp .*inet.*smtpd)$/#${1}/g' ${POSTFIX_FILE_MASTER_CF}
|
|
349
|
+
|
|
350
|
+
ECHO_DEBUG "Uncomment the new 'smtpd pass ... smtpd' service in ${POSTFIX_FILE_MASTER_CF}."
|
|
351
|
+
perl -pi -e 's/^#(smtpd.*pass.*smtpd)$/${1}/g' ${POSTFIX_FILE_MASTER_CF}
|
|
352
|
+
|
|
353
|
+
ECHO_DEBUG "Uncomment the new "smtp inet ... postscreen" service in ${POSTFIX_FILE_MASTER_CF}."
|
|
354
|
+
perl -pi -e 's/^#(smtp *.*inet.*postscreen)$/${1}/g' ${POSTFIX_FILE_MASTER_CF}
|
|
355
|
+
|
|
356
|
+
ECHO_DEBUG "Uncomment the new 'tlsproxy unix ... tlsproxy' service in ${POSTFIX_FILE_MASTER_CF}."
|
|
357
|
+
perl -pi -e 's/^#(tlsproxy.*unix.*tlsproxy)$/${1}/g' ${POSTFIX_FILE_MASTER_CF}
|
|
358
|
+
|
|
359
|
+
ECHO_DEBUG "Uncomment the new 'dnsblog unix ... dnsblog' service in ${POSTFIX_FILE_MASTER_CF}."
|
|
360
|
+
perl -pi -e 's/^#(dnsblog.*unix.*dnsblog)$/${1}/g' ${POSTFIX_FILE_MASTER_CF}
|
|
361
|
+
|
|
362
|
+
#
|
|
363
|
+
# main.cf
|
|
364
|
+
#
|
|
365
|
+
if [[ X"${DISTRO}" == X'FREEBSD' ]]; then
|
|
366
|
+
perl -pi -e 's#postscreen_blacklist_action#postscreen_denylist_action#g' ${SAMPLE_DIR}/postfix/main.cf.postscreen
|
|
367
|
+
perl -pi -e 's#postscreen_dnsbl_whitelist_threshold#postscreen_dnsbl_allowlist_threshold#g' ${SAMPLE_DIR}/postfix/main.cf.postscreen
|
|
368
|
+
fi
|
|
369
|
+
|
|
370
|
+
ECHO_DEBUG "Update ${POSTFIX_FILE_MAIN_CF} to enable postscreen."
|
|
371
|
+
cat ${SAMPLE_DIR}/postfix/main.cf.postscreen >> ${POSTFIX_FILE_MAIN_CF}
|
|
372
|
+
|
|
373
|
+
perl -pi -e 's#PH_POSTSCREEN_FILE_DNSBL_REPLY#$ENV{POSTSCREEN_FILE_DNSBL_REPLY}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
374
|
+
touch ${POSTSCREEN_FILE_DNSBL_REPLY}
|
|
375
|
+
|
|
376
|
+
perl -pi -e 's#PH_POSTSCREEN_FILE_ACCESS_CIDR#$ENV{POSTSCREEN_FILE_ACCESS_CIDR}#g' ${POSTFIX_FILE_MAIN_CF}
|
|
377
|
+
cp -f ${SAMPLE_DIR}/postfix/postscreen_access.cidr ${POSTSCREEN_FILE_ACCESS_CIDR}
|
|
378
|
+
|
|
379
|
+
# Require Postfix-2.11+
|
|
380
|
+
if echo ${POSTFIX_VERSION} | egrep '(^3|^2\.[123456789][123456789])' &>/dev/null; then
|
|
381
|
+
perl -pi -e 's/^#(postscreen_dnsbl_whitelist_threshold.*)/${1}/g' ${POSTFIX_FILE_MAIN_CF}
|
|
382
|
+
fi
|
|
383
|
+
|
|
384
|
+
# Set a not existing directory as default value, if we cannot get
|
|
385
|
+
# ${queue_directory} for some reason, it won't mistakenly reset owner
|
|
386
|
+
# and permission on '/'
|
|
387
|
+
export queue_directory="$(postconf queue_directory | awk '{print $NF}')"
|
|
388
|
+
export data_directory="$(postconf data_directory | awk '{print $NF}')"
|
|
389
|
+
_chrooted_data_directory="${queue_directory:=/tmp/not-exist}/${data_directory}"
|
|
390
|
+
|
|
391
|
+
unset queue_directory data_directory
|
|
392
|
+
|
|
393
|
+
ECHO_DEBUG "Create ${_chrooted_data_directory}/postscreen_cache.db."
|
|
394
|
+
if [ ! -d ${_chrooted_data_directory} ]; then
|
|
395
|
+
mkdir -p ${_chrooted_data_directory}
|
|
396
|
+
chown ${SYS_USER_POSTFIX}:${SYS_GROUP_ROOT} ${_chrooted_data_directory}
|
|
397
|
+
chmod 0700 ${_chrooted_data_directory}
|
|
398
|
+
fi
|
|
399
|
+
|
|
400
|
+
# Create db file.
|
|
401
|
+
cd ${_chrooted_data_directory}
|
|
402
|
+
touch postscreen_cache
|
|
403
|
+
postmap ${POSTFIX_DEFAULT_DB_TYPE}:postscreen_cache
|
|
404
|
+
rm postscreen_cache
|
|
405
|
+
chown ${SYS_USER_POSTFIX}:${SYS_GROUP_POSTFIX} postscreen_cache.*
|
|
406
|
+
chmod 0700 postscreen_cache.*
|
|
407
|
+
fi
|
|
408
|
+
|
|
409
|
+
echo 'export status_postfix_config_postscreen="DONE"' >> ${STATUS_FILE}
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
postfix_config_logwatch()
|
|
413
|
+
{
|
|
414
|
+
# Enable long queue ID.
|
|
415
|
+
if [[ -n ${LOGWATCH_SERVICES_DIR} ]]; then
|
|
416
|
+
# Create the directory if not present.
|
|
417
|
+
#
|
|
418
|
+
# logwatch package may be missing on the server, continue adding the
|
|
419
|
+
# modular config file to avoid the issue if sysadmin installs logwatch
|
|
420
|
+
# someday in the future.
|
|
421
|
+
[[ -d ${LOGWATCH_SERVICES_DIR} ]] || mkdir -p ${LOGWATCH_SERVICES_DIR}
|
|
422
|
+
|
|
423
|
+
f="${LOGWATCH_SERVICES_DIR}/postfix.conf"
|
|
424
|
+
|
|
425
|
+
if ! grep '\$postfix_Enable_Long_Queue_Ids' ${f} &>/dev/null; then
|
|
426
|
+
cat >> ${f} <<EOF
|
|
427
|
+
\$postfix_Enable_Long_Queue_Ids = Yes
|
|
428
|
+
EOF
|
|
429
|
+
fi
|
|
430
|
+
fi
|
|
431
|
+
|
|
432
|
+
echo 'export status_postfix_config_logwatch="DONE"' >> ${STATUS_FILE}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
postfix_setup()
|
|
436
|
+
{
|
|
437
|
+
# Include all sub-steps
|
|
438
|
+
check_status_before_run postfix_config_basic && \
|
|
439
|
+
check_status_before_run postfix_config_vhost && \
|
|
440
|
+
check_status_before_run postfix_config_postscreen && \
|
|
441
|
+
check_status_before_run postfix_config_logwatch
|
|
442
|
+
|
|
443
|
+
cat >> ${TIP_FILE} <<EOF
|
|
444
|
+
Postfix:
|
|
445
|
+
* Configuration files:
|
|
446
|
+
- ${POSTFIX_ROOTDIR}
|
|
447
|
+
- ${POSTFIX_ROOTDIR}/aliases
|
|
448
|
+
- ${POSTFIX_FILE_MAIN_CF}
|
|
449
|
+
- ${POSTFIX_FILE_MASTER_CF}
|
|
450
|
+
|
|
451
|
+
* SQL/LDAP lookup config files:
|
|
452
|
+
- ${POSTFIX_LOOKUP_DIR}
|
|
453
|
+
|
|
454
|
+
EOF
|
|
455
|
+
|
|
456
|
+
echo 'export status_postfix_setup="DONE"' >> ${STATUS_FILE}
|
|
457
|
+
}
|