I’m moving to a new machine soon and want to re-evaluate some security practices while I’m doing it. My current server is debian with all apps containerized in docker with root. I’d like to harden some stuff, especially vaultwarden but I’m concerned about transitioning to podman while using complex docker setups like nextcloud-aio. Do you have experience hardening your containers by switching? Is it worth it? How long is a piece of string?

  • matcha_addict@lemy.lol
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 days ago

    Does Podman work well when you have multiple rootless containers that you want to communicate securely in a least-privilege configuration (each container only has access to what it needs)? That is the one thing I couldn’t figure out how to do well with Podman.

    • cmgvd3lw@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      2 days ago

      Yes, you can easily do that. Set the container name and make them on the same network. Used caddy and whole bunch of Selfhostable services with it and I reverse proxy as

      container_name:port
      
    • Asparagus0098@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      3 days ago

      Do you mean networking between them? There’s two ways of networking between containers. One of them is to create a custom network for a set of containers that you want to connect between each other. Then you can access other containers in that network using their name and port number like so

      container_name:1234
      

      Note: DNS is disabled in the default network by default so you can’t access other containers by their name if using it. You need to create a new network for it to work.

      Another way is to group them together with a pod. Then you can access other services in that same pod using localhost like so

      localhost:1234
      

      Personally in my current setup I’m using both pods and seperate networks for each of them. The reason is I use traefik and I don’t want all of my containers in a single network along with traefik. So I just made a seperate network for each of my pods and give traefik access to that network. As an example here’s my komga setup:

      I have komga and komf running in a single pod with a network called komga assigned to the pod. So now I can communicate between komga and komf using localhost. I also added traefik to the komga network so that I can reverse proxy my komga instance.