1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2025-04-17 02:22:09 +00:00
Commit Graph

896 Commits

Author SHA1 Message Date
Rauno Moisto
78569e9a88 Fix DeprecationWarning in dnspython query vs resolve method
The resolve method disables resolving relative names by default. This change probably makes a7710e90 unnecessary. @JoshData added some additional changes from query to resolve.
2022-07-28 14:02:46 -04:00
KiekerJan
5787f0dfd5 fix access rights of after-backup script 2022-07-03 18:29:08 +02:00
KiekerJan
727d84004f add configurable backup dir to status checks 2022-06-13 20:25:48 +02:00
KiekerJan
69e15fa942 merge upstream v57 2022-06-13 20:07:50 +02:00
Joshua Tauberer
99474b348f Update backup to be compatible with duplicity 0.8.23
We were using duplicity 0.8.21-ppa202111091602~ubuntu1 from the duplicity PPA probably until June 5, which is when my box automatically updated to 0.8.23-ppa202205151528~ubuntu18.04.1. Starting with that version, two changes broke backups:

* The default s3 backend was changed to boto3. But boto3 depends on the AWS SDK which does not support Ubuntu 18.04, so we can't install it. Instead, we map s3: backup target URLs to the boto+s3 scheme which tells duplicity to use legacy boto. This should be reverted when we can switch to boto3.
* Contrary to the documentation, the s3 target no longer accepts a S3 hostname in the URL. It now reads the bucket from the hostname part of the URL. So we now drop the hostname from our target URL before passing it to duplicity and we pass the endpoint URL in a separate command-line argument. (The boto backend was dropped from duplicity's "uses_netloc" in 74d4cf44b1 (f5a07610d36bd242c3e5b98f8348879a468b866a_37_34), but other changes may be related.)

The change of target URL (due to both changes) seems to also cause duplicity to store cached data in a different directory within $STORAGE_ROOT/backup/cache, so on the next backup it will re-download cached manifest/signature files. Since the cache directory will still hold the prior data which is no longer needed, it might be a good idea to clear out the cache directory to save space. A system status checks message is added about that.

Fixes #2123
2022-06-12 08:17:48 -04:00
Joshua Tauberer
8bebaf6a48 Simplify duplicity command line by omitting rsync options if the backup target type is not rsync 2022-06-11 15:12:31 -04:00
KiekerJan
02f2a34bcf remove deprecated method call 2022-05-30 19:37:00 +02:00
KiekerJan
f575b1c2a2 add documentation 2022-05-29 11:53:24 +02:00
KiekerJan
c3750426df fix coding error 2022-05-25 22:47:20 +02:00
kiekerjan
f0f3c7a442
Merge pull request #12 from kiekerjan/master
Merge master into development branch
2022-05-25 22:33:19 +02:00
KiekerJan
bf4ec5697b merge upstream 2022-05-12 22:15:52 +02:00
KiekerJan
c1b7a9d4d2 Merge remote-tracking branch 'origin/master' into configurablebackupfolder 2022-04-24 16:01:04 +02:00
github@kiekerjan.isdronken.nl
5d186fcced Merge branch 'dns_to_unbound' 2022-04-21 21:54:11 +02:00
github@kiekerjan.isdronken.nl
6b30ee8665 skip retry on spamhaus dns lookups 2022-04-20 23:42:34 +02:00
KiekerJan
d359cef13e CSP header disrupts roundcube 2022-04-18 21:58:53 +02:00
KiekerJan
a1851a413b use actual unbound command to flush cache 2022-04-18 21:52:33 +02:00
github@kiekerjan.isdronken.nl
aaa7702d9d make dns resolver retrying explicit 2022-04-18 21:40:20 +02:00
KiekerJan
0392b07008 updates on nginx security headers 2022-04-18 21:16:21 +02:00
KiekerJan
1b0f7991db fix spelling error 2022-04-18 08:30:22 +02:00
KiekerJan
d35b068a73 add dns exception handling 2022-04-17 22:56:30 +02:00
KiekerJan
9b252e0209 retrying dns timeouts 2022-04-04 22:31:54 +02:00
KiekerJan
7ac4b412b0 attempts to reduce unnecessary dns update messages 2022-04-03 16:37:51 +02:00
lamberete
6e40c69cb5
Error message using IPv4 instead of failing IPv6.
One of the error messages around IPv6 was using the IPv4 for the output, making the error message confusing.
2022-03-26 13:50:24 +01:00
lamberete
c0e54f87d7
Sorting ds records on report.
When building the part of the report about the current DS records founded, they are added in the same order as they were received when calling query_dns(), which can differ from run to run. This was making the difflib.SequenceMatcher() method to find the same line removed and added one line later, and sending an Status Checks Change Notice email with the same line added and removed when there was actually no real changes.
2022-03-26 13:45:49 +01:00
KiekerJan
640751b606 initial changes to use unbound as local dns resolver instead of bind 2022-03-20 20:57:19 +01:00
KiekerJan
aefc4536d4 fix error when secondary dns server cannot be resolved, turn it into a warning 2022-03-15 21:41:59 +01:00
github@kiekerjan.isdronken.nl
2e23e44582 merge prelim 22.04 changes from upstream 2022-02-16 23:32:30 +01:00
github@kiekerjan.isdronken.nl
686e878af5 merge master 2022-02-02 12:15:22 +01:00
KiekerJan
72b08d6b9a fix installer bugs 2022-02-01 23:14:26 +01:00
Joshua Tauberer
cb564a130a Fix DNS secondary nameserver refesh failure retry period
Fixes #1979
2022-01-08 09:38:41 -05:00
Erik Hennig
520caf6557
fix: typo in system backup template (#2081) 2022-01-02 08:11:41 -05:00
github@kiekerjan.isdronken.nl
73833e9e76 merge master 2021-12-28 23:33:22 +01:00
KiekerJan
e98a86b8d0 merge upstream 2021-12-28 23:12:08 +01:00
Arno Hautala
a85c429a85
regex change to exclude comma from sasl_username (#2074)
as proposed in #2071 by @jvolkenant
2021-12-19 08:33:59 -05:00
github@kiekerjan.isdronken.nl
ded1b55ebd First steps in migrating to dkimpy-milter 2021-12-11 00:54:56 +01:00
KiekerJan
617dcbded9 merge upstream 2021-12-08 21:35:10 +01:00
steadfasterX
aac878dce5
fix: key flag id for KSK, fix format (#2063)
as mentioned (https://github.com/mail-in-a-box/mailinabox/pull/2033#issuecomment-976365087) KSK is 257, not 256
2021-11-23 11:06:17 -05:00
KiekerJan
21fd62ef4f more elaborate logfile analysis 2021-11-22 07:05:10 +01:00
kiekerjan
d8dd4cb215
Merge pull request #9 from mail-in-a-box/main
Merge upstream
2021-11-04 00:31:43 +01:00
Joshua Tauberer
34017548d5 Don't crash if a custom DNS entry is not under a zone managed by the box, fixes #1961 2021-10-22 18:39:53 -04:00
github@kiekerjan.isdronken.nl
3ce59172cf remove ignoring MFA for munin 2021-10-19 23:23:49 +02:00
github@kiekerjan.isdronken.nl
eeada2b9b5 merge changes from V55 upstream 2021-10-19 23:07:02 +02:00
Richard Willis
1c3bca53bb
Fix broken link in external-dns.html (#2045) 2021-10-18 07:36:48 -04:00
ukfhVp0zms
b643cb3478
Update calendar/contacts android app info (#2044)
DAVdroid has been renamed to DAVx⁵ and price increased from $3.69 to $5.99.
CardDAV-Sync free is no longer in beta.
CalDAV-Sync price increased from $2.89 to $2.99.
2021-10-13 19:09:05 -04:00
Joshua Tauberer
113b7bd827 Disable SMTPUTF8 in Postfix because Dovecot LMTP doesn't support it and bounces messages that require SMTPUTF8
By not advertising SMTPUTF8 support at the start, senders may opt to transmit recipient internationalized domain names in IDNA form instead, which will be deliverable.

Incoming mail with internationalized domains was probably working prior to our move to Ubuntu 18.04 when postfix's SMTPUTF8 support became enabled by default.

The previous commit is retained because Mail-in-a-Box users might prefer to keep SMTPUTF8 on for outbound mail, if they are not using internationalized domains for email, in which case the previous commit fixes the 'relay access denied' error even if the emails aren't deliverable.
2021-09-24 08:11:36 -04:00
Joshua Tauberer
3e19f85fad Add domain maps from Unicode forms of internationalized domains to their ASCII forms
When an email is received by Postfix using SMTPUTF8 and the recipient domain is a Unicode internationalized domain, it was failing to be delivered (bouncing with 'relay access denied') because our users and aliases tables only store ASCII (IDNA) forms of internationalized domains. In this commit, domain maps are added to the auto_aliases table from the Unicode form of each mail domain to its IDNA form, if those forms are different. The Postfix domains query is updated to look at the auto_aliases table now as well, since it is the only table with Unicode forms of the mail domains.

However, mail delivery is still not working since the Dovecot LMTP server does not support SMTPUTF8, and mail still bounces but with an error that SMTPUTF8 is not supported.
2021-09-24 08:11:36 -04:00
Joshua Tauberer
11e84d0d40 Move automatically generated aliases to a separate database table
They really should never have been conflated with the user-provided aliases.

Update the postfix alias map to query the automatically generated aliases with lowest priority.
2021-09-24 08:11:36 -04:00
Joshua Tauberer
79966e36e3 Set a cookie for /admin/munin pages to grant access to Munin reports
The /admin/munin routes used the same Authorization: header logic as the other API routes, but they are browsed directly in the browser because they are handled as static pages or as a proxy to a CGI script.

This required users to enter their email username/password for HTTP basic authentication in the standard browser auth prompt, which wasn't ideal (and may leak the password in browser storage). It also stopped working when MFA was enabled for user accounts.

A token is now set in a cookie when visiting /admin/munin which is then checked in the routes that proxy the Munin pages. The cookie's lifetime is kept limited to limit the opportunity for any unknown CSRF attacks via the Munin CGI script.
2021-09-24 08:11:36 -04:00
drpixie
df46e1311b
Include NSD config files from /etc/nsd/nsd.conf.d/*.conf (#2035)
And write MIAB dns zone config into /etc/nsd/nsd.conf.d/zones.conf. Delete lingering old zones.conf file.

Co-authored-by: Joshua Tauberer <jt@occams.info>
2021-09-24 08:07:40 -04:00
KiekerJan
e54dc19854 slightly change dns resolver call 2021-09-21 22:17:10 +02:00
Elsie Hupp
353084ce67
Use "smart invert" for dark mode (#2038)
* Use "smart invert" for dark mode

Signed-off-by: Elsie Hupp <9206310+elsiehupp@users.noreply.github.com>

* Add more contrast to form controls

Co-authored-by: Joshua Tauberer <jt@occams.info>
2021-09-19 09:53:03 -04:00
mailinabox-contributor
91079ab934
add numeric flag value to DNSSEC DS status message (#2033)
Some registrars (e.g. Porkbun) accept Key Data when creating a DS RR,
but accept only a numeric flags value to indicate the key type (256 for KSK, 257 for ZSK).

https://datatracker.ietf.org/doc/html/rfc5910#section-4.3
2021-09-10 16:12:41 -04:00
Joshua Tauberer
e5909a6287 Allow non-admin login to the control panel and show/hide menu items depending on the login state
* When logged out, no menu items are shown.
* When logged in, Log Out is shown.
* When logged in as an admin, the remaining menu items are also shown.
* When logged in as a non-admin, the mail and contacts/calendar instruction pages are shown.

Fixes #1987
2021-09-06 09:23:58 -04:00
Joshua Tauberer
26932ecb10 Add a 'welcome' panel to the control panel and make it the default page instead of the status checks which take too long to load
Fixes #2014
2021-09-06 09:23:58 -04:00
Joshua Tauberer
e884c4774f Replace HMAC-based session API keys with tokens stored in memory in the daemon process
Since the session cache clears keys after a period of time, this fixes #1821.

Based on https://github.com/mail-in-a-box/mailinabox/pull/2012, and so:

Co-Authored-By: NewbieOrange <NewbieOrange@users.noreply.github.com>

Also fixes #2029 by not revealing through the login failure error message whether a user exists or not.
2021-09-06 09:23:58 -04:00
Joshua Tauberer
53ec0f39cb Use 'secrets' to generate the system API key and remove some debugging-related code
* Rename the 'master' API key to be called the 'system' API key
* Generate the key using the Python secrets module which is meant for this
* Remove some debugging helper code which will be obsoleted by the upcoming changes for session keys
2021-09-06 09:23:58 -04:00
kiekerjan
98c00d1c6a
Merge branch 'mail-in-a-box:main' into master 2021-08-28 13:38:15 +02:00
David Duque
ba80d9e72d
Show backup retention period form when configuring B2 backups (#2024) 2021-08-23 06:25:41 -04:00
Joshua Tauberer
67b5711c68 Recommend that DS records be updated to not use SHA1 and exclude MUST NOT methods (SHA1) and the unlikely option RSASHA1-NSEC3-SHA1 (7) + SHA-384 (4) from the DS record suggestions 2021-08-22 14:43:46 -04:00
myfirstnameispaul
20ccda8710 Re-order DS record algorithms by digest type and revise warning message.
Note that 7, 4 is printed last in the status checks page but does not appear in the file, and I couldn't figure out why.
2021-08-22 14:29:36 -04:00
lamkin
daad122236
Ignore bad encoding in email addresses when parsing maillog files (#2017)
local/domain parts of email address should be standard ASCII or
UTF-8. Some email addresses contain extended ASCII, leading to
decode failure by the UTF-8 codec (and thus failure of the
Usage-Report script)

This change allows maillog parsing to continue over lines
containing such addresses
2021-08-16 11:46:32 -04:00
kiekerjan
ea452d5441
Merge branch 'mail-in-a-box:main' into master 2021-08-16 11:49:46 +02:00
KiekerJan
87be897d36 update DH security to 4096 2021-08-01 21:52:37 +02:00
NewbieOrange
21ad26e452
Disable auto-complete for 2FA code in the control panel login form (#2013) 2021-07-28 16:39:40 -04:00
KiekerJan
fa66b767af add debugging info to email admin tool 2021-07-26 10:04:35 +02:00
github@kiekerjan.isdronken.nl
75390e11fd cleanup 2021-07-24 21:19:01 +02:00
github@kiekerjan.isdronken.nl
efdd1f2442 initial work on configurable backup folder 2021-07-19 23:18:39 +02:00
KiekerJan
db612e91e5 do not generate dns zonefiles for www only websites with external DNS records 2021-06-25 00:36:12 +02:00
KiekerJan
eb36091d41 syntax error fix 2021-06-24 12:56:18 +02:00
github@kiekerjan.isdronken.nl
4f7957a5ab check presence of dnssec key file before reading it 2021-06-24 12:47:46 +02:00
KiekerJan
56f9df738f version recognition 2021-06-23 21:02:21 +02:00
KiekerJan
4323b5af01 simple fault catching email admin 2021-06-22 22:50:06 +02:00
github@kiekerjan.isdronken.nl
ca5fb3c2e0 Merge changes from upstream v0.54 2021-06-20 23:36:54 +02:00
github@kiekerjan.isdronken.nl
b007b74a89 try hide admin links 2021-05-31 23:29:00 +02:00
kiekerjan
c25bb085d6
Merge pull request #3 from kiekerjan/develop-dns-mods
Develop dns mods
2021-05-29 22:39:31 +02:00
KiekerJan
28b828be12 check service on ipv6 if it is not found on ipv4 2021-05-28 23:36:25 +02:00
github@kiekerjan.isdronken.nl
1d96be9ea9 take hidden master dns into account for the status checks 2021-05-24 21:32:13 +02:00
github@kiekerjan.isdronken.nl
d88d7d0371 Merge branch 'develop-dns-mods' of https://github.com/kiekerjan/mailinabox into develop-dns-mods 2021-05-24 14:24:18 +02:00
github@kiekerjan.isdronken.nl
ee87feb571 modify dns TTLs according to recommendations from zonemaster.iis.se 2021-05-24 14:24:09 +02:00
KiekerJan
e928b915f4 clean strings before comparing 2021-05-23 21:47:37 +02:00
KiekerJan
6be8ae1e4b correct use of Pyhton Booleans 2021-05-22 18:47:37 +02:00
github@kiekerjan.isdronken.nl
544f06b100 document DNS mods and make DNS options configurable per domain 2021-05-19 22:48:21 +02:00
github@kiekerjan.isdronken.nl
14394ef05b add missing . in nameserver definition 2021-05-19 22:01:25 +02:00
github@kiekerjan.isdronken.nl
856d94b74f use shorthand for ttl periods, more correct secondary ns list handling 2021-05-19 21:17:55 +02:00
github@kiekerjan.isdronken.nl
b9e7175d9f add principal functionality to act as hidden master 2021-05-18 22:51:29 +02:00
github@kiekerjan.isdronken.nl
8b13a3b177 short TTL for DNS entries if config file set 2021-05-18 13:28:09 +02:00
KiekerJan
1af0c58623 add daily ip blacklist check 2021-05-18 13:02:05 +02:00
Joshua Tauberer
d510c8ae2a Enable and recommend port 465 for mail submission instead of port 587 (fixes #1849)
Port 465 with "implicit" (i.e. always-on) TLS is a more secure approach than port 587 with explicit (i.e. optional and only on with STARTTLS). Although we reject credentials on port 587 without STARTTLS, by that point credentials have already been sent.
2021-05-15 16:42:14 -04:00
Joshua Tauberer
e283a12047 Add null SPF, DMARC, and MX records for automatically generated autoconfig, autodiscover, and mta-sts subdomains; add null MX records for custom A-record subdomains
All A/AAAA-resolvable domains that don't send or receive mail should have these null records.

This simplifies the handling of domains a bit by handling automatically generated subdomains more like other domains.
2021-05-15 16:42:14 -04:00
KiekerJan
aadd37e248 correct python spacing, sigh 2021-05-10 09:42:03 +02:00
KiekerJan
764a81d335 Merge branch 'develop-xapian-fts' 2021-05-09 21:20:58 +02:00
github@kiekerjan.isdronken.nl
2865cad111 take possible kiekerjan edition into account in tag 2021-05-09 21:16:22 +02:00
Joshua Tauberer
e421addf1c Pre-load domain purpopses when building DNS zonefiles rather than querying mail domains at each subdomain 2021-05-09 08:16:07 -04:00
Joshua Tauberer
354a774989 Remove a debug line added in 8cda58fb 2021-05-09 07:34:44 -04:00
github@kiekerjan.isdronken.nl
d875c9ff70 remove check on solr service 2021-05-08 23:04:13 +02:00
Joshua Tauberer
aaa81ec879 Fix indentation issue in bc4ae51c2d 2021-05-08 09:06:18 -04:00
John @ S4
d4c5872547
Make clear that non-AWS S3 backups are supported (#1947)
Just a few wording changes to show that it is possible to make S3 backups to other services than AWS - prompted by a thread on MIAB discourse.
2021-05-08 08:32:58 -04:00
Hala Alajlan
bc4ae51c2d
Handle query dns timeout unhandled error (#1950)
Co-authored-by: hala alajlan <halalajlan@gmail.com>
2021-05-08 08:26:40 -04:00
Jawad Seddar
12aaebfc54
custom.yaml: add support for X-Frame-Options header and proxy_redirect off (#1954) 2021-05-08 08:25:33 -04:00
github@kiekerjan.isdronken.nl
3609a9e96c fix Solr report 2021-04-29 23:11:19 +02:00