Skip to content

Tech Meeting Notes 2020 06 04

Erik Moeller edited this page Jun 4, 2020 · 4 revisions

SecureDrop Tech Meeting, June 4, 2020

Topic: Migration to a new server OS before the Ubuntu 16.04 end-of-life

LTS schedule for Ubuntu: https://ubuntu.com/about/release-cycle

16.04 reaches EOL 2021-04-30

What have we learned from the Xenial migration - what went well/could be improved?

  • (Kushal) Even Ubuntu team doesn't do sufficient testing of its upgrades
  • (Conor) We experimented with using Journalist Interface for notifying admins, which proved very valuable
  • (Conor) Went on-site a few times, which helped, but we may not be able to do it this time
  • (Mickael) There were package differences between versions. Some versions of Ubuntu no longer have certain packages. Some Python libraries interacted differently with the system.
  • (Kushal) Our use of dh-virtualenv eases the burden for future upgrades
  • Ultimately lost only a few instances, and (anecdotally) a decent number did it without interactive assistance
  • (Kevin) We have more interaction with folks now, which should be a big help

What are the options for addressing end-of-life this time around?

  • (Kushal) Ubuntu 20.04, which will be supported until 2025
  • (Kev) If we can do unattended upgrade to 18.04, I would prefer it
  • (Conor) More research required, but quite skeptical. Also feel that we should aim for 20.04
  • (Kev) Agree, if manual intervention required, go straight to 20.04
  • (Mickael) Do we expect issues with Python support/versions?
  • (Kushal) We'll be upgraded to the latest Python
  • (Conor) 3.8 on 20.04 I think
  • (Conor) Getting us to 20.04 will give us breathing room for investigating other server OS options

CONSENSUS:

  • Additional research required to understand whether or not unattended upgrade is at all feasible
  • If possible, upgrade to 20.04 seems highly desirable to give ourselves breathing room

How long will we support new OS alongside old OS?

  • (Kushal) Short window during which both operating systems are supported
  • (Conor) Practically speaking we have to support 16.04 until April 30.
  • (Conor) Would like to aim for 3 months window
  • (Kev) This means we're on the hook for testing every release on both operating systems

CONSENSUS:

  • Aiming for 3 months of parallel support of Ubuntu 16.04/20.04

Do we want to do a full reinstall or a do-release-upgrade * 2?

  • (Kev) Need to understand time and complexity involved. do-release-upgrade was less work and we were confident that it was not going to be error-prone, but doubling that up will increase wall time and points of failure.
  • (Erik) Worried about % of instances dropping off if we force reinstall
  • (Conor) As a maintainer I do like the "fresh start" but agree it's a barrier
  • (Mickael) Have observed configuration drift when you run upgrades, also an important area to research

CONSENSUS:

  • Need to do more research on upgrade paths and upgrade costs; config drift

Do we want to enforce v3 migration as part of this upgrade?

(Kev) Would increase complexity for admins -- will have to work with journalist teams/web teams (Conor) We can start advocating move to v3 independently (Kev) Are there security concerns re: v2? (Conor) Yes, but should do fresh write-up (Ro) We've made a little push there, but we don't really get a response (Conor) Crypto is much stronger - v2 uses crypto that is not state of the art both in terms of key length & primitives. One of the best changes we can make for source protection. (Ro) Perhaps v2 EOL could be 2-3 months later (Mickael) There are also implications for comms with existing sources. Note that with HTTPSE rulesets, onion address can be replaced transparently, which could reduce comms burden. (Conor) Important to get folks to do Tails upgrades for v3 migration (Kev) We could push for two major updates, end-of-life for v2 services(John) seconded, because v2+v3 QA was painful, and because as Conor pointed out v3 helps sources -- why wait a year? (Erik) In favor of early notification in JI, but a single release that deprecates v2 & Ubuntu 16.04 (Ro) Could add notice to Tails graphical updater for deprecation warning

CONSENSUS:

  • Early notifications regarding v2/v3, potentially as part of 1.5.0
  • Let's do some data gathering re: current v3 adoption :)

STILL TBD:

  • An early release that deprecates v2, or remove v2 support + Ubuntu 16.04 support with the same release

What are the specific experimental spikes we want to plan for the Ubuntu 20.04 upgrade?

  • (Conor) Two do-release-upgrade runs of a prod install. What's breaking?
  • (John/Kushal) App will not work at all, but interested in other breakage
  • (Kushal) Packaging the SecureDrop app on 20.04, determining if it can work
  • (Conor) Once you have done do-release-upgrade, try to unbreak and see where you get stuck
  • (Mickael) In terms of configuration drift, we won't be able test Trusty->Xenial->Bionic->Focal path. Need to understand package support status for critical dependencies. I've observed that SSH client config from 16.04 doesn't work well in later releases -- this is the kind of thing we have to guard against.
  • (Mickael) Conor, do you foresee issues with nested-virt in CI?
  • (Conor) I expect it'd be more well-maintained than older systems, interested in spike, but after we do do-release-upgrade stuff.
  • (Mickael) Remember the issue with CPU passthrough option
  • (Conor) Oh right, let's do a spike to identify bugs early
  • (John) Should we do spike on clean install?
  • (Conor) Need to do packages first. That said, not a bad way to get an additional perspective.
  • (Mickael) Agree, the install process gives us a more structured report-out.
  • (Erik) Will also give us sanity check on OS-level documentation & steps

CONSENSUS:

  • Two spikes in future sprints, one for upgrade, one for fresh install

Anything we need to change about system config?

(John) Switching to unattended upgrades? (Conor) Yes, this is a wonderful opportunity to do it -- support a spike around that. Helps us to get to a distro-standard way. (Kev) Need to ensure that nightly reboot doesn't step on unattended upgrades (Mickael) unattended upgrades support automatic rebooting https://help.ubuntu.com/community/AutomaticSecurityUpdates (Conor) Recommend that we eliminate universe channel, but upgrade everything that is allowed on the system. This would allow us to ditch the logic described in https://github.com/freedomofpress/securedrop/issues/3376 (Mickael) Note that this will cause more packages to be upgraded -- not necessarily problem, but may increase the risk of breakage (Ro) I'd like to figure out what our long term path is for OSSEC

CONSENSUS:

  • Let's investigate improving channel logic (resolving #3376) / removing universe channel as part of Ubuntu 20.04 transition
Clone this wiki locally