Commit graph

260 commits

Author SHA1 Message Date
Arne Kepp c0530491c3 Add sieve pipe and filter (#574)
* First pass at adding support for pipe and filter in Sieve, excluding unit tests.
* Reduce insight into copied scripts
* Added test
* Adjustments related to switch to 16.04
2017-05-10 09:54:02 +02:00
Thomas A. Kilian 95d3375010 Upgrade to 16.04 (#571)
* Upgrade to ubuntu:16.04
2017-04-27 17:59:28 +02:00
alinmear 50ac2bdc07 Fix #526: fatal: no SASL authentication mechanisms (#556)
* Fix #526: fatal: no SASL authentication mechanisms

When using the container with SMTP_ONLY = 1, then the container fails
on ehlo because there is no valid sasl authentication mechanism
available. This happens because sasl has been enabled within
postfix/main.cf per default but sasl is not configured.

To fix this _setup_postfix_sasl does not depend anymore on
ENABLE_SASLAUTHD and will check in it's logic, whether to enable sasl
or not within postfix/main.cf.

* Fix #526: fatal: no SASL authentication mechanisms

When using the container with SMTP_ONLY = 1, then the container fails
on ehlo because there is no valid sasl authentication mechanism
available. This happens because sasl has been enabled within
postfix/main.cf per default but sasl is not configured.

To fix this _setup_postfix_sasl does not depend anymore on
ENABLE_SASLAUTHD and will check in it's logic, whether to enable sasl
or not within postfix/main.cf.

* Fix test
2017-04-26 14:56:32 +02:00
alinmear 26992bb66f #503 (#522)
* Add method overwrite_config()
This method takes 2 arguments:
  1.) Environment Variable Prefix
  2.) String of files separated by whitespace

e.g.
  export LDAP_SEARCH_BASE=dc=domain,dc=loc
  export LDAP_BIND_PW=test

  overwrite_config "LDAP_" "/etc/postfix/ldap-users.cf
  /etc/postfix/ldap-groups.cf"

Logic:
  + all env vars will be search for vars with the prefix LDAP_
  + afterwards they will be dissembled in key value pairs
    LDAP_BIND_PW=test --> bind_pw test
  + the key and value will be substituted within the provided files
  via sed

* Fix #503 added logic for custom configs provided at container
provisioning within /tmp/docker-mailserver

* Add additional unit tests for postfix ldap integration

    * check custom configs copied
    * check environment variables substituted

* Fix quoting problems in tests.bats

* Fix missing brackets in function _fix_var_amavis_permissions()

* Fix typo in _setup_ldap

* Fix notify in overwrite_config

* Fix typo

