Commit graph

189 commits

Author SHA1 Message Date
Marek Walczak b4b19e76b7 Stretch backport (#813)
* install dovecot from backports

* dovecot 2.2.33 has a slightly different TLS-configuration than 2.2.27

* want to have both images a the same time

* make use of the /etc/dovecot/ssl as mkcert.sh (2.2.33) is using that folder for certs.
2018-02-04 21:27:47 +01:00
Marek Walczak 49b3867c1b debian stretch slim (#784)
* Switch to stretch-slim as base image.
 - first step correct the testdata, as newer packages are more strict
about the mail-structure.

* Switch to stretch-slim: correcting the test-environment and the build
 - add missing build-step to make
 - clean the userdb aswell
 - use timeout of netcat, as postgrey would not close the connection
 - there is 2 extra mail-logs -> assert_output 5
 - cosmetic: use "" instead of ''

* Switch to stretch-slim:
new image:
 - smaller size
 - 0 CVEs compared to 11 CVEs in ubuntu 16.04 Image
better backport situation
 - postfix 3.1.6 vs 3.1.0
 - fail2ban 0.9.6 vs 0.9.3
 ...
changes needed because of stretch-slim:
- add missing gnupg and iproute2 package
- remove non-free rar, unrar-free should do
- rsyslog does not add syslog user and has different conf-structure
- pyzor command discover was deprecated and is missing in the new
stretch package

- dovecot does not know SSLv2 anymore. removed because of warnings in
log

- iptables does not know imap3, IMAP working group chose imap2 in favor
of imap3

* Switch to debian stretch slim:
SSLv2 seems to be a not known protocol anymore - good!

* switch to debian stretch slim:
make this test more stable. there might be more than only one mail.log
(mail.info, mail.warn, ...)

* switch to debian stretc slim:
 new openssl 1.1.0 needs stronger ciphers, removed some weekers ones.
Please, look through the new list of cipher! this needs to be done in
another commit for all other SSL/TLS-Endpoints aswell.

* Switch to debian stretch slim:
let our server pre-empt the cipher list.
Did a read through, wwwDOTpostfixDOTorg/FORWARD_SECRECY_READMEDOThtml
and
wwwDOTpostfixDOTorg/TLS_READMEDOThtml

* Switch to debian stretch slim: lets give this openssl-based test a new and independent but identical container.  many other test on the main 'mail' container might interfere here.

* Switch to debian stretch slim: remove unused lines
2017-12-31 12:33:48 +01:00
kamuri 835939d856 Issue 747 (#748)
* fix for issue #747 (NOT TESTED YET)

Need to test this. Dont merge it yet.

* Small Cleanup and bug fixes Not done Yet!

Not done yet. Dont merge. See comment in issue #747

* Add --ignore-missing. Now is fixed.
2017-10-18 07:43:30 +02:00
kamuri 420e7741a1 Check for account changes and reload (Closes: #552)
Restart the daemons when changes are made to 'postfix-account.cf' and/or 'postfix-virtual.cf'
2017-10-10 08:15:18 +02:00
Darren McGrandle 5961b31e91 Enable user definable fetchmail poll times (#731)
* Enable user definable fetchmail poll times
* create new ENV variable FETCHMAIL_POLL in target/start-mailserver.sh
* change --daemon setting in supervisor-app.conf to use ENV var
* Put FETCHMAIL_POLL env variable in Dockerfile to handle case where
  user does not specify it in their docker-compose.yml
2017-10-04 22:10:18 +02:00
Johan Smits a2efdab5dd Merge pull request #719 from johansmitsnl/supervisor-sock (closes: #707)
fix(): Supervisor socket issue with overlay (closes: #707)
2017-09-17 08:58:46 +02:00
Daniel Panteleit dc6a5fd8e3 Prevent syslog logrotate warnings 2017-09-12 19:50:24 +02:00
Johan Smits ba62096550 fix(): Supervisor socket issue with overlay 2017-09-10 15:38:21 +02:00
Johan Smits 4cb8f4d4ae Improve the privacy of the client by removing sensitive details 2017-09-07 19:29:50 +02:00
Johan Smits 0fe86e796b Listen also on the ssl port 465 for clients (#709) 2017-09-07 18:08:25 +02:00
Johan Smits a2f6591212 Fix the hook that restarts the amavis server and causes it to (#699)
detach from supervisor.
2017-08-19 10:49:01 +02:00
Johan Smits 04904e77c4 Also search on the domain name for the virtual domain name in the ldap (Solves: #638) (#642)
Added test to check email delivery for a other domain then the primary
of the mailserver.
2017-08-19 10:32:00 +02:00
Johan Smits 9e7959fafe Issue 631 run services with supervisor (#676)
* installed supervisor. Still need to set tasks to run in foreground.

* setting programs to run in foreground

* seems to work now

* cleanup

* final fixes

* tests

* show startup output on stdout

* set Dovecot config files before starting it

* make all processes log to console

* Use the supervisor as the main process. The start-mailserver is started
from the supervisord and then this process triggers others.

Defined some default variable in the Dockerfile. In order for
supervisored to build the command lines the ENV variable need to be set.
Therefore the defaults are defined.

Some processes are not single processes like postfix and fail2ban and
they have a wrapper. The wrapper takes care of proper shutdown and checking
if the process is running or not. Supervisored will restart the wrapping
script if the process is gone.

Increased some delays between tests because sometimes they where to short
for all containers to be running.

* Remove obsolete comments, reset timeout value to old one, added new lines

* Add more time for analyzing the emails.

Sometimes it fails the tests and gives a wrong state about
the test. During testing 40 seconds was the safe value.
2017-08-07 17:39:40 +02:00
Johan Smits 8b19d54218 Expand the decoders for amavis (Resolves: #659) (#677)
Use the guidelines from Ubuntu and added some more.
Added a test to ensure the number of decoders are present.
Guideline: https://help.ubuntu.com/community/PostfixAmavisNew
2017-08-07 17:37:16 +02:00
Daniel Panteleit 60afbe1d16 Disable logrotate and cron job for updating clamav if clamav is disabled (fixes #660) (#667) 2017-07-23 21:31:41 +02:00
Daniel Panteleit 50dae03997 remove /etc/cron.weekly/fstrim since we don't want to fstrim in docker (#669) 2017-07-23 21:03:06 +02:00
Daniel Panteleit af8b1657ab Dockerfile cleanup (#665) 2017-07-23 19:38:34 +02:00
alinmear dbf65789f2 Integrate docker-configomat for configuration parts of start-mailserver.sh #648 (#650)
* Add submodule docker-configomat

* Add configomat.sh to Dockerfile

* Replaced override_config with configomat.sh
2017-07-10 00:11:00 +02:00
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
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
Eugene G fe8287f60a Fix battery drain for mobile clients (#554)
Regarding too frequent IDLE notifications mobile clients like k9mail have a massive battery drain.
More info:
https://github.com/k9mail/k-9/issues/1290
https://peterkieser.com/2011/03/25/androids-k-9-mail-battery-life-and-dovecots-push-imap/
2017-03-25 10:33:33 +01:00
Daniel S. Reichenbach 62c20295f9 Fixes #451 - add incoming mail SPF policy checks (#543) 2017-03-14 17:21:17 +01:00
Daniel Panteleit e7efeda036 Fixed virus-wiper script when using the default value for VIRUSMAILS_DELETE_DELAY (#540)
Moved variable VIRUSMAILS_DELETE_DELAY to Dockerfile. This variable will be written to /etc/environment in the start
script to make it visible to cron. Also removed echo in cron job to prevent sending mail for each run.
2017-03-14 15:22:19 +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
Thomas VIAL 805506fbea Fixes #468: cron (virus wiper) (#469)
* Fixes #468: cron (virus wiper)
2017-01-11 10:52:39 +01:00
Thomas VIAL ae9eaae68e Empty /etc/aliases to avoid error in log regarding format (we use virtual aliases in this image). (#429)
Fixes #425
2016-12-25 15:56:35 +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
Thomas VIAL c7da5583b5
Fixing test 2016-12-17 22:04:59 +01:00
Thomas VIAL 5ce957efa1
Fixes #401 by running update-locale 2016-12-17 21:26:16 +01: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
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
Pablo Castorino e4bab5b996 add ELK support (#331)
* add support to forward logs to ELK stack.
* from docker elk customize image with
* https://github.com/whyscream/postfix-grok-patterns
* custom imput
* override syslog filter.
* fix typo.
* Explicit forwarder vars and messages.
* add amavis grok
* add dovecot grok
* add geoip db
* add logstash geoip plugin
* add custom amavis grok from @tomav.
* switch to filebeats input
* refactor syslog filter
* add filebeat
* add template config
* replace rsyslog with filebeat.
2016-09-29 22:52:05 +02:00
Thomas VIAL c2eb975ace Fixes #329 (#330) 2016-09-23 08:22:57 +02:00
Kai Ren d9e1c0ad61 remove unnecessary spamd process (#312) 2016-09-06 13:06:25 +02:00
Josef Friedrich fce98eaecb Use COPY instead of ADD in Dockerfile (#301) (#304)
For other items (files, directories) that do not require ADD’s tar
auto-extraction capability, you should always use COPY.

  docker run --rm -i lukasmartinelli/hadolint < Dockerfile

shows:

  /dev/stdin:49 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:50 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:62 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:63 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:77 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:78 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:81 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:82 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:85 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:89 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:107 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:109 DL3020 Use COPY instead of ADD for files and folders
2016-09-04 20:37:16 +02:00
Josef Friedrich 4e253a098d Simplify Dockerfile (#300)
The 'ADD' instruction can handle directories as source. It is no need
to add every script in 'target/bin' explicitly. New scripts can be
added without touching the Dockerfile.
2016-09-02 09:08:05 +02:00
Josef Friedrich afb8c05cf9 Refactor Dockerfile (#293)
Split long "oneliner" in multiple lines to increase readability. Sort
installed packages alphabetically. Replace tabs with to two spaces.
2016-08-30 09:59:46 +02:00
Josef Friedrich 6c9901e260 Improve fetchmail support (#289)
Fetchmail is now configured by a script called 'setup-fetchmail'.
The script 'debug-fetchmail' is used inside the 'setup.sh' script.
2016-08-29 19:03:45 +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
Josef Friedrich e7de8b9245 Implement fetchmail (#260) (#271)
To retrieve emails from external mail accounts.
2016-08-21 22:13:13 +02:00
shim_ 94679df291 move addmailuser, delmailuser to target/bin 2016-06-15 19:50:01 +02:00
shim_ b9aceb9d6f add relevant files 2016-06-14 13:38:34 +02:00
Thorsten von Eicken 70dd4d1519 support sending via AWS SES 2016-05-22 21:45:00 -07:00
Thomas VIAL fd98dd4f16 Merge pull request #168 from 00angus/v2_smallfix
Sieve filters can now be installed at user setup.
2016-04-29 18:38:18 +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
angus 25406949ee Sieve filters can now be installed at user setup.
Changed Dockerfile to include a missing configuration file for dovecot (mailboxes).
Moved Postfix setup after DKIM/DMARC/SSL setup, near the override postfix setup.
2016-04-29 00:41:48 +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 6faf5ce88b
Refactored Dockerfile to reduce layers and image size 2016-04-24 13:46:48 +02:00
Thomas VIAL 8d23df41fa
Kept @00angus filter file for dovecot 2016-04-23 20:20:25 +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 0a0a0cab80
Changed Dockerfile to reduce image size on #109 2016-04-21 18:04:33 +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 2b8bf1b80d Changed documentation for #109 2016-04-20 10:15:51 +02:00
Thomas VIAL c63af94788 Changed log location using Dockerfile #109 2016-04-18 23:38:52 +02:00
Thomas VIAL 180390107e Changed Fail2ban config for #109 2016-04-18 22:57:39 +02:00
Thomas VIAL 72d7207690 Fixing last tests on fail2ban regarding #102 and docker-mailserver v2 2016-04-17 22:59:35 +02:00
Thomas VIAL 2adc559a43 Fixed part of tests for #109 2016-04-15 21:02:41 +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 ee0d0853dd Dovecot based version of the mailserver.
Courier and Cyrus Sasl have been removed and substituted with Dovecot which now
handle authentication for Postfix, Imap and Pop3, with support for SSL.
This allow the use of several encryption schemes for the password as well as a
single user db.
OpenDKIM keys can now be provided at the startup and will be used instead of
generating new ones (so that you don't have to change your DNS configuration).

This version builds correctly on Docker but no integration tests have been
reworked to accommodate Dovecot instead of Courier and Cyrus Sasl. As such
at present no automatic tests can be executed.
2016-04-07 14:42:07 +02:00
Dominik Winter 7e7c34a256 added fail2ban 2016-02-12 00:19:21 +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
bilak 07ec823f45 - added DMARC (opendmarc) support with basic setup 2016-01-26 18:26:50 +01:00
Thomas VIAL 713fd8dc30 Merge branch 'pop3-support' of https://github.com/crash7/docker-mailserver into crash7-pop3-support 2016-01-26 12:56:26 +01:00
Christian Musa 9a80374bc3 Add pop3 support 2016-01-24 02:41:25 -03:00
bilak 5176ac03b5 - added DKIM support 2016-01-20 16:41:34 +01:00
Thomas VIAL f07a9ba852 Fix for #44 and #47, also enabling plain and login mechs. 2016-01-12 01:02:47 +01:00
Ian Andrews d5c6167dd3 Added SMTP and IMAP ports 2016-01-08 11:52:06 -05:00
Thomas VIAL d7ce15957f Fixes #38 (authdeamon pseudo-issue) 2015-11-22 01:48:19 +01:00
Dimitri Kopriwa 3b55aa735d added rm -rf /var/lib/apt/lists/* 2015-11-20 17:31:47 +01:00
Thomas VIAL cc1715cb51 Added netcat 2015-10-19 15:55:36 +02:00
Thomas VIAL 9bcced6f29 Added integration testing - #28 2015-10-18 21:02:46 +02:00
Thomas VIAL c3c711afd0 Fixes #18 => removed --no-install-recommends 2015-09-12 11:30:24 +02:00
Thomas VIAL f18559f1c1 Fixed #18 => moved from fam to gamin and added a 'docker' user with id '5000' 2015-09-12 10:54:30 +02:00
Thomas VIAL a848a55177 Added a way to generate and configure a specific SSL certificate for postfix #14 2015-08-18 13:13:56 +02:00
Thomas VIAL 320156439f Fixes #8 - BC BREAK - User configuration is no longer in docker-compose.yml to make it easier to maintain 2015-07-16 19:35:11 +02:00
Thomas VIAL a3634190b0 Added vim. 2015-07-04 15:54:26 +02:00
Thomas VIAL 3dcceaef0c Changed permission to allow editing 2015-07-01 14:10:04 +02:00
Thomas VIAL ccca157920 Added SSL for courier-imap using courier-imap-ssl.
Fixed /etc/postfix/vhost issue.
2015-03-31 19:31:18 +02:00
Thomas VIAL ef34462e34 Added default postfix configuration files 2015-03-31 17:27:54 +02:00
Thomas VIAL 9cd746ef33 Simplified configurations 2015-03-29 14:07:56 +02:00
Thomas VIAL 22a54827ff Working image. 2015-03-28 16:44:40 +01:00
Thomas VIAL 4227d04753 First commit. Need to add README and default configurations. 2015-03-28 15:59:15 +01:00