Skip to content

Commit bd068c1

Browse files
defguard-communitygitbook-bot
authored andcommitted
GITBOOK-286: change request with no subject merged in GitBook
1 parent 264efaa commit bd068c1

File tree

11 files changed

+85
-58
lines changed

11 files changed

+85
-58
lines changed
124 KB
Loading

.gitbook/assets/defguard (1).png

-100 KB
Loading

.gitbook/assets/defguard (2).png

175 KB
Loading

.gitbook/assets/defguard.png

-146 KB
Loading

README.md

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
icon: hand-wave
3+
---
4+
15
# Introduction
26

37
{% embed url="https://www.youtube.com/watch?v=4PF7edMGBwk" %}
@@ -10,46 +14,41 @@ Defguard is a **comprehensive Remote Access Management solution** incorporating
1014
* Identity Management with [SSO based on OpenID Identity Provider](admin-and-features/features-and-configuration/openid-connect/),
1115
* Account Lifecycle management with [secure remote account onboarding](help/enrollment.md).
1216

13-
It's a **security platform** for building **secure** and **privacy-aware organizations,** as we put great emphasis not only on functionality but also on secure code, architecture and testing (application and security).
17+
***
1418

15-
By design **defguard core (the main component) is meant to be deployed in your secure network segments** (available only from an internal network or by VPN) and operations that require public access (like user onboarding, enrollment, password reset, etc.) **are done using a secure proxy:**
19+
<mark style="color:purple;">**Our primary focus at defguard is on prioritizing security. Then, we aim to make this challenging topic both useful and as easy to navigate as possible.**</mark>
1620

17-
<figure><img src=".gitbook/assets/defguard-architecture.png" alt=""><figcaption><p>defguard architecture</p></figcaption></figure>
21+
***
1822

19-
This approach is vastly different from most (if not all) VPN/IdP solutions, which are a simple or monolithic application focus on functionalities (like generating configs, managing users, etc.) and most of the time is publicly available in the Internet for any attacker.
23+
Having said that, this security platform is for building **secure** and **privacy-aware organizations,** as we put great effort not only on functionality but first and foremost on secure code, architecture and testing (application and security).
2024

21-
Incorporating IDM, ALM, VPN has also other advantages:
25+
### Basic security concept
2226

23-
1. Internal IdP with 2FA/MFA enables us to provide [**real VPN 2FA/MFA**](admin-and-features/features-and-configuration/wireguard/multi-factor-authentication-mfa-2fa/architecture.md) - and not like most applications just 2FA when opening the app (and not during the connection process). Even if you use [external OIDC](enterprise/all-enteprise-features/external-openid-providers.md) (Google/Microsoft/Custom - which defguard supports), we still use our internal IdP for 2FA/MFA.
24-
2. Your organisation may use just **one account** (login) for access control to all your applications as well as VPN.
25-
3. It simplifies deployment, maintenance, audits.
27+
<figure><img src=".gitbook/assets/defguard (1).png" alt=""><figcaption><p>Defguard main architecture concept</p></figcaption></figure>
2628

27-
### What does it mean to build a secure "organization"?
29+
The main architecture concept is that **all critical data should be in the internal (Intranet) network and not exposed in the public Internet** (contrary to typical and common cloud approach).
2830

29-
First of all, It means implementing a **secure architecture** for your network and systems. In the age of "cloud," all systems (and data) are **public.** But that should be **for you to decide!**
31+
This approach is **vastly different from most (if not all) VPN/IdP solutions**, which are a simple or monolithic applications focus on functionalities and most of the time is publicly available in the Internet for any attacker to exploit.
3032

31-
That's why defguard architecture (and implementation) is secure (and thoroughly and comprehensively audited by one of the best security researchers). If you want full privacy, defguard only exposes its VPN gateway (to provide a secure channel to all internal systems that should be behind the firewall) and the public proxy (for the remote user enrollment process).
33+
Of course you can deploy defguard in a typical scenario (all services on one server and even all publicly available) - but that should be **for you to decide!**
3234

33-
It also means having **fundamental secure processes,** like:
35+
### Incorporating IdP and VPN in one solution
3436

