Ubuntu – How to protect from cloning


I have no experience using Ubuntu before

I'm doing a point of sale project for a restaurant which will run in local Lan (offline not online). I will setup one mini PC as an Ubuntu web server. and my client will access into it via local lan via http request. The server will be placed inside the restaurant.

Is it possible to protect from someone who wants to steal my file or clone the entire disk and use it with another restaurant?

Or Ubuntu already has some mechanism inside to protect someone from doing this, e.g. password require before transfer file out of the computer? or password needed before clone the disk?

I know nothing about Ubuntu, can you please tell me the easiest way to protect my project from being stolen?

Best Answer

Disk encryption only works to the point where you've got somebody manually unlocking it. If the server can boot itself and start up without human interaction, if somebody gains access, they've got the data.

Here are a few ideas ranging from basic to silly.

  • Lock the server in a box. Bolt the box to a wall. Treat it like a safe.

  • Make the restaurant contractually liable for the physical security of the software. Make it known that their copy is watermarked and if it ends up on a torrent site, they're liable for the lost sales. But do it without sounding like a douche.

  • Physical port blocking: Blank off any USB, serial, etc ports.

  • Glue SATA cables into their ports (and block other SATA ports).

  • Lock the BIOS. Disable other SATA ports. Disable USB. Disable everything you're not using.

  • Rebuild the kernel with make localmodconfig so the only drivers your kernel has is for the hardware it's dealing with.

  • Consider full-disk encryption with a physical key like a smart card or a good biometric system. Staff will leave smartcards in (because they've got better things to do) but biometric might work if you implement some sort of auto-shutdown at the end of the day.

  • Physical DRM. Dongles devices that form part of the code execution. They're really expensive to create and aren't insurmountable (cite: Autocad's torrid and failed relationship with dongles).

  • "Phone home" if the server is opened. Script something up that looks at internal light levels. If they increase dramatically, trigger a SMS via an attached dongle (you might be introducing a new attack vector).

A lot of these things don't just make the server more secure, they make it much less robust and harder to fix... Most of these countermeasures are at least an extra point of failure.

Consider that with most applications, their maximum shelf-life is five years. Making this cheap enough not to bother stealing might be a better strategy.

Related Question