Here is my setup:

I have multiple DuckDNS domains (and subdomains) pointing to my home IP. My home router has port 80 and port 443 forwarded to Nginx Proxy Manager on my home server. Nginx Proxy Manager points to the appropriate docker container and each one is encrypted with Let’s Encrypt.

Am I missing anything here or is this how I’m supposed to be doing it? Every app that has a DuckDNS url has a password in some shape or form.

  • redlemace@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    18 hours ago

    My usual additions:

    1. Have the router to block portscanners
    2. fail2ban on internet facing services.
      • redlemace@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        4 hours ago

        I’m using RouterOS. In the firewall rules you can create a rule that if an IP touches a port, it get added to a address list (optional with a time-out). So my FW rules begin like this:

        1. If source is whitelisted, Accept (avoid being locked out myself)
        2. If source IP is in the blacklist, drop all
        3. if source IP tries to connect to port 21,22,25,137-139, 113 (and a bunch of others) add it to the blacklist

        So using a portscanner will touch ports I’m not running any service on (like telnet) and you’ll be blocked. A time-out of one week on the blacklist usually gives me an blacklist of 6500+ addresses.

        This too has endless possibilities. t.ex. like port knocking. (‘touch’ one or more ports in a specified sequence in a specified time to be allowed to access the actual service port)

        • non_burglar@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          32 minutes ago

          This is a waste of time and your router’s CPU. You already have a whitelist and know your safe TCP sources, just drop all wan traffic and only allow new input from whitelist. Your chain input rule is just creating a pretty list of bots you’re dropping anyway.

          • redlemace@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            8 minutes ago

            Well, here is the CPU load:

            And there is no increase on delay’s or jitter compared to what i’m already facing on the WAN itself.

            It keep’s 6000+ hosts with possible harmful intend away from the ports I need/want open to the world. Actually, the router -while still being bored- offloads the services behind it. I really can’t see a reason not to keep doing it. But, sure, it’s a personal choice.

        • Appoxo@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 hour ago

          Off-topic: Looks like you missed the two spaces after beginning a new line.
          Just wanted to inform you in case you werent aware ;)

          • redlemace@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            6 minutes ago

            the spacebar on my Remington isn’t what it used to be, maybe a drop of oil will help ;)

    • Jediwan@lemy.lolOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      18 hours ago

      Thanks I’ll look into these. Quick question: how does fail2ban use port 80 if that’s already used by nginx?

      • redlemace@lemmy.world
        link
        fedilink
        English
        arrow-up
        9
        ·
        18 hours ago

        It does not. It does not uses ports at all. Fail2ban monitors your logfiles and activates the firewall to block IP’s that matched your rules.

        t.ex. You can block an IP that tried to access https://<url>/admin. You can block an IP that used wrong credentials x times to login on an ssh port. Or block one that tried to relay via your mailserver. The duration is configurable and alternative duration can be configured for recidivists.

        And yes, you can whitelist IP’s to avoid locking yourself out. The possibilities are endless.