35-
* secure remote user enrollment (self-service)
36-
* user self-service to manage their own data, change passwords, add/remove VPN devices, connect securely to networks
37-
* for administrators to easily setup, manage and monitor multiple VPN networks (with access control) to provide a secure connection to applications that should not be visible on the internet
38-
* deploy an Identity Provider to have one place to manage all users
39-
* that Identity Provider should provide SSO functionality to enable users to log in to all systems with one login/password
40-
* have 2FA/MFA functionality to harden security
41-
* setup Yubikey Hardware keys to enable the best 2FA security, secure SSH login with private keys on a secure hardware
42-
* integrate all your systems with API, and Webhooks (to access defguard functionalities or users' data)
37+
Incorporating IDM, ALM, VPN has also other advantages:
38+
39+
1. Internal IdP with 2FA/MFA enables us to provide [**real VPN 2FA/MFA**](admin-and-features/features-and-configuration/wireguard/multi-factor-authentication-mfa-2fa/architecture.md) - and not like most applications just 2FA when opening the app (and not during the connection process). Even if you use [external OIDC](enterprise/all-enteprise-features/external-openid-providers.md) (Google/Microsoft/Custom - which defguard supports), we still use our internal IdP for 2FA/MFA.
40+
2. Your organization may use just **one account** (login) for access control to all your applications as well as VPN.
41+
3. It simplifies deployment, maintenance, audits.
4342

44-
**Building a secure organization has always been difficult and costly. Defguard provides a beautiful, easy-to-use (business users) and deploy (admin/DevOps) fundament to make your organization secure.**
43+
More about [defguard's architecture and security can be found here](in-depth/architecture/).
4544

4645
## Features
4746

4847
### Remote Access with WireGuard® VPN 2FA/MFA:
4948

5049
* [**Multi-Factor Authentication**](admin-and-features/features-and-configuration/wireguard/multi-factor-authentication-mfa-2fa/) using our [desktop client](https://defguard.net/client)
5150
* **multiple VPN Locations** (networks/sites) - with defined access (all users or only Admin group)
52-
* multiple [Gateways](https://github.com/DefGuard/gateway) for each VPN Location (**high availability/failover**) - supported on a cluster of routers/firewalls for Linux, FreeBSD/PFSense/OPNSense
51+
* multiple [Gateways](https://github.com/DefGuard/gateway) for each VPN Location ([**high availability/failove**](admin-and-features/setting-up-your-instance/high-availability-and-failover.md)**r**) - supported on a cluster of routers/firewalls for Linux, FreeBSD/PFSense/OPNSense
5352
* import your current WireGuard server configuration (with a wizard!)
5453
* _easy_ device setup by users themselves (self-service)
5554
* automatic IP allocation
@@ -61,7 +60,7 @@ _defguard is not an official WireGuard project, and WireGuard is a registered tr
6160
### Identity Management:
6261

6362
* ### [OpenID Connect](https://openid.net/developers/how-connect-works/) based SSO
64-
* External OpenID privoders for login/account creation (Google/Microsoft/Custom)
63+
* External [OpenID providers for login/account creation (Google/Microsoft/Custom)](enterprise/all-enteprise-features/external-openid-providers.md)
6564
* LDAP (tested on [OpenLDAP](https://www.openldap.org/)) synchronization
6665
* nice UI to manage users
6766
* Users **self-service** (besides typical data management, users can revoke access to granted apps, MFA, Wireguard, etc.)
@@ -90,7 +89,7 @@ Build with [Rust](https://www.rust-lang.org/) for portability, security, and spe
9089

9190
### Pentested!
9291

93-
**Checked by professional security researchers** (see [comprehensive security report](https://defguard.net/images/decap/isec-defguard.pdf))
92+
**Checked by professional security researchers** (see [comprehensive security report](https://defguard.net/pdf/isec-defguard.pdf))
9493

9594
## Guides: Jump right in
9695

@@ -120,6 +119,6 @@ Follow our handy guides to get started on the basics as quickly as possible:
120119

121120
Learn the fundamentals of Defguard to get a deeper understanding of our main features:
122121

123-
{% content-ref url="in-depth/architecture.md" %}
124-
[architecture.md](in-depth/architecture.md)
122+
{% content-ref url="in-depth/architecture/" %}
123+
[architecture](in-depth/architecture/)
125124
{% endcontent-ref %}

SUMMARY.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@
7878
## In depth
7979

8080
* [Roadmap](features/roadmap.md)
81-
* [Architecture Overview](in-depth/architecture.md)
81+
* [Architecture](in-depth/architecture/README.md)
82+
* [Security concepts](in-depth/architecture/security-concepts.md)
8283

8384
## For Developers
8485

admin-and-features/features-and-configuration/wireguard/network-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Network overview
22

3-
Once your gateway service is up and users start connecting to the VPN, upload/download summary data is stored and can be displayed in "overview" tab of Defguard web application. See [architecture overview](../../../in-depth/architecture.md) for details of core-gateway interaction.
3+
Once your gateway service is up and users start connecting to the VPN, upload/download summary data is stored and can be displayed in "overview" tab of Defguard web application. See [architecture overview](../../../in-depth/architecture/) for details of core-gateway interaction.
44

55
On the overview page, you'll see who is currently connected and how much data each connected user transferred. You'll also see overall network transfer charts.
66

features/setting-up-your-instance/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ On initial startup a new `admin` user will be created with a password which can
5454

5555
### Tips
5656

57-
See our [Configuration](configuration.md) document to check all configurable things before you start. And learn about our Architecture [here](../../in-depth/architecture.md) to see how it works.
57+
See our [Configuration](configuration.md) document to check all configurable things before you start. And learn about our Architecture [here](../../in-depth/architecture/) to see how it works.
5858

5959

6060

in-depth/architecture.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

in-depth/architecture/README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Architecture
2+
3+
By design **defguard core (the main component) is meant to be deployed in your secure network segments** (available only from an internal network or by VPN) and operations that require public access (like user onboarding, enrollment, password reset, etc.) **are done using a secure proxy:**
4+
5+
<figure><img src="../../.gitbook/assets/defguard-architecture.png" alt=""><figcaption><p>defguard architecture</p></figcaption></figure>
6+
7+
This approach is vastly different from most (if not all) VPN/IdP solutions, which are a simple or monolithic application focus on functionalities (like generating configs, managing users, etc.) and most of the time is publicly available in the Internet for any attacker.
8+
9+
If you want full privacy, defguard only exposes publicly **components designed for this purpose:**
10+
11+
* WireGuard® gateway - to enable VPN access
12+
* Public Proxy for secure remote processes like:
13+
* [User enrollment and onboarding](../../admin-and-features/features-and-configuration/remote-user-enrollment/)
14+
* [Desktop Client configuration](../../enterprise/all-enteprise-features/automatic-real-time-desktop-client-configuration.md)
15+
16+
## C4 component model
17+
18+
Below you can see Defguard architecture in [C4 model](https://c4model.com/) divided into context, containers and components.
19+
20+
## Context
21+
22+
![Context look at Defguard architecture](../puml/architecture-context.svg)
23+
24+
## Containers
25+
26+
![Containers look at Defguard architecture](../puml/architecture-containers.svg)
27+
28+
## Components
29+
30+
![Components look at Defguard architecture](../puml/architecture-components.svg)
31+
32+
### Basics
33+
34+
Core is a Rust web server which is exposed as REST API and gRPC web server with typescript and rust clients, it handles connection to database, LDAP server and gateway. Core also handles user authorization via LDAP account. It's configurable using Environmental Variables which you can find [here](../../features/setting-up-your-instance/configuration.md).
35+
36+
See Rustdocs [core](https://google.com) [gateway](https://google.com).
37+
38+
Gateway is a small CLI gRPC client written in Rust which sends network statistics to Core server and apply network configuration changes on message from core.\
39+
Our frontend is React app written in Typescript which allows handling all API calls via Web UI.\
40+
See detailed gRPC docs [here](https://google.com)
41+
42+
### Example setup flow
43+
44+
After creating your network in our wizard and running our gateway program core will message it with network data. Gateway after receiving data will setup your network using wireguard commands you can think of it like a wrapper on wireguard commands which also sends network information through gRPC. After successfully setting up your network gateway will start sending your networks stats in period given as argument on gateway program start or if not provided at default which is 60 seconds. You can see all of your network statistics, connected users, bandwidth, user devices on the overview page.

0 commit comments

Comments
 (0)