All Projects → aequitas → Macos Menubar Wireguard

aequitas / Macos Menubar Wireguard

Licence: gpl-3.0
macOS menubar icon for WireGuard/wg-quick

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Macos Menubar Wireguard

Muon
A fast stateless VPN with simple obfuscation
Stars: ✭ 122 (-15.28%)
Mutual labels:  vpn
Ggfwzs in hack
hack VIP for chrome-extension 谷歌访问助手
Stars: ✭ 129 (-10.42%)
Mutual labels:  vpn
Vpncn.github.io
2021中国翻墙软件VPN推荐以及科学上网避坑,稳定好用。对比SSR机场、蓝灯、V2ray、老王VPN、VPS搭建梯子等科学上网与翻墙软件,中国最新科学上网翻墙梯子VPN下载推荐。
Stars: ✭ 3,925 (+2625.69%)
Mutual labels:  vpn
Wireguard Private Networking
Build your own multi server private network using wireguard and ansible
Stars: ✭ 124 (-13.89%)
Mutual labels:  vpn
Fanqiang Book
2021科学上网指南,小白图文攻略 | 翻墙/梯子/自由上网/SSR/V2Ray/
Stars: ✭ 127 (-11.81%)
Mutual labels:  vpn
Pia Tools
Shell script to automate privateinternetaccess port forwarding and starting/stopping transmission when connected/disconnected and other stuff
Stars: ✭ 130 (-9.72%)
Mutual labels:  vpn
Allkdic
올ㅋ사전 - 맥에서 단축키를 누르면 영어사전이 뙇!!!!
Stars: ✭ 120 (-16.67%)
Mutual labels:  statusbar
Ladder
梯子,科学上网,翻墙 , 代理, 外网, 加速器, 路由, V2Ray,SS,shadowsocks, SSR
Stars: ✭ 141 (-2.08%)
Mutual labels:  vpn
Bpstatusbaralert
BPStatusBarAlert is a library that allows you to easily make text-based alert that appear on the status bar and below navigation bar.
Stars: ✭ 129 (-10.42%)
Mutual labels:  statusbar
Syncthing Bar
A statusbar for syncthing on Mac OS X
Stars: ✭ 133 (-7.64%)
Mutual labels:  statusbar
Nibar
Simple Übersicht status bar with yabai support.
Stars: ✭ 127 (-11.81%)
Mutual labels:  statusbar
Barbatunnel
A layer that hide, redirect. forward, re-encrypt internet packet to keep VPN, Proxies and other p2p software hidden from Firewall. Free implementation for HTTP-Tunnel, UDP-Tunnel, port forwarding, port redirecting and packet re-encryption that can work in network data-link layer and transport layer
Stars: ✭ 128 (-11.11%)
Mutual labels:  vpn
Lpvpn
LAN Party VPN - Run VPN on top of Discord. No installation required.
Stars: ✭ 132 (-8.33%)
Mutual labels:  vpn
I2pd
🛡 I2P: End-to-End encrypted and anonymous Internet
Stars: ✭ 1,796 (+1147.22%)
Mutual labels:  vpn
Adblocking Vpn
🔒 Create your own VPN server that blocks malicious domains to enhance your security and privacy
Stars: ✭ 139 (-3.47%)
Mutual labels:  vpn
Core
OPNsense GUI, API and systems backend
Stars: ✭ 1,827 (+1168.75%)
Mutual labels:  vpn
Vpnfailsafe
IP leak prevention for OpenVPN
Stars: ✭ 130 (-9.72%)
Mutual labels:  vpn
Globalprotect Openconnect
A GlobalProtect VPN client (GUI) for Linux based on OpenConnect and built with Qt5, supports SAML auth mode.
Stars: ✭ 143 (-0.69%)
Mutual labels:  vpn
Tinyfecvpn
A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support. Improves your Network Quality on a High-latency Lossy Link.
Stars: ✭ 1,842 (+1179.17%)
Mutual labels:  vpn
Wireguard Install
WireGuard VPN installer for Linux servers
Stars: ✭ 2,575 (+1688.19%)
Mutual labels:  vpn

WireGuardStatusbar

Maintainability Build Status

Notice

There is now an official WireGuard application that supersedes this App. You can find it at: https://www.wireguard.com/install/ or directly download it from the AppStore: https://itunes.apple.com/us/app/wireguard/id1451685025?ls=1&mt=12

The WireGuardStatusbar application will remain available and might get updates/bugfixes but not develop any new features. You might still want to use it if you run a macOS prior to 10.14.

Introduction

This is a macOS statusbar item (aka menubar icon) that wraps wg-quick.

Screenshot

Features

  • Sit in your menubar
  • Indicate if tunnels are enabled
  • Bring tunnel up/down via one click
  • Fail miserably when brew/wg-quick is not installed or permissions on files are incorrect

Installation

Manually

  • Follow the instruction to install WireGuard for macOS
  • Create a tunnel configuration file (eg: /usr/local/etc/wireguard/utun1.conf)
  • Download this App from Releases
  • Open the .dmg and copy the Application to where you like (eg: '/Applications')
  • The next bit is needed because I don't have a Apple Developer account to properly sign the binary. If you don't like it consider building and signing the application yourself.
    • Start the App and get a dialog indicating the app is not signed
    • Go to: Preferences->Security & Privacy->General and click "Open Anyway"

Building & Testing

Automation scripting is provided in this repository to make development a little easier. Primary development using Xcode is supported/preferred but some actions (integration testing, distribution build) are only available using make.

To test the project and check code quality run:

make test-unit

Integration tests require preparation and will ask for a sudo password to install a test configuration file in /etc/wireguard:

make test-integration

Code formatting should preferably by done by computers. To auto correct most violations run (this is also run before each make test or make check):

make fix

To completely verify/test the project, build a distributable .dmg and install to /Applications simply run:

make

Or explore make with tab completion for other options.

Architecture/Security

  • This application is split into two parts. The Application and a Privileged Helper.
  • The App will sit in the menubar after launching and handle all UI interaction and logic.
  • Whenever the App needs to perform actions requiring Administrator privileges (eg: start/stop tunnel, read configurations) it will communicate with the Helper via XPC to have these actions performed.
  • The Helper is installed as a Privileged Launchd daemon during the startup of the App. The user will be prompted for credentials during this action.
  • Logic/responsability in the Helper is kept to a minimum and communication between the App and the Helper is in simple primitives to reduce attack surface of the Helper.
  • The Helper should not allow an unprivileged attacker to perform any actions via the XPC that would not be possible to perform when using the App.
  • Both the App and the Helper are signed and these signatures will be verified on Helper installation.
  • The Helper will only run during the runtime of the Application.
  • The Helper notifies the App on any change in the WireGuard configuration/runtime state. The App will then query the Helper to allow rebuilding its menus.

License

This software as a whole is licensed under GPL-3.0

"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

Todo/Readmap

  • Tunnel connectivity status
  • Tunnel configuration editor
  • Key management (via keychain)
  • Tunnel configuration augmentation (groups, alt. names, etc)
  • read configuration using wg
  • More tunnel statistics (privilegedhelper)
  • Recent tunnels on top option
  • Active tunnels on top option
  • Start tunnels at startup
  • Add application to startup items
  • Bundle WireGuard (wireguard-go/wg-quick/bash4)/Drop wg-quick for custom route creations (to drop bash4 as requirements and enable advances routing options like excluding local networks from 0.0.0.0/0).
  • Help menu
  • Developer ID signing
  • Update checking
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].