fix: HTTPS behind Anubis, and the site on the usage screen #3
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/keel-web!3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/web-https-waf-usage"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three Keel Web bugs from the maintainer's test screenshots (114, 024 and #2), and the dependencies for the WAF fixes of Keel-Linux/common#27.
114: no browser passed Anubis over HTTP
Root cause: Anubis sets its cookies
Secure; SameSite=None; Partitioned.default-anubisserved plain HTTP on port 80 only, so a browser never sent the cookies back and the challenge failed with "cookies disabled".Default chosen: in the cloud modes, where Anubis is on, the front is HTTPS only. This is what decision 0042 sets for sites (
redirect_http: true, thedefaultcertificate):/usr/local/share/ca-certificates/cert.crt,/etc/ssl/private/cert.key);tls.hsts);Anubis's cookie option is left at Secure: no mode with Anubis needs HTTP. A simple installation keeps Debian's site on port 80. It has no Anubis, so it has no cookie to carry.
The state hook refuses, and changes nothing, while the certificate or its key is missing. The package also activates
nginx-reload, so an upgrade from 0.1.0 serves the new front at once.024: the usage screen did not list the site
Root cause: Core's recipe ships
overlay/etc/confconsole/services.txtwith Webmin and SSH only (keel-core), and the web layer kept it. confconsole itself is not involved: its default template lists Web, but Core's overlay replaces it. So there is no confconsole change, and nothing overlaps confconsole#16.The web recipe's overlay now ships its own
services.txt, withWeb: http://<address>first, IPv6 then IPv4. Port 80 serves the site in simple mode and redirects to HTTPS behind Anubis, so the one URL is right in every mode.conf.d/mainfails the build when the usage screen does not list the site.#2: Anubis's challenge returned 500 without gzip
Root cause: upstream Anubis refuses one request in 64 at random from clients without gzip (Keel-Linux/anubis#2). keel-web 0.1.1 depends on
anubis (>= 1.27.0-0+keel2)and onkeel-overlay-coraza (>= 0.1.2). Closes #2.Evidence (LXC container of the step7b Web image, moved to cloud_simple with
keel spec apply, these packages installed)Chromium (playwright-core, normal Chrome user agent), through a relay of the test VM:
http://web.keel.test/https://web.keel.test/, "Making sure you're not a bot!"https://web.keel.test/, "Keel Web"http://[fd42:…:fe06]/http://10.0.3.158/Accept-Encoding: identitygot 200 × 200.Web: http://[…]andWeb: http://10.0.3.158.Unit tests:
batsgives 73 + 25 passing tests.COVERAGE_THRESHOLD=100 tests/coverage.shgives anubis-front 84/84, conf.d/main 20/20 and boot-test-lib 109/109. The package build is lintian-clean.Test plan
tests / coverageandpackages / buildgreen