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.
Files changed (318) hide show
  1. package/README.md +2 -24
  2. package/dist/bare-2HYDXQEH.js +23 -0
  3. package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
  4. package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
  5. package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
  6. package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
  7. package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
  8. package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
  9. package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
  10. package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
  11. package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
  12. package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
  13. package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
  14. package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
  15. package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
  16. package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
  17. package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
  18. package/dist/chunk-FQGJZ2HS.js +248 -0
  19. package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
  20. package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
  21. package/dist/chunk-ILFETZOM.js +131 -0
  22. package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
  23. package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
  24. package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
  25. package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
  26. package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
  27. package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
  28. package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
  29. package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
  30. package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
  31. package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
  32. package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
  33. package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
  34. package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
  35. package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
  36. package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
  37. package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
  38. package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
  39. package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
  40. package/dist/cloud-7QYOGF7F.js +11 -0
  41. package/dist/cloud-ZSKOS4GY.js +30 -0
  42. package/dist/detect-SH4FHFBI.js +36 -0
  43. package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
  44. package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
  45. package/dist/dist-es-JSTDUS7Q.js +26 -0
  46. package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
  47. package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
  48. package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
  49. package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
  50. package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
  51. package/dist/docker-U7AF5PTA.js +16 -0
  52. package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
  53. package/dist/edge-import-V5CBA47C.js +45 -0
  54. package/dist/ensure-container-edge-CMYROUSI.js +33 -0
  55. package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
  56. package/dist/executor-YPT6RH6O.js +30 -0
  57. package/dist/index.d.ts +2 -1
  58. package/dist/index.js +258 -245
  59. package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
  60. package/dist/local-executor-V7U5VOZW.js +12 -0
  61. package/dist/nginx-2GTRUIDE.js +24 -0
  62. package/dist/noop-FMMFG2EZ.js +11 -0
  63. package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -3
  64. package/dist/server/engine/ChangeLog +2289 -0
  65. package/dist/server/engine/Documentations +5 -0
  66. package/dist/server/engine/LICENSE +674 -0
  67. package/dist/server/engine/README.md +34 -0
  68. package/dist/server/engine/conf/amavisd +150 -0
  69. package/dist/server/engine/conf/clamav +71 -0
  70. package/dist/server/engine/conf/core +632 -0
  71. package/dist/server/engine/conf/dovecot +151 -0
  72. package/dist/server/engine/conf/fail2ban +72 -0
  73. package/dist/server/engine/conf/global +698 -0
  74. package/dist/server/engine/conf/iredapd +52 -0
  75. package/dist/server/engine/conf/logwatch +28 -0
  76. package/dist/server/engine/conf/postfix +97 -0
  77. package/dist/server/engine/conf/postgresql +93 -0
  78. package/dist/server/engine/conf/spamassassin +39 -0
  79. package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
  80. package/dist/server/engine/dialog/optional_components.sh +122 -0
  81. package/dist/server/engine/dialog/pgsql_config.sh +52 -0
  82. package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
  83. package/dist/server/engine/functions/amavisd.sh +267 -0
  84. package/dist/server/engine/functions/backend.sh +85 -0
  85. package/dist/server/engine/functions/clamav.sh +100 -0
  86. package/dist/server/engine/functions/cleanup.sh +393 -0
  87. package/dist/server/engine/functions/dovecot.sh +583 -0
  88. package/dist/server/engine/functions/fail2ban.sh +209 -0
  89. package/dist/server/engine/functions/iredapd.sh +356 -0
  90. package/dist/server/engine/functions/optional_components.sh +24 -0
  91. package/dist/server/engine/functions/packages.sh +522 -0
  92. package/dist/server/engine/functions/packages_freebsd.sh +179 -0
  93. package/dist/server/engine/functions/postfix.sh +457 -0
  94. package/dist/server/engine/functions/postgresql.sh +239 -0
  95. package/dist/server/engine/functions/spamassassin.sh +49 -0
  96. package/dist/server/engine/functions/system_accounts.sh +128 -0
  97. package/dist/server/engine/iRedMail.sh +144 -0
  98. package/dist/server/engine/pkgs/get_all.sh +338 -0
  99. package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
  100. package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
  101. package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
  102. package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
  103. package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
  104. package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
  105. package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
  106. package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
  107. package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
  108. package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
  109. package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
  110. package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
  111. package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
  112. package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
  113. package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
  114. package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
  115. package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
  116. package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
  117. package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
  118. package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
  119. package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
  120. package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
  121. package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
  122. package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
  123. package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
  124. package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
  125. package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
  126. package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
  127. package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
  128. package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
  129. package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
  130. package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
  131. package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
  132. package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
  133. package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
  134. package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
  135. package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
  136. package/dist/server/engine/samples/fail2ban/jail.local +6 -0
  137. package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
  138. package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
  139. package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
  140. package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
  141. package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
  142. package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
  143. package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
  144. package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
  145. package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
  146. package/dist/server/engine/samples/firewall/nftables.conf +58 -0
  147. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
  148. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
  149. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
  150. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
  151. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
  152. package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
  153. package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
  154. package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
  155. package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
  156. package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
  157. package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
  158. package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
  159. package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
  160. package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
  161. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
  162. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
  163. package/dist/server/engine/samples/logrotate/dovecot +13 -0
  164. package/dist/server/engine/samples/logrotate/iredapd +13 -0
  165. package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
  166. package/dist/server/engine/samples/logrotate/openldap +19 -0
  167. package/dist/server/engine/samples/logrotate/php-fpm +13 -0
  168. package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
  169. package/dist/server/engine/samples/openbsd/pf.conf +28 -0
  170. package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
  171. package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
  172. package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
  173. package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
  174. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
  175. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
  176. package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
  177. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
  178. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
  179. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
  180. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
  181. package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
  182. package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
  183. package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
  184. package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
  185. package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
  186. package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
  187. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
  188. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
  189. package/dist/server/engine/samples/postfix/main.cf +282 -0
  190. package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
  191. package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
  192. package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
  193. package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
  194. package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
  195. package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
  196. package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
  197. package/dist/server/engine/samples/postfix/master.cf +87 -0
  198. package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
  199. package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
  200. package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
  201. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
  202. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
  203. package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
  204. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
  205. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
  206. package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
  207. package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
  208. package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
  209. package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
  210. package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
  211. package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
  212. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
  213. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
  214. package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
  215. package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
  216. package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
  217. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
  218. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
  219. package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
  220. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
  221. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
  222. package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
  223. package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
  224. package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
  225. package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
  226. package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
  227. package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
  228. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
  229. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
  230. package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
  231. package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
  232. package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
  233. package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
  234. package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
  235. package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
  236. package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
  237. package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
  238. package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
  239. package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
  240. package/dist/server/engine/samples/spamassassin/local.cf +186 -0
  241. package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
  242. package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
  243. package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
  244. package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
  245. package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
  246. package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
  247. package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
  248. package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
  249. package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
  250. package/dist/server/engine/tools/add_enabled_service.py +60 -0
  251. package/dist/server/engine/tools/backup_mysql.sh +238 -0
  252. package/dist/server/engine/tools/backup_openldap.sh +230 -0
  253. package/dist/server/engine/tools/backup_pgsql.sh +217 -0
  254. package/dist/server/engine/tools/backup_sogo.sh +156 -0
  255. package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
  256. package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
  257. package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
  258. package/dist/server/engine/tools/enable_postscreen.sh +144 -0
  259. package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
  260. package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
  261. package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
  262. package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
  263. package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
  264. package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
  265. package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
  266. package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
  267. package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
  268. package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
  269. package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
  270. package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
  271. package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
  272. package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
  273. package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
  274. package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
  275. package/dist/server/engine/update/1.2/last_login.mysql +16 -0
  276. package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
  277. package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
  278. package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
  279. package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
  280. package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
  281. package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
  282. package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
  283. package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
  284. package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
  285. package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
  286. package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
  287. package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
  288. package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
  289. package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
  290. package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
  291. package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
  292. package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
  293. package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
  294. package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
  295. package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
  296. package/dist/server/engine/update/README.md +1 -0
  297. package/dist/server/engine/update/ldap/README.md +40 -0
  298. package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
  299. package/dist/server/index.js +55574 -53675
  300. package/dist/server/migrations/0071_gh_device_token.sql +3 -0
  301. package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
  302. package/dist/server/migrations/meta/_journal.json +14 -0
  303. package/dist/setup-HQIZLUOJ.js +20 -0
  304. package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
  305. package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
  306. package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
  307. package/package.json +1 -1
  308. package/dist/bare-ITM45QBX.js +0 -18
  309. package/dist/cloud-JMPHO3CW.js +0 -7
  310. package/dist/cloud-W5G6YXAY.js +0 -24
  311. package/dist/dist-es-4C322O5D.js +0 -22
  312. package/dist/docker-3FVJMFC3.js +0 -12
  313. package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
  314. package/dist/edge-import-Y34YL6JK.js +0 -39
  315. package/dist/executor-J7BHW5HF.js +0 -26
  316. package/dist/nginx-YZWKYKQU.js +0 -16
  317. package/dist/noop-RRNCIUI5.js +0 -7
  318. 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