Add diagrams for ports and backup article

master
Tanner Collin 3 months ago
parent 0fb32ee7fc
commit 048592d9c4
  1. 4
      content/Backup Strategy.md
  2. 3
      content/Bypassing Ports.md
  3. 4
      content/media/backup1.svg
  4. 4
      content/media/ports1.svg
  5. 70
      misc/backup-strategy-diagram.drawio
  6. 48
      misc/bypass-ports-diagram.drawio

@ -2,6 +2,7 @@ Title: My Backup Strategy
Date: 2021-04-08
Category: Writing
Summary: Details about the backup system for all of my data.
Image: backup1.svg
Wide: true
Tags: feed
@ -20,12 +21,15 @@ Backups need to be tested to ensure they are correct and happening regularly. M
Backups should also be incremental when possible (rather than mirror copies) so an accidental deletion isn't propagated into the backups, making the file irrecoverable.
## Strategy
The key is to have one central location that all your files, projects, and data are cloned to and then back that directory up to multiple locations.
I have one backup folder `/mnt/backup` on my media server at home that serves as the destination for all my backup sources. All scheduled automatic backups write to their own subfolder inside of it.
This backup folder is then synced to encrypted 2.5" 1 TB hard drives which I rotate between my bag, offsite, and my parents' house.
![[backup1.svg]]
## Backup Sources
I use the tool `rdiff-backup` extensively because it allows me to take incremental backups locally or over SSH. It acts very similar to `rsync` and has no configuration.

@ -2,6 +2,7 @@ Title: Bypassing ISP Blocked Ports
Date: 2023-12-10
Category: Writing
Summary: Bypass ISP blocked ports using VPN port forwarding for public access.
Image: ports1.svg
Wide: true
Tags: feed
@ -19,6 +20,8 @@ My media server at home has an OpenVPN client connected to the server and is ass
The virtual server has routing enabled and forwards inbound traffic __from the internet__ to my media server at home. This allows me to have external HTTP and SSH access.
![[ports1.svg]]
## Server Setup
Spin up a Debian 12 server on your favourite hosting provider. If you're using an older version of Debian, you can follow the [[Bypassing Ports Old |old version of this article]]. You should harden this server. Assign a subdomain to it like `vpn.example.com`.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 185 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 110 KiB

@ -0,0 +1,70 @@
<mxfile host="app.diagrams.net" modified="2024-01-26T21:51:42.500Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" etag="rxPVBCqqDlizBv9YwVwk" version="23.0.2" type="device">
<diagram name="Page-1" id="2peR5UrzPdhCN7KmwIpr">
<mxGraphModel dx="1114" dy="630" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="20e5nqs_UBeXcxDGWj9N-28" value="" style="ellipse;whiteSpace=wrap;html=1;strokeWidth=3;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="590" y="310" width="150" height="150" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-1" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.server_storage;" vertex="1" parent="1">
<mxGeometry x="380.63" y="300" width="105" height="105" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-2" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Home Server&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="350" y="260" width="166.25" height="30" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-4" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;/mnt/backup&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="355.95" y="420" width="154.37" height="30" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;" edge="1" parent="1" source="20e5nqs_UBeXcxDGWj9N-5" target="20e5nqs_UBeXcxDGWj9N-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-5" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;" vertex="1" parent="1">
<mxGeometry x="140" y="230" width="100" height="70" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;" edge="1" parent="1" source="20e5nqs_UBeXcxDGWj9N-6" target="20e5nqs_UBeXcxDGWj9N-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-6" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.web_server;" vertex="1" parent="1">
<mxGeometry x="150" y="330" width="90" height="85" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;" edge="1" parent="1" source="20e5nqs_UBeXcxDGWj9N-7" target="20e5nqs_UBeXcxDGWj9N-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-7" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.mail_server;" vertex="1" parent="1">
<mxGeometry x="150" y="430" width="90" height="90" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-8" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Backup Sources&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="100" y="180" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-9" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Computers&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="15" y="250" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-10" value="&lt;div style=&quot;font-size: 25px;&quot;&gt;&lt;font style=&quot;font-size: 25px;&quot;&gt;Web Services&lt;/font&gt;&lt;/div&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry y="337.5" width="130" height="70" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-11" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Email, Nextcloud, etc.&lt;br&gt;&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="5" y="445" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-19" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.external_storage;" vertex="1" parent="1">
<mxGeometry x="580" y="390" width="70" height="80" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-20" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.external_storage;" vertex="1" parent="1">
<mxGeometry x="640" y="280" width="70" height="80" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-21" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.external_storage;" vertex="1" parent="1">
<mxGeometry x="700" y="390" width="70" height="80" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-22" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;External Hard Drives&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="590" y="210" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-23" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;" edge="1" parent="1" source="20e5nqs_UBeXcxDGWj9N-4" target="20e5nqs_UBeXcxDGWj9N-19">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="20e5nqs_UBeXcxDGWj9N-29" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;rsync&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="290" y="440" width="100" height="55" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,48 @@
<mxfile host="app.diagrams.net" modified="2024-01-26T05:01:15.100Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" etag="JJ-bykZ30vwY7yotJaLz" version="23.0.2" type="device">
<diagram name="Page-1" id="bfe91b75-5d2c-26a0-9c1d-138518896778">
<mxGraphModel dx="138" dy="-1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="y_adAsICl-CzPuRvVA7X-1" value="" style="html=1;fillColor=#f5f5f5;strokeColor=#666666;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.cloud;rounded=0;shadow=0;comic=0;align=center;fontSize=28;fontColor=#333333;verticalAlign=bottom;" vertex="1" parent="1">
<mxGeometry x="1710" y="1840" width="730" height="390" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-2" value="&lt;div align=&quot;center&quot;&gt;&lt;font style=&quot;font-size: 25px;&quot;&gt;DigitalOcean VPS&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="fontColor=#0066CC;verticalAlign=bottom;verticalLabelPosition=top;labelPosition=center;align=center;html=1;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.server_storage;rounded=0;shadow=0;comic=0;" vertex="1" parent="1">
<mxGeometry x="1847.5" y="2073" width="105" height="105" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-5" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;rounded=0;shadow=0;comic=0;" vertex="1" parent="1">
<mxGeometry x="1850.0000000000002" y="2330.0017647058826" width="100" height="70" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-6" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Home Server&lt;br&gt;&lt;/font&gt;" style="fontColor=#0066CC;verticalAlign=bottom;verticalLabelPosition=top;labelPosition=center;align=center;html=1;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.server_storage;rounded=0;shadow=0;comic=0;" vertex="1" parent="1">
<mxGeometry x="2510" y="2073" width="105" height="105" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-9" value="" style="shape=singleArrow;direction=west;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1960" y="2065" width="510" height="120" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-10" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;OpenVPN Tunnel&lt;br&gt;&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="2090" y="2100" width="280" height="130" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-11" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Internet&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="2120" y="1900" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-16" value="" style="curved=1;endArrow=classic;html=1;rounded=0;strokeWidth=5;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1910" y="2320" as="sourcePoint" />
<mxPoint x="2500" y="2130" as="targetPoint" />
<Array as="points">
<mxPoint x="1910" y="2150" />
<mxPoint x="1940" y="2120" />
<mxPoint x="2190" y="2130" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-18" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;HTTP&lt;br&gt;&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="1930" y="2270" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="y_adAsICl-CzPuRvVA7X-19" value="&lt;font style=&quot;font-size: 25px;&quot;&gt;Client&lt;/font&gt;" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#0066CC;" vertex="1" parent="1">
<mxGeometry x="1870" y="2410" width="60" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Loading…
Cancel
Save