Some services run really good behind a reverse proxy on 443, but some others can really become an hassle… And sometimes just opening other ports would be easier than to try configuring everything to work through 443.

An example that comes to my mind is SSH, yeah you can use SSLH to forward requests coming from 443 to 22, but it’s so much easier to just leave 22 open…

Now, for SSH, if you have certificate authentication or a strong password, I think you can feel quite safe, but what about other random ports? What risks I’m exposing my server to if I open some of them when needed for a service? Is the effort of trying to pass everything through 443/80 worth it?

  • vane@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 day ago

    you can reverse proxy other ports than 443 and ex. upstream ssh, the advantage of having reverse proxy over everything is to have traffic in one place so you can manage it, that’s why for example kubernetes have ingress server, example nginx / openresty upstream ssh, you can restrict traffic to limited amount of IP etc.

    stream {
        upstream ssh {
            server          127.0.0.1:22;
        }
    
        server {
            listen          2222;
            ssl_preread     on;
            proxy_pass      ssh;
        }
    }
    
    • dontblink@feddit.itOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      21 hours ago

      As far as I knew reverse proxies could only reverse proxy stuff coming in from 443 or 80, I didn’t know they could listen other ports as well!

      Main reason why I was using a reverse proxy at first is because I had everything behind cloudflare, and cloudflare can only proxy and give you an SSL encryption for stuff that goes through 443, so I could make Caddy listen to 443 and then forward to interested ports.

      But this leaves out everything that needs to go in some other places than 443, and requires its own standalone ssl certificate, which is a bit cumbersome. Pheraps these can be proxied with other proxies than cloudflare, hopefully giving SSL to everything…

      I’m not sure I understood the upstream ssh thing, what do you actually do?

      • vane@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        20 hours ago

        this is nginx / openresty config - upstream is just definition of server / bunch of servers if you do loadbalancing - you can specify load balancing strategies and stuff. Or when want to separate server layer from proxy layer.

        stream {
          upstream something {
             server xxx:123;
             server yyy:321;
          }
          server {
             listen 666;
             proxy_pass something;
          }
        }
        

        https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

        I use openresty with autossl, it renews certificates automatically. The only problem is maintaining subdomain allowance otherwise bots will ddos letsencrypt with random domain names, after some quota they will soft ban you for a week to create certificates for new domains / subdomains.