<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training%3A_WireGuard</id>
	<title>Training: WireGuard - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training%3A_WireGuard"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training:_WireGuard&amp;action=history"/>
	<updated>2026-06-05T11:00:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Training:_WireGuard&amp;diff=241&amp;oldid=prev</id>
		<title>Justinaquino: Created page with &quot;__NOTOC__  &lt;div style=&quot;background:#e7f3ff;border:1px solid #a3c6ff;padding:10px;margin-bottom:15px;&quot;&gt; &#039;&#039;&#039;Training Module: WireGuard (Section 7)&#039;&#039;&#039; — pfSense Plus Fundamentals and Practical Application &lt;/div&gt;  == Introduction ==  WireGuard is a very new VPN technology that is entirely stateless.  * Tends to be very performant * Lives in the kernel space * Uses “Crypto-Key Routing” * Ensures routing traffic to correct destination * Very little status info — it work...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training:_WireGuard&amp;diff=241&amp;oldid=prev"/>
		<updated>2026-04-23T07:09:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__NOTOC__  &amp;lt;div style=&amp;quot;background:#e7f3ff;border:1px solid #a3c6ff;padding:10px;margin-bottom:15px;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Training Module: WireGuard (Section 7)&amp;#039;&amp;#039;&amp;#039; — pfSense Plus Fundamentals and Practical Application &amp;lt;/div&amp;gt;  == Introduction ==  WireGuard is a very new VPN technology that is entirely stateless.  * Tends to be very performant * Lives in the kernel space * Uses “Crypto-Key Routing” * Ensures routing traffic to correct destination * Very little status info — it work...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#e7f3ff;border:1px solid #a3c6ff;padding:10px;margin-bottom:15px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Training Module: WireGuard (Section 7)&amp;#039;&amp;#039;&amp;#039; — pfSense Plus Fundamentals and Practical Application&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
WireGuard is a very new VPN technology that is entirely stateless.&lt;br /&gt;
&lt;br /&gt;
* Tends to be very performant&lt;br /&gt;
* Lives in the kernel space&lt;br /&gt;
* Uses “Crypto-Key Routing”&lt;br /&gt;
* Ensures routing traffic to correct destination&lt;br /&gt;
* Very little status info — it works or it doesn’t&lt;br /&gt;
* Easy roaming between networks&lt;br /&gt;
* Endpoint IP always updated&lt;br /&gt;
* Configuration may be more time-consuming&lt;br /&gt;
&lt;br /&gt;
== Simplified Codebase ==&lt;br /&gt;
&lt;br /&gt;
WireGuard has a dramatically smaller codebase compared to traditional VPN solutions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Protocol !! Lines of Code&lt;br /&gt;
|-&lt;br /&gt;
| IPsec || ~ 400,000&lt;br /&gt;
|-&lt;br /&gt;
| OpenVPN || ~ 600,000&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;WireGuard&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;~ 4,000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Less Code = Greater Efficiency&lt;br /&gt;
&lt;br /&gt;
== Rigid Crypto Protocols ==&lt;br /&gt;
&lt;br /&gt;
WireGuard uses modern, rigidly defined cryptographic protocols:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ChaCha20&amp;#039;&amp;#039;&amp;#039; for symmetric encryption, authenticated with &amp;#039;&amp;#039;&amp;#039;Poly1305&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Curve25519&amp;#039;&amp;#039;&amp;#039; for ECDH&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BLAKE2s&amp;#039;&amp;#039;&amp;#039; for hashing and keyed hashing&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SipHash24&amp;#039;&amp;#039;&amp;#039; for hashtable keys&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HKDF&amp;#039;&amp;#039;&amp;#039; for key derivation&lt;br /&gt;
&lt;br /&gt;
== Site-to-Site ==&lt;br /&gt;
&lt;br /&gt;
WireGuard creates a local wg0 interface. Peers have their own public &amp;amp; private keys.&lt;br /&gt;
&lt;br /&gt;
* Exchange public key with peers&lt;br /&gt;
* Crypto-key routing — looks up peer wg0 address and public key&lt;br /&gt;
* Forwards traffic out local wg0 interface to peer&lt;br /&gt;
&lt;br /&gt;
== Local Setup ==&lt;br /&gt;
&lt;br /&gt;
Some assembly required:&lt;br /&gt;
&lt;br /&gt;
# Activate the service&lt;br /&gt;
# Give wg0 a local IP/mask&lt;br /&gt;
# Generate Public/Private keys&lt;br /&gt;
# Assign wg0 to an OPT interface&lt;br /&gt;
# Create a gateway&lt;br /&gt;
# Open WG port on firewall&lt;br /&gt;
# Create firewall rules to allow traffic&lt;br /&gt;
&lt;br /&gt;
== Peer Setup ==&lt;br /&gt;
&lt;br /&gt;
Required information for peer configuration:&lt;br /&gt;
&lt;br /&gt;
* Peer’s initial end-point IP&lt;br /&gt;
* Peer’s public key&lt;br /&gt;
* Peer’s wg0 IP (typically same as allowed IPs)&lt;br /&gt;
&lt;br /&gt;
Assuming peer’s firewall is setup, try ping!&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
* WireGuard is completely stateless&lt;br /&gt;
* Updated crypto protocols&lt;br /&gt;
* Uses crypto-key routing — routing table not a factor&lt;br /&gt;
* Requires its own OPT interface and gateway&lt;br /&gt;
* Very limited status information&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;It works, or it doesn’t&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Next Module ==&lt;br /&gt;
* [[Training Lab 7: WireGuard|Lab 7: WireGuard — Site-to-Site VPN Configuration]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;#039;&amp;#039;&amp;#039;Source:&amp;#039;&amp;#039;&amp;#039; Netgate pfSense Training — FUND001-LIVE-SLIDE-SEG7-WG.pdf (© 2017 Rubicon Communications dba Netgate)&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>