WagWag की मुख्य विशेषताएँ
- Wireguard में MFA, path restriction, और device registration फीचर जोड़ता है
- ऐसे path परिभाषित किए जा सकते हैं जहाँ MFA authentication ज़रूरी हो, या ऐसे path जो हमेशा सार्वजनिक रूप से accessible हों
- नए clients को register करने के लिए सरल API प्रदान करता है
- high availability सपोर्ट
- Webauthn, OIDC आदि जैसे कई MFA विकल्प प्रदान करता है
- Aura Information Security के समर्थन से विकसित
आवश्यकताएँ
iptablesऔरlibpamइंस्टॉल होने चाहिए- Wag को
iptablesऔरwireguarddevices मैनेज करने के लिए root के रूप में चलना होगा sysctlमें forwarding सक्षम होना चाहिएsysctl -w net.ipv4.ip_forward=1- kernel में wireguard सपोर्ट होने पर Wag को
wg-quickआदि की आवश्यकता नहीं होती
इंस्टॉल करने का तरीका
बाइनरी रिलीज़ (glibc 2.31+ आवश्यक)
curl -L $(curl -s https://api.github.com/repos/NHAS/wag/releases/latest | jq -M -r '.assets[0].browser_download_url') -o wag
sudo ./wag gen-config
sudo ./wag start -config <generated_config_name>
source से इंस्टॉल (go1.19, npm, gulp, clang, llvm-strip, libbpf आवश्यक)
git clone git@github.com:NHAS/wag.git
cd wag
make
cp example_config.json config.json
sudo ./wag start
- अगर reverse proxy के पीछे चला रहे हैं, तो
X-Forwarded-Forसेट करना होगा
प्रबंधन
root उपयोगकर्ता नीचे दिए गए कमांड से wag server को मैनेज कर सकता है:
wag subcommand [-options]
- समर्थित subcommands:
start,cleanup,reload,version,firewall,registration,devices,users,webadmin,gen-config - हर कमांड के लिए उपयोग विवरण उपलब्ध है
उपयोगकर्ता गाइड
Wag इंस्टॉल करना
wag,config.jsonको/opt/wagमें कॉपी करेंwg genkeyसे wireguard private key बनाकर example config केPrivateKeyमें सेट करेंwag.serviceको/etc/systemd/system/में कॉपी (या लिंक) करें और service को start/enable करें
नया registration token बनाना
# ./wag registration -add -username tester
token,username
e83253fd9962c68f73aa5088604f3f425d58a963bfb5c0889cca54d63a34b2e3,tester
token को curl करना:
curl http://public.server.address/register_device/…
service पूरा response लौटाती है। इसे config file के रूप में सेव किया जा सकता है.
MFA करना
उपयोगकर्ता VPN address (जैसे 192.168.1.1:8080) पर जाकर 2FA code दर्ज करता है। config file में session lifetime तय की जा सकती है.
management console में लॉगिन
ManagementUI.Enabled को true पर सेट करें और नीचे दिया गया कमांड चलाएँ:
sudo ./wag webadmin -add -username <your_username> -password <your-password-here>
management listening address पर जाकर authentication details दर्ज करें। web interface से management users नहीं जोड़े जा सकते.
GN⁺ की राय
-
clustering फीचर के ज़रिए high availability सपोर्ट करना प्रभावशाली है। यह disaster recovery या बिना downtime वाली service के लिए उपयोगी लग सकता है.
-
कई authentication methods का सपोर्ट भी एक बड़ा प्लस है। TOTP, WebAuth, OIDC आदि के ज़रिए इसे enterprise authentication systems के साथ आसानी से integrate किया जा सकता है.
-
ACL rules को लचीले ढंग से परिभाषित किया जा सकता है, इसलिए बारीक access control संभव दिखता है। user/group के आधार पर accessible IP, port, और protocol सीमित किए जा सकते हैं.
-
IPv6 सपोर्ट न होना थोड़ा खलता है। आजकल IPv6 migration तेज़ है, इसलिए जल्दी सपोर्ट की ज़रूरत लगती है.
-
अगर आप Linux-केंद्रित VPN solution ढूँढ़ रहे हैं, तो यह एक अच्छा विकल्प हो सकता है। यह kernel 5.9 या उससे ऊपर के आधुनिक systems पर चलता है.
1 टिप्पणियां
Hacker News टिप्पणी
सारांश: