Update
New TurnKey WordPress version (19.0)
Changes:
- Update WordPress to latest upstream - v7.0.4.
- Upgraded base distribution to Debian 13.x/Trixie.
- Replace TurnKey custom Debian-Installer based 'di-live' with new custom TurnKey installer built from scratch; 'tkl-installer'.
- Updated release signing keys & apt repo keys - now included as 'turnkey-keys' deb package.
- Replace legacy '.list' apt remote config files with Deb822 '.sources' files.
- "Proper" IPv6 support. May still have some gaps and still requires cosmetic work but fully functional.
- Improved fail2ban config:
- Increased default findtime (10 minutes) & bumped maxretry (3) to minimize risk of user accidentally locking themself out.
- Removed redundant v18.x custom patches.
- Include 'zstd' by default to support smaller initramfs that unpacks faster.
- Replace 'ifupdown' with 'ifupdown-ng' (and 'ifupdown-ng-compat').
- Replace 'udhcpc' (IPv4 only) with 'dhcpcd-base' (dual stack ipv4/6). Also include custom TurnKey config (if-pre-up & if-post-down scripts provided by 'tkl-dhcpcd-ifupdown-glue') to ensure DHCP config is in sync with /etc/network/interfaces file.
- General code cleanup of TurnKey code; build code, build tools and TurnKey custom tools & libraries. Updates include linting, formating and style updates. Still WIP but solid start.
- Configuration console (confconsole):
- Bugfixes:
- Features:
- "Proper" support for IPv6:
- Make ifutil.py module code "IPv6 aware", including reliable management of /etc/network/interfaces with "inet6" stanza/s.
- Show IPv6 info on "usage" page - only shown if IPv6 configured. Special thanks to Marcos: https://github.com/marcos-mendez - https://popsolutions.co/
- "Proper" support for IPv6:
- Misc clean up and improvements in code and packaging. See Confconsole release notes for full details.
- Firstboot Initialization (inithooks):
- Bugfixes:
- Ensure everyboot scripts only run once per boot.
- firstboot.d/15regen-sslcert:
- Only services which are already running need to be restarted as restart is only to apply updated certs.
- firstboot.d/01ipconfig:
- Minor bugfix.
- Features/improvements and other changes of significance:
- Reimplement an 'inithooks.service' and refactor integration with getty1.
- Delay start of inithooks/confconsole at boot time to reduce chance of
boot messages overwriting inithooks/confconsole.
- Developers - please note that hooks with a prefix less than '30' will still run early, so should _always_ be non-interactive.
- TurnKey 'init-fence' (blocks web access at firstboot):
- Run by default on all builds pre firstboot initialization (previously only enabled on "headless" builds).
- New pre-seed variable 'AUTO_RUN' to skip interactive config (re-implements previous "headless" build functionality).
- Replace legacy init.d script with systemd 'turnkey-init-fence.service' (& script which is called by the service).
- Add support for 'systemctl reload turnkey-init-fence.service' - which restarts 'simplehttpd.py' (init-fence mini web server) but does not disable the firewall rules.
- Support for custom init-fence content.
- Update dynamically generated SSH information for IPv6 address display.
- Add IPv6 support to mini server.
- Ensure inithook 'SEC_UPDATES' pre-seed variable test is case insensitive; eliminates risk of unintended behavior when pre-seeding.
- Misc clean up and improvements in code and packaging. See Inithooks release notes for full details.
- Bugfixes:
- Web management console (webmin):
- Upgraded Webmin to latest upstream.
- Refactored TurnKey Webmin packaging process to support easier updates; with the intention of following upstream releases as closely as possible (provided via TurnKey apt repo).
- Updated default Webmin config:
- Listen on IPv6 by default.
- Preconfigured IPv6 firewall matching IPv4 rules (but not enabled - as per historical IPv4 default).
- Auto redirect http => https.
- Default 30 min user logout (can be overridden via login page "remember me" checkbox or webmin "authentication" config).
- Updated logging paths and fixed log file rotation.
- Backup (tklbam):
- Bugfixes:
- Fix broken help pager (not sure how long that has been broken!?).
- Fix broken tar command (deprecated functionality removed in Debian Trixie).
- Features/improvements:
- Migrate core program and direct dependency python2 runtime from cpython2 (EOL) to Pypy (still supported - packaged by TurnKey).
- Migrate all other components to python3. Note: remaining python2 TKLBAM code port to python3 is in progress but no ETA yet...
- Misc clean up and improvements in code and packaging. See TKLBAM release notes for full details.
- Bugfixes:
- Misc code cleanup and improvements.
- Full overhaul of TurnKey Adminer integration, including moving TurnKey customization files to /etc/adminer (from /usr/share).
- Multiple bugfixes/improvments to default Adminer theme.
- Updated webserver config; including hardening and Adminer specific log files.
- Fail2ban rules to protect Adminer log in.
- Limit access to any other databases other than locally installed database. Protects against Adminer being used as a tool to attack a thrid party server.
- Modify default Apache mod_ssl conf at build time, rather than overwriting it. Ensures that only explict edits are performed and avoid risk of future Debian updates being overwritten.
- Updated SSL/TLS cipher list - "intermediate" level as recommended by Mozilla. Aims to balance security and support for older clients.
- Explicitly set elliptic curves offered for ECDH key exchange.
- Harderned mod_security defaults:
- Block access to all '.' paths by default (e.g. '.env', '.git', etc) to harden security and avoid accidental disclosure of secrets. Note this will break third party Let's Encrypt integrations using HTTP-01 validation - e.g. certbot. TurnKey's integration is unaffected as it uses a custom HTTP server to serve the challenges.
- Set additional security headers:
X-Content-Type-Options: "nosniff" :
- Prevents files from being interpretted as something other than that declared by the content type. Content-Security-Policy "frame-ancestors 'self';" :
- Prevents other sites from embedding pages within frames, defends against clickjacking attacks.
- Enable HTTP/2 where possible. Note HTTP/2 is not compatable with Apache's mod_php - which is currently the default method that TurnKey LAMP based appliances host PHP applications. TurnKey will migrate to using PHP-FPM in the future.
- Redirect HTTP => HTTPS by default.
- Note: TLSv1.2 will be disabled by default in a future TurnKey release.
- Create default '/var/lib/php/sessions' cache dir and ensure it is writable by the webserver (default PHP session cache location for some PHP apps).