Commit Graph

1664 Commits (84d156d02f9b7641de6a312538e96667de900f1f)

Author SHA1 Message Date
Florent Daigniere 3721a6aa02 Merge branch 'master' of https://github.com/Mailu/Mailu into HEAD
bors[bot] 2104c04e3b
Merge
2544: Fix : Make quotas adjustable in 50MiB increments r=mergify[bot] a=nextgens

## What type of PR?

enhancement

## What does this PR do?

Make quotas adjustable in 50MiB increments

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 4c3c628ca4 dedup
Florent Daigniere 19bd9362d3 As suggested by ghost
Florent Daigniere f1e5044dbe Add to the list, sort it
bors[bot] a8630c5a3b
Merge
2550: Webmail hardening r=mergify[bot] a=nextgens

## What type of PR?

enhancement

## What does this PR do?

Add [Snuffleupagus](https://github.com/jvoisin/snuffleupagus/) (a modern Suhosin replacement) to protect webmails.

It may be possible to harden further, by encrypting some of the cookies and auditing the usage of gpg more closely.

This seems to work for me.

### Related issue(s)

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 02f2679dc4 name collision
Florent Daigniere b08d940d09 See https://github.com/decalage2/oletools/issues/659
Florent Daigniere a8061f3ed3 doh
Florent Daigniere 12117cef37 Reduce the scope of the try: except
Florent Daigniere 612db96209 Block executable file extensions (closes )
Florent Daigniere 709023ab5a dimitri said "block it"
So let's block any macro with AUTOEXEC
Florent Daigniere 3bdc57adbc Forgot this
Florent Daigniere e43effab63 Glad there is a test
Florent Daigniere d793c5eed8 Dup symbol
Florent Daigniere e03d91a1ec Merge remote-tracking branch 'upstream/master' into oletools
Florent Daigniere 9fcff5e745 Pin what we get from edge
Florent Daigniere 63a12d9857 changes requested by ghost
Florent Daigniere 546884d10c ghost's requested changes
Florent Daigniere 7e1ab7978e Block VBA Stomping too
Florent Daigniere 4881e0db2a ghost is right, it should be pinned here too
Florent Daigniere c1144612be
fix sorting
Florent Daigniere 4d8bd210c5
Update run_dev.sh
Florent Daigniere ee512112fb
fix flask db history
Florent Daigniere adacf579fc Rollback to mysql-connector-python==8.0.29
See 
Florent Daigniere 3e45a791cf Implement oletools to filter out bad macros
bors[bot] 9c6e9b05db
Merge
2543: Fix : make public announcements work r=nextgens a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

Ensure public announcements bypass filters.

They can still time-out... but this is already a big improvement that we should be able to backport.

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 9e61a33cb2 Merge branch 'master' of https://github.com/Mailu/Mailu into webmail-hardening
Florent Daigniere f994c8687e doh
Florent Daigniere 44c47586ea Fix potential permission problems
Florent Daigniere d3d7916b58 Merge remote-tracking branch 'upstream/master' into upgrade-alpine
Florent Daigniere 45b01db9de Fix the language switcher
Florent Daigniere 3fc0a0e7fa Merge branch 'master' of https://github.com/Mailu/Mailu into fetchmail-improvements
Florent Daigniere 4da2db1b0b add comment as requested
Florent Daigniere c79e8d3852 Fix display bug
bors[bot] 553b02fb3d
Merge
2529: Improve fetchmail r=mergify[bot] a=nextgens

## What type of PR?

enhancement

## What does this PR do?

Improve fetchmail:
- allow delivery via LMTP (faster, bypassing the filters)
- allow several folders to be retrieved
- run fetchmail as non-root
- tweak the compose file to ensure we have all the dependencies

### Related issue(s)
- closes  
- closes  
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.

Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Co-authored-by: Florent Daigniere <nextgens@users.noreply.github.com>
bors[bot] 31c6c26ec8
Merge
2547: Disable libhardened-malloc for non x86. r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

Support is going to be a nightmare if RPI4 is not working; We can always reintroduce it later.

### Related issue(s)
- closes  


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere dcf11aea48 Don't force a password reset
Florent Daigniere db9ed1fd59 Disable libhardened-malloc for non x86.
@see 

Support is going to be a nightmare if RPI4 is not working.
Florent Daigniere f802601a08
Update f4f0f89e0047_.py
Florent Daigniere d5ac9199a0
Update 7ac252f2bbbf_.py
Florent Daigniere 7822b41048 same for domains
Florent Daigniere ef9cc3c866 Show spoofing on /admin/user/list too
Florent Daigniere 38507b2e1b Close : Implement a GUI for WILDCARD_SENDERS
Florent Daigniere 6a22c82c02 Fix run_dev
Florent Daigniere cf7404e26c Fix : Make quotas adjustable in 50MiB increments
Florent Daigniere b20bf996ec Fix : make public announcements work
Florent Daigniere e2d4e3eb2e Implement header authentication via external proxy
Florent Daigniere e5ab9821f9 Add snuffleupagus
This seems to work in my limited testing.
Florent Daigniere bdc085048d Restore the Dockerfile like it was
Florent Daigniere e3b875aa6b Well, -i stands for --insecure
Florent Daigniere 699be6f9fa Drop privs when running admin too
Florent Daigniere 42cd5bf2dc Move it to base since admin will also use it
Florent Daigniere e5a1a353db Upgrade to alpine 3.16.3
This has PHP fixes and a new rspamd
Florent Daigniere 86637f0259 Make setup use the base image
bors[bot] 68bb8da2b7
Merge
2538: Fix the ARM build again r=mergify[bot] a=nextgens

I have double-checked from the builder and this works.

gcc -v from the alpine image tells me that we have  ``--enable-default-pie``

Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 7745420fe0 Fix the ARM build again
bors[bot] b66f3fe9de
Merge
2537: Fix the armv7 build (again)! r=mergify[bot] a=nextgens

Revert "simplify": ghostwheel42's approach was right
This reverts commit 04f6bd2633.

Without the build still errors-out because of ``set -euxo pipefail``
see https://github.com/Mailu/Mailu/actions/runs/3479399158/jobs/5817902589

Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere b9b0c77d2e Revert "simplify": ghostwheel42's approach was right
This reverts commit 04f6bd2633.
bors[bot] f43c8c652e
Merge
2483: Introduce FETCHMAIL_ENABLED r=mergify[bot] a=DjVinnii

## What type of PR?

Enhancement

## What does this PR do?
Add `FETCHMAIL_ENABLED` to enable/disable the Fetchmail functionality in the Admin UI.

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


2535: fix the linux/arm/v7 build r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

The arm builder is running aarch64 ... and there is no package for arm/v7


Co-authored-by: Vincent Kling <v.kling@vinniict.nl>
Co-authored-by: Dimitri Huisman <diman@huisman.xyz>
Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Dimitri Huisman 8afb544a10
Default FETCHMAIL_ENABLED to False
Florent Daigniere 32f3241569 ensure we have -pie too
Florent Daigniere 7ab3d8f9fe There is no good reason not to export them is the base image too
Florent Daigniere aa44a42654 ensure we compile the wheels with bells and whistles too
Florent Daigniere 04f6bd2633 simplify
Florent Daigniere d43e7f72df ghostwheel42's suggestion
Florent Daigniere 1f895d5f82 ghostwheel42's suggestion
Florent Daigniere 031a157ad9 fix the linux/arm/v7 build
bors[bot] 04a196c417
Merge
2525: Switch to GrapheneOS's hardened_malloc r=mergify[bot] a=nextgens

## What type of PR?

Feature

## What does this PR do?

Switch to GrapheneOS's hardened_malloc

This was suggested during the dev meeting of the 18/09/22.

It may break things and it may make things unbearably slow... but it should also make the exploitation of memory corruption bugs a lot harder.

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


2534: Close : document SQLALCHEMY_DATABASE_URI r=mergify[bot] a=nextgens

## What type of PR?

documentation

## What does this PR do?

document SQLALCHEMY_DATABASE_URI

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
bors[bot] 40bdf7a6d9
Merge
2530: disable SESSION_COOKIE_SECURE when TLS_FLAVOR=notls r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

People are unlikely to proxy everything

### Related issue(s)
- closes 

Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere b9e5560fb6 Better way to express the same thing
Thanks @ghostwheel42
Florent Daigniere 66de1dcec8 Change the logic
The idea here is that if you have set SESSION_COOKIE_SECURE we should
honor that... and if you haven't we should try to do the right thing.
Florent Daigniere 81628149a2 don't fake the library
Florent Daigniere 9b2f018be6 add --no-cache
Florent Daigniere 76f8517e00 This is still required (as TLS_FLAVOR isn't set)
Florent Daigniere b9564c0bc9 This shouldn't have been commited
Florent Daigniere 19af2944d7 Refactor as requested
Alexander Graf 6b470ac403
Allow proper JS debugging, speed-up assets dev-build, disable redirect-debug by default.
Florent Daigniere 7aad1158fb @ghostwheel42 will fix it in another PR
Florent Daigniere a566cb07d6 fix
Florent Daigniere 08b3a2814b Merge branch 'master' of https://github.com/Mailu/Mailu into notls
Florent Daigniere 6474108056 Use a join() instead
Florent Daigniere c0c91691fd Fix the issue on /admin/fetch/edit
Alexander Graf b0b64a8e63
Use FLASK_DEBUG, fix assets, show startup errors.
Florent Daigniere 505bb79a78 Don't set the secure Cookie flag if TLS_FLAVOR=notls
Florent Daigniere 08a9ab9a56 Improve fetchmail
Florent Daigniere 455180043d doh
bors[bot] 8a90f83bd0
Merge
2514: Update deps r=mergify[bot] a=ghostwheel42

## What type of PR?

update python dependencies

## What does this PR do?

Update python deps in base image


Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
Florent Daigniere f11c451403 Restrict it to arch where there is a package
Florent Daigniere 97df65e9ef Switch to GrapheneOS's hardened_malloc
This was suggested during the dev meeting of the 18/09/22.

It may break things and it may make things unbearably slow
bors[bot] 745c211c4a
Merge
2523: fix JS error r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

It fixes a bug whereby one may have to click twice on the submit button depending on timing.

e.trigger() will error out on most browsers.

Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
bors[bot] 0839490beb
Merge
2479: Rework the anti-spoofing rule r=mergify[bot] a=nextgens

## What type of PR?

Feature

## What does this PR do?

We shouldn't assume that Mailu is the only MTA allowed to send emails on behalf of the domains it hosts.
We should also ensure that it's non-trivial for email-spoofing of hosted domains to happen

Previously we were preventing any spoofing of the envelope from; Now we are preventing spoofing of both the envelope from and the header from unless some form of authentication passes (is a RELAYHOST, SPF, DKIM, ARC)

### Related issue(s)
- close 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere c91c9df134 fix error
Alexander Graf e0d2432c6b
Rename data-ordered to data-sort
Alexander Graf 2a4402cdc2
Fix datatable for list fo sign-up domains
Alexander Graf af6cf5fd1d
Fix language selector without session
Alexander Graf 2778641e78
Fix screen reader title of language selector
Alexander Graf 4776094ea7
Configure datatables on missing tables, add sign in button to sso page.
Alexander Graf 6218b36372
configure datatables via html5 data attributes
Alexander Graf 1ae9156756
Add bcyrpt as direct dependency for better crypto. Also some updates
Alexander Graf a74396a9ef
Fix wtforms usage
Alexander Graf 047413185e
Mask Flask-SQLAlchemy >= 3.0.0 for now as it breaks mailu
Alexander Graf 7e36694b64
Update python deps
Alexander Graf 4b179d9008
Merge branch 'master' into hibp
Alexander Graf 36019a8ce9
Don't show Dockerfile before building
Alexander Graf 91e12d510d
Use default password used everywhere else
Alexander Graf defd533319
Don't duplicate hidden fields
Alexander Graf db87a0f3a1
Move temporary db into container and show docker run command
Alexander Graf f7caaddbec
Speed up asset building when developing
Alexander Graf 71263f1a8c
Add more env variables and restyle code
Alexander Graf fd8570ec34
Remove unused QUOTA_STORAGE_URL
Alexander Graf bbeb211d72
Listen to localhost by default
Alexander Graf 1d90dc3ea3
Allow running without redis
Alexander Graf c507b765be
Improve dev runner
Alexander Graf 8732b70b30
Add shell script to run admin dev environment
Alexander Graf ea636a1835
Fix hibp test
Alexander Graf 311f41c331
Add missing hidden fields
Alexander Graf 27a5f9db65
Reformatting
Vincent Kling 83fdc07a6f Default FETCHMAIL_ENABLED to True
Florent Daigniere 54e9858633 this
Florent Daigniere 14f802fb4a untested but that should work
bors[bot] e0ff135a00
Merge
2498: Implement ITERATE in podop r=mergify[bot] a=nextgens

## What type of PR?

Feature

## What does this PR do?

This makes ``doveadm -A`` work.

The easiest way to try it out is:
```
doveadm dict iter proxy:/tmp/podop.socket:auth shared/userdb

or 

doveadm user '*'
```

The protocol is described at https://doc.dovecot.org/developer_manual/design/dict_protocol/
The current version of dovecot is not using flags... so there's little gain in implementing them.

### Related issue(s)
- close 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
Alexander Graf c57706ad27
Duh
Alexander Graf 46773f639b
Return 404 is user-id cannot be parsed
Alexander Graf 595b32cf97
Fix quota return value
Alexander Graf bec0b1c3b2
Fix variable name
Florent Daigniere 001acd60ac doh2
Alexander Graf dec5309ef9
Fix typo
Florent Daigniere 6b7026ef69 Here too
Florent Daigniere 24b2c7c04a doh
Florent Daigniere 66250e396c refactor
wkr d920b3d037 fix(auto-reply): include start and end dates in the auto-reply period; issue
Florent Daigniere ff9f152a52 This may be helpful too
Florent Daigniere 5137b235e9 whitelist what we know works
If other people use other arch and want their builds to go faster we can
whitelist them too after they have confirmed it works.
Alexander Graf a2d43be6de
Fix building wheels when deps need to compile
bors[bot] 659cf8894c
Merge
2502: Resolve using socrate function r=mergify[bot] a=ghostwheel42

## What type of PR?

enhancement

## What does this PR do?

nginx.py had a copy of the socrate function resolve_hostname.
This removes the duplicated code and uses the socrate function.
The socrate functions does the same but prefers ipv4 addresses when resolving.


Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
Alexander Graf 91f86a4c2a
Resolve using socrate function
Alexander Graf bba98b320e
Fix armv7 build by manually downloading crates.io index
Florent Daigniere 9cb8df57c6 enforce at least 8 chars
Florent Daigniere afbaabd8cd v1
Florent Daigniere 6def1b555b doh
Florent Daigniere c1f571a4c3 Speed things up.
If we want to go further than this we should change podop's incr(), pass
the flags and make admin process the results.
Florent Daigniere 96d9289630 No need to send an extra \n
Florent Daigniere cdc9b63a46 Guard the message logging too
Florent Daigniere 2a417dbfc2 doesn't belong here
Florent Daigniere 1ce889b91b Do it the pythonic way
Florent Daigniere e10527a4bf This is not used anymore
Florent Daigniere 1ae4c37cb9 Don't do fancy, just re-raise it
Florent Daigniere 5ec4277e1e Make it async. I'm not sure it's a good idea
Florent Daigniere cf34be967c Implement ITERATE