* Fix added dovecot ldap config provisioning again and Add notify for tasks
2017-04-26 14:56:08 +02:00
Thomas VIAL 62f6fbbaae Fixes #496 enabling all domains to get spam headers and spam checks (#563)
* Fixes #496 enabling all domains to get spam headers and spam checks (integration tests included)
2017-04-18 14:18:42 +02:00
Thomas A. Kilian a144f3811c Issue 538 (#541)
* adapted setup.sh to handle email aliases
* added needed scripts for alias management
* added integration tests
2017-04-17 18:27:28 +02:00
Thomas A. Kilian 7753d59d72 fixed postgrey inet parameter (#570)
* fixed postgrey inet parameter

* adapted test cases

	modified:   target/start-mailserver.sh
	modified:   test/tests.bats
2017-04-12 19:45:47 +02:00
Michael Als ec6e5eea39 Include whitelist_clients.local in postgrey setup from config folder (#564) 2017-04-12 17:59:04 +02:00
mplx 4536113a30 allow accounts which do not start with a-z (#568) 2017-04-07 22:28:19 +02:00
Thomas VIAL 912cb5676b Fixes #546 & #560 - comments and new lines should not be parsed (#562)
* Fixes #546 & #560 - comments and new lines should not be parsed
2017-03-28 10:59:02 +02:00
Daniel S. Reichenbach 62c20295f9 Fixes #451 - add incoming mail SPF policy checks (#543) 2017-03-14 17:21:17 +01:00
Kai Ren cb0714ff77 Integration test for extension address delivery (#528)
* Add integration test for extension address Dovecot LMTP delivery
2017-03-03 18:27:22 +01:00
Florian 7e4e3662b3 Hostname override fixes for docker option --net=host in conjunction with OVERRIDE_HOSTNAME (#517)
* Fixed wrong mail headers when using OVERRIDE_HOSTNAME by setting the the hostname explicitly

* Added tests and fixed hostname in dovecot conf

* Added missing tests

* Improved function naming and task notification message
2017-02-13 11:07:30 +01:00
Sven Kauber c7e4206466 Added greylisting using postgrey (#495)
* Added greylisting using postgrey
* Updated the documentation
2017-02-06 10:21:18 +01:00
Kai Ren d40ae81d09 Hardening TLS ciphers (#492)
* Hardening Dovecot TLS ciphers
* Mitigate Logjam vulnerability on Dovecot
* Mitigate Logjam vulnerability on Postfix
* Add Nmap tests of PCI compliance for Postfix and Dovecot
* Increase sleep duration on Makefile steps to avoid races
2017-01-25 14:10:40 +01:00
Kevin Crawley 16c90fc52a kubernetes fix (#484)
* Allow OVERRIDE_HOSTNAME
* Document the new environment variable
2017-01-20 23:30:29 +01:00
Thomas VIAL 805506fbea Fixes #468: cron (virus wiper) (#469)
* Fixes #468: cron (virus wiper)
2017-01-11 10:52:39 +01:00
Thomas VIAL 69d3bac45e Add bats asserts (#463)
* Added `bats-assert` for more detailed error, very useful locally and on Travis
* Moved `bats` to git submodule

Example:

```
not ok 52 checking opendkim: generator creates keys, tables and TrustedHosts
# (from function `assert_output' in file test/test_helper/bats-assert/src/assert.bash, line 239,
#  in test file test/tests.bats, line 368)
#   `assert_output 2' failed
# 
# -- output differs --
# expected : 2
# actual   : 4
# --
# 
```
2017-01-10 14:15:41 +01:00
Kai Ren 414413a5c9 Add .editorconfig rules and fix some indents (#462) 2017-01-09 23:53:09 +01:00
alinmear a7670ac5c1 Add #394: Postfix Virtual Transport (#461)
* Add #394: Postfix Virtual Transport
This makes it possible to specify a lmtp config file, by providing
POSTFIX_DAGENT.

Update - Readme with informations about #394

    * Add Variable ENABLE_POSTFIX_VIRTUAL_TRANSPORT (task)
    * Add Variable POSTFIX_DAGENT (section)

Added Unit tests for virtual transport

* Fix syntax error in test/tests.bats

* Fix Unit Test
2017-01-09 23:52:36 +01:00
Wolfgang Ocker 9095ba3803 Fix #443 - RIMAP support (#448)
* Add unit tests for #443 (rimap auth)
* Fix #443 - configure rimap for saslauth
* Fix #443 - reuse smtp-auth-login.txt when testing rimap auth
2017-01-03 10:55:03 +01:00
Wolfgang Ocker 461c88e6ae Fix mailuser tools (#441)
* Add some checks for user name matching in mail user scripts
* Fix user matching problems in mail user scripts
** fix matching problems at several places:
    "delmailuser a@example.com" deletes also user "aa@example.com"
    "delmailuser a@sub.example.com" deletes also user "a@sub-example.com"
** similar problems when inserting
** refactor and clean up
2016-12-30 20:06:44 +01:00
Thomas VIAL df752280e0 BREAKING CHANGES: (#432)
* Removed DISABLE_AMAVIS
* Renamed DISABLE_* to ENABLE_* with 0 as default value. (this must be explicit)
* Added missing tests for ENABLE_*
* Improved readme and docker-compose example

Should fix #256 and #386
2016-12-25 22:54:37 +01:00
Thomas VIAL 63cf0f9965 Disables clamav config in amavis when DISABLE_CLAMAV=1. Fixes #378 (#431) 2016-12-25 15:41:02 +01:00
Thomas VIAL ccad91c23d Improved start-mailserver output (#420)
* Improved start-mailserver output
* Fixed rework to make tests work again
* Improved output and updated SSL certs for LE
2016-12-23 23:56:39 +01:00
Influencer 83c0095e00 Script to update users password, made test and updated setup.sh (#413)
* Added script to update users password, made test and updated setup.sh

* Moved update password test to tests.bat

* Fixed test for update password
2016-12-21 20:12:05 +01:00
Thomas VIAL a9b1686e57
Added test 2016-12-17 21:53:09 +01:00
tyranron 9e862b8405 use "texthash" Postfix database format instead of "hash" 2016-11-15 21:48:09 +02:00
Dennis Stumm d3cd407295 Improve LDAP integration (#379)
* Move ldap files to target dir

* Move ldap files to target dir

* Update start-mailser.sh to use copied files

* Add the domainname from container to vhost

* Fix unary operator error

* List dovecot users only when LDAP disabled

* Minor
2016-11-13 11:39:45 +01:00
Dennis Stumm 3ec1fb202d Add ldap auth for postfix and dovecot (#352)
* Add ldap support for postfix and dovecot

* Add SASLAUTHD

* Update README.md

* Add necessary packages to dockerfile

* Add config files for ldap

* Add tests for ldap auth
2016-10-30 14:11:36 +01:00
Thomas VIAL 5298271bfd Fixes #364 - hostname/domainame is required. (#368) 2016-10-30 12:42:29 +01:00
Kai Ren 9111a92b18 improve OpenDKIM and OpenDMARC milters integration (#361) 2016-10-25 08:57:08 +02:00
Kai Ren a62062c382 make Postfix -> Dovecot delivery over LMTP (was LDA) (#305) (#360) 2016-10-24 15:03:08 +02:00
Thomas VIAL 08dc28e304 Fixes #346 and added a virusmail wiper triggered by a CRON (#347)
* Fixes #346 and added a virusmail wiper triggered by a CRON

* Renamed env to something more explicit VIRUSMAILS_DELETE_DELAY
2016-10-08 19:02:47 +02:00
Thomas VIAL c2eb975ace Fixes #329 (#330) 2016-09-23 08:22:57 +02:00
Thomas VIAL ab263b2ec3 Added check on logs regarding permission that occured sometimes... (#320)
* Added check on logs regarding permission that occured sometimes...

* Fixed test container
2016-09-11 14:26:04 +02:00
Kai Ren d9e1c0ad61 remove unnecessary spamd process (#312) 2016-09-06 13:06:25 +02:00
Morgan Kesler 02f854f4e9 Allow user to provide Amavis configuration (#299)
* Add the option of manually specifying paths to SSL certificates

* Adding tests for manual SSL changes

* Allow user provided configuration of amavis
2016-09-02 09:08:41 +02:00
Josef Friedrich ac36272d97 Improve and extend setup.sh (#295)
* Improve and extend setup.sh

Add subcommands 'debug show-mail-logs', 'inspect', 'login'. Add option
'-c' to specify the name of the running container. Add option '-i' to
specify the image name.

* Add tests for setup.sh
2016-09-01 12:10:23 +02:00
Morgan Kesler ee0c4244cc Add the option of manually specifying paths to SSL certificates (#296)
* Add the option of manually specifying paths to SSL certificates

* Adding tests for manual SSL changes
2016-08-31 15:15:39 +02:00
Jack Twilley cd7bc5f6bc Minor tweaks to letsencrypt configuration. (#288)
The letsencrypt-auto client creates cert.pem, chain.pem, fullchain.pem, and
privkey.pem in its default settings.  The simp_le client creates cert.pem,
fullchain.pem, and key.pem in its default settings.

A check for either privkey.pem or key.pem was added.

The chain.pem file was only used by the letsencrypt code for the creation of
combined.pem, which is not used by either postfix or dovecot.

The code to create a combined.pem file for letsencrypt was removed, as was the
corresponding test.
2016-08-29 13:46:16 +02:00
Josef Friedrich 98e59a7abe Implement ./setup.sh email list (#287)
This commit adds a script nammed 'listmailuser'. './setup.sh' uses this
this script for its subcommand './setup.sh email list'. A test have
been added too.
2016-08-29 13:44:36 +02:00
Jack Twilley 6d2d9dd738 Handle missing files more gracefully. (#265)
* Wrote functional tests for desired behavior.

Redoing the pull request, starting from current master.

The tests now fail where expected.

* Updated commands to handle missing files better.

The functional tests now pass.
2016-08-24 10:06:59 +02:00
Josef Friedrich e7de8b9245 Implement fetchmail (#260) (#271)
To retrieve emails from external mail accounts.
2016-08-21 22:13:13 +02:00
Zehir 8b289f6717 Adding the PERMIT_DOCKER option (#270)
* Adding the PERMIT_DOCKER option

See README.md for more informations

* Adding some test for PERMIT_DOCKER option

* Fix test cases

* Opendkim and Openmarc configuration

Fix docker network range
Adding opendkim and openmarc configuration

* Adding some options for tests

* Update log message

* Update tests
2016-08-21 22:10:13 +02:00
Kyle Ondy 4872d0e777 selective service disable (#250)
* Allow disabling amavis service

Setting the `DISABLE_AMAVIS=1` env var will skip the starting of the
amavis process.

* Enable option to not run spamassassin

Setting the `DISABLE_SPAMASSASSIN=1` env var will start this container
without spamassain.

* Allow starting of the container without clamav

Setting the `DISABLE_CLAMAV=1` env var will start this container without
starting clamav.
2016-08-04 21:04:26 +02:00
Thomas VIAL c813e6a4b3
Added test on catchall 2016-07-23 23:42:18 +02:00
Thomas VIAL 0f7e7bb693
Fixed #230 adding postifx configuration. Also added tests. 2016-07-23 21:01:01 +02:00
Thomas VIAL 8b144038e1
Changed test regarding certificate which has expired. Can't generate cert each time, so let's keep for the moment. 2016-07-23 18:20:19 +02:00
Thomas VIAL 1d942fa4d2 Merge pull request #211 from Crafter6432/usermanagement
Usermanagement
2016-06-20 12:18:15 +02:00
shim_ d0380ec74f comparing salted passwords is impossible 2016-06-14 16:38:57 +02:00
shim_ 7c63d00d77 added tests for addmailuser delmailuser 2016-06-14 16:17:06 +02:00
shim_ 63fd58a7cb switch to SHA512 2016-06-14 13:00:51 +02:00
Dominik Winter 18d910530c corrected wrong variable name 2016-06-04 03:12:18 +02:00
Dominik Winter 8c24b0f418 using -n because iptables resolved ip address to domain name 2016-06-04 02:53:44 +02:00
Dominik Winter e3b65aea7a corrected test cases 2016-06-04 02:46:33 +02:00
Dominik Winter 54763a9d59 added tests 2016-06-03 01:22:16 +02:00
Josef Friedrich bcd844b568 Add tests for additional dovecot configs 2016-05-29 22:36:06 +02:00
Thorsten von Eicken c8169c0a34 try #2 to fix tests 2016-05-23 22:23:54 -07:00
Thorsten von Eicken dcad03f3f0 add forgotten tests.bat 2016-05-23 21:30:22 -07:00
Thorsten von Eicken 288e79f59e tests for regexp alias 2016-05-23 20:38:11 -07:00
André Stein 9f63fa2ef4 Rename environment variable ENABLE_MANAGE_SIEVE to ENABLE_MANAGESIEVE. 2016-04-29 17:09:48 +02:00
André Stein 69b66d55bc Configure dovecot's managesieve plugin when the environment variable
ENABLE_MANAGE_SIEVE has been set.

Adapted README and updated tests.

The functionality has successfully been tested using the Sieve
Thunderbird plugin.
2016-04-29 15:24:10 +02:00
André Stein 21c26de1d4 Update typo in tests.bat. 2016-04-28 10:25:11 +02:00
André Stein 2f9f6b1002 Implement basic sieve support using Dovecot.
The dovecot-sieve plugin is installed and configured to apply sieve
as soon as a .dovecot.sieve file is encountered in the virtual user's
home directory (that is /var/mail/${domain}/${username}/.dovecot.sieve).

Transport has been changed in the postfix configuration to use
Dovecot LDA (see http://wiki.dovecot.org/LDA/Postfix) to actually
enable sieve filtering.

Tests have been added.
2016-04-28 08:57:50 +02:00
Thomas VIAL 9fbe20f3d0
Added tests on letsencrypt - #109 2016-04-26 19:39:08 +02:00
Thomas VIAL 3328e4c79d Merge pull request #163 from 00angus/v2_tests_with_docker
Changed few docker commands used in tests:
2016-04-26 10:49:55 +02:00
angus 86080ba378 Changed few docker commands used in tests:
removed hardcoded image name. Now the image to be used
is extracted directly from running instances.
2016-04-26 09:50:10 +02:00
Thomas VIAL 9415c099cc
Fixed #159: postfix-accounts.cf now generated with script + fixed line endings using sed in start-mailserver.sh 2016-04-25 16:00:39 +02:00
Thomas VIAL b9e1903083
- Fixed #152
- Moved Fail2ban to 0.9.x because OS version was buggy
- Improved documentation
- Reduce image size
2016-04-23 12:09:28 +02:00
Thomas VIAL 0322d890cd
Fixed i#152 Fail2ban config and tests 2016-04-22 17:51:14 +02:00
Thomas VIAL bc7b42e4bc Fixed tests for #143 2016-04-21 12:15:34 +02:00
Thomas VIAL f5f6637233 Fixed tests for #143 2016-04-21 11:42:41 +02:00
Thomas VIAL b58d0d33d6 Fixing #143 2016-04-21 01:08:14 +02:00
Thomas VIAL 4f611eec1d Fixed #143 adding a OpenDKIM keys generator and its integration tests 2016-04-20 23:01:32 +02:00
Thomas VIAL eb11714550 Fixing tests 2016-04-17 23:44:41 +02:00
Thomas VIAL 341aaab9d5 Fixing tests 2016-04-17 23:16:13 +02:00
Thomas VIAL 72d7207690 Fixing last tests on fail2ban regarding #102 and docker-mailserver v2 2016-04-17 22:59:35 +02:00
angus a6d666b450 Improvements on CI tests: now user account checks are working.
Need to work on fail2ban tests.
2016-04-17 20:10:09 +02:00
angus b35c79a8dd Adapted the user account setup for the test environment to the new v2 approach
(encrypted passwords).
Modified integration tests to adapt to dovecot.

Need to be worked out:
- user accounts checks: dir layout under dovecot probably include dynamic filenames.
  How can we handle that ?
- fail2ban container cannot ban via iptables if we do not run it with special
  privileges.
2016-04-17 12:01:05 +02:00
Thomas VIAL d6f9ffe9a6 Fixed some tests for #109 2016-04-13 23:16:46 +02:00
Thomas VIAL fc2e2ae591 Added folder target, simplified user configuration, few renames... Need to work on tests.... 2016-04-12 00:04:33 +02:00
angus c2881024c7 Clamav, Imap, Pop3, Dovecot, Postfix services are now logging into
/var/log/mail directory.
Fail2ban jails and logrotate config files have been updated accordingly.
Integration tests have been extended to include a check of the new path.
2016-04-08 00:23:12 +02:00
angus 0f94378842 All email-related services now logs in /var/log/mail/
and fail2ban config has been updated accordingly.
Added also a check before copying spamassassin rule file.
2016-04-01 17:18:13 +02:00
angus 5219aab9e8 Add ENABLE_FAIL2BAN environment variable to enable fail2ban service (it's not enabled by default, now).
* Changed/updated Makefile and integration tests
* Changed some grep expressions in the fail2ban tests
2016-03-31 12:33:47 +02:00
Chris54721 53959b8eae Add tests for SASL_PASSWD 2016-03-18 20:12:18 +01:00
Chris54721 3cabf10520 Add tests for main.cf overrides 2016-03-18 20:07:58 +01:00
Marko Jung 2769269bd6 new SMTP_ONLY environment option to disable all courier daemons 2016-02-29 23:52:10 +01:00
Thomas VIAL 890b70a133 Fixes 84 => moved to bats unit test framework 2016-02-25 00:17:01 +01:00
Thomas VIAL 91554372e5 Removed assert.sh and tests 2016-02-25 00:11:18 +01:00
Thomas VIAL 59a6649f0e Fixes #79 and add spamassassin configuration variables (see README.md) 2016-02-18 22:11:24 +01:00
Dominik Winter b54bce7b77 fixed timing problem for fail2ban test 2016-02-13 05:37:06 +01:00
Dominik Winter 5d157dceca added fail2ban tests 2016-02-13 04:43:57 +01:00
Javier Picado Ladrón de Guevara 7ce4b8c7d9 Update test.sh 2016-02-11 18:36:08 +01:00
Thomas VIAL 6cf6a5df5d Added test on default ssl certs and added letsencrypt X1 and X2 certificates 2016-02-08 23:47:42 +01:00
Thomas VIAL 97a495ae1d Added tests and simplified some of them 2016-02-03 22:45:11 +01:00
bilak 23ef4ae2ee - added test for opendkim 2016-01-28 20:56:15 +01:00
Thomas VIAL 0cf4b9eadb Improves #55 and #56 with OpenDKIM tests 2016-01-26 17:05:07 +01:00
Christian Musa 9a80374bc3 Add pop3 support 2016-01-24 02:41:25 -03:00
Thomas VIAL e97ce868eb Added tests for SMTP auth 2016-01-22 17:51:58 +01:00
Thomas VIAL f07a9ba852 Fix for #44 and #47, also enabling plain and login mechs. 2016-01-12 01:02:47 +01:00
Thomas VIAL b7e9221ffa Fixed error reported by jderusse 2015-12-05 19:08:39 +01:00
Thomas VIAL 07177f04cd Added IMAP connection integration test 2015-11-22 01:57:52 +01:00
Thomas VIAL 465d5de166 Testing Travis config with nc commands 2015-10-19 19:37:49 +02:00
Thomas VIAL 03b8614cab Testing with real emails 2015-10-19 15:55:36 +02:00
Thomas VIAL 74452917fb Added tests on error logs 2015-10-19 15:55:36 +02:00
Thomas VIAL 534b417800 Added test for crontab and services 2015-10-18 22:02:47 +02:00
Thomas VIAL 678329276e Added new line when needed and fixed a test 2015-10-18 21:30:53 +02:00
Thomas VIAL e8163dc728 Added missing assert.sh 2015-10-18 21:08:21 +02:00
Thomas VIAL 9bcced6f29 Added integration testing - #28 2015-10-18 21:02:46 +02:00