Commit Graph

304 Commits

Author SHA1 Message Date
Jamil
c16d59f07f fix(website): Remove animations from SVGs (#6264) 2024-08-12 08:13:08 -07:00
Patti
376dc61880 feat(website): New landing page (#6178)
Signed-off-by: Patti <139997703+Patticatti@users.noreply.github.com>
Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-08-12 02:41:37 +00:00
Jamil
e7f8a4e4bf ci: bump apple / android versions (#6251)
These were approved and published so the versions need bumping.
2024-08-10 13:04:26 -07:00
Andrew Dryga
00b93f6b82 feat(portal): Wildcard dns with backwards compatibility (#6214)
If a new resource is created that will use format not supported by
previous client versions we temporarily show a warning:
<img width="683" alt="Screenshot 2024-08-07 at 2 28 57 PM"
src="https://github.com/user-attachments/assets/bbfdfc96-0c4b-4226-93c5-bc2b5fdb9d30">

It will also be excluded from `resources` list for older clients (below
1.2).

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-08-10 18:25:24 +00:00
Thomas Eizinger
78bb2ac73d chore: add changelog entries for #6181 (#6236)
Add either new changelog entries for next version or modify existing
changelog entries to point out #6181.
2024-08-09 22:26:03 +00:00
Thomas Eizinger
47a447c65a chore: prepare hotfix release for Tauri & headless clients (#6235) 2024-08-09 08:28:25 +00:00
Thomas Eizinger
4ae64f0257 fix(connlib): index forwarded DNS queries by ID + socket (#6233)
When forwarding DNS queries, we need to remember the original source
socket in order to send the response back. Previously, this mapping was
indexed by the DNS query ID. As it turns out, at least Windows doesn't
have a global DNS query ID counter and may reuse them across different
DNS servers. If that happens and two of these queries overlap, then we
match the wrong responses together.

In the best case, this produces bad DNS results on the client. In the
worst case, those queries were for DNS servers with different IP
versions in which case we triggered a panic in connlib further down the
stack where we created the IP packet for the response.

To fix this, we first and foremost remove the explicit `panic!` from the
`make::` functions in `ip-packet`. Originally, these functions were only
used in tests but we started to use them in production code too and
unfortunately forgot about this panic. By introducing a `Result`, all
call-sites are made aware that this can fail.

Second, we fix the actual indexing into the data structure for forwarded
DNS queries to also include the DNS server's socket. This ensures we
don't treat the DNS query IDs as globally unique.

Third, we replace the panicking path in
`try_handle_forwarded_dns_response` with a log statement, meaning if the
above assumption turns out wrong for some reason, we still don't panic
and simply don't handle the packet.
2024-08-09 07:01:57 +00:00
Jamil
67ae8ff380 ci: publish Gateway 1.1.4 (#6228)
Publishes the `ENABLE_MASQUERADE` removal.
2024-08-09 03:45:26 +00:00
Jamil
096ddfe7c5 ci: bump gui/headless to 1.1.10 (#6221)
To publish the mpsc channel fix.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-08 16:20:20 +00:00
Reactor Scram
d44c50d609 docs(changelog): fix Gateway release being incorrect (#6222) 2024-08-08 15:59:58 +00:00
Thomas Eizinger
94527f9fa1 fix(gateway): always masquerade for docker-deployed gateways (#6169)
Without masquerading, packets sent by the gateway through the TUN
interface use the wrong source address (the TUN device's address)
instead of the gateway's actual network interface.

We set this env variable in all our uses of the gateway, thus we might
as well remove it and always perform unconditionally.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-07 03:00:50 +00:00
Reactor Scram
5b75e8714a feat(client/tauri): allow users to favorite specific Resources and hide the rest (#5923)
Refs #5123

Looking at a Resource when nothing is favorited
<img width="504" alt="image"
src="https://github.com/user-attachments/assets/4c3bc1da-4645-40c1-84a4-3e3425a0fea3">

Looking at a favorited Resource
<img width="515" alt="image"
src="https://github.com/user-attachments/assets/22140f81-5453-41fd-9071-9c999b3151b1">

Looking at a non-favorited Resource
<img width="497" alt="image"
src="https://github.com/user-attachments/assets/84deddb1-8a05-4b78-9dfa-a8a60ca86831">


```[tasklist]
- [x] Double-check that the Resources are sorted alphabetically (or whatever) and leave a comment where they're sorted
- [x] String changes
- [x] Move "Add" and "Remove" down to a different section
- [x] Fix empty favorites menu
- [ ] Wait for other Clients to sync
- [ ] Merge
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-06 22:36:52 +00:00
Reactor Scram
861ca1861d feat(client/kotlin): add Favorite Resources menu (#6107)
It's missing a couple pieces, see the tasklist


![image](https://github.com/user-attachments/assets/370e13fc-c0cd-4444-9539-0c7d90f3ba05)

Refs #5123

```[tasklist]
- [x] Add `Add to Favorites` and `Remove from Favorites` buttons
- [x] Update Changelog
- [x] Load and save Favorites from `SharedPreferences`
- [x] Wire up `onClick` events
- [x] Hide and show Resources in the menu based on whether they're favorited
- [x] Hide tabs if nothing is favorited
- [x] Tab icons
- [ ] Make the "Reset Settings" button also reset Favorites
- [ ] Change the "Add to Favorites" and "Remove from Favorites" to a checkbox or star or something cool
```
2024-08-06 22:17:09 +00:00
Reactor Scram
5eb2bba47b feat(headless-client): use systemd-resolved DNS control by default (#6163)
Closes #5063, supersedes #5850 

Other refactors and changes made as part of this:

- Adds the ability to disable DNS control on Windows
- Removes the spooky-action-at-a-distance `from_env` functions that used
to be buried in `tunnel`
- `FIREZONE_DNS_CONTROL` is now a regular `clap` argument again

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-06 18:16:51 +00:00
Reactor Scram
30622da24f fix(client): increase mpsc channel size (#6184)
Mitigates #5880.

This should fix the issue for all practical purposes, but we don't need
a channel there, so it does not close the ticket. A more permanent fix
would involve factoring out the callbacks or cheating and using a Mutex
inside the callbacks to do a swap-and-notify thing.

This affects both the Headless Client and the GUI Client's IPC service,
on both Linux and Windows.
2024-08-06 17:18:37 +00:00
Thomas Eizinger
42c343c518 fix(website): add dedicated network to docker-compose example (#6170)
In my testing, Docker-defined resources are not reachable unless you
explicitly declare a network and add both services to it. Additionally,
`systemd-resolved` refuses to resolve single-label domain names, meaning
a "two-label" domain needs to be used to access this as a DNS resource.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2024-08-06 11:28:45 +00:00
Patti
64a9efd3b8 fix(website): Fixed mobile footer responsiveness (#6165)
Signed-off-by: Patti <139997703+Patticatti@users.noreply.github.com>
Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-08-06 06:53:26 +00:00
Reactor Scram
bd60cbf153 chore(changelog): fix formatting (#6152)
`enable` in `ChangeItem` is only needed for the GUI Client since it's
shared between Linux and Windows.

Also added the commented-out draft release so we can accumulate upcoming
changes there

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-02 15:42:28 +00:00
Jamil
51e0b61c9c chore: Bump all clients and gateway versions (#6149)
Includes major fixes https://github.com/firezone/firezone/pull/6143 and
https://github.com/firezone/firezone/pull/6117
2024-08-02 01:12:49 -07:00
Andrew Dryga
63de0efb73 feat(portal): Time based policies (#6115)
Flows authorized by time-based policies will now expire at the latest
time permitted by the policy.
2024-08-02 01:49:44 -06:00
Reactor Scram
23161ec840 chore(gui-client): release 1.1.8 (#6136)
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-01 21:58:18 +00:00
Patti
d38d12a1e9 fix(website): Squashed all website change commits from patti/fix-responsiveness (#6135) 2024-08-01 21:24:59 +00:00
Jamil
b1ed47ab41 docs: Mention stateless firewall ports (#6113)
This clears up any confusion for AWS users who have customized their
ACLs.
2024-07-31 21:25:41 +00:00
Jamil
8533ec9650 fix(docs): Fix steps for tab (#6093)
Instructions are in the terraform tab, not GCP/AWS/Azure
2024-07-30 14:08:48 -07:00
Reactor Scram
e6cbb5fa8a feat(gui-client/linux): network roaming (#5978)
Closes #5846 

Will be moved down to the IPC service eventually.

The goal for connection roaming is not for totally transparent "Change
Wi-Fi networks without dropping SSH" handoffs, but just for Firezone to
re-connect itself as quickly as possible so that everything above us can
re-connect as quickly as it times out, and won't be hung up with a
broken tunnel.
2024-07-30 16:01:45 +00:00
Jamil
4ca090e582 fix(website): fix backed by and battlecard logo (#6092) 2024-07-30 08:18:27 -07:00
Jamil
be15afdabd feat(website): New landing page hero and footer (#6075)
refs #5962
2024-07-29 22:26:30 -07:00
Jamil
4eb2e18b37 docs: Set expectations for length of time it can take resources to come online (#6046) 2024-07-25 09:53:13 -07:00
Jamil
801a816f36 fix(website): Fix Azure TF example link (#6045) 2024-07-25 08:56:06 -07:00
Jamil
bfa410f7df docs: Make it more clear that synced users have User role (#5934)
Fixes #5906
2024-07-24 17:21:46 +00:00
Brian Manifold
2b93361719 refactor(portal): Temporarily remove time based policy conditions (#5981)
This PR temporarily removes the time based policy conditions. This is
only until #5861 is finished.

Closes #5979
2024-07-24 05:09:59 +00:00
Andrew Dryga
823b3cb276 fix(infra): Resolve capacity issues during rollouts (#6007)
I've managed to finally reserve enough e2 instances for our needs and
also used e2 for gateways to workaround the quota issues. The `web` app
still used n2 because quota doesn't allow additional n4's. Rollouts also
fixed to not go over the reservations/quotas.
2024-07-23 19:58:29 -06:00
Jamil
6ae494904e docs: Update 'user guides' -> 'client apps' (#5940)
- This terminology / naming makes things more clear for most
admins/users.
- Fixes layout of /kb/client-apps to align better

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Not Applicable <ReactorScram@users.noreply.github.com>
2024-07-23 14:04:07 +00:00
Jamil
c94f9edb27 refactor(website): Update about page with new mission statement and team tweaks (#5930)
Closes firezone/gtm#277
2024-07-22 16:30:09 -07:00
Jamil
420d712bad refactor(website): move fonts to lib (#5963)
Add manrope
2024-07-22 22:07:10 +00:00
Jamil
5187a5d8b1 docs: remove known issue re: gui restart (#5935)
based off #5932 to avoid conflicts.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-22 15:26:53 +00:00
Jamil
286ca77725 fix(ux): Rename Magic Link to Email (OTP) (#5939)
Fixes #5927 

See https://www.firezone.dev/kb/authenticate/email


<img width="1258" alt="Screenshot 2024-07-21 at 11 29 59 AM"
src="https://github.com/user-attachments/assets/07d5596f-b74c-4bc7-91df-3565ae552f15">
2024-07-22 02:42:58 +00:00
Jamil
d01afc79f1 docs: Prettier prosewrap for docs (#5932)
When writing docs it's helpful to have Prettier format long lines
automatically. This non-intuitively applies to not only prose, but
tables, MDX components, and other items as well.

Since many times this content is not prose but reference material, we
can have prettier format these and leave the `blog/` section left at
`preserve` to allow post authors to manage newlines as they see fit.
2024-07-21 23:43:54 +00:00
Jamil
1205cf8700 docs: DRY up docs footer timestamp; add link to open issue (#5928)
Fixes #4707
2024-07-21 07:20:00 -07:00
Jamil
dd19563c41 chore: Update FAQs (#5926)
Fixes #5762
2024-07-20 08:59:36 -07:00
Andrew Dryga
0b6e3564f3 chore(infra): Deploy relay and portal to more zones and use more modern CPU arch (#5921) 2024-07-19 15:15:28 -06:00
Jamil
bf693ad83f chore(website): Add hero texture, adjust copy (#5909) 2024-07-18 13:22:48 -07:00
Jamil
42c7480156 feat(website): link to probe in footer (#5907)
fixes #5898
2024-07-18 09:03:13 -07:00
Jamil
e8c832fe73 feat(website): Add Clipboard component and inject into <code> blocks (#5904)
Fixes #3866 
<img width="948" alt="Screenshot 2024-07-18 at 1 05 43 AM"
src="https://github.com/user-attachments/assets/4ad3b742-ea4e-4202-a7f8-a016914ef308">
2024-07-18 15:14:26 +00:00
Reactor Scram
7397656637 docs(user-guide/windows): fix incorrect service name (#5895)
Somehow I had put the debug service there not the prod one

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-18 01:18:04 +00:00
Reactor Scram
6b1b14dc2c chore(gui-client): release GUI Client 1.1.7 (#5897)
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-17 22:23:43 +00:00
Reactor Scram
63623346b9 fix(headless-client/windows): improve Client startup times on Windows (#5375)
Closes #5026
Closes #5879 

On the resource-constrained Windows Server 2022 test VM, the median
sign-in time dropped from 5.0 seconds to 2.2 seconds.

# Changes

- Measure end-to-end connection time in the GUI process
- Use `ipconfig` instead of Powershell to flush DNS faster
- Activate DNS control by manipulating the Windows Registry directly
instead of calling Powershell
- Remove deactivate step when changing DNS servers (seals a DNS leak
when roaming networks)
- Remove completely redundant `Set-DnsClientServerAddress` step from
activating DNS control
- Remove `Remove-NetRoute` powershell cmdlet that seems to do nothing

# Benchmark 7

- Optimized release builds
- x86-64 constrained VM (1 CPU thread, 2 GB RAM)

Main with measurement added, `c1c99197e` from #5864 

- 6.0 s
- 5.5 s
- 4.1 s
- 5.0 s
- 4.1 s
- (Median = 5.0 s)

Main with speedups added, `2128329f9` from #5375, this PR

- 3.7 s
- 2.2 s
- 1.9 s
- 2.3 s
- 2.0 s
- (Median = 2.2 s)

```[tasklist]
### Next steps
- [x] Benchmark on the resource-constrained VM
- [x] Move raw benchmark data to a comment and summarize in the description
- [x] Clean up tasks that don't need to be in the commit
- [x] Merge
```

# Hypothetical further optimizations

- Ditch the `netsh` subprocess in `set_ips`

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-16 21:55:29 +00:00
Adrián Baena García
7acba5a3e9 docs(docker-compose) Duplicated sysctls src_valid_mark (#5865)
One of the lines at sysctls section in docker-compose.yml example file
is duplicated:

- net.ipv4.conf.all.src_valid_mark=1

So I deleted it to make it clearer.

Signed-off-by: Adrián Baena García <adrianbaenagarcia@gmail.com>
2024-07-15 20:22:54 -07:00
Reactor Scram
b539c01cab fix(gui-client/linux): show a specific error message in the GUI when updating (#5848)
Closes #5790 (we could do more, but this might be sufficient)

<img width="892" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/5ce84a05-2f6c-4ffd-ba21-19d3087c8c7f">
<img width="641" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/2da7ff36-a969-444e-885c-ae0919577f56">


The code is cross-platform, but this is unlikely to happen on Windows
because the MSI refuses to update if the GUI process is running. On
Linux `apt-get` will update and restart the IPC service without touching
the GUI process.

```[tasklist]
- [x] Test on Linux with `apt-get install`
- [x] Update changelog
- [x] Run a 5-minute smoke test on Linux
- [x] Run a 5-minute smoke test on Windows
- [x] Open for review
- [ ] Merge
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-15 17:53:24 +00:00
Jamil
16c24c2024 fix(website): update battlecard (#5868)
Google Workspace (ts)
2024-07-14 18:08:10 -07:00