
easywall v2.14.0
Linux पर nftables फ़ायरवॉल के लिए वेब इंटरफ़ेस, Go में लिखा गया। apply स्वयं को 120 सेकंड के बाद पूर्ववत कर लेता है जब तक आप इसकी पुष्टि नहीं करते — आप स्वयं को लॉक आउट नहीं कर सकते। Debian और Docker इंस्टॉल।
easywall
आपकी फ़ायरवॉल। आपके नियम। कोई आश्चर्य नहीं।
लाइव डेमो · दस्तावेज़ीकरण · परिवर्तन-सूची
एक वेब इंटरफ़ेस के माध्यम से nftables जो आपको बाहर नहीं कर सकता: हर apply अपने आप वापस हो जाता है जब तक कि आप उसकी पुष्टि न करें।
विचार
किसी नियम को संपादित करने से कुछ नहीं बदलता। उसे apply करने से सब कुछ बदल जाता है — 120 सेकंड के लिए। यदि नए नियम आपका कनेक्शन काट देते हैं तो आप Confirm नहीं दबा सकते, और नहीं दबाना ही पुराने नियमों को वापस लाता है।
आर्किटेक्चर
दो प्रक्रियाएँ। नेटवर्क के संपर्क में आने वाली प्रक्रिया के पास चुराने लायक कोई विशेषाधिकार नहीं होता।
मूल easywall का पूर्ण पुनर्लेखन — Python, Flask, subprocess के माध्यम से iptables — जिसे 2022 में एक CVE के बाद संग्रहीत किया गया था। दोनों मूल कारण समाप्त हो गए हैं:
विशेषाधिकार एक अलग प्रक्रिया में रहते हैं, और apply पथ कमांड लाइन के बजाय Go structs बनाता है। यह कैसे काम करता है →
इंस्टॉल
# Debian / Ubuntu — amd64 और 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
# स्रोत से — 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 खोलें। पहली यात्रा
खाता सेट करती है और पहले नियमों को stage करती है।
आपको क्या मिलता है
| पोर्ट्स | TCP और UDP, एकल या रेंज, प्रति-नियम SSH brute-force रूटिंग के साथ |
| ब्लैकलिस्ट और व्हाइटलिस्ट | IPv4, IPv6 और CIDR, किसी भी पोर्ट नियम से पहले मूल्यांकित |
| सुरक्षा मॉड्यूल | बारह, पाँच डिफ़ॉल्ट रूप से चालू — floods, scans, bogons, fragments, broadcast/multicast/anycast |
| पोर्ट फ़ॉरवर्डिंग | प्रोटोकॉल चयन के साथ NAT रीडायरेक्ट |
| कस्टम नियम | रॉ nftables, apply करने से पहले सिंटैक्स-जाँचित |
| एक्सपोर्ट / इम्पोर्ट | पूरा नियम-सेट JSON के रूप में |
| ऑडिट लॉग | क्या बदला और कब, प्रति पंक्ति एक JSON ऑब्जेक्ट |
| Docker सह-अस्तित्व | केवल table inet easywall का स्वामी, और कुछ नहीं छूता |
| English, Deutsch, Français | इंटरफ़ेस में बदलने योग्य, साइन-इन से पहले भी। कोई भाषा आंशिक हो सकती है: जो अनुपलब्ध है वह English में प्रदर्शित होता है, और अंतर छिपाने के बजाय रिपोर्ट किया जाता है |
| लाइट और डार्क | OS का अनुसरण करता है, मैनुअल टॉगल के साथ; दोनों कंट्रास्ट-जाँचित |
निर्माण में प्रयुक्त
| Go 1.27, एकल बाइनरी | 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, सेल्फ-होस्टेड, ~145 KB — air-gapped काम करता है |
| CI | govulncheck, gosec, CodeQL, -race, और वास्तविक कर्नेल के विरुद्ध एक एकीकरण सुइट |
सहायता प्राप्त करना
| कोई प्रश्न, या कुछ ठीक से व्यवहार नहीं कर रहा | Discord |
| कोई बग, या कोई सुविधा जो आप चाहते हैं | GitHub issues |
| कोई सुरक्षा भेद्यता | Security advisory — नहीं Discord, और न ही कोई सार्वजनिक issue |
योगदान
सेटअप, कमिट परंपराएँ और समीक्षा चेकलिस्ट: CONTRIBUTING.md।
कोई भी दृश्य चीज़ पहले DESIGN.md से गुज़रती है।
सुरक्षा मुद्दे: नहीं सार्वजनिक issue के रूप में — उपयोग करें GitHub Security Advisories।
लाइसेंस
GPL-3.0 — देखें LICENSE।