
easywall v2.4.1
Linux पर nftables फ़ायरवॉल के लिए वेब इंटरफ़ेस, Go में लिखा गया। apply स्वयं को 120 सेकंड के बाद पूर्ववत कर लेता है जब तक आप इसकी पुष्टि नहीं करते — आप स्वयं को लॉक आउट नहीं कर सकते। Debian और Docker इंस्टॉल।
easywall
आपकी फ़ायरवॉल। आपके नियम। कोई आश्चर्य नहीं।
लाइव डेमो · दस्तावेज़ीकरण · चेंजलॉग
nftables एक वेब इंटरफ़ेस के माध्यम से जो आपको बाहर नहीं कर सकता: हर apply अपने आप वापस हो जाता है जब तक आप उसकी पुष्टि नहीं करते।
विचार
किसी नियम को संपादित करने से कुछ नहीं बदलता। उसे apply करने से सब कुछ बदल जाता है — 120 सेकंड के लिए। यदि नए नियम आपका कनेक्शन काट देते हैं, तो आप Confirm पर क्लिक नहीं कर सकते, और पुष्टि न करना ही पुराने नियमों को वापस लाता है।
आर्किटेक्चर
दो प्रक्रियाएँ। नेटवर्क के संपर्क में आने वाली प्रक्रिया के पास चुराने लायक कोई विशेषाधिकार नहीं होता।
मूल easywall — Python, Flask, subprocess के माध्यम से iptables — का एक पूर्ण पुनर्लेखन,
जिसे 2022 में एक CVE के बाद archive कर दिया गया था। दोनों मूल कारण समाप्त हो गए हैं:
विशेषाधिकार एक अलग प्रक्रिया में रहते हैं, और apply पथ एक command line के बजाय
Go structs बनाता है। यह कैसे काम करता है →
इंस्टॉल
# 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.26+, 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 खोलें। पहली यात्रा पर
खाता सेट होता है और पहले नियम staged होते हैं।
आपको क्या मिलता है
| पोर्ट्स | TCP और UDP, एकल या रेंज, प्रति-नियम SSH brute-force रूटिंग के साथ |
| ब्लैकलिस्ट और व्हाइटलिस्ट | IPv4, IPv6 और CIDR, किसी भी पोर्ट नियम से पहले मूल्यांकित |
| सुरक्षा मॉड्यूल | बारह, पाँच डिफ़ॉल्ट रूप से चालू — floods, scans, bogons, fragments, broadcast/multicast/anycast |
| पोर्ट फ़ॉरवर्डिंग | प्रोटोकॉल चयन के साथ NAT रीडायरेक्ट |
| कस्टम नियम | रॉ nftables, apply होने से पहले syntax-जाँच किया गया |
| एक्सपोर्ट / इम्पोर्ट | पूरा नियम सेट JSON के रूप में |
| ऑडिट लॉग | क्या बदला और कब, प्रति पंक्ति एक JSON ऑब्जेक्ट |
| Docker सह-अस्तित्व | table inet easywall का स्वामी है, और कुछ नहीं छूता |
| अंग्रेज़ी और जर्मन | इंटरफ़ेस में स्विच करने योग्य, साइन-इन से पहले भी |
| लाइट और डार्क | OS का अनुसरण करता है, मैनुअल टॉगल के साथ; दोनों कंट्रास्ट-जाँचे हुए |
इनसे बना है
| Go 1.26, single binary | go-chi/chi · html/template |
google/nftables के माध्यम से nftables | सीधा netlink, कोई nft subprocess नहीं |
| Argon2id | golang.org/x/crypto, प्रति पासवर्ड 16-बाइट salt |
| CSRF | net/http.CrossOriginProtection, Go 1.25 नेटिव |
| डिज़ाइन सिस्टम | DESIGN.md + Tailwind v4 — कोई तृतीय-पक्ष UI लाइब्रेरी नहीं |
| फ़ॉन्ट्स | Inter + JetBrains Mono, self-hosted, ~145 KB — air-gapped वातावरण में भी काम करता है |
| CI | govulncheck, gosec, CodeQL, -race, और एक वास्तविक kernel के विरुद्ध इंटीग्रेशन सुइट |
रोडमैप
शुद्धता पहले: एक फ़ायरवॉल जो चुपचाप जितना कहता है उससे कम करता है, उस फ़ायरवॉल से भी बदतर है जो कम करता है और यह बताता भी है।
| 2.6 | इंटीग्रेशन टेस्ट जो अर्थ की पुष्टि करते हैं, नियम संख्याओं की नहीं |
| 2.7 | पहचान — socket प्रोटोकॉल में एक उपयोगकर्ता, फिर लॉगिन इवेंट, फिर कई खाते, फिर 2FA |
| 2.8 | टोकन auth के साथ एक REST API, एक विकल्प के रूप में ACME, opt-in विश्वसनीय रिवर्स प्रॉक्सी |
| 2.9 | इंस्टॉलेशन की एक opt-in गणना |
प्रत्येक सुविधा उस समय क्यों आती है, और गणना क्या भेजेगी: रोडमैप →
सहायता प्राप्त करना
| कोई प्रश्न, या कुछ ठीक से काम नहीं कर रहा | Discord |
| कोई बग, या कोई ऐसी सुविधा जो आप चाहते हैं | GitHub issues |
| कोई सुरक्षा भेद्यता | Security advisory — नहीं Discord, और न कोई सार्वजनिक issue |
योगदान
सेटअप, commit परंपराएँ और समीक्षा चेकलिस्ट: CONTRIBUTING.md।
कोई भी दृश्य परिवर्तन पहले DESIGN.md से होकर गुजरता है।
सुरक्षा समस्याएँ: सार्वजनिक issue के रूप में नहीं — GitHub Security Advisories का उपयोग करें।
लाइसेंस
GPL-3.0 — देखें LICENSE।