
Linux पर nftables फ़ायरवॉल के लिए वेब इंटरफ़ेस, Go में लिखा गया। apply स्वयं को 120 सेकंड के बाद पूर्ववत कर लेता है जब तक आप इसकी पुष्टि नहीं करते — आप स्वयं को लॉक आउट नहीं कर सकते। Debian और Docker इंस्टॉल।
आपका फ़ायरवॉल। आपके नियम। कोई आश्चर्य नहीं।
लाइव डेमो · दस्तावेज़ · चेंजलॉग
nftables एक वेब इंटरफ़ेस के माध्यम से जो आपको बाहर नहीं कर सकता: हर लागू करना स्वयं को वापस ले लेता है जब तक आप पुष्टि नहीं करते।
किसी नियम को संपादित करने से कुछ नहीं बदलता। उसे लागू करने से सब कुछ बदल जाता है — 120 सेकंड के लिए। यदि नए नियम आपका कनेक्शन काट देते हैं तो आप Confirm पर क्लिक नहीं कर सकते, और पुष्टि न करना ही पुराने नियमों को वापस लाता है।
दो प्रक्रियाएँ। जो नेटवर्क के सामने उजागर है उसके पास चुराने लायक कोई विशेषाधिकार नहीं है।
मूल easywall का पूर्ण पुनर्लेखन — Python, Flask, subprocess के माध्यम से iptables — जिसे एक CVE के बाद 2022 में संग्रहीत किया गया था। दोनों मूल कारण समाप्त हो गए हैं:
विशेषाधिकार एक अलग प्रक्रिया में रहते हैं, और लागू करने का पथ कमांड लाइन के बजाय Go स्ट्रक्चर बनाता है। यह कैसे काम करता है →
# Debian / Ubuntu — amd64 and arm64
ARCH=$(dpkg --print-architecture)
wget https://github.com/jp1337/easywall/releases/latest/download/easywall_$ARCH.deb
sudo dpkg -i easywall_$ARCH.deb && sudo apt-get install -f
# Docker
git clone https://github.com/jp1337/easywall.git && cd easywall && docker compose up -d
# From source — Go 1.27+, nftables
git clone https://github.com/jp1337/easywall.git && cd easywall
make build && sudo make install
sudo systemctl enable --now easywall-core easywall-web
फिर https://localhost:12227 खोलें। पहली विज़िट
खाता सेट करती है और पहले नियम तैयार करती है।
| पोर्ट | TCP और UDP, एकल या रेंज, प्रति-नियम SSH ब्रूट-फ़ोर्स रूटिंग के साथ |
| ब्लॉकलिस्ट और अनुमति सूची | IPv4, IPv6 और CIDR, किसी भी पोर्ट नियम से पहले मूल्यांकित |
| सुरक्षा मॉड्यूल | बारह, डिफ़ॉल्ट रूप से पाँच सक्रिय — फ़्लड, स्कैन, बोगॉन, फ़्रैगमेंट, ब्रॉडकास्ट/मल्टीकास्ट/एनीकास्ट |
| पोर्ट फ़ॉरवर्डिंग | प्रोटोकॉल चयन के साथ NAT रीडायरेक्ट |
| कस्टम नियम | कच्चे nftables, लागू करने से पहले सिंटैक्स-जाँचे गए |
| निर्यात / आयात | पूरा नियम सेट JSON के रूप में |
| ऑडिट लॉग | क्या बदला और कब, प्रति पंक्ति एक JSON ऑब्जेक्ट |
| Docker सहअस्तित्व | table inet easywall का स्वामी, और कुछ नहीं छूता |
| अंग्रेज़ी, जर्मन, फ़्रेंच | इंटरफ़ेस में स्विच करने योग्य, साइन-इन से पहले भी। कोई भाषा आंशिक हो सकती है: जो अनुपस्थित है वह अंग्रेज़ी में प्रस्तुत होता है, और अंतराल छिपाने के बजाय रिपोर्ट किया जाता है |
| लाइट और डार्क | OS का अनुसरण करता है, मैन्युअल टॉगल के साथ; दोनों कंट्रास्ट-जाँचे गए |
| Go 1.27, एकल बाइनरी | go-chi/chi · html/template |
google/nftables के माध्यम से nftables | सीधा netlink, कोई nft subprocess नहीं |
| Argon2id | golang.org/x/crypto, प्रति पासवर्ड 16-बाइट सॉल्ट |
| CSRF | net/http.CrossOriginProtection, Go 1.25 नेटिव |
| डिज़ाइन सिस्टम | DESIGN.md + Tailwind v4 — कोई तृतीय-पक्ष UI लाइब्रेरी नहीं |
| फ़ॉन्ट | Inter + JetBrains Mono, स्व-होस्टेड, ~145 KB — एयर-गैप्ड काम करता है |
| CI | govulncheck, gosec, CodeQL, -race, और एक वास्तविक कर्नेल के विरुद्ध एकीकरण सूट |
| कोई प्रश्न, या कुछ ठीक से व्यवहार नहीं कर रहा | Discord |
| कोई बग, या कोई सुविधा जो आप चाहते हैं | GitHub issues |
| कोई सुरक्षा भेद्यता | Security advisory — नहीं Discord, और न ही सार्वजनिक issue |