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,677 @@
|
|
|
1
|
+
use strict;
|
|
2
|
+
|
|
3
|
+
# controls running of anti-virus/spam code: 0 -> enabled, 1 -> disabled.
|
|
4
|
+
@bypass_virus_checks_maps = (0);
|
|
5
|
+
@bypass_spam_checks_maps = (0);
|
|
6
|
+
# $bypass_decode_parts = 1; # controls running of decoders&dearchivers
|
|
7
|
+
|
|
8
|
+
$daemon_user = 'PH_SYS_USER_AMAVISD';
|
|
9
|
+
$daemon_group = 'PH_SYS_GROUP_AMAVISD';
|
|
10
|
+
|
|
11
|
+
# Set hostname.
|
|
12
|
+
$myhostname = 'PH_HOSTNAME';
|
|
13
|
+
$mydomain = $myhostname;
|
|
14
|
+
$localhost_name = $myhostname;
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# NOTE: $MYHOME/{tmp,var,db} must be created manually
|
|
18
|
+
#
|
|
19
|
+
$MYHOME = 'PH_AMAVISD_SPOOL_DIR';
|
|
20
|
+
$TEMPBASE = 'PH_AMAVISD_TEMP_DIR'; # working directory, needs to exist, -T
|
|
21
|
+
$ENV{TMPDIR} = $TEMPBASE; # environment variable TMPDIR, used by SA, etc.
|
|
22
|
+
$db_home = 'PH_AMAVISD_DB_DIR'; # dir for bdb nanny/cache/snmp databases, -D
|
|
23
|
+
$QUARANTINEDIR = 'PH_AMAVISD_QUARANTINE_DIR'; # -Q
|
|
24
|
+
$quarantine_subdir_levels = 2; # add level of subdirs to disperse quarantine
|
|
25
|
+
# $release_format = 'resend'; # 'attach', 'plain', 'resend'
|
|
26
|
+
# $report_format = 'arf'; # 'attach', 'plain', 'resend', 'arf'
|
|
27
|
+
# $daemon_chroot_dir = $MYHOME; # chroot directory or undef, -R
|
|
28
|
+
# $helpers_home = "$MYHOME/var"; # working directory for SpamAssassin, -S
|
|
29
|
+
|
|
30
|
+
$lock_file = 'PH_AMAVISD_LOCK_FILE'; # -L
|
|
31
|
+
$pid_file = 'PH_AMAVISD_PID_FILE'; # -P
|
|
32
|
+
|
|
33
|
+
@local_domains_maps = 1;
|
|
34
|
+
@mynetworks = qw( 127.0.0.0/8 [::1] PH_LOCAL_ADDRESS );
|
|
35
|
+
|
|
36
|
+
# Socket file, used by amavisd-release or amavis-milter.
|
|
37
|
+
$unix_socketname = 'PH_AMAVISD_SOCKET_FILE';
|
|
38
|
+
|
|
39
|
+
#
|
|
40
|
+
# BDB
|
|
41
|
+
#
|
|
42
|
+
$enable_db = 0; # enable use of BerkeleyDB/libdb (SNMP and nanny)
|
|
43
|
+
$nanny_details_level = 2; # nanny verbosity: 1: traditional, 2: detailed
|
|
44
|
+
|
|
45
|
+
$inet_socket_port = [PH_AMAVISD_SMTP_PORT, PH_AMAVISD_ORIGINATING_PORT, PH_AMAVISD_MLMMJ_PORT, PH_AMAVISD_QUARANTINE_PORT];
|
|
46
|
+
|
|
47
|
+
$policy_bank{'MYNETS'} = { # mail originating from @mynetworks
|
|
48
|
+
originating => 1, # is true in MYNETS by default, but let's make it explicit
|
|
49
|
+
os_fingerprint_method => undef, # don't query p0f for internal clients
|
|
50
|
+
allow_disclaimers => 1, # enables disclaimer insertion if available
|
|
51
|
+
enable_dkim_signing => 1,
|
|
52
|
+
enable_dkim_verification => 0,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
# Postfix will re-route mail from authenticated users to this port.
|
|
56
|
+
$interface_policy{'PH_AMAVISD_ORIGINATING_PORT'} = 'ORIGINATING';
|
|
57
|
+
$policy_bank{'ORIGINATING'} = {
|
|
58
|
+
originating => 1, # declare that mail was submitted by our smtp client
|
|
59
|
+
allow_disclaimers => 1, # enables disclaimer insertion if available
|
|
60
|
+
enable_dkim_signing => 1,
|
|
61
|
+
enable_dkim_verification => 0,
|
|
62
|
+
|
|
63
|
+
# notify administrator of locally originating malware
|
|
64
|
+
spam_admin_maps => ["root\@$mydomain"],
|
|
65
|
+
# notify administrator of locally originating malware
|
|
66
|
+
virus_admin_maps => ["root\@$mydomain"],
|
|
67
|
+
spam_admin_maps => ["root\@$mydomain"],
|
|
68
|
+
bad_header_admin_maps => ["root\@$mydomain"],
|
|
69
|
+
banned_admin_maps => ["root\@$mydomain"],
|
|
70
|
+
warnbadhsender => 0,
|
|
71
|
+
warnbannedsender => 0,
|
|
72
|
+
|
|
73
|
+
# force MTA conversion to 7-bit (e.g. before DKIM signing)
|
|
74
|
+
smtpd_discard_ehlo_keywords => ['8BITMIME'],
|
|
75
|
+
terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option
|
|
76
|
+
|
|
77
|
+
# Bypass checks
|
|
78
|
+
#bypass_spam_checks_maps => [1], # don't check spam
|
|
79
|
+
#bypass_virus_checks_maps => [1], # don't check virus
|
|
80
|
+
#bypass_banned_checks_maps => [1], # don't check banned file names and types
|
|
81
|
+
#bypass_header_checks_maps => [1], # don't check bad header
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
$interface_policy{'PH_AMAVISD_MLMMJ_PORT'} = 'MLMMJ';
|
|
85
|
+
$policy_bank{'MLMMJ'} = {
|
|
86
|
+
originating => 1, # declare that mail was submitted by our smtp client
|
|
87
|
+
allow_disclaimers => 0, # we use 'mlmmj-amime-receive' program to handle disclaimer/footer
|
|
88
|
+
enable_dkim_signing => 1, # enable DKIM signing for outbound
|
|
89
|
+
enable_dkim_verification => 0,
|
|
90
|
+
virus_admin_maps => ["root\@$mydomain"],
|
|
91
|
+
spam_admin_maps => ["root\@$mydomain"],
|
|
92
|
+
smtpd_discard_ehlo_keywords => ['8BITMIME'],
|
|
93
|
+
terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option
|
|
94
|
+
# re-inject processed email to Postfix, with address mapping enabled.
|
|
95
|
+
forward_method => 'smtp:[PH_LOCAL_ADDRESS]:PH_POSTFIX_MLMMJ_REINJECT_PORT',
|
|
96
|
+
# Amavisd performs the checks for email sent to mailing list, so no need to
|
|
97
|
+
# check again for outbound.
|
|
98
|
+
bypass_spam_checks_maps => [1], # don't check spam
|
|
99
|
+
bypass_virus_checks_maps => [1], # don't check virus
|
|
100
|
+
bypass_banned_checks_maps => [1], # don't check banned file names and types
|
|
101
|
+
bypass_header_checks_maps => [1], # don't check bad header
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
$interface_policy{'SOCK'} = 'AM.PDP-SOCK'; # only applies with $unix_socketname
|
|
105
|
+
|
|
106
|
+
# Use with amavis-release over a socket or with Petr Rehor's amavis-milter.c
|
|
107
|
+
# (with amavis-milter.c from this package or old amavis.c client use 'AM.CL'):
|
|
108
|
+
$policy_bank{'AM.PDP-SOCK'} = {
|
|
109
|
+
protocol => 'AM.PDP',
|
|
110
|
+
auth_required_release => 0, # do not require secret_id for amavisd-release
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
|
|
114
|
+
$sa_tag2_level_deflt = 6.2; # add 'spam detected' headers at that level
|
|
115
|
+
$sa_kill_level_deflt = 6.9; # triggers spam evasive actions (e.g. blocks mail)
|
|
116
|
+
$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
|
|
117
|
+
$sa_crediblefrom_dsn_cutoff_level = 18; # likewise, but for a likely valid From
|
|
118
|
+
#$sa_quarantine_cutoff_level = 25; # spam level beyond which quarantine is off
|
|
119
|
+
|
|
120
|
+
$sa_mail_body_size_limit = 400*1024; # don't waste time on SA if mail is larger
|
|
121
|
+
$sa_local_tests_only = 0; # only tests which do not require internet access?
|
|
122
|
+
|
|
123
|
+
$virus_admin = undef; # notifications recip.
|
|
124
|
+
|
|
125
|
+
$mailfrom_notify_admin = undef; # notifications sender
|
|
126
|
+
$mailfrom_notify_recip = undef; # notifications sender
|
|
127
|
+
$mailfrom_notify_spamadmin = undef; # notifications sender
|
|
128
|
+
$mailfrom_to_quarantine = ''; # null return path; uses original sender if undef
|
|
129
|
+
|
|
130
|
+
@addr_extension_virus_maps = ('virus');
|
|
131
|
+
@addr_extension_banned_maps = ('banned');
|
|
132
|
+
@addr_extension_spam_maps = ('spam');
|
|
133
|
+
@addr_extension_bad_header_maps = ('badh');
|
|
134
|
+
# $recipient_delimiter = '+'; # undef disables address extensions altogether
|
|
135
|
+
# when enabling addr extensions do also Postfix/main.cf: recipient_delimiter=+
|
|
136
|
+
|
|
137
|
+
$path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';
|
|
138
|
+
# $dspam = 'dspam';
|
|
139
|
+
|
|
140
|
+
$MAXLEVELS = 14;
|
|
141
|
+
$MAXFILES = 3000;
|
|
142
|
+
$MIN_EXPANSION_QUOTA = 100*1024; # bytes (default undef, not enforced)
|
|
143
|
+
$MAX_EXPANSION_QUOTA = 500*1024*1024; # bytes (default undef, not enforced)
|
|
144
|
+
|
|
145
|
+
# Prepend '[SPAM] ' to subject of spam message.
|
|
146
|
+
$sa_spam_modifies_subj = 1;
|
|
147
|
+
$sa_spam_subject_tag = '[SPAM] ';
|
|
148
|
+
|
|
149
|
+
$defang_virus = 1; # MIME-wrap passed infected mail
|
|
150
|
+
$defang_banned = 0; # MIME-wrap passed mail containing banned name
|
|
151
|
+
# for defanging bad headers only turn on certain minor contents categories:
|
|
152
|
+
$defang_by_ccat{CC_BADH.",3"} = 1; # NUL or CR character in header
|
|
153
|
+
$defang_by_ccat{CC_BADH.",5"} = 1; # header line longer than 998 characters
|
|
154
|
+
$defang_by_ccat{CC_BADH.",6"} = 1; # header field syntax error
|
|
155
|
+
|
|
156
|
+
@keep_decoded_original_maps = (new_RE(
|
|
157
|
+
# let virus scanner (clamav) see full original message (can be slow)
|
|
158
|
+
# this setting is required if we're going to use third-party clamav
|
|
159
|
+
# signatures. for example, Sanesecurity signatures.
|
|
160
|
+
# FYI: http://sanesecurity.com/support/signature-testing/
|
|
161
|
+
#qr'^MAIL$',
|
|
162
|
+
|
|
163
|
+
qr'^MAIL-UNDECIPHERABLE$', # same as ^MAIL$ if mail is undecipherable
|
|
164
|
+
qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)'i,
|
|
165
|
+
#qr'^Zip archive data', # don't trust Archive::Zip
|
|
166
|
+
));
|
|
167
|
+
|
|
168
|
+
$banned_filename_re = new_RE(
|
|
169
|
+
|
|
170
|
+
### BLOCKED ANYWHERE
|
|
171
|
+
# qr'^UNDECIPHERABLE$', # is or contains any undecipherable components
|
|
172
|
+
qr'^\.(exe-ms|dll)$', # banned file(1) types, rudimentary
|
|
173
|
+
# qr'^\.(exe|lha|cab|dll)$', # banned file(1) types
|
|
174
|
+
|
|
175
|
+
### BLOCK THE FOLLOWING, EXCEPT WITHIN UNIX ARCHIVES:
|
|
176
|
+
# [ qr'^\.(gz|bz2)$' => 0 ], # allow any in gzip or bzip2
|
|
177
|
+
[ qr'^\.(rpm|cpio|tar)$' => 0 ], # allow any in Unix-type archives
|
|
178
|
+
|
|
179
|
+
qr'.\.(pif|scr)$'i, # banned extensions - rudimentary
|
|
180
|
+
# qr'^\.zip$', # block zip type
|
|
181
|
+
|
|
182
|
+
### BLOCK THE FOLLOWING, EXCEPT WITHIN ARCHIVES:
|
|
183
|
+
[ qr'^\.(zip|rar|arc|arj)$'=> 0 ], # allow any within these archives
|
|
184
|
+
qr'^\.(F|melt|fcat|zoo)$'i,
|
|
185
|
+
|
|
186
|
+
qr'^application/x-msdownload$'i, # block these MIME types
|
|
187
|
+
qr'^application/x-msdos-program$'i,
|
|
188
|
+
qr'^application/hta$'i,
|
|
189
|
+
|
|
190
|
+
# qr'^message/partial$'i, # rfc2046 MIME type
|
|
191
|
+
# qr'^message/external-body$'i, # rfc2046 MIME type
|
|
192
|
+
|
|
193
|
+
# qr'^(application/x-msmetafile|image/x-wmf)$'i, # Windows Metafile MIME type
|
|
194
|
+
# qr'^\.wmf$', # Windows Metafile file(1) type
|
|
195
|
+
|
|
196
|
+
# block certain double extensions in filenames
|
|
197
|
+
qr'^(?!cid:).*\.[^./]*[A-Za-z][^./]*\.\s*(exe|vbs|pif|scr|bat|cmd|com|cpl|dll)[.\s]*$'i,
|
|
198
|
+
|
|
199
|
+
# qr'\{[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\}?'i, # Class ID CLSID, strict
|
|
200
|
+
# qr'\{[0-9a-z]{4,}(-[0-9a-z]{4,}){0,7}\}?'i, # Class ID extension CLSID, loose
|
|
201
|
+
|
|
202
|
+
qr'.\.(exe|vbs|pif|scr|cpl)$'i, # banned extension - basic
|
|
203
|
+
# qr'.\.(exe|vbs|pif|scr|cpl|bat|cmd|com)$'i, # banned extension - basic+cmd
|
|
204
|
+
# qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta|
|
|
205
|
+
# inf|ini|ins|isp|js|jse|lib|lnk|mda|mdb|mde|mdt|mdw|mdz|msc|msi|
|
|
206
|
+
# msp|mst|ocx|ops|pcd|pif|prg|reg|scr|sct|shb|shs|sys|vb|vbe|vbs|vxd|
|
|
207
|
+
# wmf|wsc|wsf|wsh)$'ix, # banned extensions - long
|
|
208
|
+
# qr'.\.(asd|asf|asx|url|vcs|wmd|wmz)$'i, # consider also
|
|
209
|
+
# qr'.\.(ani|cur|ico)$'i, # banned cursors and icons filename
|
|
210
|
+
# qr'^\.ani$', # banned animated cursor file(1) type
|
|
211
|
+
# qr'.\.(mim|b64|bhx|hqx|xxe|uu|uue)$'i, # banned extension - WinZip vulnerab.
|
|
212
|
+
);
|
|
213
|
+
# See http://support.microsoft.com/default.aspx?scid=kb;EN-US;q262631
|
|
214
|
+
# and http://www.cknow.com/vtutor/vtextensions.htm
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
# ENVELOPE SENDER SOFT-WHITELISTING / SOFT-BLACKLISTING
|
|
218
|
+
|
|
219
|
+
@score_sender_maps = ({ # a by-recipient hash lookup table,
|
|
220
|
+
# results from all matching recipient tables are summed
|
|
221
|
+
|
|
222
|
+
# ## per-recipient personal tables (NOTE: positive: black, negative: white)
|
|
223
|
+
# 'user1@example.com' => [{'bla-mobile.press@example.com' => 10.0}],
|
|
224
|
+
# 'user3@example.com' => [{'.ebay.com' => -3.0}],
|
|
225
|
+
# 'user4@example.com' => [{'cleargreen@cleargreen.com' => -7.0,
|
|
226
|
+
# '.cleargreen.com' => -5.0}],
|
|
227
|
+
|
|
228
|
+
## site-wide opinions about senders (the '.' matches any recipient)
|
|
229
|
+
'.' => [ # the _first_ matching sender determines the score boost
|
|
230
|
+
|
|
231
|
+
new_RE( # regexp-type lookup table, just happens to be all soft-blacklist
|
|
232
|
+
[qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i => 5.0],
|
|
233
|
+
[qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=> 5.0],
|
|
234
|
+
[qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=> 5.0],
|
|
235
|
+
[qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i => 5.0],
|
|
236
|
+
[qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i => 5.0],
|
|
237
|
+
[qr'^(your_friend|greatoffers)@'i => 5.0],
|
|
238
|
+
[qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i => 5.0],
|
|
239
|
+
),
|
|
240
|
+
|
|
241
|
+
#read_hash("/var/amavis/sender_scores_sitewide"),
|
|
242
|
+
|
|
243
|
+
{ # a hash-type lookup table (associative array)
|
|
244
|
+
'nobody@cert.org' => -3.0,
|
|
245
|
+
'cert-advisory@us-cert.gov' => -3.0,
|
|
246
|
+
'owner-alert@iss.net' => -3.0,
|
|
247
|
+
'slashdot@slashdot.org' => -3.0,
|
|
248
|
+
'securityfocus.com' => -3.0,
|
|
249
|
+
'ntbugtraq@listserv.ntbugtraq.com' => -3.0,
|
|
250
|
+
'security-alerts@linuxsecurity.com' => -3.0,
|
|
251
|
+
'mailman-announce-admin@python.org' => -3.0,
|
|
252
|
+
'amavis-user-admin@lists.sourceforge.net'=> -3.0,
|
|
253
|
+
'amavis-user-bounces@lists.sourceforge.net' => -3.0,
|
|
254
|
+
'spamassassin.apache.org' => -3.0,
|
|
255
|
+
'notification-return@lists.sophos.com' => -3.0,
|
|
256
|
+
'owner-postfix-users@postfix.org' => -3.0,
|
|
257
|
+
'owner-postfix-announce@postfix.org' => -3.0,
|
|
258
|
+
'owner-sendmail-announce@lists.sendmail.org' => -3.0,
|
|
259
|
+
'sendmail-announce-request@lists.sendmail.org' => -3.0,
|
|
260
|
+
'donotreply@sendmail.org' => -3.0,
|
|
261
|
+
'ca+envelope@sendmail.org' => -3.0,
|
|
262
|
+
'noreply@freshmeat.net' => -3.0,
|
|
263
|
+
'owner-technews@postel.acm.org' => -3.0,
|
|
264
|
+
'ietf-123-owner@loki.ietf.org' => -3.0,
|
|
265
|
+
'cvs-commits-list-admin@gnome.org' => -3.0,
|
|
266
|
+
'rt-users-admin@lists.fsck.com' => -3.0,
|
|
267
|
+
'clp-request@comp.nus.edu.sg' => -3.0,
|
|
268
|
+
'surveys-errors@lists.nua.ie' => -3.0,
|
|
269
|
+
'emailnews@genomeweb.com' => -5.0,
|
|
270
|
+
'yahoo-dev-null@yahoo-inc.com' => -3.0,
|
|
271
|
+
'returns.groups.yahoo.com' => -3.0,
|
|
272
|
+
'clusternews@linuxnetworx.com' => -3.0,
|
|
273
|
+
lc('lvs-users-admin@LinuxVirtualServer.org') => -3.0,
|
|
274
|
+
lc('owner-textbreakingnews@CNNIMAIL12.CNN.COM') => -5.0,
|
|
275
|
+
|
|
276
|
+
# soft-blacklisting (positive score)
|
|
277
|
+
'sender@example.net' => 3.0,
|
|
278
|
+
'.example.net' => 1.0,
|
|
279
|
+
|
|
280
|
+
},
|
|
281
|
+
], # end of site-wide tables
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
@decoders = (
|
|
286
|
+
['mail', \&do_mime_decode],
|
|
287
|
+
# [[qw(asc uue hqx ync)], \&do_ascii], # not safe
|
|
288
|
+
['F', \&do_uncompress, ['unfreeze', 'freeze -d', 'melt', 'fcat'] ],
|
|
289
|
+
['Z', \&do_uncompress, ['uncompress', 'gzip -d', 'zcat'] ],
|
|
290
|
+
['gz', \&do_uncompress, 'gzip -d'],
|
|
291
|
+
['gz', \&do_gunzip],
|
|
292
|
+
['bz2', \&do_uncompress, 'bzip2 -d'],
|
|
293
|
+
['xz', \&do_uncompress,
|
|
294
|
+
['xzdec', 'xz -dc', 'unxz -c', 'xzcat'] ],
|
|
295
|
+
['lzma', \&do_uncompress,
|
|
296
|
+
['lzmadec', 'xz -dc --format=lzma',
|
|
297
|
+
'lzma -dc', 'unlzma -c', 'lzcat', 'lzmadec'] ],
|
|
298
|
+
['lrz', \&do_uncompress,
|
|
299
|
+
['lrzip -q -k -d -o -', 'lrzcat -q -k'] ],
|
|
300
|
+
['lzo', \&do_uncompress, 'lzop -d'],
|
|
301
|
+
['lz4', \&do_uncompress, ['lz4c -d'] ],
|
|
302
|
+
['rpm', \&do_uncompress, ['rpm2cpio.pl', 'rpm2cpio'] ],
|
|
303
|
+
[['cpio','tar'], \&do_pax_cpio, ['pax', 'gcpio', 'cpio'] ],
|
|
304
|
+
# ['/usr/local/heirloom/usr/5bin/pax', 'pax', 'gcpio', 'cpio']
|
|
305
|
+
['deb', \&do_ar, 'ar'],
|
|
306
|
+
# ['a', \&do_ar, 'ar'], # unpacking .a seems an overkill
|
|
307
|
+
['rar', \&do_unrar, ['unrar', 'rar'] ],
|
|
308
|
+
['arj', \&do_unarj, ['unarj', 'arj'] ],
|
|
309
|
+
['arc', \&do_arc, ['nomarch', 'arc'] ],
|
|
310
|
+
['zoo', \&do_zoo, ['zoo', 'unzoo'] ],
|
|
311
|
+
# ['doc', \&do_ole, 'ripole'], # no ripole package so far
|
|
312
|
+
['cab', \&do_cabextract, 'cabextract'],
|
|
313
|
+
# ['tnef', \&do_tnef_ext, 'tnef'], # use internal do_tnef() instead
|
|
314
|
+
['tnef', \&do_tnef],
|
|
315
|
+
# ['lha', \&do_lha, 'lha'], # not safe, use 7z instead
|
|
316
|
+
# ['sit', \&do_unstuff, 'unstuff'], # not safe
|
|
317
|
+
[['zip','kmz'], \&do_7zip, ['7za', '7z'] ],
|
|
318
|
+
[['zip','kmz'], \&do_unzip],
|
|
319
|
+
['7z', \&do_7zip, ['7zr', '7za', '7z'] ],
|
|
320
|
+
[[qw(gz bz2 Z tar)],
|
|
321
|
+
\&do_7zip, ['7za', '7z'] ],
|
|
322
|
+
[[qw(xz lzma jar cpio arj rar swf lha iso cab deb rpm)],
|
|
323
|
+
\&do_7zip, '7z' ],
|
|
324
|
+
['exe', \&do_executable, ['unrar','rar'], 'lha', ['unarj','arj'] ],
|
|
325
|
+
);
|
|
326
|
+
$pax = 'pax';
|
|
327
|
+
|
|
328
|
+
$notify_method = 'smtp:[PH_LOCAL_ADDRESS]:PH_POSTFIX_MAIL_REINJECT_PORT';
|
|
329
|
+
$forward_method = 'smtp:[PH_LOCAL_ADDRESS]:PH_POSTFIX_MAIL_REINJECT_PORT';
|
|
330
|
+
|
|
331
|
+
# Mark Spam/Virus with third-party clamav signatures: SaneSecurity.
|
|
332
|
+
# *) The order matters, first match wins. Set to 'undef' to keep as infected
|
|
333
|
+
# *) Anything declared as undefined will be marked as a virus
|
|
334
|
+
@virus_name_to_spam_score_maps =(new_RE(
|
|
335
|
+
# SaneSecurity + Foxhole
|
|
336
|
+
[ qr'^Sanesecurity\.(Malware|Badmacro|Foxhole|Rogue|Trojan)\.' => undef ],
|
|
337
|
+
[ qr'^Sanesecurity\.MalwareHash\.' => undef ],
|
|
338
|
+
[ qr'^Sanesecurity.TestSig_' => undef ],
|
|
339
|
+
[ qr'^Sanesecurity\.' => 0.1 ],
|
|
340
|
+
|
|
341
|
+
# winnow
|
|
342
|
+
[ qr'^winnow\.(Exploit|Trojan|malware)\.' => undef ],
|
|
343
|
+
[ qr'^winnow\.(botnet|compromised|trojan)' => undef ],
|
|
344
|
+
[ qr'^winnow\.(exe|ms|JS)\.' => undef ],
|
|
345
|
+
[ qr'^winnow\.phish\.' => 3.0 ],
|
|
346
|
+
[ qr'^winnow\.' => 0.1 ],
|
|
347
|
+
|
|
348
|
+
# bofhland
|
|
349
|
+
[ qr'^Bofhland\.Malware\.' => undef ],
|
|
350
|
+
[ qr'^BofhlandMWFile' => undef ],
|
|
351
|
+
[ qr'^Bofhland\.Phishing\.' => 3.0 ],
|
|
352
|
+
[ qr'^Bofhland\.' => 0.1 ],
|
|
353
|
+
|
|
354
|
+
# porcupine.ndb
|
|
355
|
+
[ qr'^Porcupine\.(Malware|Trojan)\.' => undef ],
|
|
356
|
+
[ qr'^Porcupine\.(Junk|Spammer)\.' => 3.0 ],
|
|
357
|
+
[ qr'^Porcupine\.Phishing\.' => 3.0 ],
|
|
358
|
+
[ qr'^Porcupine\.' => 0.01 ],
|
|
359
|
+
|
|
360
|
+
# phishtank.ndb
|
|
361
|
+
[ qr'^PhishTank\.Phishing\.' => 3.0 ],
|
|
362
|
+
|
|
363
|
+
# SecuriteInfo
|
|
364
|
+
[ qr'^SecuriteInfo\.com\.Spam' => 3.0 ],
|
|
365
|
+
|
|
366
|
+
# Others
|
|
367
|
+
[ qr'^Structured\.(SSN|CreditCardNumber)\b' => 0.1 ],
|
|
368
|
+
[ qr'^(Heuristics\.)?Phishing\.' => 0.1 ],
|
|
369
|
+
[ qr'^(Email|HTML)\.Phishing\.(?!.*Sanesecurity)' => 0.1 ],
|
|
370
|
+
[ qr'^Email\.Spam\.Bounce(\.[^., ]*)*\.Sanesecurity\.' => 0 ],
|
|
371
|
+
[ qr'^Email\.Spammail\b' => 0.1 ],
|
|
372
|
+
[ qr'^MSRBL-(Images|SPAM)\b' => 0.1 ],
|
|
373
|
+
[ qr'^VX\.Honeypot-SecuriteInfo\.com\.Joke' => 0.1 ],
|
|
374
|
+
[ qr'^VX\.not-virus_(Hoax|Joke)\..*-SecuriteInfo\.com(\.|\z)' => 0.1 ],
|
|
375
|
+
[ qr'^Email\.Spam.*-SecuriteInfo\.com(\.|\z)' => 0.1 ],
|
|
376
|
+
[ qr'^Safebrowsing\.' => 0.1 ],
|
|
377
|
+
[ qr'^INetMsg\.SpamDomain' => 0.1 ],
|
|
378
|
+
[ qr'^Doppelstern\.(Spam|Scam|Phishing|Junk|Lott|Loan)'=> 0.1 ],
|
|
379
|
+
[ qr'^ScamNailer\.' => 0.1 ],
|
|
380
|
+
[ qr'^HTML/Bankish' => 0.1 ],
|
|
381
|
+
[ qr'(-)?SecuriteInfo\.com(\.|\z)' => undef ],
|
|
382
|
+
[ qr'^MBL_NA\.UNOFFICIAL' => 0.1 ],
|
|
383
|
+
[ qr'^MBL_' => undef ],
|
|
384
|
+
));
|
|
385
|
+
|
|
386
|
+
@av_scanners = (
|
|
387
|
+
['clamav-socket',
|
|
388
|
+
\&ask_daemon, ["CONTSCAN {}\n", 'PH_CLAMD_LOCAL_SOCKET'],
|
|
389
|
+
qr/\bOK$/m,
|
|
390
|
+
qr/\bFOUND$/m,
|
|
391
|
+
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
|
|
392
|
+
);
|
|
393
|
+
|
|
394
|
+
# Override @av_scanners_backup settings in other config snippet files.
|
|
395
|
+
@av_scanners_backup = ();
|
|
396
|
+
|
|
397
|
+
#
|
|
398
|
+
# Port used to release quarantined mails.
|
|
399
|
+
#
|
|
400
|
+
$interface_policy{'PH_AMAVISD_QUARANTINE_PORT'} = 'AM.PDP-INET';
|
|
401
|
+
$policy_bank{'AM.PDP-INET'} = {
|
|
402
|
+
protocol => 'AM.PDP', # select Amavis policy delegation protocol
|
|
403
|
+
auth_required_release => 1, # 0 - don't require secret_id for amavisd-release
|
|
404
|
+
#log_level => 4,
|
|
405
|
+
#always_bcc_by_ccat => {CC_CLEAN, 'admin@example.com'},
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
#########################
|
|
409
|
+
# Default action applied to detected spam/virus/banned/bad-header, and how to
|
|
410
|
+
# quarantine them
|
|
411
|
+
#
|
|
412
|
+
# Available actions:
|
|
413
|
+
#
|
|
414
|
+
# - D_PASS: Mail will pass to recipients, regardless of bad contents.
|
|
415
|
+
# If a quarantine is configured, a copy of the mail will go there.
|
|
416
|
+
# Note that including a recipient in a @*_lovers_maps is
|
|
417
|
+
# functionally equivalent to setting '*_destiny = D_PASS;'
|
|
418
|
+
# for that recipient.
|
|
419
|
+
#
|
|
420
|
+
# - D_BOUNCE: Mail will not be delivered to its recipients. A non-delivery
|
|
421
|
+
# notification (bounce) will be created and sent to the sender.
|
|
422
|
+
#
|
|
423
|
+
# - D_REJECT: Mail will not be delivered to its recipients. Amavisd will
|
|
424
|
+
# send the typical 55x reject response to the upstream MTA and
|
|
425
|
+
# that MTA may create a reject notice (bounce) and return it to
|
|
426
|
+
# the sender.
|
|
427
|
+
# This notice is not as informative as the one created using
|
|
428
|
+
# D_BOUNCE, so usually D_BOUNCE is preferred over D_REJECT.
|
|
429
|
+
# If a quarantine is configured, a copy of the mail will go
|
|
430
|
+
# there, if not mail message will be lost, but the sender should
|
|
431
|
+
# be notified their message was rejected.
|
|
432
|
+
#
|
|
433
|
+
# - D_DISCARD: Mail will not be delivered to its recipients and the sender
|
|
434
|
+
# normally will NOT be notified.
|
|
435
|
+
# If a quarantine is configured, a copy of the mail will go
|
|
436
|
+
# there, if not mail message will be lost. Note that there are
|
|
437
|
+
# additional settings available that can send notifications to
|
|
438
|
+
# persons that normally may not be notified when an undesirable
|
|
439
|
+
# message is found, so it is possible to notify the sender even
|
|
440
|
+
# when using D_DISCARD.
|
|
441
|
+
#
|
|
442
|
+
# Where to store quarantined mail message:
|
|
443
|
+
#
|
|
444
|
+
# - 'local:spam-%i-%m', quarantine mail on local file system.
|
|
445
|
+
# - 'sql:', quarantine mail in SQL server specified in @storage_sql_dsn.
|
|
446
|
+
# - undef, do not quarantine mail.
|
|
447
|
+
|
|
448
|
+
# SPAM.
|
|
449
|
+
$final_spam_destiny = D_DISCARD;
|
|
450
|
+
$spam_quarantine_method = 'sql:';
|
|
451
|
+
$spam_quarantine_to = 'spam-quarantine';
|
|
452
|
+
|
|
453
|
+
# Virus
|
|
454
|
+
$final_virus_destiny = D_DISCARD;
|
|
455
|
+
$virus_quarantine_method = 'sql:';
|
|
456
|
+
$virus_quarantine_to = 'virus-quarantine';
|
|
457
|
+
|
|
458
|
+
# Banned
|
|
459
|
+
$final_banned_destiny = D_DISCARD;
|
|
460
|
+
$banned_files_quarantine_method = 'sql:';
|
|
461
|
+
$banned_quarantine_to = 'banned-quarantine';
|
|
462
|
+
|
|
463
|
+
# Bad header.
|
|
464
|
+
$final_bad_header_destiny = D_DISCARD;
|
|
465
|
+
$bad_header_quarantine_method = 'sql:';
|
|
466
|
+
$bad_header_quarantine_to = 'bad-header-quarantine';
|
|
467
|
+
|
|
468
|
+
#########################
|
|
469
|
+
# Quarantine CLEAN mails.
|
|
470
|
+
# Don't forget to enable clean quarantine in policy bank 'MYUSERS'.
|
|
471
|
+
#
|
|
472
|
+
#$clean_quarantine_method = 'sql:';
|
|
473
|
+
#$clean_quarantine_to = 'clean-quarantine';
|
|
474
|
+
|
|
475
|
+
# a string to prepend to Subject (for local recipients only) if mail could
|
|
476
|
+
# not be decoded or checked entirely, e.g. due to password-protected archives
|
|
477
|
+
#$undecipherable_subject_tag = '***UNCHECKED*** '; # undef disables it
|
|
478
|
+
$undecipherable_subject_tag = undef;
|
|
479
|
+
|
|
480
|
+
# Hope to fix 'nested MAIL command' issue on high load server.
|
|
481
|
+
$smtp_connection_cache_enable = 0;
|
|
482
|
+
|
|
483
|
+
# The default set of header fields to be signed can be controlled
|
|
484
|
+
# by setting %signed_header_fields elements to true (to sign) or
|
|
485
|
+
# to false (not to sign). Keys must be in lowercase, e.g.:
|
|
486
|
+
# 0 -> off
|
|
487
|
+
# 1 -> on
|
|
488
|
+
$signed_header_fields{'received'} = 0;
|
|
489
|
+
$signed_header_fields{'to'} = 1;
|
|
490
|
+
$signed_header_fields{'from'} = 1;
|
|
491
|
+
$signed_header_fields{'subject'} = 1;
|
|
492
|
+
$signed_header_fields{'message-id'} = 1;
|
|
493
|
+
$signed_header_fields{'content-type'} = 1;
|
|
494
|
+
$signed_header_fields{'date'} = 1;
|
|
495
|
+
$signed_header_fields{'mime-version'} = 1;
|
|
496
|
+
|
|
497
|
+
#
|
|
498
|
+
# DKIM
|
|
499
|
+
#
|
|
500
|
+
# Enable DKIM verification globally.
|
|
501
|
+
$enable_dkim_verification = 1;
|
|
502
|
+
|
|
503
|
+
# Add dkim_key here.
|
|
504
|
+
dkim_key('PH_FIRST_DOMAIN', 'dkim', 'PH_AMAVISD_FIRST_DOMAIN_DKIM_KEY');
|
|
505
|
+
|
|
506
|
+
@dkim_signature_options_bysender_maps = ({
|
|
507
|
+
# 'd' defaults to a domain of an author/sender address,
|
|
508
|
+
# 's' defaults to whatever selector is offered by a matching key
|
|
509
|
+
|
|
510
|
+
# Per-domain dkim key
|
|
511
|
+
#"domain.com" => { d => "domain.com", a => 'rsa-sha256', ttl => 10*24*3600 },
|
|
512
|
+
|
|
513
|
+
# catch-all (one dkim key for all domains)
|
|
514
|
+
'.' => {d => 'PH_FIRST_DOMAIN',
|
|
515
|
+
a => 'rsa-sha256',
|
|
516
|
+
c => 'relaxed/simple',
|
|
517
|
+
ttl => 30*24*3600 },
|
|
518
|
+
});
|
|
519
|
+
|
|
520
|
+
#
|
|
521
|
+
# Disclaimer settings
|
|
522
|
+
#
|
|
523
|
+
# Uncomment below line to enable singing disclaimer in outgoing mails.
|
|
524
|
+
#$defang_maps_by_ccat{+CC_CATCHALL} = [ 'disclaimer' ];
|
|
525
|
+
|
|
526
|
+
# Program used to signing disclaimer in outgoing mails.
|
|
527
|
+
$altermime = 'PH_CMD_ALTERMIME';
|
|
528
|
+
|
|
529
|
+
# Disclaimer in plain text formart.
|
|
530
|
+
@altermime_args_disclaimer = qw(--disclaimer=/etc/postfix/disclaimer/_OPTION_.txt --disclaimer-html=/etc/postfix/disclaimer/_OPTION_.txt --force-for-bad-html);
|
|
531
|
+
|
|
532
|
+
@disclaimer_options_bysender_maps = ({
|
|
533
|
+
# Per-domain, per-user disclaimer setting:
|
|
534
|
+
# '<domain>' => /path/to/disclaimer.txt,
|
|
535
|
+
# '<email>' => /path/to/disclaimer.txt,
|
|
536
|
+
|
|
537
|
+
# Catch-all disclaimer setting: /etc/postfix/disclaimer/default.txt
|
|
538
|
+
'.' => 'default',
|
|
539
|
+
},);
|
|
540
|
+
|
|
541
|
+
$sql_allow_8bit_address = 1;
|
|
542
|
+
$timestamp_fmt_mysql = 1; # if using MySQL *and* msgs.time_iso is TIMESTAMP;
|
|
543
|
+
|
|
544
|
+
# Reporting and quarantining.
|
|
545
|
+
@storage_sql_dsn = (['DBI:PH_AMAVISD_PERL_SQL_DBI:database=PH_AMAVISD_DB_NAME;host=PH_SQL_SERVER_ADDRESS;port=PH_SQL_SERVER_PORT', 'PH_AMAVISD_DB_USER', 'PH_AMAVISD_DB_PASSWD']);
|
|
546
|
+
|
|
547
|
+
# Lookup for per-recipient, per-domain and global policy.
|
|
548
|
+
@lookup_sql_dsn = @storage_sql_dsn;
|
|
549
|
+
|
|
550
|
+
# Don't send email with subject "UNCHECKED contents in mail FROM xxx".
|
|
551
|
+
delete $admin_maps_by_ccat{&CC_UNCHECKED};
|
|
552
|
+
|
|
553
|
+
# Do not notify administrator about SPAM/VIRUS from remote servers.
|
|
554
|
+
$virus_admin = undef;
|
|
555
|
+
$spam_admin = undef;
|
|
556
|
+
$banned_admin = undef;
|
|
557
|
+
$bad_header_admin = undef;
|
|
558
|
+
|
|
559
|
+
#
|
|
560
|
+
# Pre-define some policy banks.
|
|
561
|
+
#
|
|
562
|
+
# You can assign certain policy banks to clients/senders you want to whitelist
|
|
563
|
+
# with parameter `@client_ipaddr_policy` and @author_to_policy_bank_maps.
|
|
564
|
+
$policy_bank{'FULL_WHITELIST'} = {
|
|
565
|
+
bypass_spam_checks_maps => [1],
|
|
566
|
+
spam_lovers_maps => [1],
|
|
567
|
+
bypass_decode_parts => 1,
|
|
568
|
+
bypass_virus_checks_maps => [1],
|
|
569
|
+
virus_lovers_maps => [1],
|
|
570
|
+
bypass_banned_checks_maps => [1],
|
|
571
|
+
banned_files_lovers_maps => [1],
|
|
572
|
+
bypass_header_checks_maps => [1],
|
|
573
|
+
bad_header_lovers_maps => [1],
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
$policy_bank{'NO_SPAM_CHECK'} = {
|
|
577
|
+
bypass_spam_checks_maps => [1],
|
|
578
|
+
spam_lovers_maps => [1],
|
|
579
|
+
};
|
|
580
|
+
|
|
581
|
+
$policy_bank{'NO_VIRUS_CHECK'} = {
|
|
582
|
+
bypass_decode_parts => 1,
|
|
583
|
+
bypass_virus_checks_maps => [1],
|
|
584
|
+
virus_lovers_maps => [1],
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
$policy_bank{'NO_BANNED_CHECK'} = {
|
|
588
|
+
bypass_banned_checks_maps => [1],
|
|
589
|
+
banned_files_lovers_maps => [1],
|
|
590
|
+
};
|
|
591
|
+
|
|
592
|
+
$policy_bank{'NO_BAD_HEADER_CHECK'} = {
|
|
593
|
+
bypass_header_checks_maps => [1],
|
|
594
|
+
bad_header_lovers_maps => [1],
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
#$policy_bank{'MILD_WHITELIST'} = {
|
|
598
|
+
# score_sender_maps => [ { '.' => [-1.8] } ],
|
|
599
|
+
#};
|
|
600
|
+
|
|
601
|
+
#
|
|
602
|
+
# Logging
|
|
603
|
+
#
|
|
604
|
+
$do_syslog = 1; # log via syslogd (preferred)
|
|
605
|
+
$syslog_facility = 'mail'; # Syslog facility as a string
|
|
606
|
+
$log_level = 0; # Amavisd log level.
|
|
607
|
+
# Verbosity: 0, 1, 2, 3, 4, 5.
|
|
608
|
+
$sa_debug = 0; # SpamAssassin debugging (require $log_level).
|
|
609
|
+
# Default if off (0).
|
|
610
|
+
|
|
611
|
+
# Amavisd on some Linux/BSD distribution use $banned_namepath_re instead of
|
|
612
|
+
# $banned_filename_re, so we define some blocked file types here.
|
|
613
|
+
#
|
|
614
|
+
# Sample input for $banned_namepath_re:
|
|
615
|
+
#
|
|
616
|
+
# P=p003\tL=1\tM=multipart/mixed\nP=p002\tL=1/2\tM=application/octet-stream\tT=dat\tN=my_docum.zip
|
|
617
|
+
# P=p003,L=1,M=multipart/mixed | P=p002,L=1/2,M=application/zip,T=zip,N=FedEx_00628727.zip | P=p005,L=1/2/2,T=asc,N=FedEx_00628727.doc.wsf
|
|
618
|
+
#
|
|
619
|
+
# What it means:
|
|
620
|
+
# - T: type. e.g. zip archive.
|
|
621
|
+
# - M: MIME type. e.g. application/octet-stream.
|
|
622
|
+
# - N: suggested (MIME) name. e.g. my_docum.zip.
|
|
623
|
+
|
|
624
|
+
$banned_namepath_re = new_RE(
|
|
625
|
+
#[qr'T=(rar|arc|arj|zoo|gz|bz2)(,|\t)'xmi => 'DISCARD'], # Compressed file types
|
|
626
|
+
[qr'T=x-(msdownload|msdos-program|msmetafile)(,|\t)'xmi => 'DISCARD'],
|
|
627
|
+
[qr'T=(hta)(,|\t)'xmi => 'DISCARD'],
|
|
628
|
+
|
|
629
|
+
# Dangerous mime types
|
|
630
|
+
[qr'T=(9|386|LeChiffre|aaa|abc|aepl|ani|aru|atm|aut|b64|bat|bhx|bkd|blf|bll|bmw|boo|bps|bqf|breaking_bad|buk|bup|bxz|cc|ccc|ce0|ceo|cfxxe|chm|cih|cla|class|cmd|com|cpl|crinf|crjoker|crypt|cryptolocker|cryptowall|ctbl|cxq|cyw|dbd|delf|dev|dlb|dli|dll|dllx|dom|drv|dx|dxz|dyv|dyz|ecc|exe|exe-ms|exe1|exe_renamed|exx|ezt|ezz|fag|fjl|fnr|fuj|good|gzquar|hlp|hlw|hqx|hsq|hts|iva|iws|jar|js|kcd|keybtc@inbox_com|let|lik|lkh|lnk|locky|lok|lol!|lpaq5|magic|mfu|micro|mim|mjg|mjz|nls|oar|ocx|osa|ozd|pcx|pgm|php2|php3|pid|pif|plc|pr|pzdc|qit|qrn|r5a|rhk|rna|rsc_tmp|s7p|scr|shs|ska|smm|smtmp|sop|spam|ssy|swf|sys|tko|tps|tsa|tti|ttt|txs|upa|uu|uue|uzy|vb|vba|vbe|vbs|vbx|vexe|vxd|vzr|wlpginstall|ws|wsc|wsf|wsh|wss|xdu|xir|xlm|xlv|xnt|xnxx|xtbl|xxe|xxx|xyz|zix|zvz|zzz)(,|\t)'xmi => 'DISCARD'],
|
|
631
|
+
|
|
632
|
+
# Dangerous file name extensions
|
|
633
|
+
[qr'N=.*\.(9|386|LeChiffre|aaa|abc|aepl|ani|aru|atm|aut|b64|bat|bhx|bkd|blf|bll|bmw|boo|bps|bqf|breaking_bad|buk|bup|bxz|cc|ccc|ce0|ceo|cfxxe|chm|cih|cla|class|cmd|com|cpl|crinf|crjoker|crypt|cryptolocker|cryptowall|ctbl|cxq|cyw|dbd|delf|dev|dlb|dli|dll|dllx|dom|drv|dx|dxz|dyv|dyz|ecc|exe|exe-ms|exe1|exe_renamed|exx|ezt|ezz|fag|fjl|fnr|fuj|good|gzquar|hlp|hlw|hqx|hsq|hts|iva|iws|jar|js|kcd|keybtc@inbox_com|let|lik|lkh|lnk|locky|lok|lol!|lpaq5|magic|mfu|micro|mim|mjg|mjz|nls|oar|ocx|osa|ozd|pcx|pgm|php2|php3|pid|pif|plc|pr|pzdc|qit|qrn|r5a|rhk|rna|rsc_tmp|s7p|scr|shs|ska|smm|smtmp|sop|spam|ssy|swf|sys|tko|tps|tsa|tti|ttt|txs|upa|uu|uue|uzy|vb|vba|vbe|vbs|vbx|vexe|vxd|vzr|wlpginstall|ws|wsc|wsf|wsh|wss|xdu|xir|xlm|xlv|xnt|xnxx|xtbl|xxe|xxx|xyz|zix|zvz|zzz)$'xmi => 'DISCARD'],
|
|
634
|
+
);
|
|
635
|
+
|
|
636
|
+
# Define some useful rules.
|
|
637
|
+
%banned_rules = (
|
|
638
|
+
# Allow all Microsoft Office documents.
|
|
639
|
+
'ALLOW_MS_OFFICE' => new_RE([qr'.\.(doc|docx|xls|xlsx|ppt|pptx)$'i => 0]),
|
|
640
|
+
|
|
641
|
+
# Allow Microsoft Word, Excel, PowerPoint documents separately.
|
|
642
|
+
'ALLOW_MS_WORD' => new_RE([qr'.\.(doc|docx)$'i => 0]),
|
|
643
|
+
'ALLOW_MS_EXCEL' => new_RE([qr'.\.(xls|xlsx)$'i => 0]),
|
|
644
|
+
'ALLOW_MS_PPT' => new_RE([qr'.\.(ppt|pptx)$'i => 0]),
|
|
645
|
+
|
|
646
|
+
# Default rule.
|
|
647
|
+
'DEFAULT' => $banned_filename_re,
|
|
648
|
+
);
|
|
649
|
+
|
|
650
|
+
# Log verbose.
|
|
651
|
+
$log_templ = $log_verbose_templ;
|
|
652
|
+
|
|
653
|
+
# $bounce_killer_score defaults to 100, it will cause quota exceed notification
|
|
654
|
+
# email sent by Dovecot quarantined by Amavisd.
|
|
655
|
+
$penpals_bonus_score = undef;
|
|
656
|
+
$bounce_killer_score = 0;
|
|
657
|
+
|
|
658
|
+
# Selectively disable some of the header checks
|
|
659
|
+
#
|
|
660
|
+
# Duplicate or multiple occurrence of a header field
|
|
661
|
+
$allowed_header_tests{'multiple'} = 0;
|
|
662
|
+
|
|
663
|
+
# Missing some headers. e.g. 'Date:'
|
|
664
|
+
$allowed_header_tests{'missing'} = 0;
|
|
665
|
+
|
|
666
|
+
# Listen on specified addresses.
|
|
667
|
+
$inet_socket_bind = ['PH_LOCAL_ADDRESS'];
|
|
668
|
+
|
|
669
|
+
# Set ACL
|
|
670
|
+
@inet_acl = qw(127.0.0.1 [::1] PH_LOCAL_ADDRESS);
|
|
671
|
+
|
|
672
|
+
# Num of pre-forked children.
|
|
673
|
+
# WARNING: it must match (equal to or larger than) the number set in
|
|
674
|
+
# `maxproc` column in Postfix master.cf for the `smtp-amavis` transport.
|
|
675
|
+
$max_servers = PH_AMAVISD_MAX_SERVERS;
|
|
676
|
+
|
|
677
|
+
1; # insure a defined return
|