Earlier quoted context omitted.
Containers have a history of escape vulnerabilities, for reasons like sharing a kernel with the host and other containers. VMs are designed from the ground up to isolate guests, rather than focusing on application deployment. Firecracker is the modern container alternative in untrusted compute scenarios, with Fly.io even converting container images into Firecracker VMs.
User mapping is now a standard feature in Kubernetes, so escape vulnerabilities aren't so much an issue anymore. Additionally, you can use gVisor.
Show HN: SadServers – Test your Linux troubleshooting skills
111–120 of 133 posts
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#112Based on your architecture diagram it looks like you're spinning up an instance per-user? As you're probably finding now, you will hit AWS limits quickly. You might instead want to have a smaller pool of (larger) servers that you run co-resident VMs on with https://firecracker-microvm.github.io/ . That will avoid account limits and also keep your AWS costs more predictable.
Why not spin up containers instead of VMs? Seems to me containers would fit much better than VMs.
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#113Re: Show HN: SadServers – Test your Linux troubleshooting skills
#114Earlier quoted context omitted.
If it is hosted on AWS the bandwidth of distributing the images is likely more than the cost of the compute.
Cloudflare exists
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#115Earlier quoted context omitted.
Containers have a history of escape vulnerabilities, for reasons like sharing a kernel with the host and other containers. VMs are designed from the ground up to isolate guests, rather than focusing on application deployment. Firecracker is the modern container alternative in untrusted compute scenarios, with Fly.io even converting container images into Firecracker VMs.
> Containers have a history of escape vulnerabilities Generally agreed, but for this use-case do we care?
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#116Completed the first challenge and it was a lot of fun - spoiler I've never had to use the 'lsof' command before.
I've been waiting a while for the "sad server" to come up for me and read the scenario (saint john) whilst waiting.
lsof was the first thing that came to mind after reading the scenario.
I guess that once I actually get a "sad server" I'll make it "happy" quickly :)
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#117Earlier quoted context omitted.
User mapping is now a standard feature in Kubernetes, so escape vulnerabilities aren't so much an issue anymore. Additionally, you can use gVisor.
User namespaces have resulted in multiple new container breakout CVEs in the last year. Some guides actually recommend disabling user namespaces because they are still somewhat new and perilous.
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#118Earlier quoted context omitted.
Depends on how the broken program writes to the log. If it does while true; do echo hello >> bad.log; done Then renaming bad.log will not solve the challenge.
Replace it with a symlink to /dev/null! Or /dev/full if we feel like it. (Yes, these are bad solutions, since the instructions explicitly said to stop the process which is writing.)
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#119> It's also my not-so-secret hope that a sophisticated enough version of SadServers could be used by tech companies (or for companies that carry on job interviews on their behalf) to automate or facilitate the Linux troubleshooting interview section. Yup, that's what I was afraid of.
Re: Show HN: SadServers – Test your Linux troubleshooting skills
#120Earlier quoted context omitted.
User mapping is now a standard feature in Kubernetes, so escape vulnerabilities aren't so much an issue anymore. Additionally, you can use gVisor.
User namespaces have resulted in multiple new container breakout CVEs in the last year. Some guides actually recommend disabling user namespaces because they are still somewhat new and perilous.
Also, all container runtimes automatically block unshare(CLONE_NEWUSER) with seccomp already (unless they've disabled seccomp, which I'm not sure if Kubernetes still does).