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,209 @@
|
|
|
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
|
+
_enable_jail() {
|
|
23
|
+
_jail_conf="${FAIL2BAN_JAIL_CONF_DIR}/${1}"
|
|
24
|
+
|
|
25
|
+
if [ -e ${_jail_conf} ]; then
|
|
26
|
+
perl -pi -e 's#(enabled.*=.*)false#${1}true#' ${_jail_conf}
|
|
27
|
+
fi
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fail2ban_initialize_db() {
|
|
31
|
+
ECHO_DEBUG "Import Fail2ban database and grant privileges."
|
|
32
|
+
|
|
33
|
+
if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
34
|
+
${MYSQL_CLIENT_ROOT} <<EOF
|
|
35
|
+
-- Create database
|
|
36
|
+
CREATE DATABASE ${FAIL2BAN_DB_NAME} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
37
|
+
|
|
38
|
+
-- Create user and grant privileges
|
|
39
|
+
CREATE USER '${FAIL2BAN_DB_USER}'@'${MYSQL_GRANT_HOST}' IDENTIFIED BY '${FAIL2BAN_DB_PASSWD}';
|
|
40
|
+
GRANT ALL ON ${FAIL2BAN_DB_NAME}.* TO '${FAIL2BAN_DB_USER}'@'${MYSQL_GRANT_HOST}';
|
|
41
|
+
|
|
42
|
+
-- Import Amavisd SQL template
|
|
43
|
+
USE ${FAIL2BAN_DB_NAME};
|
|
44
|
+
SOURCE ${SAMPLE_DIR}/fail2ban/sql/fail2ban.mysql;
|
|
45
|
+
FLUSH PRIVILEGES;
|
|
46
|
+
EOF
|
|
47
|
+
|
|
48
|
+
cat > /root/.my.cnf-${FAIL2BAN_DB_USER} <<EOF
|
|
49
|
+
[client]
|
|
50
|
+
host=${MYSQL_SERVER_ADDRESS}
|
|
51
|
+
port=${MYSQL_SERVER_PORT}
|
|
52
|
+
user=${FAIL2BAN_DB_USER}
|
|
53
|
+
password="${FAIL2BAN_DB_PASSWD}"
|
|
54
|
+
EOF
|
|
55
|
+
|
|
56
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
57
|
+
cp -f ${SAMPLE_DIR}/fail2ban/sql/fail2ban.pgsql /tmp/fail2ban.pgsql
|
|
58
|
+
chmod 0755 /tmp/fail2ban.pgsql
|
|
59
|
+
|
|
60
|
+
su - ${SYS_USER_PGSQL} -c "psql -d template1" >> ${INSTALL_LOG} <<EOF
|
|
61
|
+
-- Create database
|
|
62
|
+
CREATE DATABASE ${FAIL2BAN_DB_NAME} WITH TEMPLATE template0 ENCODING 'UTF8';
|
|
63
|
+
|
|
64
|
+
-- Create user
|
|
65
|
+
CREATE USER ${FAIL2BAN_DB_USER} WITH ENCRYPTED PASSWORD '${FAIL2BAN_DB_PASSWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
|
66
|
+
|
|
67
|
+
ALTER DATABASE ${FAIL2BAN_DB_NAME} OWNER TO ${FAIL2BAN_DB_USER};
|
|
68
|
+
EOF
|
|
69
|
+
|
|
70
|
+
su - ${SYS_USER_PGSQL} -c "psql -U ${FAIL2BAN_DB_USER} -d ${FAIL2BAN_DB_NAME}" >> ${INSTALL_LOG} <<EOF
|
|
71
|
+
\i /tmp/fail2ban.pgsql;
|
|
72
|
+
EOF
|
|
73
|
+
rm -f /tmp/fail2ban.pgsql
|
|
74
|
+
|
|
75
|
+
su - ${SYS_USER_PGSQL} -c "psql -U ${FAIL2BAN_DB_USER} -d ${FAIL2BAN_DB_NAME}" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
76
|
+
ALTER DATABASE ${FAIL2BAN_DB_NAME} SET bytea_output TO 'escape';
|
|
77
|
+
EOF
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
write_iredmail_kv "sql_user_${FAIL2BAN_DB_USER}" "${FAIL2BAN_DB_PASSWD}"
|
|
81
|
+
|
|
82
|
+
# Copy action config file.
|
|
83
|
+
cp -f ${SAMPLE_DIR}/fail2ban/action.d/banned_db.conf ${FAIL2BAN_ACTION_DIR}/
|
|
84
|
+
chmod 0755 ${FAIL2BAN_ACTION_DIR}/banned_db.conf
|
|
85
|
+
|
|
86
|
+
# Copy script used to handle sql data.
|
|
87
|
+
cp -f ${SAMPLE_DIR}/fail2ban/bin/fail2ban_banned_db /usr/local/bin/
|
|
88
|
+
chmod 0550 /usr/local/bin/fail2ban_banned_db
|
|
89
|
+
|
|
90
|
+
if [ X"${DISTRO}" == X'FREEBSD' -o X"${DISTRO}" == X'OPENBSD' ]; then
|
|
91
|
+
perl -pi -e 's#/usr/bin/env bash#/usr/local/bin/bash#g' /usr/local/bin/fail2ban_banned_db
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
cat >> ${CRON_FILE_ROOT} <<EOF
|
|
95
|
+
# Fail2ban: Unban IP addresses pending for removal (stored in SQL db).
|
|
96
|
+
* * * * * ${SHELL_BASH} /usr/local/bin/fail2ban_banned_db unban_db >/dev/null 2>&1
|
|
97
|
+
EOF
|
|
98
|
+
|
|
99
|
+
echo 'export status_fail2ban_initialize_db="DONE"' >> ${STATUS_FILE}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
fail2ban_config() {
|
|
103
|
+
ECHO_DEBUG "Disable all default filters in ${FAIL2BAN_JAIL_CONF}."
|
|
104
|
+
perl -pi -e 's#^(enabled).*=.*#${1} = false#' ${FAIL2BAN_JAIL_CONF}
|
|
105
|
+
|
|
106
|
+
ECHO_DEBUG "Create main Fail2ban config file: ${FAIL2BAN_MAIN_CONF}."
|
|
107
|
+
backup_file ${FAIL2BAN_MAIN_CONF}
|
|
108
|
+
cp -f ${SAMPLE_DIR}/fail2ban/fail2ban.local ${FAIL2BAN_MAIN_CONF}
|
|
109
|
+
perl -pi -e 's#PH_SYSLOG_SOCKET#$ENV{SYSLOG_SOCKET}#' ${FAIL2BAN_MAIN_CONF}
|
|
110
|
+
|
|
111
|
+
if [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
112
|
+
perl -pi -e 's#^(socket).*#${1} = $ENV{FAIL2BAN_SOCKET}#' ${FAIL2BAN_MAIN_CONF}
|
|
113
|
+
elif [ X"${DISTRO}" == X'OPENBSD' ]; then
|
|
114
|
+
perl -pi -e 's/^#(syslogsocket.*)/${1}/' ${FAIL2BAN_MAIN_CONF}
|
|
115
|
+
fi
|
|
116
|
+
|
|
117
|
+
ECHO_DEBUG "Create Fail2ban config file: ${FAIL2BAN_JAIL_LOCAL_CONF}."
|
|
118
|
+
backup_file ${FAIL2BAN_JAIL_LOCAL_CONF}
|
|
119
|
+
cp -f ${SAMPLE_DIR}/fail2ban/jail.local ${FAIL2BAN_JAIL_LOCAL_CONF} >> ${INSTALL_LOG} 2>&1
|
|
120
|
+
|
|
121
|
+
ECHO_DEBUG "Create Fail2ban directory: ${FAIL2BAN_JAIL_CONF_DIR}."
|
|
122
|
+
mkdir -p ${FAIL2BAN_JAIL_CONF_DIR} >> ${INSTALL_LOG} 2>&1
|
|
123
|
+
|
|
124
|
+
perl -pi -e 's#PH_LOCAL_ADDRESS#$ENV{LOCAL_ADDRESS}#' ${FAIL2BAN_JAIL_LOCAL_CONF}
|
|
125
|
+
|
|
126
|
+
ECHO_DEBUG "Copy modular Fail2ban jail config files to ${FAIL2BAN_JAIL_CONF_DIR}."
|
|
127
|
+
cp -f ${SAMPLE_DIR}/fail2ban/jail.d/*.local ${FAIL2BAN_JAIL_CONF_DIR} >> ${INSTALL_LOG} 2>&1
|
|
128
|
+
|
|
129
|
+
# Firewall command
|
|
130
|
+
perl -pi -e 's#PH_FAIL2BAN_ACTION#$ENV{FAIL2BAN_ACTION}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
131
|
+
|
|
132
|
+
perl -pi -e 's#PH_SSHD_LOGFILE#$ENV{SSHD_LOGFILE}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
133
|
+
perl -pi -e 's#PH_NGINX_LOG_ERRORLOG#$ENV{NGINX_LOG_ERRORLOG}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
134
|
+
perl -pi -e 's#PH_RCM_LOGFILE#$ENV{RCM_LOGFILE}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
135
|
+
perl -pi -e 's#PH_MAILLOG#$ENV{MAILLOG}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
136
|
+
perl -pi -e 's#PH_SOGO_LOG_FILE#$ENV{SOGO_LOG_FILE}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
137
|
+
perl -pi -e 's#PH_DOVECOT_LOG_FILE#$ENV{DOVECOT_LOG_DIR}/*.log#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
138
|
+
perl -pi -e 's#PH_FAIL2BAN_DISABLED_SERVICES#$ENV{FAIL2BAN_DISABLED_SERVICES}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
139
|
+
|
|
140
|
+
perl -pi -e 's#PH_SSHD_PORT#$ENV{SSHD_PORTS_WITH_COMMA}#' ${FAIL2BAN_JAIL_CONF_DIR}/*.local
|
|
141
|
+
|
|
142
|
+
ECHO_DEBUG "Copy sample Fail2ban filter config files."
|
|
143
|
+
cp -f ${SAMPLE_DIR}/fail2ban/filter.d/*.conf ${FAIL2BAN_FILTER_DIR}
|
|
144
|
+
|
|
145
|
+
# Enable jail for optional components.
|
|
146
|
+
[ X"${WEB_SERVER}" == X'NGINX' ] && _enable_jail nginx-http-auth.local
|
|
147
|
+
[ X"${USE_ROUNDCUBE}" == X'YES' ] && _enable_jail roundcube.local
|
|
148
|
+
[ X"${USE_SOGO}" == X'YES' ] && _enable_jail sogo.local
|
|
149
|
+
|
|
150
|
+
if [ X"${DISTRO}" == X'OPENBSD' ]; then
|
|
151
|
+
# Copy rc script and enable service.
|
|
152
|
+
cp ${SAMPLE_DIR}/fail2ban/openbsd/rc /etc/rc.d/fail2ban
|
|
153
|
+
chmod 0755 /etc/rc.d/fail2ban
|
|
154
|
+
service_control enable fail2ban
|
|
155
|
+
fi
|
|
156
|
+
|
|
157
|
+
echo 'export status_fail2ban_config="DONE"' >> ${STATUS_FILE}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
fail2ban_syslog_setup() {
|
|
161
|
+
ECHO_DEBUG "Generate modular syslog and log rotate config files for Fail2ban."
|
|
162
|
+
if [ X"${KERNEL_NAME}" == X'LINUX' ]; then
|
|
163
|
+
cp ${SAMPLE_DIR}/rsyslog.d/1-iredmail-fail2ban.conf ${SYSLOG_CONF_DIR}
|
|
164
|
+
perl -pi -e 's#PH_FAIL2BAN_LOG_FILE#$ENV{FAIL2BAN_LOG_FILE}#g' ${SYSLOG_CONF_DIR}/1-iredmail-fail2ban.conf
|
|
165
|
+
|
|
166
|
+
touch ${FAIL2BAN_LOG_FILE}
|
|
167
|
+
chown ${SYS_USER_SYSLOG}:${SYS_GROUP_SYSLOG} ${FAIL2BAN_LOG_FILE}
|
|
168
|
+
chmod 0755 ${FAIL2BAN_LOG_FILE}
|
|
169
|
+
|
|
170
|
+
if [ X"${DISTRO}" == X'UBUNTU' ]; then
|
|
171
|
+
if [ -f /etc/logrotate.d/fail2ban ]; then
|
|
172
|
+
perl -pi -e 's#create 640 root adm#create 640 $ENV{SYS_USER_SYSLOG} adm#g' /etc/logrotate.d/fail2ban
|
|
173
|
+
fi
|
|
174
|
+
fi
|
|
175
|
+
elif [ X"${KERNEL_NAME}" == X'FREEBSD' ]; then
|
|
176
|
+
cp -f ${SAMPLE_DIR}/freebsd/syslog.d/fail2ban.conf ${SYSLOG_CONF_DIR} >> ${INSTALL_LOG} 2>&1
|
|
177
|
+
perl -pi -e 's#PH_FAIL2BAN_SYSLOG_FACILITY#$ENV{FAIL2BAN_SYSLOG_FACILITY}#g' ${SYSLOG_CONF_DIR}/fail2ban.conf
|
|
178
|
+
perl -pi -e 's#PH_FAIL2BAN_LOG_FILE#$ENV{FAIL2BAN_LOG_FILE}#g' ${SYSLOG_CONF_DIR}/fail2ban.conf
|
|
179
|
+
elif [ X"${KERNEL_NAME}" == X'OPENBSD' ]; then
|
|
180
|
+
touch ${FAIL2BAN_LOG_FILE}
|
|
181
|
+
chown ${SYS_USER_SYSLOG}:${SYS_GROUP_SYSLOG} ${FAIL2BAN_LOG_FILE}
|
|
182
|
+
chmod 0755 ${FAIL2BAN_LOG_FILE}
|
|
183
|
+
|
|
184
|
+
if ! grep "${FAIL2BAN_LOG_FILE}" ${SYSLOG_CONF} &>/dev/null; then
|
|
185
|
+
# '!!' means abort further evaluation after first match
|
|
186
|
+
echo '' >> ${SYSLOG_CONF}
|
|
187
|
+
echo '!!fail2ban*' >> ${SYSLOG_CONF}
|
|
188
|
+
echo "${FAIL2BAN_SYSLOG_FACILITY}.* ${FAIL2BAN_LOG_FILE}" >> ${SYSLOG_CONF}
|
|
189
|
+
fi
|
|
190
|
+
|
|
191
|
+
if ! grep "${FAIL2BAN_LOG_FILE}" /etc/newsyslog.conf &>/dev/null; then
|
|
192
|
+
cat >> /etc/newsyslog.conf <<EOF
|
|
193
|
+
${FAIL2BAN_LOG_FILE} ${SYS_USER_SYSLOG}:${SYS_GROUP_SYSLOG} 640 7 * 24 Z
|
|
194
|
+
EOF
|
|
195
|
+
fi
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
echo 'export status_fail2ban_syslog_setup="DONE"' >> ${STATUS_FILE}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
fail2ban_setup() {
|
|
202
|
+
ECHO_INFO "Configure Fail2ban (authentication failure monitor)."
|
|
203
|
+
|
|
204
|
+
check_status_before_run fail2ban_initialize_db
|
|
205
|
+
check_status_before_run fail2ban_config
|
|
206
|
+
check_status_before_run fail2ban_syslog_setup
|
|
207
|
+
|
|
208
|
+
echo 'export status_fail2ban_setup="DONE"' >> ${STATUS_FILE}
|
|
209
|
+
}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Author: Zhang Huangbin (zhb _at_ iredmail.org)
|
|
4
|
+
# Purpose: Install & config necessary packages for iRedAPD.
|
|
5
|
+
|
|
6
|
+
#---------------------------------------------------------------------
|
|
7
|
+
# This file is part of iRedMail, which is an open source mail server
|
|
8
|
+
# solution for Red Hat(R) Enterprise Linux, CentOS, Debian and Ubuntu.
|
|
9
|
+
#
|
|
10
|
+
# iRedMail is free software: you can redistribute it and/or modify
|
|
11
|
+
# it under the terms of the GNU General Public License as published by
|
|
12
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
13
|
+
# (at your option) any later version.
|
|
14
|
+
#
|
|
15
|
+
# iRedMail is distributed in the hope that it will be useful,
|
|
16
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18
|
+
# GNU General Public License for more details.
|
|
19
|
+
#
|
|
20
|
+
# You should have received a copy of the GNU General Public License
|
|
21
|
+
# along with iRedMail. If not, see <http://www.gnu.org/licenses/>.
|
|
22
|
+
#---------------------------------------------------------------------
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
iredapd_install()
|
|
26
|
+
{
|
|
27
|
+
ECHO_INFO "Configure iRedAPD (postfix policy daemon)."
|
|
28
|
+
|
|
29
|
+
# Extract source tarball.
|
|
30
|
+
cd ${PKG_MISC_DIR}
|
|
31
|
+
[ -d ${IREDAPD_PARENT_DIR} ] || mkdir -p ${IREDAPD_PARENT_DIR}
|
|
32
|
+
extract_pkg ${IREDAPD_TARBALL} ${IREDAPD_PARENT_DIR}
|
|
33
|
+
|
|
34
|
+
ECHO_DEBUG "Configure iRedAPD."
|
|
35
|
+
# Create symbol link.
|
|
36
|
+
ln -s ${IREDAPD_ROOT_DIR} ${IREDAPD_ROOT_DIR_SYMBOL_LINK} >> ${INSTALL_LOG} 2>&1
|
|
37
|
+
|
|
38
|
+
# Set file permission.
|
|
39
|
+
chown -R ${SYS_USER_ROOT}:${SYS_GROUP_ROOT} ${IREDAPD_ROOT_DIR}
|
|
40
|
+
chmod -R 0500 ${IREDAPD_ROOT_DIR}
|
|
41
|
+
|
|
42
|
+
# Copy init rc script.
|
|
43
|
+
if [ X"${USE_SYSTEMD}" == X'YES' ]; then
|
|
44
|
+
ECHO_DEBUG "Create symbol link: ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.service -> ${SYSTEMD_SERVICE_DIR}/iredapd.service."
|
|
45
|
+
cp -f ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.service ${SYSTEMD_SERVICE_DIR}/iredapd.service >> ${INSTALL_LOG} 2>&1
|
|
46
|
+
|
|
47
|
+
# To supress systemd warning.
|
|
48
|
+
chmod 0644 ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.service ${SYSTEMD_SERVICE_DIR}/iredapd.service
|
|
49
|
+
|
|
50
|
+
systemctl daemon-reload >> ${INSTALL_LOG} 2>&1
|
|
51
|
+
else
|
|
52
|
+
if [ X"${DISTRO}" == X'RHEL' ]; then
|
|
53
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.rhel ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
54
|
+
elif [ X"${DISTRO}" == X'DEBIAN' -o X"${DISTRO}" == X'UBUNTU' ]; then
|
|
55
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.debian ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
56
|
+
elif [ X"${DISTRO}" == X'FREEBSD' ]; then
|
|
57
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.freebsd ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
58
|
+
service_control enable 'iredapd_enable' 'YES'
|
|
59
|
+
elif [ X"${DISTRO}" == X'OPENBSD' ]; then
|
|
60
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.openbsd ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
61
|
+
else
|
|
62
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/rc_scripts/iredapd.rhel ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
chmod 0755 ${DIR_RC_SCRIPTS}/iredapd >> ${INSTALL_LOG} 2>&1
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
ECHO_DEBUG "Make iredapd starting after system startup."
|
|
69
|
+
service_control enable iredapd
|
|
70
|
+
export ENABLED_SERVICES="${ENABLED_SERVICES} iredapd"
|
|
71
|
+
|
|
72
|
+
# Copy sample config file.
|
|
73
|
+
cd ${IREDAPD_ROOT_DIR_SYMBOL_LINK}
|
|
74
|
+
cp settings.py.sample settings.py
|
|
75
|
+
chown ${SYS_USER_ROOT}:${SYS_GROUP_ROOT} settings.py
|
|
76
|
+
chmod -R 0400 settings.py
|
|
77
|
+
|
|
78
|
+
echo 'export status_iredapd_install="DONE"' >> ${STATUS_FILE}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
iredapd_initialize_db()
|
|
82
|
+
{
|
|
83
|
+
ECHO_DEBUG "Import iRedAPD database template."
|
|
84
|
+
|
|
85
|
+
if [ X"${BACKEND}" == X'OPENLDAP' -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
86
|
+
${MYSQL_CLIENT_ROOT} <<EOF
|
|
87
|
+
-- Create databases and user.
|
|
88
|
+
CREATE DATABASE IF NOT EXISTS ${IREDAPD_DB_NAME} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
89
|
+
|
|
90
|
+
-- Import SQL template.
|
|
91
|
+
USE ${IREDAPD_DB_NAME};
|
|
92
|
+
SOURCE ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/SQL/iredapd.mysql;
|
|
93
|
+
CREATE USER '${IREDAPD_DB_USER}'@'${MYSQL_GRANT_HOST}' IDENTIFIED BY '${IREDAPD_DB_PASSWD}';
|
|
94
|
+
GRANT ALL ON ${IREDAPD_DB_NAME}.* TO '${IREDAPD_DB_USER}'@'${MYSQL_GRANT_HOST}';
|
|
95
|
+
FLUSH PRIVILEGES;
|
|
96
|
+
|
|
97
|
+
-- Enable greylisting by default.
|
|
98
|
+
SOURCE ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/SQL/enable_global_greylisting.sql;
|
|
99
|
+
|
|
100
|
+
-- Import greylisting whitelist domains.
|
|
101
|
+
SOURCE ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/SQL/greylisting_whitelist_domains.sql;
|
|
102
|
+
|
|
103
|
+
-- Blacklist some rDNS names
|
|
104
|
+
SOURCE ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/SQL/wblist_rdns.sql;
|
|
105
|
+
EOF
|
|
106
|
+
|
|
107
|
+
# Generate .my.cnf file
|
|
108
|
+
cat > /root/.my.cnf-${IREDAPD_DB_USER} <<EOF
|
|
109
|
+
[client]
|
|
110
|
+
host=${MYSQL_SERVER_ADDRESS}
|
|
111
|
+
port=${MYSQL_SERVER_PORT}
|
|
112
|
+
user=${IREDAPD_DB_USER}
|
|
113
|
+
password="${IREDAPD_DB_PASSWD}"
|
|
114
|
+
EOF
|
|
115
|
+
|
|
116
|
+
elif [ X"${BACKEND}" == X'PGSQL' ]; then
|
|
117
|
+
mkdir ${PGSQL_DATA_DIR}/tmp 2>/dev/null
|
|
118
|
+
cp ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/SQL/*sql ${PGSQL_DATA_DIR}/tmp/ >> ${INSTALL_LOG} 2>&1
|
|
119
|
+
chmod 0555 ${PGSQL_DATA_DIR}/tmp/*sql
|
|
120
|
+
|
|
121
|
+
su - ${SYS_USER_PGSQL} -c "psql -d template1" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
122
|
+
-- Create user
|
|
123
|
+
CREATE USER ${IREDAPD_DB_USER} WITH ENCRYPTED PASSWORD '${IREDAPD_DB_PASSWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;
|
|
124
|
+
|
|
125
|
+
-- Create database
|
|
126
|
+
CREATE DATABASE ${IREDAPD_DB_NAME} WITH TEMPLATE template0 ENCODING 'UTF8';
|
|
127
|
+
|
|
128
|
+
ALTER DATABASE ${IREDAPD_DB_NAME} OWNER TO ${IREDAPD_DB_USER};
|
|
129
|
+
EOF
|
|
130
|
+
|
|
131
|
+
su - ${SYS_USER_PGSQL} -c "psql -U ${IREDAPD_DB_USER} -d ${IREDAPD_DB_NAME}" >> ${INSTALL_LOG} 2>&1 <<EOF
|
|
132
|
+
-- Import SQL template
|
|
133
|
+
\i ${PGSQL_DATA_DIR}/tmp/iredapd.pgsql;
|
|
134
|
+
|
|
135
|
+
-- Enable greylisting by default.
|
|
136
|
+
\i ${PGSQL_DATA_DIR}/tmp/enable_global_greylisting.sql;
|
|
137
|
+
|
|
138
|
+
-- Import greylisting whitelist domains.
|
|
139
|
+
\i ${PGSQL_DATA_DIR}/tmp/greylisting_whitelist_domains.sql;
|
|
140
|
+
|
|
141
|
+
-- Blacklist some rDNS names
|
|
142
|
+
\i ${PGSQL_DATA_DIR}/tmp/wblist_rdns.sql;
|
|
143
|
+
|
|
144
|
+
EOF
|
|
145
|
+
|
|
146
|
+
rm -rf ${PGSQL_DATA_DIR}/tmp >> ${INSTALL_LOG} 2>&1
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
echo 'export status_iredapd_initialize_db="DONE"' >> ${STATUS_FILE}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
iredapd_config()
|
|
153
|
+
{
|
|
154
|
+
perl -pi -e 's#^(listen_address).*#${1} = "$ENV{IREDAPD_BIND_HOST}"#' ${IREDAPD_CONF}
|
|
155
|
+
perl -pi -e 's#^(listen_port).*#${1} = "$ENV{IREDAPD_LISTEN_PORT}"#' ${IREDAPD_CONF}
|
|
156
|
+
perl -pi -e 's#^(run_as_user).*#${1} = "$ENV{SYS_USER_IREDAPD}"#' ${IREDAPD_CONF}
|
|
157
|
+
|
|
158
|
+
# SRS
|
|
159
|
+
perl -pi -e 's#^(srs_forward_port).*#${1} = "$ENV{IREDAPD_SRS_FORWARD_PORT}"#' ${IREDAPD_CONF}
|
|
160
|
+
perl -pi -e 's#^(srs_reverse_port).*#${1} = "$ENV{IREDAPD_SRS_REVERSE_PORT}"#' ${IREDAPD_CONF}
|
|
161
|
+
perl -pi -e 's#^(srs_domain).*#${1} = "$ENV{HOSTNAME}"#' ${IREDAPD_CONF}
|
|
162
|
+
|
|
163
|
+
export _srs_secret="$(${RANDOM_STRING})"
|
|
164
|
+
perl -pi -e 's#^(srs_secrets).*#${1} = ["$ENV{_srs_secret}"]#' ${IREDAPD_CONF}
|
|
165
|
+
|
|
166
|
+
# Log
|
|
167
|
+
perl -pi -e 's#^(log_level).*#${1} = "info"#' ${IREDAPD_CONF}
|
|
168
|
+
|
|
169
|
+
# Create log directory and log file
|
|
170
|
+
[ -d ${IREDAPD_LOG_DIR} ] || mkdir -p ${IREDAPD_LOG_DIR} >> ${INSTALL_LOG} 2>&1
|
|
171
|
+
touch ${IREDAPD_LOG_FILE} >> ${INSTALL_LOG} 2>&1
|
|
172
|
+
chown -R ${SYS_USER_SYSLOG}:${SYS_GROUP_SYSLOG} ${IREDAPD_LOG_DIR} ${IREDAPD_LOG_FILE} >> ${INSTALL_LOG} 2>&1
|
|
173
|
+
chmod 0750 ${IREDAPD_LOG_DIR} >> ${INSTALL_LOG} 2>&1
|
|
174
|
+
chmod 0640 ${IREDAPD_LOG_FILE} >> ${INSTALL_LOG} 2>&1
|
|
175
|
+
|
|
176
|
+
# Backend.
|
|
177
|
+
[ X"${BACKEND}" == X'OPENLDAP' ] && perl -pi -e 's#^(backend).*#${1} = "ldap"#' ${IREDAPD_CONF}
|
|
178
|
+
[ X"${BACKEND}" == X'MYSQL' ] && perl -pi -e 's#^(backend).*#${1} = "mysql"#' ${IREDAPD_CONF}
|
|
179
|
+
[ X"${BACKEND}" == X'PGSQL' ] && perl -pi -e 's#^(backend).*#${1} = "pgsql"#' ${IREDAPD_CONF}
|
|
180
|
+
|
|
181
|
+
# Backend related parameters.
|
|
182
|
+
if [ X"${BACKEND}" == X'OPENLDAP' ]; then
|
|
183
|
+
perl -pi -e 's#^(ldap_uri).*#${1} = "ldap://$ENV{LDAP_SERVER_HOST}:$ENV{LDAP_SERVER_PORT}"#' ${IREDAPD_CONF}
|
|
184
|
+
perl -pi -e 's#^(ldap_binddn).*#${1} = "$ENV{LDAP_BINDDN}"#' ${IREDAPD_CONF}
|
|
185
|
+
perl -pi -e 's#^(ldap_bindpw).*#${1} = "$ENV{LDAP_BINDPW}"#' ${IREDAPD_CONF}
|
|
186
|
+
perl -pi -e 's#^(ldap_basedn).*#${1} = "$ENV{LDAP_BASEDN}"#' ${IREDAPD_CONF}
|
|
187
|
+
|
|
188
|
+
perl -pi -e 's#^(plugins).*#${1} = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "ldap_maillist_access_policy"]#' ${IREDAPD_CONF}
|
|
189
|
+
|
|
190
|
+
elif [ X"${BACKEND}" == X'MYSQL' -o X"${BACKEND}" == X'PGSQL' ]; then
|
|
191
|
+
perl -pi -e 's#^(vmail_db_server).*#${1} = "$ENV{SQL_SERVER_ADDRESS}"#' ${IREDAPD_CONF}
|
|
192
|
+
perl -pi -e 's#^(vmail_db_port).*#${1} = "$ENV{SQL_SERVER_PORT}"#' ${IREDAPD_CONF}
|
|
193
|
+
perl -pi -e 's#^(vmail_db_name).*#${1} = "$ENV{VMAIL_DB_NAME}"#' ${IREDAPD_CONF}
|
|
194
|
+
perl -pi -e 's#^(vmail_db_user).*#${1} = "$ENV{VMAIL_DB_BIND_USER}"#' ${IREDAPD_CONF}
|
|
195
|
+
perl -pi -e 's#^(vmail_db_password).*#${1} = "$ENV{VMAIL_DB_BIND_PASSWD}"#' ${IREDAPD_CONF}
|
|
196
|
+
|
|
197
|
+
perl -pi -e 's#^(plugins).*#${1} = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy", "sql_ml_access_policy"]#' ${IREDAPD_CONF}
|
|
198
|
+
fi
|
|
199
|
+
|
|
200
|
+
# Amavisd database
|
|
201
|
+
perl -pi -e 's#^(amavisd_db_server).*#${1} = "$ENV{SQL_SERVER_ADDRESS}"#' ${IREDAPD_CONF}
|
|
202
|
+
perl -pi -e 's#^(amavisd_db_port).*#${1} = "$ENV{SQL_SERVER_PORT}"#' ${IREDAPD_CONF}
|
|
203
|
+
perl -pi -e 's#^(amavisd_db_name).*#${1} = "$ENV{AMAVISD_DB_NAME}"#' ${IREDAPD_CONF}
|
|
204
|
+
perl -pi -e 's#^(amavisd_db_user).*#${1} = "$ENV{AMAVISD_DB_USER}"#' ${IREDAPD_CONF}
|
|
205
|
+
perl -pi -e 's#^(amavisd_db_password).*#${1} = "$ENV{AMAVISD_DB_PASSWD}"#' ${IREDAPD_CONF}
|
|
206
|
+
|
|
207
|
+
# iRedAdmin database
|
|
208
|
+
perl -pi -e 's#^(iredadmin_db_server).*#${1} = "$ENV{SQL_SERVER_ADDRESS}"#' ${IREDAPD_CONF}
|
|
209
|
+
perl -pi -e 's#^(iredadmin_db_port).*#${1} = "$ENV{SQL_SERVER_PORT}"#' ${IREDAPD_CONF}
|
|
210
|
+
perl -pi -e 's#^(iredadmin_db_name).*#${1} = "$ENV{IREDADMIN_DB_NAME}"#' ${IREDAPD_CONF}
|
|
211
|
+
perl -pi -e 's#^(iredadmin_db_user).*#${1} = "$ENV{IREDADMIN_DB_USER}"#' ${IREDAPD_CONF}
|
|
212
|
+
perl -pi -e 's#^(iredadmin_db_password).*#${1} = "$ENV{IREDADMIN_DB_PASSWD}"#' ${IREDAPD_CONF}
|
|
213
|
+
|
|
214
|
+
# iRedAPD database
|
|
215
|
+
perl -pi -e 's#^(iredapd_db_server).*#${1} = "$ENV{SQL_SERVER_ADDRESS}"#' ${IREDAPD_CONF}
|
|
216
|
+
perl -pi -e 's#^(iredapd_db_port).*#${1} = "$ENV{SQL_SERVER_PORT}"#' ${IREDAPD_CONF}
|
|
217
|
+
perl -pi -e 's#^(iredapd_db_name).*#${1} = "$ENV{IREDAPD_DB_NAME}"#' ${IREDAPD_CONF}
|
|
218
|
+
perl -pi -e 's#^(iredapd_db_user).*#${1} = "$ENV{IREDAPD_DB_USER}"#' ${IREDAPD_CONF}
|
|
219
|
+
perl -pi -e 's#^(iredapd_db_password).*#${1} = "$ENV{IREDAPD_DB_PASSWD}"#' ${IREDAPD_CONF}
|
|
220
|
+
|
|
221
|
+
# mlmmjadmin integration.
|
|
222
|
+
perl -pi -e 's#^(mlmmjadmin_api_auth_token).*#${1} = "$ENV{MLMMJADMIN_API_AUTH_TOKEN}"#' ${IREDAPD_CONF}
|
|
223
|
+
|
|
224
|
+
if [ X"${BACKEND}" == X"OPENLDAP" -o X"${BACKEND}" == X'MYSQL' ]; then
|
|
225
|
+
# Set correct SQL driver for SQLAlchemy. Defaults to `pymysql`.
|
|
226
|
+
export SQL_DB_DRIVER='pymysql'
|
|
227
|
+
|
|
228
|
+
if [ X"${SQL_DB_DRIVER}" != X'' ]; then
|
|
229
|
+
echo "SQL_DB_DRIVER = '${SQL_DB_DRIVER}'" >> ${IREDAPD_CONF}
|
|
230
|
+
fi
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
if [ X"${LOCAL_ADDRESS}" != X'127.0.0.1' ]; then
|
|
234
|
+
echo "MYNETWORKS = ['${LOCAL_ADDRESS}']" >> ${IREDAPD_CONF}
|
|
235
|
+
fi
|
|
236
|
+
|
|
237
|
+
# FreeBSD uses different path for syslog socket.
|
|
238
|
+
if [ X"${KERNEL_NAME}" == X'FREEBSD' ]; then
|
|
239
|
+
echo "SYSLOG_SERVER = '${SYSLOG_SOCKET}'" >> ${IREDAPD_CONF}
|
|
240
|
+
fi
|
|
241
|
+
|
|
242
|
+
echo 'export status_iredapd_config="DONE"' >> ${STATUS_FILE}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
iredapd_syslog_setup()
|
|
246
|
+
{
|
|
247
|
+
ECHO_DEBUG "Generate modular syslog and log rotate config files for iRedAPD."
|
|
248
|
+
if [ X"${KERNEL_NAME}" == X'LINUX' ]; then
|
|
249
|
+
#
|
|
250
|
+
# modular syslog config file
|
|
251
|
+
#
|
|
252
|
+
cp ${SAMPLE_DIR}/rsyslog.d/1-iredmail-iredapd.conf ${SYSLOG_CONF_DIR}
|
|
253
|
+
|
|
254
|
+
perl -pi -e 's#PH_IREDMAIL_SYSLOG_FACILITY#$ENV{IREDMAIL_SYSLOG_FACILITY}#g' ${SYSLOG_CONF_DIR}/1-iredmail-iredapd.conf
|
|
255
|
+
perl -pi -e 's#PH_IREDAPD_LOG_FILE#$ENV{IREDAPD_LOG_FILE}#g' ${SYSLOG_CONF_DIR}/1-iredmail-iredapd.conf
|
|
256
|
+
|
|
257
|
+
#
|
|
258
|
+
# modular logrotate config file
|
|
259
|
+
#
|
|
260
|
+
cp -f ${SAMPLE_DIR}/logrotate/iredapd ${IREDAPD_LOGROTATE_FILE}
|
|
261
|
+
chmod 0644 ${IREDAPD_LOGROTATE_FILE}
|
|
262
|
+
|
|
263
|
+
perl -pi -e 's#PH_IREDAPD_LOG_DIR#$ENV{IREDAPD_LOG_DIR}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
264
|
+
perl -pi -e 's#PH_SYSLOG_POSTROTATE_CMD#$ENV{SYSLOG_POSTROTATE_CMD}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
265
|
+
elif [ X"${KERNEL_NAME}" == X'FREEBSD' ]; then
|
|
266
|
+
#
|
|
267
|
+
# modular syslog config file
|
|
268
|
+
#
|
|
269
|
+
cp -f ${SAMPLE_DIR}/freebsd/syslog.d/iredapd.conf ${SYSLOG_CONF_DIR} >> ${INSTALL_LOG} 2>&1
|
|
270
|
+
perl -pi -e 's#PH_IREDMAIL_SYSLOG_FACILITY#$ENV{IREDMAIL_SYSLOG_FACILITY}#g' ${SYSLOG_CONF_DIR}/iredapd.conf
|
|
271
|
+
perl -pi -e 's#PH_IREDAPD_LOG_FILE#$ENV{IREDAPD_LOG_FILE}#g' ${SYSLOG_CONF_DIR}/iredapd.conf
|
|
272
|
+
|
|
273
|
+
#
|
|
274
|
+
# modular newsyslog (log rotate) config file
|
|
275
|
+
#
|
|
276
|
+
cp -f ${SAMPLE_DIR}/freebsd/newsyslog.conf.d/iredapd.conf ${IREDAPD_LOGROTATE_FILE}
|
|
277
|
+
|
|
278
|
+
perl -pi -e 's#PH_IREDAPD_LOG_FILE#$ENV{IREDAPD_LOG_FILE}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
279
|
+
perl -pi -e 's#PH_IREDAPD_PID_FILE#$ENV{IREDAPD_PID_FILE}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
280
|
+
perl -pi -e 's#PH_SYS_USER_SYSLOG#$ENV{SYS_USER_SYSLOG}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
281
|
+
perl -pi -e 's#PH_SYS_GROUP_SYSLOG#$ENV{SYS_GROUP_SYSLOG}#g' ${IREDAPD_LOGROTATE_FILE}
|
|
282
|
+
|
|
283
|
+
elif [ X"${KERNEL_NAME}" == X'OPENBSD' ]; then
|
|
284
|
+
if ! grep "${IREDAPD_LOG_FILE}" ${SYSLOG_CONF} &>/dev/null; then
|
|
285
|
+
# '!!' means abort further evaluation after first match
|
|
286
|
+
echo '' >> ${SYSLOG_CONF}
|
|
287
|
+
echo '!!iredapd' >> ${SYSLOG_CONF}
|
|
288
|
+
echo "${IREDMAIL_SYSLOG_FACILITY}.* ${IREDAPD_LOG_FILE}" >> ${SYSLOG_CONF}
|
|
289
|
+
fi
|
|
290
|
+
|
|
291
|
+
if ! grep "${IREDAPD_LOG_FILE}" /etc/newsyslog.conf &>/dev/null; then
|
|
292
|
+
cat >> /etc/newsyslog.conf <<EOF
|
|
293
|
+
${IREDAPD_LOG_FILE} ${SYS_USER_IREDAPD}:${SYS_GROUP_IREDAPD} 600 7 * 24 Z
|
|
294
|
+
EOF
|
|
295
|
+
fi
|
|
296
|
+
fi
|
|
297
|
+
echo 'export status_iredapd_syslog_setup="DONE"' >> ${STATUS_FILE}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
iredapd_cron_setup()
|
|
302
|
+
{
|
|
303
|
+
# Setup cron job to clean up expired throttle tracking records.
|
|
304
|
+
# Note: use ${IREDAPD_ROOT_DIR_SYMBOL_LINK} instead of ${IREDAPD_ROOT_DIR}
|
|
305
|
+
# here, so that we don't need to change cron job after upgrading iRedAPD.
|
|
306
|
+
cat >> ${CRON_FILE_ROOT} <<EOF
|
|
307
|
+
# iRedAPD: Clean up expired tracking records hourly.
|
|
308
|
+
1 * * * * ${CMD_PYTHON3} ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/tools/cleanup_db.py >/dev/null
|
|
309
|
+
|
|
310
|
+
# iRedAPD: Convert SPF DNS record of specified domain names to IP
|
|
311
|
+
# addresses/networks hourly.
|
|
312
|
+
2 * * * * ${CMD_PYTHON3} ${IREDAPD_ROOT_DIR_SYMBOL_LINK}/tools/spf_to_greylist_whitelists.py >/dev/null
|
|
313
|
+
|
|
314
|
+
EOF
|
|
315
|
+
|
|
316
|
+
# Disable cron jobs if we don't need to initialize database on this server.
|
|
317
|
+
if [ X"${INITIALIZE_SQL_DATA}" != X'YES' ]; then
|
|
318
|
+
perl -pi -e 's/(.*iredapd.*tools.*cleanup_db.py.*)/#${1}/g' ${CRON_FILE_ROOT}
|
|
319
|
+
perl -pi -e 's/(.*iredapd.*tools.*spf_to_greylist_whitelists.py.*)/#${1}/g' ${CRON_FILE_ROOT}
|
|
320
|
+
fi
|
|
321
|
+
|
|
322
|
+
echo 'export status_iredapd_cron_setup="DONE"' >> ${STATUS_FILE}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
iredapd_setup()
|
|
326
|
+
{
|
|
327
|
+
check_status_before_run iredapd_install
|
|
328
|
+
|
|
329
|
+
if [ X"${INITIALIZE_SQL_DATA}" == X'YES' ]; then
|
|
330
|
+
check_status_before_run iredapd_initialize_db
|
|
331
|
+
fi
|
|
332
|
+
|
|
333
|
+
check_status_before_run iredapd_cron_setup
|
|
334
|
+
check_status_before_run iredapd_config
|
|
335
|
+
check_status_before_run iredapd_syslog_setup
|
|
336
|
+
|
|
337
|
+
cat >> ${TIP_FILE} <<EOF
|
|
338
|
+
iRedAPD - Postfix Policy Server:
|
|
339
|
+
* Version: ${IREDAPD_VERSION}
|
|
340
|
+
* Listen address: ${IREDAPD_BIND_HOST}, port: ${IREDAPD_LISTEN_PORT}
|
|
341
|
+
* SQL database account:
|
|
342
|
+
- Database name: ${IREDAPD_DB_NAME}
|
|
343
|
+
- Username: ${IREDAPD_DB_USER}
|
|
344
|
+
- Password: ${IREDAPD_DB_PASSWD}
|
|
345
|
+
* Configuration file:
|
|
346
|
+
- ${IREDAPD_CONF}
|
|
347
|
+
* Related files:
|
|
348
|
+
- ${IREDAPD_ROOT_DIR}
|
|
349
|
+
- ${IREDAPD_ROOT_DIR_SYMBOL_LINK} (symbol link to ${IREDAPD_ROOT_DIR}
|
|
350
|
+
|
|
351
|
+
EOF
|
|
352
|
+
|
|
353
|
+
write_iredmail_kv "sql_user_${IREDAPD_DB_USER}" "${IREDAPD_DB_PASSWD}"
|
|
354
|
+
write_iredmail_kv iredapd_srs_secret "${IREDAPD_SRS_SECRET}"
|
|
355
|
+
echo 'export status_iredapd_setup="DONE"' >> ${STATUS_FILE}
|
|
356
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Author: Zhang Huangbin <zhb _at_ iredmail.org>
|
|
4
|
+
|
|
5
|
+
# -------------------------------------------
|
|
6
|
+
# Install all optional components.
|
|
7
|
+
# -------------------------------------------
|
|
8
|
+
optional_components()
|
|
9
|
+
{
|
|
10
|
+
# iRedAPD.
|
|
11
|
+
check_status_before_run iredapd_setup
|
|
12
|
+
|
|
13
|
+
# iRedAdmin.
|
|
14
|
+
|
|
15
|
+
# Roundcubemail.
|
|
16
|
+
|
|
17
|
+
# SOGo
|
|
18
|
+
|
|
19
|
+
# Fail2ban.
|
|
20
|
+
[ X"${USE_FAIL2BAN}" == X'YES' -a X"${DISTRO}" != X'FREEBSD' ] && \
|
|
21
|
+
check_status_before_run fail2ban_setup
|
|
22
|
+
|
|
23
|
+
# netdata.
|
|
24
|
+
}
|