What if you could buy off the shelf a box based on #opensource software and hardware that you could plug into your internet connection. You could connect to via Wifi and it would allow an average person to fairly easily configure, via a guided setup, a self hosted Cloud Drive, Social Media server, home automation service, VPN end point, email server and other commonly useful software?

What if that box allowed that person’s friends to authenticate and to that box and link a box they own, either close by or remotely. It could extend connectivity and estabilish a chain of trus, provide a level of encrypted backup of content from that box and make assertions about the users on that box such as - This user account is owned by this person, this user account is over 18?

This is a dream. I know I’m rambling. #openwrt, #yunohost, #seflhost, #chainoftrust, #fediverse

  • mspencer712@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 day ago

    This is my dream as well, but for security I feel like you need multiple independent systems. I’m doing mine with power-hungry recycled 2012-vintage server hardware (Xeon E5-1620s and 2620s and Opteron 6276s, bought for $100 each several years ago, plus a few hundred more to their maximum amounts of DDR3 ECC) but this hypothetical box could easily have raspberry pis or something similar. Public services can become compromised and you’ll only want certain hardware to be trusted to do certain things.

    My plan is a terrible one and I’m taking way too long to do it. I really want someone else to build this better and faster, but if my crappy plan ends up being the first usable version of this, that will suck but at least it’s available.

    I had a dumb personal domain from June of 2000, tried to make it a public internet site, offered services to people on IRC for internet social points, but after a few years it got ahead of me and I let it die. (I’ve been paying for the same business internet ever since, though, and I still have the same static IPs as from back then.) Time passed, got married, got a computer science degree and a development job with a billion dollar SAAS company.

    I can see how they do big public internet hosting. I want everyone to be able to do this, too. Been trying to build the same kinds of architecture with open source tools at home. Struggling, I keep over designing it and getting stuck and frustrated. It takes me a month to do what a competent ops person from work does in a couple days.

    OnceI have this working for me, I can share it, because it’s my own work product. It’ll be a guide, a recipe to follow, for creating the kind of secure and isolated web application and general VM hosting environment I see us use at work. This stuff is the difference between “I’m hosting one thing and if it gets hacked, everything is owned” and “I’m hosting a hundred things, all different, and if one gets hacked that will suck - but the other 99 things will stay safe.”

    Biggest problem I think with creating this with open-source is just picking a direction for everything and getting the internet to not pitch a fit. “Why did you use postfix?” “I hate Greenbone / GSA and refuse to use it.” “Hardware is expensive, you say I need a jump box for this AND for this, and dedicated hardware for a firewall here AND here? Each of those could clearly be a VM. Your project wastes hardware and I’m not doing it this way.”

    Sure, once this is done these decisions are pretty much baked in and I won’t have the energy to redo them yet again. But getting the architecture perfectly designed for your exact scenario … that takes a ton of work. Big companies pay a ton of money in just payroll hours to build this kind of thing bespoke for their needs. I’ll be giving away my version, and I’m afraid the internet won’t care.

    But I think we need to keep this ability alive, that private citizens can set up their own DIY hosting that can stand up to hostile internet actors decently well. They can pay (I’ll grant) exploitative rates for business internet connections so they can have static IPs at home as well. If we all stop, we all just decide all hosting should be done by big cloud service companies or big enterprises, we lose a crucial bit of internet freedom. Someone needs to say “yeah this is kinda dumb but I’m doing it anyway.”

    And if they could do it with a box you just plug in, instead of my (likely) month-long two hundred step recipe, and still have it stand up to attacks and “Internet background radiation” and stuff, that would be epic. I kind of don’t want my thing to be the way that self-hosting-public-web-services is done.

    • abeorch@friendica.ginestes.esOP
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      @mspencer712 On your point regarding a single device - I don’t think that separate hardware necessarily provides security - Though I take your point - perhaps it could be about a compatible - modular architecture - a home server, a router, a home automation hub - that are linked together easily and well.

      Agree on the issue with Open source be of the “let a thousand flowers bloom” ( i just saw someone post they have a new “templated based home server” lemmy.world/post/38362941 ) - but I think thats a strength - people try stuff out - things are more loosely coupled and rely on open standards - perhaps that’s a whole philispophical discussion but I think open source and open standards would attract hardware vendors - (I’m seeing plently more Openwrt based routers on chinese marketplaces than I used to - they just don’t want the overhead of having to provide their own fully featured software.

      I also get the - at the moment doing it yourself requires knitting together alot of stuff - that’s my point - the components are all there - its more about bringing them together and smoothing the surfaces - something that I think #Homeassistant seem to be quite good at - Perhaps what is required is that kind of organisation - where there is the prospect of picking up some funding and selling some hardware that comes with all the branding.

      • mspencer712@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 hours ago

        To add to Onomatopoeia’s excellent post, separate devices also limit the blast radius of any compromise. Attackers pivot when they compromise a system. They use one system to talk to others and attack them from inside your network. So you don’t want everything on the same OS kernel.

        Unfortunately I don’t feel like I’m qualified to say what works well yet, not until I have the pieces of my site put together and working, and vetted by whatever security professionals I can get to look at it and tell me what I did wrong.

        But right now I think that looks like every service VM on its own VLAN on a /30 net, and ideally the service VM and firewall/router VM serving it on different physical hardware joined by a managed switch. That managed switch shouldn’t let either VM host touch its management VLAN, and (I think, I don’t do this yet) should send monitor traffic to yet another physical host for analysis.

        (“I can see why you’re not done yet” - yeah I know.)

        • abeorch@friendica.ginestes.esOP
          link
          fedilink
          arrow-up
          1
          ·
          9 hours ago

          @mspencer712 Yeah … though I suspect that perfect could be the enemy of the good enough. I can’t really comment - but whether its a single pyhsical device or modular - for me an integrated solution available to regular people is the key.

      • Onomatopoeia@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 day ago

        Separate devices provide reliability and supportability.

        If your all-in-one device has issues, you can’t remote in to maintain it.

        Take a look at what enterprises do: redundant external interfaces, redundant services internally. You don’t necessarily need all this, but it’s worth considering "how do I ensure uptime and enable supportability and reliability? ".

        Also, we always ask “what happens if the lone SME (Subject Matter Expert) is hit by a bus?” (You are that Lone SME).

        • mspencer712@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          20 hours ago

          Regarding the Lone SME thing, my wife has already told me if something happens to me, all my server stuff is getting donated. I should not expect her to maintain it after I’m gone. And I don’t. That’s entirely reasonable. If it lives on after I’m gone it’ll be because the recipe thing was useful enough for others to maintain. My specific server and domain kinda don’t matter.

        • abeorch@friendica.ginestes.esOP
          link
          fedilink
          arrow-up
          1
          ·
          1 day ago

          @Onomatopoeia I think in this case redundancy could be better delivered through a degree of distribution / modularity - perhaps through keeping compontents separate (I have an issue with an application but that doesn’t knock out router features) but also through chain of trust with friends and family - you can’t access your device (network, power, application ) then you could access backups stored with others - But I do take the point - and discused it in another comment - that perhaps modularity is the answer (e.g. Having a battery backup component that cound support a router component and an app server component ) but perhaps I’m over thinking this anyway - I have no practical way of implementing such a solution / framework myself - perhaps I’m just provocatively discussing it so that people like #Netbox and @bananapi see the discussion and think - hmm perhaps we should have closer relationships with Openwrt or Yunohost - or encourage them to come together somehow…

          • Onomatopoeia@lemmy.cafe
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            Exactly, keeping components separated, especially the router.

            Hardware routers “cost money because they save money” (Sorry, couldn’t resist that movie quote). A purpose-built router will just run and run. I have 20 year old consumer routers that still “just work”. Granted, they don’t have much in the way of capability, but they do provide a stable gateway.

            I then use two separate mesh network tools, on multiple systems. The likelihood of both of those failing simultaneously is low. But I still have a single failure point in the router, which I accept - I’ve only had a couple outright fail over 25 years, so I figure it’s a low risk.