ELI5 Cloudflare Tunnel
So everyone is talking about cloudflare tunnels and I decided to give it a shot....
ELI5 Cloudflare Tunnel
So everyone is talking about cloudflare tunnels and I decided to give it a shot....
In effect, Cloudflare would give protection against DDoS attacks before requests would even hit your servers. That much said you can implement mitigations on the reverse proxy itself. One example would be fail2ban.
I’m sure there are additional steps that you can take. I’m not a fan of Cloudflare because their free offering has some caveats and violating these could be problematic. I have a cloud VPS with a WireGuard tunnel back to my server. I don’t have to do anything ugly like port forwarding. The cloud VPS runs NGINX as a reverse proxy. It’s a relatively simple and effective setup.
Of course! So in order to get maximum speed on your services, you wanna use a direct internal route when you're inside your net. My understanding is, that when using an external cloud VPS with a proxy, local clients go through unnecessary routing..
Local request --out--> external VPS (proxy) --request data from internal--> receive data on external proxy --send back--> local client
So what I am saying, all requests are unnecessarily routed through the external VPS. So one would have to create an exact duplicate reverse proxy internally to avoid leaving the net. When accessing domain.com, the internal DNS returns the local proxy IP, when outside you receive the cloud VPS IP.
Or am I missing something?
Thank you for taking the time!
I have not converted my home network to use split-brain yet and that’s because I only just recently got Let’s Encrypt to work with the DNS-01 challenge which verifies domain ownership via a TXT record. Now that the DNS-01 challenge works perfectly, I can use split-brain DNS to resolve my example.com requests to internal IP addresses. What I am currently doing is as follows and it is inefficient and ugly!
Local request —> Internet --> VPS Proxy --> WireGuard tunnel --> Local Server --> WireGuard tunnel -> VPS Proxy -> Internet --> Local origin
Now that I have Let’s Encrypt working using the DNS-01 challenge, there will be significantly less latency. It should look something like this:
Local request --> Local DNS Server --> Local Server --> Local request | --> Local Server --> WireGuard Tunnel --> InternetI hope this is helpful! This will reduce the amount of locally generated traffic that must transit the VPN tunnel bi-directionally.
That be amazing! I am currently not using anything (took down my homelab a while back) and planning on completely starting over fresh now.
I am most likely going with unbound! So if you could, that be great!
Here is a sample configuration that should work for you:
server: interface: 127.0.0.1 interface: 192.168.1.1 do-udp: yes do-tcp: yes do-not-query-localhost: no verbosity: 1 log-queries: yes access-control: 0.0.0.0/0 refuse access-control-view: 127.0.0.0/8 example access-control-view: 192.168.1.0/24 example hide-identity: yes hide-version: yes tcp-upstream: yes remote-control: control-enable: yes control-interface: /var/run/unbound.sock view: name: "example" local-zone: "example.com." inform local-data: "example.com. IN A 192.168.1.2" local-data: "www IN CNAME example.com." local-data: "another.example.com. IN A 192.168.1.3" forward-zone: name: "." forward-addr: 8.8.8.8 forward-addr: 8.8.4.4What makes the split-brain DNS work is if the request for resolution comes from the localhost or from inside your network, it will first go to the view section to see if there is any pertinent local data. So if you do a query from your home network, on say, example.com, it will return your internal IP address which in this case is 192.168.1.2