-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
249 lines (249 loc) · 207 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/2aaf0723e720e8b9-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/app/layout.css?v=1693684442509" data-precedence="next_static/css/app/layout.css"/><link rel="preload" href="/_next/static/chunks/webpack.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app.js" as="script"/><title>Wireguard VPN with AWS and UDM Pro - Blog - Ryan Russell</title><meta name="description" content="Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta property="og:title" content="Wireguard VPN with AWS and UDM Pro"/><meta property="og:description" content="Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro"/><meta property="og:url" content="http://localhost:3000/blog/tech/vpn-wireguard-aws-unifi"/><meta property="og:image" content="http://localhost:3000/images/blog/tech/udm_vpn/network_routers.png?heading=Wireguard+VPN+with+AWS+and+UDM+Pro&type=Blog+Post&mode=dark"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Wireguard VPN with AWS and UDM Pro"/><meta property="og:type" content="article"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Wireguard VPN with AWS and UDM Pro"/><meta name="twitter:description" content="Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro"/><meta name="twitter:image" content="http://localhost:3000/images/blog/tech/udm_vpn/network_routers.png?heading=Wireguard+VPN+with+AWS+and+UDM+Pro&type=Blog+Post&mode=dark"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills.js" noModule=""></script></head><body class="__className_20951f bg-slate-50 dark:bg-gray-800"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><nav class="bg-white dark:bg-gray-700" data-headlessui-state=""><div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8"><div class="flex h-16 justify-between"><div class="flex pt-1"><div class="flex flex-shrink-0 items-center"><a href="/"><img class="inline-block h-10 w-10 rounded-full" src="/favicon.ico" alt=""/></a><nav class="flex -mb-6 sm:ml-6 columns-2 sm:flex sm:justify-center sm:space-x-8 px-4" aria-label="Header"><div class="pb-6"><a href="/" class="inline-flex items-center border-b-2 border-transparent pt-1 text-sm font-medium px-2 text-gray-500 hover:border-gray-500 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100">Home</a></div><div class="pb-6"><a href="/blog" class="inline-flex items-center border-b-2 border-transparent pt-1 text-sm font-medium px-2 text-gray-500 hover:border-gray-500 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100">Blog</a></div><div class="pb-6"><a href="/blog/van" class="inline-flex items-center border-b-2 border-transparent pt-1 text-sm font-medium px-2 text-gray-500 hover:border-gray-500 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100">Van Build</a></div><div class="pb-6"><a href="/blog/home" class="inline-flex items-center border-b-2 border-transparent pt-1 text-sm font-medium px-2 text-gray-500 hover:border-gray-500 hover:text-gray-900 dark:text-gray-300 dark:hover:text-gray-100">Home Projects</a></div></nav></div></div><div class="flex justify-end md:flex-1 pt-3"><div class="pointer-events-auto"></div></div></div></div></nav><div><div class="max-w-3xl px-4 sm:px-6 lg:px-8 mx-auto"><div class="sm:px-8 mt-16 "><div class="absolute justify-left"><button type="button" aria-label="Go back to articles" class="group mb-8 flex h-10 w-10 items-center justify-center rounded-full bg-white shadow-md shadow-zinc-800/5 ring-1 ring-zinc-900/5 transition dark:border dark:border-zinc-500/50 dark:bg-zinc-600 dark:ring-0 dark:ring-white/10 dark:hover:border-zinc-700 dark:hover:ring-white/20"><svg viewBox="0 0 16 16" fill="none" aria-hidden="true" class="h-4 w-4 stroke-zinc-500 transition group-hover:stroke-zinc-700 dark:stroke-zinc-200 dark:group-hover:stroke-zinc-400"><path d="M7.25 11.25 3.75 8m0 0 3.5-3.25M3.75 8h8.5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><div class="flex justify-center"><time dateTime="2023-09-02" class="order-first flex items-center text-base text-zinc-400 dark:text-zinc-500 sm:text-2xl">September 1, 2023</time></div></div></div><div class="max-w-7xl px-4 sm:px-6 lg:px-8 mx-auto"><div class="mx-auto max-w-5xl px-4 sm:px-6 lg:px-8"><div class="sm:px-8 mt-8"><div class="flex justify-center mx-auto"><img alt="header-image" loading="lazy" width="1000" height="1000" decoding="async" data-nimg="1" class="h-auto w-full rounded-md" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fblog%2Ftech%2Fudm_vpn%2Fnetwork_routers.png&w=1080&q=75 1x, /_next/image?url=%2Fimages%2Fblog%2Ftech%2Fudm_vpn%2Fnetwork_routers.png&w=2048&q=75 2x" src="/_next/image?url=%2Fimages%2Fblog%2Ftech%2Fudm_vpn%2Fnetwork_routers.png&w=2048&q=75"/></div><div class="flex justify-center mx-auto"><header class="flex flex-col items-left"><h1 class="mt-8 text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl text-align:center">Wireguard VPN with AWS and UDM Pro</h1></header></div></div></div></div><div class="max-w-7xl px-4 sm:px-6 lg:px-8 mx-auto mb-20"><div class="mx-auto max-w-5xl px-4 sm:px-6 lg:px-8"><div class="sm:px-8 mt-8"><div class="flex justify-center mx-auto"><article><div class="mt-8"><div class="mdx"><p class="leading-7 [&:not(:first-child)]:mt-6">Earlier this year I setup Home Assistant as a replacement to SmartThings, but the one missing
component was cloud access. While Home Assistant offers a paid cloud service, we found that it
was a bit too expensive just to be able to remotely control the lights.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">A few months later I setup a PiHole for ad-blocking/tracking and wanted to be able utilize it
outside of my home network. At the time I happened to also be tired of paying for a VPN service
and constantly having to disable it for specific sites as many now crack down on the major VPN
providers.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">The next step was to setup my own remote VPN server. I'd get the benefit of the added security
on all of my devices when off of my home network, access to Home Assistant on my local network,
and the benefit of the PiHole DNS blocking.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">I chose to setup a basic Ubuntu server with AWS Lightsail running Wireguard. This server would
act as my central VPN service that all of my devices, including my Ubiquiti Dream Machine Pro
gateway, would connect to.</p>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="insert-network-diagram"><a class="subheading-anchor" aria-label="Link to section" href="#insert-network-diagram"><span class="icon icon-link"></span></a>INSERT NETWORK DIAGRAM</h4>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="aws-lightsail"><a class="subheading-anchor" aria-label="Link to section" href="#aws-lightsail"><span class="icon icon-link"></span></a>AWS Lightsail</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">I chose AWS Lightsail primarily for cost purposes. If I had additional AWS resources I needed
access to over my VPN I likely would have chosen a standard EC2 instance. For this purpose, the
cost of an EC2 instance was no match to AWS Lightsail. AWS offers the first 3 months for free for
new accounts, and <strong>data is included</strong>.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">On a small instance size you get:</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">2GB Memory</li>
<li class="mt-2">2vCPUs</li>
<li class="mt-2">60GB SSD Disk</li>
</ul>
<p class="leading-7 [&:not(:first-child)]:mt-6">And most importantly:</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2"><strong>3TB of included data transfer</strong></li>
</ul>
<p class="leading-7 [&:not(:first-child)]:mt-6">The data transfer is what really makes this more cost effective than running a regular EC2 instance!</p>
<h2 class="mt-10 scroll-m-20 border-b pb-1 text-3xl font-semibold tracking-tight first:mt-0" id="vpn-server"><a class="subheading-anchor" aria-label="Link to section" href="#vpn-server"><span class="icon icon-link"></span></a>VPN Server</h2>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="creating-a-lightsail-instance"><a class="subheading-anchor" aria-label="Link to section" href="#creating-a-lightsail-instance"><span class="icon icon-link"></span></a>Creating A Lightsail Instance</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">Once I chose Lightsail, it was time to setup my server. I chose the settings and configurations I wanted
and setup my Terraform code to deploy my instance to a fresh AWS account.</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="hcl" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="hcl" data-theme="default"><span data-line=""><span style="color:#B392F0">resource</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"aws_lightsail_instance"</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"wireguard"</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> name</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"wireguard"</span></span>
<span data-line=""><span style="color:#E1E4E8"> availability_zone</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"us-west-2b"</span></span>
<span data-line=""><span style="color:#E1E4E8"> blueprint_id</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"ubuntu_22_04"</span></span>
<span data-line=""><span style="color:#E1E4E8"> bundle_id</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"small_2_0"</span></span>
<span data-line=""><span style="color:#E1E4E8"> ip_address_type</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"ipv4"</span></span>
<span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">add_on</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> type</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"AutoSnapshot"</span></span>
<span data-line=""><span style="color:#E1E4E8"> snapshot_time</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"09:00"</span></span>
<span data-line=""><span style="color:#E1E4E8"> status</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"Enabled"</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span>
<span data-line=""><span style="color:#E1E4E8">}</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">I chose to use port <code class="rounded-md font-mono text-sm scroll overflow-scroll">51821</code> for my Wireguard configuration, so configured my security group to open that up to all
IP addresses so our mobile devices could connect outside my home network.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">I also added a security group to allow SSH access from my home network and VPN to configure the server. Unfortunately
Lightsail is fairly limited so fully automating the setup wasn't feasible, but for this situation a manual setup was fine.</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="hcl" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="hcl" data-theme="default"><span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">resource</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"aws_lightsail_instance_public_ports"</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"vpn_port"</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> instance_name</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#E1E4E8">aws_lightsail_instance</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">wireguard</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">name</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">port_info</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> protocol</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"udp"</span></span>
<span data-line=""><span style="color:#E1E4E8"> from_port</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#79B8FF">51821</span></span>
<span data-line=""><span style="color:#E1E4E8"> to_port</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#79B8FF">51821</span></span>
<span data-line=""><span style="color:#E1E4E8"> cidrs</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#E1E4E8">[</span><span style="color:#9ECBFF">"0.0.0.0/0"</span><span style="color:#E1E4E8">]</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">port_info</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> protocol</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"tcp"</span></span>
<span data-line=""><span style="color:#E1E4E8"> from_port</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#79B8FF">22</span></span>
<span data-line=""><span style="color:#E1E4E8"> to_port</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#79B8FF">22</span></span>
<span data-line=""><span style="color:#E1E4E8"> cidrs</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#E1E4E8">[</span><span style="color:#9ECBFF">"</span><span style="color:#F97583">${</span><span style="color:#E1E4E8">var</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">home_ip</span><span style="color:#F97583">}</span><span style="color:#9ECBFF">/32"</span><span style="color:#E1E4E8">, </span><span style="color:#9ECBFF">"10.0.0.0/8"</span><span style="color:#E1E4E8">]</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">Then finally I setup a static IP, and added a Route53 DNS record to point to it. This way I can use my domain name in my client
configurations and if I ever need to move my server to a new account, VPC, etc where I lose the static IP, I won't have
to update every client.</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="hcl" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="hcl" data-theme="default"><span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">resource</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"aws_lightsail_static_ip"</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"vpn_ip"</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> name</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#9ECBFF">"vpn-static-ip"</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span>
<span data-line=""> </span>
<span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">resource</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"aws_lightsail_static_ip_attachment"</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">"test"</span><span style="color:#E1E4E8"> {</span></span>
<span data-line=""><span style="color:#E1E4E8"> static_ip_name</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#E1E4E8">aws_lightsail_static_ip</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">vpn_ip</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">name</span></span>
<span data-line=""><span style="color:#E1E4E8"> instance_name</span><span style="color:#FFAB70"> </span><span style="color:#F97583">=</span><span style="color:#FFAB70"> </span><span style="color:#E1E4E8">aws_lightsail_instance</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">wireguard</span><span style="color:#F97583">.</span><span style="color:#E1E4E8">name</span></span>
<span data-line=""><span style="color:#E1E4E8"> }</span></span></code></pre></div>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="installing-and-configuring-wireguard"><a class="subheading-anchor" aria-label="Link to section" href="#installing-and-configuring-wireguard"><span class="icon icon-link"></span></a>Installing and Configuring Wireguard</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">With my instance launched, it was time to configure Wireguard.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">I SSH'd into the instance and installed the necessary packages and settings:</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="bash" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="bash" data-theme="default"><span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">sudo</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">apt</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">install</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">-y</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">wireguard</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">awscli</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">jq</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">resolvconf</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">mtr</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">traceroute</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">net-tools</span></span>
<span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">umask</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">077</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">Enable packet forwarding by uncommenting the following line in <code class="rounded-md font-mono text-sm scroll overflow-scroll">/etc/sysctl.conf</code>:</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> net.ipv4.ip_forward=1</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">and reload <code class="rounded-md font-mono text-sm scroll overflow-scroll">sysctl</code></p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="bash" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="bash" data-theme="default"><span data-line=""><span style="color:#E1E4E8"> </span><span style="color:#B392F0">sudo</span><span style="color:#E1E4E8"> </span><span style="color:#9ECBFF">sysctl</span><span style="color:#E1E4E8"> </span><span style="color:#79B8FF">-p</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">Next I generated the keys and created the Wireguard config file. For details on creating the keys, refer to the <a href="https://ubuntu.com/server/docs/wireguard-vpn-site2site">official Ubuntu
documentation</a></p>
<p class="leading-7 [&:not(:first-child)]:mt-6">I chose a CIDR block of <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.0/24</code> on port <code class="rounded-md font-mono text-sm scroll overflow-scroll">51821</code> for my VPN network. To start, I only wanted to connect 3 devices to my Lightsail instance
as part of my POC:</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">Lightsail Instance: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.1</code></li>
<li class="mt-2">Pixel 5: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.2</code></li>
<li class="mt-2">Ubiquiti Dream Machine Pro (home network): <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.3</code></li>
<li class="mt-2">Macbook Pro: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.4</code></li>
</ul>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="setting-up-the-configuration-file"><a class="subheading-anchor" aria-label="Link to section" href="#setting-up-the-configuration-file"><span class="icon icon-link"></span></a>Setting up the configuration file:</h3>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="interface-configuration"><a class="subheading-anchor" aria-label="Link to section" href="#interface-configuration"><span class="icon icon-link"></span></a>Interface configuration</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Set the key file when the tunnel is brought up<br/>
<code class="rounded-md font-mono text-sm scroll overflow-scroll">PostUp = wg set %i private-key /etc/wireguard/%i.key</code></p>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Set the interface IP address for the Lightsail instance<br/>
<code class="rounded-md font-mono text-sm scroll overflow-scroll">Address = 10.100.105.1/24</code></p>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Set the listener port<br/>
<code class="rounded-md font-mono text-sm scroll overflow-scroll">ListenPort = 51821</code></p>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Set the DNS endpoint (this is the endpoint for my PiHole on my home network)<br/>
<code class="rounded-md font-mono text-sm scroll overflow-scroll">DNS = 10.5.5.192</code></p>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">And finally we need to set the <code class="rounded-md font-mono text-sm scroll overflow-scroll">iptable</code> rules to forward traffic correctly between network interfaces<br/>
<code class="rounded-md font-mono text-sm scroll overflow-scroll">PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</code></p>
</li>
</ul>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="peer-configurations"><a class="subheading-anchor" aria-label="Link to section" href="#peer-configurations"><span class="icon icon-link"></span></a>Peer Configurations</h4>
<p class="leading-7 [&:not(:first-child)]:mt-6">With the Interface configured, we can configure the peers. I generated the keys for each device and setup the Peer configurations in the Lightsail Wireguard
configuration:</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Pixel 5</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.100.105.2/32</span></span></code></pre></div>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Dream Machine Pro</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.0.0.0/11, 10.100.105.3/32</span></span></code></pre></div>
<p class="leading-7 [&:not(:first-child)]:mt-6">My home network CIDR is <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.0.0.0/11</code>, which is where the PiHole and Home Assistant are running, so I added those routes.</p>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Macbook Pro</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.100.105.4/32</span></span></code></pre></div>
</li>
</ul>
<p class="leading-7 [&:not(:first-child)]:mt-6">The final configuration file looks like this:</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> [Interface]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PostUp = wg set %i private-key /etc/wireguard/%i.key</span></span>
<span data-line=""><span style="color:#e1e4e8"> Address = 10.100.105.1/24</span></span>
<span data-line=""><span style="color:#e1e4e8"> ListenPort = 51821</span></span>
<span data-line=""><span style="color:#e1e4e8"> DNS = 10.5.5.192</span></span>
<span data-line=""><span style="color:#e1e4e8"> PostUp = iptables...</span></span>
<span data-line=""><span style="color:#e1e4e8"> PostDown = iptables...</span></span>
<span data-line=""><span style="color:#e1e4e8"></span></span>
<span data-line=""><span style="color:#e1e4e8"> # Pixel 5</span></span>
<span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.100.105.2/32</span></span>
<span data-line=""><span style="color:#e1e4e8"></span></span>
<span data-line=""><span style="color:#e1e4e8"> # UDM</span></span>
<span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.0.0.0/11, 10.100.105.3/32</span></span>
<span data-line=""><span style="color:#e1e4e8"></span></span>
<span data-line=""><span style="color:#e1e4e8"> # MacBook</span></span>
<span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <key></span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.100.105.4/32</span></span></code></pre></div>
<h2 class="mt-10 scroll-m-20 border-b pb-1 text-3xl font-semibold tracking-tight first:mt-0" id="client-peers"><a class="subheading-anchor" aria-label="Link to section" href="#client-peers"><span class="icon icon-link"></span></a>Client Peers</h2>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="android-pixel-5"><a class="subheading-anchor" aria-label="Link to section" href="#android-pixel-5"><span class="icon icon-link"></span></a>Android Pixel 5</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">Wireguard has an Android app on the app store, so it was just a matter of setting the configuration:</p>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="interface"><a class="subheading-anchor" aria-label="Link to section" href="#interface"><span class="icon icon-link"></span></a>Interface</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">Address: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.2/24</code></li>
<li class="mt-2">Listen Port: <code class="rounded-md font-mono text-sm scroll overflow-scroll">51821</code></li>
<li class="mt-2">DNS Servers: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.5.5.192, 8.8.8.8</code></li>
</ul>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="peer-lightsail-instance"><a class="subheading-anchor" aria-label="Link to section" href="#peer-lightsail-instance"><span class="icon icon-link"></span></a>Peer (Lightsail Instance)</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">Public Key: <code class="rounded-md font-mono text-sm scroll overflow-scroll"><Lightsail public key></code></li>
<li class="mt-2">Endpoint: <code class="rounded-md font-mono text-sm scroll overflow-scroll"><dns-endpoint>:51821</code></li>
<li class="mt-2">Allowed IPs: <code class="rounded-md font-mono text-sm scroll overflow-scroll">0.0.0.0/0, ::/0</code></li>
</ul>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="on-demand"><a class="subheading-anchor" aria-label="Link to section" href="#on-demand"><span class="icon icon-link"></span></a>On-Demand</h4>
<p class="leading-7 [&:not(:first-child)]:mt-6">For this device I did not want the Always On VPN set, since it only needs to be active when <em>not</em> on my home WiFi network.
Unfortunately the Android Wireguard app does not have an 'On Demand' feature so I needed to use Tasker to automate the
connect and disconnect based on network status.</p>
<p class="leading-7 [&:not(:first-child)]:mt-6">I created 4 tasker profiles:</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Wifi Connected</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">State: Wifi Connected to [Home SSID] -> Wireguard Off</li>
</ul>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Not Wifi Connected</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">State: Not Wifi Connected to [Home SSID] -> Wireguard On</li>
</ul>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Airplane Mode</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">State: Airplane Mode Active -> Wireguard Off</li>
</ul>
</li>
<li class="mt-2">
<p class="leading-7 [&:not(:first-child)]:mt-6">Not Airplane Mode</p>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">State: Not Airplane Mode Active -> Wireguard On</li>
</ul>
</li>
</ul>
<p class="leading-7 [&:not(:first-child)]:mt-6">I also had to set <code class="rounded-md font-mono text-sm scroll overflow-scroll">Allow remote control apps</code> in the Wireguard settings to allow Tasker to activate/deactivate the VPN.</p>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="ubiquiti-dream-machine-pro"><a class="subheading-anchor" aria-label="Link to section" href="#ubiquiti-dream-machine-pro"><span class="icon icon-link"></span></a>Ubiquiti Dream Machine Pro</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">The UDM actually has Wireguard installed already - it's one of the VPN options provided in the UniFi UI. Unfortunately I wasn't able to get the
VPN to work through the UI, so I had to manually SSH into the UDM box and create my own interface just as I did on the Lightsail
instance.</p>
<div data-rehype-pretty-code-fragment=""><pre class="mb-6 mt-6 rounded-lg relative border bg-black py-6 scroll overflow-scroll w-full px-6" style="background-color:#24292e" tabindex="0" data-language="text" data-theme="default"><code class="rounded-md font-mono text-sm scroll overflow-scroll" data-language="text" data-theme="default"><span data-line=""><span style="color:#e1e4e8"> [Interface]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PostUp = wg set %i private-key /etc/wireguard/%i.key</span></span>
<span data-line=""><span style="color:#e1e4e8"> Address = 10.100.105.3/24</span></span>
<span data-line=""><span style="color:#e1e4e8"> ListenPort = 51821</span></span>
<span data-line=""><span style="color:#e1e4e8"> DNS = 10.5.5.192, 8.8.8.8</span></span>
<span data-line=""><span style="color:#e1e4e8"> PostUp = ping -c 1 10.100.105.1</span></span>
<span data-line=""><span style="color:#e1e4e8"></span></span>
<span data-line=""><span style="color:#e1e4e8"> [Peer]</span></span>
<span data-line=""><span style="color:#e1e4e8"> PublicKey = <Lightsail public key></span></span>
<span data-line=""><span style="color:#e1e4e8"> Endpoint = <dns-endpoint>:51821</span></span>
<span data-line=""><span style="color:#e1e4e8"> AllowedIPs = 10.100.105.0/24</span></span></code></pre></div>
<h3 class="mt-8 scroll-m-20 text-2xl font-semibold tracking-tight" id="macbook-pro"><a class="subheading-anchor" aria-label="Link to section" href="#macbook-pro"><span class="icon icon-link"></span></a>Macbook Pro</h3>
<p class="leading-7 [&:not(:first-child)]:mt-6">Wireguard has an app on the App store that makes this configuration very easy to setup, and it even has an 'On Demand' option to configure
network SSIDs.</p>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="interface-1"><a class="subheading-anchor" aria-label="Link to section" href="#interface-1"><span class="icon icon-link"></span></a>Interface</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">Addresses: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.100.105.4/24</code></li>
<li class="mt-2">Listen port: <code class="rounded-md font-mono text-sm scroll overflow-scroll">51821</code></li>
<li class="mt-2">DNS servers: <code class="rounded-md font-mono text-sm scroll overflow-scroll">10.5.5.192</code></li>
</ul>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="peer-lightsail-instance-1"><a class="subheading-anchor" aria-label="Link to section" href="#peer-lightsail-instance-1"><span class="icon icon-link"></span></a>Peer (Lightsail instance)</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">Endpoint: <code class="rounded-md font-mono text-sm scroll overflow-scroll"><dns-endpoint>:51821</code></li>
<li class="mt-2">Allowed IPs: <code class="rounded-md font-mono text-sm scroll overflow-scroll">0.0.0.0/0, ::/0</code></li>
</ul>
<h4 class="mt-8 scroll-m-20 text-xl font-semibold tracking-tight" id="ondemand"><a class="subheading-anchor" aria-label="Link to section" href="#ondemand"><span class="icon icon-link"></span></a>OnDemand:</h4>
<ul class="my-6 ml-6 list-disc">
<li class="mt-2">On-Demand: Wi-Fi only</li>
<li class="mt-2">SSIDs: Except these SSIDs: [Home SSID]</li>
</ul></div></div></article></div></div></div></div></div><footer class="bg-slate-50 dark:bg-gray-800 mt-auto"><div class="relative"><div class="absolute inset-0 flex items-center" aria-hidden="true"><div class="w-full border-t lines"></div></div><div class="relative flex justify-center"><span class="bg-white px-2 text-sm text-gray-500"></span></div></div><div class="mt-10 flex justify-center space-x-10"><a href="https://linkedin.com/in/russerya/" target="_blank" class="text-gray-500 dark:text-gray-300"><span class="sr-only">LinkedIn</span><svg fill="currentColor" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true"><path d="M18.335 18.339H15.67v-4.177c0-.996-.02-2.278-1.39-2.278-1.389 0-1.601 1.084-1.601 2.205v4.25h-2.666V9.75h2.56v1.17h.035c.358-.674 1.228-1.387 2.528-1.387 2.7 0 3.2 1.778 3.2 4.091v4.715zM7.003 8.575a1.546 1.546 0 01-1.548-1.549 1.548 1.548 0 111.547 1.549zm1.336 9.764H5.666V9.75H8.34v8.589zM19.67 3H4.329C3.593 3 3 3.58 3 4.297v15.406C3 20.42 3.594 21 4.328 21h15.338C20.4 21 21 20.42 21 19.703V4.297C21 3.58 20.4 3 19.666 3h.003z"></path></svg></a><a href="https://github.com/arsci/russerya.com" target="_blank" class="text-gray-500 dark:text-gray-300"><span class="sr-only">GitHub</span><svg fill="currentColor" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg></a><a href="/" class="text-gray-500 dark:text-gray-300"><span class="sr-only">Blog</span><svg fill="currentColor" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true"><path d="M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"></path></svg></a></div><p class="mt-10 mb-10 text-center text-xs leading-5 text-gray-500 dark:text-gray-300">© <!-- -->2023<!-- --> Ryan Russell. All rights reserved.</p></footer><script src="/_next/static/chunks/webpack.js" async=""></script><script src="/_next/static/chunks/main-app.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/2aaf0723e720e8b9-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/app/layout.css?v=1693684442509\",{\"as\":\"style\"}]\n0:\"$L3\"\n"])</script><script>self.__next_f.push([1,"4:I{\"id\":\"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js\",\"chunks\":[\"app-pages-internals:static/chunks/app-pages-internals.js\"],\"name\":\"default\",\"async\":false}\n6:I{\"id\":\"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js\",\"chunks\":[\"app-pages-internals:static/chunks/app-pages-internals.js\"],\"name\":\"GlobalError\",\"async\":false}\n7:I{\"id\":\"(app-pages-browser)/./src/components/ThemeProvider.tsx\",\"chunks\":[\"app/layout:static/chunks/app/layout.js\"],\"name\""])</script><script>self.__next_f.push([1,":\"ThemeProvider\",\"async\":false}\n8:I{\"id\":\"(app-pages-browser)/./src/components/Header.tsx\",\"chunks\":[\"app/layout:static/chunks/app/layout.js\"],\"name\":\"\",\"async\":false}\n9:I{\"id\":\"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js\",\"chunks\":[\"app-pages-internals:static/chunks/app-pages-internals.js\"],\"name\":\"default\",\"async\":false}\na:I{\"id\":\"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js\",\"chunks\":[\"app-pages-internals:static/chunks/"])</script><script>self.__next_f.push([1,"app-pages-internals.js\"],\"name\":\"default\",\"async\":false}\nc:I{\"id\":\"(app-pages-browser)/./src/components/Analytics.tsx\",\"chunks\":[\"app/layout:static/chunks/app/layout.js\"],\"name\":\"Analytics\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"3:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/app/layout.css?v=1693684442509\",\"precedence\":\"next_static/css/app/layout.css\"}]],[\"$\",\"$L4\",null,{\"buildId\":\"development\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/blog/tech/vpn-wireguard-aws-unifi\",\"initialTree\":[\"\",{\"children\":[\"blog\",{\"children\":[\"tech\",{\"children\":[[\"slug\",\"vpn-wireguard-aws-unifi\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$L5\",\"globalErrorComponent\":\"$6\",\"children\":[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_20951f bg-slate-50 dark:bg-gray-800\",\"children\":[[\"$\",\"$L7\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"children\":[[\"$\",\"$L8\",null,{}],[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"blog\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"blog\",\"children\",\"tech\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"blog\",\"children\",\"tech\",\"children\",[\"slug\",\"vpn-wireguard-aws-unifi\",\"d\"],\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Lb\",null],\"segment\":\"__PAGE__\"},\"styles\":[]}],\"segment\":[\"slug\",\"vpn-wireguard-aws-unifi\",\"d\"]},\"styles\":[]}],\"segment\":\"tech\"},\"styles\":[]}],\"segment\":\"blog\"},\"styles\":[]}],[\"$\",\"footer\",null,{\"className\":\"bg-slate-50 dark:bg-gray-800 mt-auto\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute inset-0 flex items-center\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full border-t lines\"}]}],[\"$\",\"div\",null,{\"className\":\"relative flex justify-center\",\"children\":[\"$\",\"span\",null,{\"className\":\"bg-white px-2 text-sm text-gray-500\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-10 flex justify-center space-x-10\",\"children\":[[\"$\",\"a\",\"LinkedIn\",{\"href\":\"https://linkedin.com/in/russerya/\",\"target\":\"_blank\",\"className\":\"text-gray-500 dark:text-gray-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"LinkedIn\"}],[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"className\":\"h-6 w-6\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.335 18.339H15.67v-4.177c0-.996-.02-2.278-1.39-2.278-1.389 0-1.601 1.084-1.601 2.205v4.25h-2.666V9.75h2.56v1.17h.035c.358-.674 1.228-1.387 2.528-1.387 2.7 0 3.2 1.778 3.2 4.091v4.715zM7.003 8.575a1.546 1.546 0 01-1.548-1.549 1.548 1.548 0 111.547 1.549zm1.336 9.764H5.666V9.75H8.34v8.589zM19.67 3H4.329C3.593 3 3 3.58 3 4.297v15.406C3 20.42 3.594 21 4.328 21h15.338C20.4 21 21 20.42 21 19.703V4.297C21 3.58 20.4 3 19.666 3h.003z\"}]}]]}],[\"$\",\"a\",\"GitHub\",{\"href\":\"https://github.com/arsci/russerya.com\",\"target\":\"_blank\",\"className\":\"text-gray-500 dark:text-gray-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"GitHub\"}],[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"className\":\"h-6 w-6\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\",\"clipRule\":\"evenodd\"}]}]]}],[\"$\",\"a\",\"Blog\",{\"href\":\"/\",\"target\":\"$undefined\",\"className\":\"text-gray-500 dark:text-gray-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"Blog\"}],[\"$\",\"svg\",null,{\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"className\":\"h-6 w-6\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"mt-10 mb-10 text-center text-xs leading-5 text-gray-500 dark:text-gray-300\",\"children\":[\"© \",2023,\" Ryan Russell. All rights reserved.\"]}]]}]]}],[\"$\",\"$Lc\",null,{}]]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"d:I{\"id\":\"(app-pages-browser)/./src/components/ReturnButton.tsx\",\"chunks\":[\"app/blog/tech/[slug]/page:static/chunks/app/blog/tech/[slug]/page.js\"],\"name\":\"\",\"async\":false}\ne:I{\"id\":\"(app-pages-browser)/./node_modules/next/dist/client/image-component.js\",\"chunks\":[\"app/blog/tech/[slug]/page:static/chunks/app/blog/tech/[slug]/page.js\"],\"name\":\"Image\",\"async\":false}\nf:I{\"id\":\"(app-pages-browser)/./src/components/MDXComponents.tsx\",\"chunks\":[\"app/blog/tech/[slug]/page:static/chunks/app/blog/tech/[slug]/page.js\""])</script><script>self.__next_f.push([1,"],\"name\":\"Mdx\",\"async\":false}\n10:T257ca,"])</script><script>self.__next_f.push([1,"var Component=(()=\u003e{var ir=Object.create;var R=Object.defineProperty;var or=Object.getOwnPropertyDescriptor;var ar=Object.getOwnPropertyNames;var ur=Object.getPrototypeOf,mr=Object.prototype.hasOwnProperty;var K=(a,e)=\u003e()=\u003e(e||a((e={exports:{}}).exports,e),e.exports),br=(a,e)=\u003e{for(var y in e)R(a,y,{get:e[y],enumerable:!0})},ge=(a,e,y,x)=\u003e{if(e\u0026\u0026typeof e==\"object\"||typeof e==\"function\")for(let p of ar(e))!mr.call(a,p)\u0026\u0026p!==y\u0026\u0026R(a,p,{get:()=\u003ee[p],enumerable:!(x=or(e,p))||x.enumerable});return a};var fr=(a,e,y)=\u003e(y=a!=null?ir(ur(a)):{},ge(e||!a||!a.__esModule?R(y,\"default\",{value:a,enumerable:!0}):y,a)),_r=a=\u003ege(R({},\"__esModule\",{value:!0}),a);var Ee=K((gr,Ue)=\u003e{Ue.exports=React});var ve=K(q=\u003e{\"use strict\";(function(){\"use strict\";var a=Ee(),e=Symbol.for(\"react.element\"),y=Symbol.for(\"react.portal\"),x=Symbol.for(\"react.fragment\"),p=Symbol.for(\"react.strict_mode\"),G=Symbol.for(\"react.profiler\"),z=Symbol.for(\"react.provider\"),X=Symbol.for(\"react.context\"),k=Symbol.for(\"react.forward_ref\"),T=Symbol.for(\"react.suspense\"),D=Symbol.for(\"react.suspense_list\"),P=Symbol.for(\"react.memo\"),O=Symbol.for(\"react.lazy\"),Pe=Symbol.for(\"react.offscreen\"),J=Symbol.iterator,Ae=\"@@iterator\";function Ce(n){if(n===null||typeof n!=\"object\")return null;var c=J\u0026\u0026n[J]||n[Ae];return typeof c==\"function\"?c:null}var U=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function b(n){{for(var c=arguments.length,s=new Array(c\u003e1?c-1:0),l=1;l\u003cc;l++)s[l-1]=arguments[l];Se(\"error\",n,s)}}function Se(n,c,s){{var l=U.ReactDebugCurrentFrame,i=l.getStackAddendum();i!==\"\"\u0026\u0026(c+=\"%s\",s=s.concat([i]));var o=s.map(function(t){return String(t)});o.unshift(\"Warning: \"+c),Function.prototype.apply.call(console[n],console,o)}}var Ie=!1,Be=!1,Re=!1,Te=!1,De=!1,Q;Q=Symbol.for(\"react.module.reference\");function Oe(n){return!!(typeof n==\"string\"||typeof n==\"function\"||n===x||n===G||De||n===p||n===T||n===D||Te||n===Pe||Ie||Be||Re||typeof n==\"object\"\u0026\u0026n!==null\u0026\u0026(n.$$typeof===O||n.$$typeof===P||n.$$typeof===z||n.$$typeof===X||n.$$typeof===k||n.$$typeof===Q||n.getModuleId!==void 0))}function We(n,c,s){var l=n.displayName;if(l)return l;var i=c.displayName||c.name||\"\";return i!==\"\"?s+\"(\"+i+\")\":s}function Z(n){return n.displayName||\"Context\"}function h(n){if(n==null)return null;if(typeof n.tag==\"number\"\u0026\u0026b(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof n==\"function\")return n.displayName||n.name||null;if(typeof n==\"string\")return n;switch(n){case x:return\"Fragment\";case y:return\"Portal\";case G:return\"Profiler\";case p:return\"StrictMode\";case T:return\"Suspense\";case D:return\"SuspenseList\"}if(typeof n==\"object\")switch(n.$$typeof){case X:var c=n;return Z(c)+\".Consumer\";case z:var s=n;return Z(s._context)+\".Provider\";case k:return We(n,n.render,\"ForwardRef\");case P:var l=n.displayName||null;return l!==null?l:h(n.type)||\"Memo\";case O:{var i=n,o=i._payload,t=i._init;try{return h(t(o))}catch{return null}}}return null}var g=Object.assign,F=0,ee,re,ne,ce,se,le,de;function te(){}te.__reactDisabledLog=!0;function je(){{if(F===0){ee=console.log,re=console.info,ne=console.warn,ce=console.error,se=console.group,le=console.groupCollapsed,de=console.groupEnd;var n={configurable:!0,enumerable:!0,value:te,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}F++}}function Le(){{if(F--,F===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:g({},n,{value:ee}),info:g({},n,{value:re}),warn:g({},n,{value:ne}),error:g({},n,{value:ce}),group:g({},n,{value:se}),groupCollapsed:g({},n,{value:le}),groupEnd:g({},n,{value:de})})}F\u003c0\u0026\u0026b(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}}var W=U.ReactCurrentDispatcher,j;function A(n,c,s){{if(j===void 0)try{throw Error()}catch(i){var l=i.stack.trim().match(/\\n( *(at )?)/);j=l\u0026\u0026l[1]||\"\"}return`\n`+j+n}}var L=!1,C;{var Me=typeof WeakMap==\"function\"?WeakMap:Map;C=new Me}function ie(n,c){if(!n||L)return\"\";{var s=C.get(n);if(s!==void 0)return s}var l;L=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var o;o=W.current,W.current=null,je();try{if(c){var t=function(){throw Error()};if(Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"\u0026\u0026Reflect.construct){try{Reflect.construct(t,[])}catch(N){l=N}Reflect.construct(n,[],t)}else{try{t.call()}catch(N){l=N}n.call(t.prototype)}}else{try{throw Error()}catch(N){l=N}n()}}catch(N){if(N\u0026\u0026l\u0026\u0026typeof N.stack==\"string\"){for(var d=N.stack.split(`\n`),f=l.stack.split(`\n`),u=d.length-1,m=f.length-1;u\u003e=1\u0026\u0026m\u003e=0\u0026\u0026d[u]!==f[m];)m--;for(;u\u003e=1\u0026\u0026m\u003e=0;u--,m--)if(d[u]!==f[m]){if(u!==1||m!==1)do if(u--,m--,m\u003c0||d[u]!==f[m]){var _=`\n`+d[u].replace(\" at new \",\" at \");return n.displayName\u0026\u0026_.includes(\"\u003canonymous\u003e\")\u0026\u0026(_=_.replace(\"\u003canonymous\u003e\",n.displayName)),typeof n==\"function\"\u0026\u0026C.set(n,_),_}while(u\u003e=1\u0026\u0026m\u003e=0);break}}}finally{L=!1,W.current=o,Le(),Error.prepareStackTrace=i}var v=n?n.displayName||n.name:\"\",xe=v?A(v):\"\";return typeof n==\"function\"\u0026\u0026C.set(n,xe),xe}function Ve(n,c,s){return ie(n,!1)}function $e(n){var c=n.prototype;return!!(c\u0026\u0026c.isReactComponent)}function S(n,c,s){if(n==null)return\"\";if(typeof n==\"function\")return ie(n,$e(n));if(typeof n==\"string\")return A(n);switch(n){case T:return A(\"Suspense\");case D:return A(\"SuspenseList\")}if(typeof n==\"object\")switch(n.$$typeof){case k:return Ve(n.render);case P:return S(n.type,c,s);case O:{var l=n,i=l._payload,o=l._init;try{return S(o(i),c,s)}catch{}}}return\"\"}var I=Object.prototype.hasOwnProperty,oe={},ae=U.ReactDebugCurrentFrame;function B(n){if(n){var c=n._owner,s=S(n.type,n._source,c?c.type:null);ae.setExtraStackFrame(s)}else ae.setExtraStackFrame(null)}function Ye(n,c,s,l,i){{var o=Function.call.bind(I);for(var t in n)if(o(n,t)){var d=void 0;try{if(typeof n[t]!=\"function\"){var f=Error((l||\"React class\")+\": \"+s+\" type `\"+t+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof n[t]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw f.name=\"Invariant Violation\",f}d=n[t](c,t,l,s,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(u){d=u}d\u0026\u0026!(d instanceof Error)\u0026\u0026(B(i),b(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",l||\"React class\",s,t,typeof d),B(null)),d instanceof Error\u0026\u0026!(d.message in oe)\u0026\u0026(oe[d.message]=!0,B(i),b(\"Failed %s type: %s\",s,d.message),B(null))}}}var He=Array.isArray;function M(n){return He(n)}function Ke(n){{var c=typeof Symbol==\"function\"\u0026\u0026Symbol.toStringTag,s=c\u0026\u0026n[Symbol.toStringTag]||n.constructor.name||\"Object\";return s}}function qe(n){try{return ue(n),!1}catch{return!0}}function ue(n){return\"\"+n}function me(n){if(qe(n))return b(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Ke(n)),ue(n)}var w=U.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},be,fe,V;V={};function ze(n){if(I.call(n,\"ref\")){var c=Object.getOwnPropertyDescriptor(n,\"ref\").get;if(c\u0026\u0026c.isReactWarning)return!1}return n.ref!==void 0}function Xe(n){if(I.call(n,\"key\")){var c=Object.getOwnPropertyDescriptor(n,\"key\").get;if(c\u0026\u0026c.isReactWarning)return!1}return n.key!==void 0}function Je(n,c){if(typeof n.ref==\"string\"\u0026\u0026w.current\u0026\u0026c\u0026\u0026w.current.stateNode!==c){var s=h(w.current.type);V[s]||(b('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',h(w.current.type),n.ref),V[s]=!0)}}function Qe(n,c){{var s=function(){be||(be=!0,b(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",c))};s.isReactWarning=!0,Object.defineProperty(n,\"key\",{get:s,configurable:!0})}}function Ze(n,c){{var s=function(){fe||(fe=!0,b(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",c))};s.isReactWarning=!0,Object.defineProperty(n,\"ref\",{get:s,configurable:!0})}}var er=function(n,c,s,l,i,o,t){var d={$$typeof:e,type:n,key:c,ref:s,props:t,_owner:o};return d._store={},Object.defineProperty(d._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(d,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:l}),Object.defineProperty(d,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.freeze\u0026\u0026(Object.freeze(d.props),Object.freeze(d)),d};function rr(n,c,s,l,i){{var o,t={},d=null,f=null;s!==void 0\u0026\u0026(me(s),d=\"\"+s),Xe(c)\u0026\u0026(me(c.key),d=\"\"+c.key),ze(c)\u0026\u0026(f=c.ref,Je(c,i));for(o in c)I.call(c,o)\u0026\u0026!Ge.hasOwnProperty(o)\u0026\u0026(t[o]=c[o]);if(n\u0026\u0026n.defaultProps){var u=n.defaultProps;for(o in u)t[o]===void 0\u0026\u0026(t[o]=u[o])}if(d||f){var m=typeof n==\"function\"?n.displayName||n.name||\"Unknown\":n;d\u0026\u0026Qe(t,m),f\u0026\u0026Ze(t,m)}return er(n,d,f,i,l,w.current,t)}}var $=U.ReactCurrentOwner,_e=U.ReactDebugCurrentFrame;function E(n){if(n){var c=n._owner,s=S(n.type,n._source,c?c.type:null);_e.setExtraStackFrame(s)}else _e.setExtraStackFrame(null)}var Y;Y=!1;function H(n){return typeof n==\"object\"\u0026\u0026n!==null\u0026\u0026n.$$typeof===e}function ye(){{if($.current){var n=h($.current.type);if(n)return`\n\nCheck the render method of \\``+n+\"`.\"}return\"\"}}function nr(n){{if(n!==void 0){var c=n.fileName.replace(/^.*[\\\\\\/]/,\"\"),s=n.lineNumber;return`\n\nCheck your code at `+c+\":\"+s+\".\"}return\"\"}}var he={};function cr(n){{var c=ye();if(!c){var s=typeof n==\"string\"?n:n.displayName||n.name;s\u0026\u0026(c=`\n\nCheck the top-level render call using \u003c`+s+\"\u003e.\")}return c}}function Ne(n,c){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var s=cr(c);if(he[s])return;he[s]=!0;var l=\"\";n\u0026\u0026n._owner\u0026\u0026n._owner!==$.current\u0026\u0026(l=\" It was passed a child from \"+h(n._owner.type)+\".\"),E(n),b('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,l),E(null)}}function pe(n,c){{if(typeof n!=\"object\")return;if(M(n))for(var s=0;s\u003cn.length;s++){var l=n[s];H(l)\u0026\u0026Ne(l,c)}else if(H(n))n._store\u0026\u0026(n._store.validated=!0);else if(n){var i=Ce(n);if(typeof i==\"function\"\u0026\u0026i!==n.entries)for(var o=i.call(n),t;!(t=o.next()).done;)H(t.value)\u0026\u0026Ne(t.value,c)}}}function sr(n){{var c=n.type;if(c==null||typeof c==\"string\")return;var s;if(typeof c==\"function\")s=c.propTypes;else if(typeof c==\"object\"\u0026\u0026(c.$$typeof===k||c.$$typeof===P))s=c.propTypes;else return;if(s){var l=h(c);Ye(s,n.props,\"prop\",l,n)}else if(c.PropTypes!==void 0\u0026\u0026!Y){Y=!0;var i=h(c);b(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",i||\"Unknown\")}typeof c.getDefaultProps==\"function\"\u0026\u0026!c.getDefaultProps.isReactClassApproved\u0026\u0026b(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function lr(n){{for(var c=Object.keys(n.props),s=0;s\u003cc.length;s++){var l=c[s];if(l!==\"children\"\u0026\u0026l!==\"key\"){E(n),b(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",l),E(null);break}}n.ref!==null\u0026\u0026(E(n),b(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),E(null))}}function dr(n,c,s,l,i,o){{var t=Oe(n);if(!t){var d=\"\";(n===void 0||typeof n==\"object\"\u0026\u0026n!==null\u0026\u0026Object.keys(n).length===0)\u0026\u0026(d+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var f=nr(i);f?d+=f:d+=ye();var u;n===null?u=\"null\":M(n)?u=\"array\":n!==void 0\u0026\u0026n.$$typeof===e?(u=\"\u003c\"+(h(n.type)||\"Unknown\")+\" /\u003e\",d=\" Did you accidentally export a JSX literal instead of a component?\"):u=typeof n,b(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",u,d)}var m=rr(n,c,s,i,o);if(m==null)return m;if(t){var _=c.children;if(_!==void 0)if(l)if(M(_)){for(var v=0;v\u003c_.length;v++)pe(_[v],n);Object.freeze\u0026\u0026Object.freeze(_)}else b(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else pe(_,n)}return n===x?lr(m):sr(m),m}}var tr=dr;q.Fragment=x,q.jsxDEV=tr})()});var we=K((Er,Fe)=\u003e{\"use strict\";Fe.exports=ve()});var pr={};br(pr,{default:()=\u003eNr,frontmatter:()=\u003eyr});var r=fr(we()),yr={title:\"Wireguard VPN with AWS and UDM Pro\",author:\"Ryan Russell\",date:\"2023-09-02\",category:\"tech\",description:\"Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro\",ogImage:\"udm_vpn/network_routers.png\"};function ke(a){let e=Object.assign({p:\"p\",h4:\"h4\",a:\"a\",span:\"span\",h3:\"h3\",strong:\"strong\",ul:\"ul\",li:\"li\",h2:\"h2\",div:\"div\",pre:\"pre\",code:\"code\",br:\"br\",em:\"em\"},a.components);return(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)(e.p,{children:`Earlier this year I setup Home Assistant as a replacement to SmartThings, but the one missing\ncomponent was cloud access. While Home Assistant offers a paid cloud service, we found that it\nwas a bit too expensive just to be able to remotely control the lights.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`A few months later I setup a PiHole for ad-blocking/tracking and wanted to be able utilize it\noutside of my home network. At the time I happened to also be tired of paying for a VPN service\nand constantly having to disable it for specific sites as many now crack down on the major VPN\nproviders.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`The next step was to setup my own remote VPN server. I'd get the benefit of the added security\non all of my devices when off of my home network, access to Home Assistant on my local network,\nand the benefit of the PiHole DNS blocking.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`I chose to setup a basic Ubuntu server with AWS Lightsail running Wireguard. This server would\nact as my central VPN service that all of my devices, including my Ubiquiti Dream Machine Pro\ngateway, would connect to.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:23,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"insert-network-diagram\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#insert-network-diagram\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"INSERT NETWORK DIAGRAM\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:27,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"aws-lightsail\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#aws-lightsail\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"AWS Lightsail\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:29,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[`I chose AWS Lightsail primarily for cost purposes. If I had additional AWS resources I needed\naccess to over my VPN I likely would have chosen a standard EC2 instance. For this purpose, the\ncost of an EC2 instance was no match to AWS Lightsail. AWS offers the first 3 months for free for\nnew accounts, and `,(0,r.jsxDEV)(e.strong,{children:\"data is included\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:34,columnNumber:19},this),\".\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:31,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"On a small instance size you get:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:36,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"2GB Memory\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"2vCPUs\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:39,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"60GB SSD Disk\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:40,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:38,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"And most importantly:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:42,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:(0,r.jsxDEV)(e.strong,{children:\"3TB of included data transfer\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:44,columnNumber:3},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:44,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:44,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"The data transfer is what really makes this more cost effective than running a regular EC2 instance!\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:46,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"vpn-server\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#vpn-server\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"VPN Server\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:48,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"creating-a-lightsail-instance\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#creating-a-lightsail-instance\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Creating A Lightsail Instance\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:50,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`Once I chose Lightsail, it was time to setup my server. I chose the settings and configurations I wanted\nand setup my Terraform code to deploy my instance to a fresh AWS account.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:52,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:148},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"aws_lightsail_instance\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:185},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:255},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"wireguard\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:292},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:349},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:62},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:112},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"wireguard\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" availability_zone\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:75},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:112},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"us-west-2b\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" blueprint_id\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:70},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:112},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"ubuntu_22_04\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" bundle_id\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:112},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"small_2_0\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" ip_address_type\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:73},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:112},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:149},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"ipv4\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:186},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"add_on\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:100},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" type\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:101},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"AutoSnapshot\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" snapshot_time\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:73},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:110},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:147},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"09:00\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:184},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" status\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:66},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:103},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:140},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"Enabled\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:177},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"}\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:55,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"I chose to use port \",(0,r.jsxDEV)(e.code,{children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:70,columnNumber:21},this),` for my Wireguard configuration, so configured my security group to open that up to all\nIP addresses so our mobile devices could connect outside my home network.`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:70,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`I also added a security group to allow SSH access from my home network and VPN to configure the server. Unfortunately\nLightsail is fairly limited so fully automating the setup wasn't feasible, but for this situation a manual setup was fine.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:73,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:142},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:186},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"aws_lightsail_instance_public_ports\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:306},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"vpn_port\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:343},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:399},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instance_name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:73},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:110},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:147},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"aws_lightsail_instance\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:184},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:242},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"wireguard\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:279},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:324},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:361},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"port_info\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:105},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" protocol\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:70},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"udp\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" from_port\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:71},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" to_port\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:69},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" cidrs\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"[\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"0.0.0.0/0\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:219},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:276},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"port_info\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:60},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:105},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" protocol\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:70},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"tcp\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" from_port\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:71},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"22\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" to_port\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:69},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"22\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:182},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" cidrs\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:67},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:108},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:145},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"[\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:219},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"${\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:261},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"var\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:299},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:338},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"home_ip\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:375},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"}\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:418},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'/32\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:455},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\", \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:500},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"10.0.0.0/8\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:538},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:596},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:17,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:76,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`Then finally I setup a static IP, and added a Route53 DNS record to point to it. This way I can use my domain name in my client\nconfigurations and if I ever need to move my server to a new account, VPC, etc where I lose the static IP, I won't have\nto update every client.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:96,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"hcl\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"hcl\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:142},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:186},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"aws_lightsail_static_ip\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:223},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:294},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"vpn_ip\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:331},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:385},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:64},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:101},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:138},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:'\"vpn-static-ip\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:175},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"resource\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:102},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"aws_lightsail_static_ip_attachment\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:139},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:221},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:'\"test\"'},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" {\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:310},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" static_ip_name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:74},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:111},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:148},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"aws_lightsail_static_ip\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:185},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:244},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"vpn_ip\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:281},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:323},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:360},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" instance_name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:73},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\"=\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:111},this),(0,r.jsxDEV)(e.span,{style:{color:\"#FFAB70\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:148},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"aws_lightsail_instance\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:185},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:243},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"wireguard\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:280},this),(0,r.jsxDEV)(e.span,{style:{color:\"#F97583\"},children:\".\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:325},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\"name\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:362},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" }\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:100,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"installing-and-configuring-wireguard\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#installing-and-configuring-wireguard\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Installing and Configuring Wireguard\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:111,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"With my instance launched, it was time to configure Wireguard.\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:113,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"I SSH'd into the instance and installed the necessary packages and settings:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:115,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"sudo\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:142},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"apt\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:219},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:258},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"install\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:295},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:338},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"-y\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:375},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:413},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"wireguard\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:450},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:495},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"awscli\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:532},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:574},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"jq\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:611},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:649},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"resolvconf\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:686},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:732},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"mtr\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:769},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:808},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"traceroute\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:845},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:891},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"net-tools\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:928},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"umask\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:58},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:99},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"077\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:136},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:116,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"Enable packet forwarding by uncommenting the following line in \",(0,r.jsxDEV)(e.code,{children:\"/etc/sysctl.conf\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:121,columnNumber:64},this),\":\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:121,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" net.ipv4.ip_forward=1\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:122,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"and reload \",(0,r.jsxDEV)(e.code,{children:\"sysctl\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:125,columnNumber:12},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:125,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"bash\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:[(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this),(0,r.jsxDEV)(e.span,{style:{color:\"#B392F0\"},children:\"sudo\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:142},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:182},this),(0,r.jsxDEV)(e.span,{style:{color:\"#9ECBFF\"},children:\"sysctl\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:219},this),(0,r.jsxDEV)(e.span,{style:{color:\"#E1E4E8\"},children:\" \"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:261},this),(0,r.jsxDEV)(e.span,{style:{color:\"#79B8FF\"},children:\"-p\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:298},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:126,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"Next I generated the keys and created the Wireguard config file. For details on creating the keys, refer to the \",(0,r.jsxDEV)(e.a,{href:\"https://ubuntu.com/server/docs/wireguard-vpn-site2site\",children:`official Ubuntu\ndocumentation`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:130,columnNumber:113},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:130,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"I chose a CIDR block of \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.0/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:133,columnNumber:25},this),\" on port \",(0,r.jsxDEV)(e.code,{children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:133,columnNumber:51},this),` for my VPN network. To start, I only wanted to connect 3 devices to my Lightsail instance\nas part of my POC:`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:133,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Lightsail Instance: \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.1\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:136,columnNumber:23},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Pixel 5: \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.2\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:137,columnNumber:12},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:137,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Ubiquiti Dream Machine Pro (home network): \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.3\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:138,columnNumber:46},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:138,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Macbook Pro: \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.4\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:139,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:139,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:136,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"setting-up-the-configuration-file\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#setting-up-the-configuration-file\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Setting up the configuration file:\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:141,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"interface-configuration\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#interface-configuration\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Interface configuration\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:142,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:[\"Set the key file when the tunnel is brought up\",(0,r.jsxDEV)(e.br,{},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:144,columnNumber:49},this),`\n`,(0,r.jsxDEV)(e.code,{children:\"PostUp = wg set %i private-key /etc/wireguard/%i.key\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:145,columnNumber:3},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:144,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:144,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:[\"Set the interface IP address for the Lightsail instance\",(0,r.jsxDEV)(e.br,{},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:147,columnNumber:58},this),`\n`,(0,r.jsxDEV)(e.code,{children:\"Address = 10.100.105.1/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:148,columnNumber:3},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:147,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:147,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:[\"Set the listener port\",(0,r.jsxDEV)(e.br,{},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:150,columnNumber:24},this),`\n`,(0,r.jsxDEV)(e.code,{children:\"ListenPort = 51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:151,columnNumber:3},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:150,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:150,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:[\"Set the DNS endpoint (this is the endpoint for my PiHole on my home network)\",(0,r.jsxDEV)(e.br,{},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:153,columnNumber:79},this),`\n`,(0,r.jsxDEV)(e.code,{children:\"DNS = 10.5.5.192\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:154,columnNumber:3},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:153,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:153,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:[\"And finally we need to set the \",(0,r.jsxDEV)(e.code,{children:\"iptable\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:156,columnNumber:34},this),\" rules to forward traffic correctly between network interfaces\",(0,r.jsxDEV)(e.br,{},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:156,columnNumber:105},this),`\n`,(0,r.jsxDEV)(e.code,{children:\"PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:157,columnNumber:3},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:156,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:156,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:144,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"peer-configurations\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#peer-configurations\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Peer Configurations\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:159,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`With the Interface configured, we can configure the peers. I generated the keys for each device and setup the Peer configurations in the Lightsail Wireguard\nconfiguration:`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:160,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Pixel 5\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:163,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.100.105.2/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:164,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:163,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Dream Machine Pro\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:170,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.0.0.0/11, 10.100.105.3/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:171,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"My home network CIDR is \",(0,r.jsxDEV)(e.code,{children:\"10.0.0.0/11\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:176,columnNumber:27},this),\", which is where the PiHole and Home Assistant are running, so I added those routes.\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:176,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:170,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Macbook Pro\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:178,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.100.105.4/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:179,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:178,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:163,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"The final configuration file looks like this:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:185,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Interface]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PostUp = wg set %i private-key /etc/wireguard/%i.key\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" Address = 10.100.105.1/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" ListenPort = 51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" DNS = 10.5.5.192\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PostUp = iptables...\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PostDown = iptables...\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"}},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" # Pixel 5\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.100.105.2/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:12,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"}},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:13,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" # UDM\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:14,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:15,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:16,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:16,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.0.0.0/11, 10.100.105.3/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:17,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:17,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"}},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:18,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:18,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" # MacBook\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:19,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:19,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:20,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:20,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003ckey\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:21,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:21,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.100.105.4/32\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:22,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:22,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:187,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h2,{id:\"client-peers\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#client-peers\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Client Peers\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:212,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"android-pixel-5\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#android-pixel-5\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Android Pixel 5\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:214,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"Wireguard has an Android app on the app store, so it was just a matter of setting the configuration:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:216,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"interface\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#interface\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Interface\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:218,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Address: \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.2/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:220,columnNumber:12},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:220,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Listen Port: \",(0,r.jsxDEV)(e.code,{children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:221,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:221,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"DNS Servers: \",(0,r.jsxDEV)(e.code,{children:\"10.5.5.192, 8.8.8.8\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:222,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:222,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:220,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"peer-lightsail-instance\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#peer-lightsail-instance\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Peer (Lightsail Instance)\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:224,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Public Key: \",(0,r.jsxDEV)(e.code,{children:\"\u003cLightsail public key\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:226,columnNumber:15},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:226,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Endpoint: \",(0,r.jsxDEV)(e.code,{children:\"\u003cdns-endpoint\u003e:51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:227,columnNumber:13},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:227,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Allowed IPs: \",(0,r.jsxDEV)(e.code,{children:\"0.0.0.0/0, ::/0\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:228,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:228,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:226,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"on-demand\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#on-demand\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"On-Demand\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:230,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"For this device I did not want the Always On VPN set, since it only needs to be active when \",(0,r.jsxDEV)(e.em,{children:\"not\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:232,columnNumber:93},this),` on my home WiFi network.\nUnfortunately the Android Wireguard app does not have an 'On Demand' feature so I needed to use Tasker to automate the\nconnect and disconnect based on network status.`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:232,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:\"I created 4 tasker profiles:\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:236,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Wifi Connected\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:238,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"State: Wifi Connected to [Home SSID] -\u003e Wireguard Off\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:239,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:239,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:238,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Not Wifi Connected\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:241,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"State: Not Wifi Connected to [Home SSID] -\u003e Wireguard On\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:242,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:242,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:241,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Airplane Mode\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:244,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"State: Airplane Mode Active -\u003e Wireguard Off\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:245,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:245,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:244,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[`\n`,(0,r.jsxDEV)(e.p,{children:\"Not Airplane Mode\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:247,columnNumber:3},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"State: Not Airplane Mode Active -\u003e Wireguard On\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:248,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:248,columnNumber:3},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:247,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:238,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:[\"I also had to set \",(0,r.jsxDEV)(e.code,{children:\"Allow remote control apps\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:250,columnNumber:19},this),\" in the Wireguard settings to allow Tasker to activate/deactivate the VPN.\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:250,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"ubiquiti-dream-machine-pro\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#ubiquiti-dream-machine-pro\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Ubiquiti Dream Machine Pro\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:252,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`The UDM actually has Wireguard installed already - it's one of the VPN options provided in the UniFi UI. Unfortunately I wasn't able to get the\nVPN to work through the UI, so I had to manually SSH into the UDM box and create my own interface just as I did on the Lightsail\ninstance.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:254,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.div,{\"data-rehype-pretty-code-fragment\":\"\",children:(0,r.jsxDEV)(e.pre,{style:{backgroundColor:\"#24292e\"},tabIndex:\"0\",\"data-language\":\"text\",\"data-theme\":\"default\",children:(0,r.jsxDEV)(e.code,{\"data-language\":\"text\",\"data-theme\":\"default\",children:[(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Interface]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:104},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:85},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PostUp = wg set %i private-key /etc/wireguard/%i.key\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:2,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" Address = 10.100.105.3/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:3,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" ListenPort = 51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:4,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" DNS = 10.5.5.192, 8.8.8.8\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:5,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PostUp = ping -c 1 10.100.105.1\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:6,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"}},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:7,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" [Peer]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:8,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" PublicKey = \u003cLightsail public key\u003e\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:9,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" Endpoint = \u003cdns-endpoint\u003e:51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:10,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.span,{\"data-line\":\"\",children:(0,r.jsxDEV)(e.span,{style:{color:\"#e1e4e8\"},children:\" AllowedIPs = 10.100.105.0/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:20},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:11,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:79},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:258,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h3,{id:\"macbook-pro\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#macbook-pro\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Macbook Pro\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:272,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.p,{children:`Wireguard has an app on the App store that makes this configuration very easy to setup, and it even has an 'On Demand' option to configure\nnetwork SSIDs.`},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:274,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"interface-1\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#interface-1\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Interface\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:277,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Addresses: \",(0,r.jsxDEV)(e.code,{children:\"10.100.105.4/24\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:279,columnNumber:14},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:279,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Listen port: \",(0,r.jsxDEV)(e.code,{children:\"51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:280,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:280,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"DNS servers: \",(0,r.jsxDEV)(e.code,{children:\"10.5.5.192\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:281,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:281,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:279,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"peer-lightsail-instance-1\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#peer-lightsail-instance-1\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"Peer (Lightsail instance)\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:283,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:[\"Endpoint: \",(0,r.jsxDEV)(e.code,{children:\"\u003cdns-endpoint\u003e:51821\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:285,columnNumber:13},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:285,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:[\"Allowed IPs: \",(0,r.jsxDEV)(e.code,{children:\"0.0.0.0/0, ::/0\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:286,columnNumber:16},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:286,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:285,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.h4,{id:\"ondemand\",children:[(0,r.jsxDEV)(e.a,{className:\"subheading-anchor\",\"aria-label\":\"Link to section\",href:\"#ondemand\",children:(0,r.jsxDEV)(e.span,{className:\"icon icon-link\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this),\"OnDemand:\"]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:288,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.ul,{children:[`\n`,(0,r.jsxDEV)(e.li,{children:\"On-Demand: Wi-Fi only\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:290,columnNumber:1},this),`\n`,(0,r.jsxDEV)(e.li,{children:\"SSIDs: Except these SSIDs: [Home SSID]\"},void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:291,columnNumber:1},this),`\n`]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:290,columnNumber:1},this)]},void 0,!0,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\",lineNumber:1,columnNumber:1},this)}function hr(a={}){let{wrapper:e}=a.components||{};return e?(0,r.jsxDEV)(e,Object.assign({},a,{children:(0,r.jsxDEV)(ke,a,void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this)}),void 0,!1,{fileName:\"/Users/ryanrussell/code/arsci/russerya.com/src/content/blog/tech/_mdx_bundler_entry_point-cc087d92-dfb8-4520-b8b5-89f1cf1c01e4.mdx\"},this):ke(a)}var Nr=hr;return _r(pr);})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-dev-runtime.development.js:\n (**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n;return Component;"])</script><script>self.__next_f.push([1,"b:[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"max-w-3xl px-4 sm:px-6 lg:px-8 mx-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"sm:px-8 mt-16 \",\"children\":[[\"$\",\"$Ld\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex justify-center\",\"children\":[\"$\",\"time\",null,{\"dateTime\":\"2023-09-02\",\"className\":\"order-first flex items-center text-base text-zinc-400 dark:text-zinc-500 sm:text-2xl\",\"children\":\"September 1, 2023\"}]}]]}]}],[\"$\",\"div\",null,{\"className\":\"max-w-7xl px-4 sm:px-6 lg:px-8 mx-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-4 sm:px-6 lg:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"sm:px-8 mt-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex justify-center mx-auto\",\"children\":[\"$\",\"$Le\",null,{\"src\":\"/images/blog/tech/udm_vpn/network_routers.png\",\"width\":\"1000\",\"height\":\"1000\",\"className\":\"h-auto w-full rounded-md\",\"alt\":\"header-image\"}]}],[\"$\",\"div\",null,{\"className\":\"flex justify-center mx-auto\",\"children\":[\"$\",\"header\",null,{\"className\":\"flex flex-col items-left\",\"children\":[\"$\",\"h1\",null,{\"className\":\"mt-8 text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl text-align:center\",\"children\":\"Wireguard VPN with AWS and UDM Pro\"}]}]}]]}]}]}],[\"$\",\"div\",null,{\"className\":\"max-w-7xl px-4 sm:px-6 lg:px-8 mx-auto mb-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-4 sm:px-6 lg:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"sm:px-8 mt-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex justify-center mx-auto\",\"children\":[\"$\",\"article\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"mt-8\",\"children\":[\"$\",\"$Lf\",null,{\"code\":\"$10\"}]}]}]}]}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Wireguard VPN with AWS and UDM Pro - Blog - Ryan Russell\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Wireguard VPN with AWS and UDM Pro\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"http://localhost:3000/blog/tech/vpn-wireguard-aws-unifi\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"http://localhost:3000/images/blog/tech/udm_vpn/network_routers.png?heading=Wireguard+VPN+with+AWS+and+UDM+Pro\u0026type=Blog+Post\u0026mode=dark\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:alt\",\"content\":\"Wireguard VPN with AWS and UDM Pro\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"Wireguard VPN with AWS and UDM Pro\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Setting up a VPN in AWS and connecting a UniFi Dream Machine Pro\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3000/images/blog/tech/udm_vpn/network_routers.png?heading=Wireguard+VPN+with+AWS+and+UDM+Pro\u0026type=Blog+Post\u0026mode=dark\"}],[\"$\",\"meta\",\"16\",{\"name\":\"next-size-adjust\"}]]\n"])</script></body></html>