Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FencePost — मल्टी-होस्ट UFW फ़ायरवॉल डैशबोर्ड — नियमों को सरल अंग्रेज़ी में समझाता है, सुरक्षा अंतराल का पता लगाता है, और कनेक्शन डायग्नोस्टिक्स प्रदान करता है | Kitploit
उपकरण/GitHubGitHub/seriocomic/fencepost
कंटेनर सुरक्षाभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगनेटवर्क सुरक्षाक्लाउड सुरक्षाDevSecOpsखतरा खुफियाघटना प्रतिक्रियालॉग विश्लेषण
GitHubseriocomic/fencepost

FencePost

मल्टी-होस्ट UFW फ़ायरवॉल डैशबोर्ड — नियमों को सरल अंग्रेज़ी में समझाता है, सुरक्षा अंतराल का पता लगाता है, और कनेक्शन डायग्नोस्टिक्स प्रदान करता है

2135 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

FencePost

मल्टी-होस्ट UFW फ़ायरवॉल डैशबोर्ड। Linux होस्ट से SSH के माध्यम से जुड़ता है, फ़ायरवॉल नियमों और सुनने वाले पोर्ट को पार्स करता है, सब कुछ सरल भाषा में समझाता है, और सुरक्षा अंतराल को चिह्नित करता है।

Python FastAPI License

विशेषताएँ

  • मल्टी-होस्ट अवलोकन -- एक नज़र में सभी होस्ट पर UFW स्थिति, डिफ़ॉल्ट नीतियाँ और सक्रिय सेवाएँ देखें
  • सरल भाषा में स्पष्टीकरण -- प्रत्येक फ़ायरवॉल नियम को VLAN और सेवा नामों के साथ पढ़ने योग्य विवरणों में अनुवादित किया जाता है
  • अंतराल पहचान -- उन सुनने वाले पोर्ट को ढूँढ़ता है जिनके लिए कोई मेल खाने वाला UFW अनुमति नियम नहीं है, बाहरी बनाम स्थानीय एक्सपोज़र के अनुसार विभाजित
  • कनेक्शन डायग्नोस्टिक्स -- नियम श्रृंखला के माध्यम से एक स्रोत IP + गंतव्य पोर्ट का पता लगाएँ कि ट्रैफ़िक अनुमत, अवरुद्ध या अस्वीकार किया जाएगा या नहीं
  • परिवर्तन पहचान -- वर्तमान स्थिति की तुलना अंतिम स्नैपशॉट से करता है और वेबहुक पर ईवेंट (नियम जोड़े/हटाए, UFW टॉगल, होस्ट अगम्य) पोस्ट करता है
  • Docker-जागरूक -- Docker होस्ट को चिह्नित करता है जहाँ iptables UFW को बायपास कर सकता है

स्क्रीनशॉट

होम नियम सूची नियम विवरण

पेज

मार्गविवरण
/होस्ट कार्ड, सेवा पिल्स, अंतराल गणना के साथ अवलोकन डैशबोर्ड
/host/{name}टैब्ड व्यू के साथ होस्ट विवरण: व्याख्याए गए नियम, अनकवर्ड पोर्ट, सुनने वाले पोर्ट, कच्चा आउटपुट
/diagnoseनियम-दर-नियम ट्रेस विज़ुअलाइज़ेशन के साथ कनेक्शन डायग्नोस्टिक टूल
/loginसत्र-आधारित प्रमाणीकरण

आर्किटेक्चर

Browser --> Cloudflare Tunnel --> Reverse Proxy --> FencePost (:8890)
  FastAPI container
    |-- SSH --> Host 1 (ufw status, ss -tlnp)
    |-- SSH --> Host 2
    |-- SSH --> Host N
    '-- POST --> Notification webhook

FencePost केवल-पढ़ने योग्य है -- यह कभी भी फ़ायरवॉल नियमों को संशोधित नहीं करता, केवल उन पर रिपोर्ट करता है।

त्वरित आरंभ

पूर्वापेक्षाएँ

  • Python 3.12+ (स्थानीय विकास) या Docker (उत्पादन)
  • SSH कुंजी जोड़ी (ed25519) जिसकी सार्वजनिक कुंजी लक्ष्य होस्ट पर तैनात हो
  • प्रत्येक होस्ट पर SSH उपयोगकर्ता के लिए sudoers प्रविष्टि:
    <user> ALL=(ALL) NOPASSWD: /usr/sbin/ufw status verbose, /usr/sbin/ufw status numbered, /usr/bin/ss -tlnp
    

1. क्लोन करें और कॉन्फ़िगर करें

git clone <repo-url> && cd fencepost

# अपनी SSH कुंजी जोड़ें
cp ~/.ssh/your_key ssh/id_ed25519
chmod 600 ssh/id_ed25519

# टेम्पलेट से अपनी पर्यावरण फ़ाइल बनाएँ
cp .env.example .env
# वास्तविक क्रेडेंशियल्स के साथ .env संपादित करें

2. config.yaml संपादित करें

timezone: Australia/Melbourne

hosts:
  - name: My Server
    hostname: 192.168.1.10
    ssh_user: deploy
    ssh_port: 22
    is_docker_host: false

networks:
  "192.168.1.0/24": "LAN"

3. चलाएँ

स्थानीय विकास

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# एनवी वेरिएबल लोड करें (bash/zsh)
export $(grep -v '^#' .env | xargs)

uvicorn app.main:app --reload --port 8890

http://localhost:8890 खोलें।

नोट: स्थानीय मोड config.yaml (ssh.key_path) में निर्दिष्ट पथ पर SSH कुंजी का उपयोग करता है। स्थानीय विकास के लिए आप इसे अपने स्थानीय ssh/id_ed25519 पर ओवरराइड करना चाह सकते हैं:

ssh:
  key_path: ssh/id_ed25519
  timeout: 10

Docker (उत्पादन)

docker compose up -d --build

http://localhost:8890 खोलें। कंटेनर compose.yaml के माध्यम से स्वचालित रूप से .env से क्रेडेंशियल पढ़ता है।

कॉन्फ़िगरेशन

config.yaml

अनुभागउद्देश्य
timezoneप्रदर्शित टाइमस्टैम्प के लिए IANA टाइमज़ोन (जैसे Australia/Melbourne, UTC)
hostsSSH लक्ष्यों की सारणी: name, hostname, ssh_user, ssh_port, is_docker_host
sshkey_path (निजी कुंजी का पथ) और timeout सेकंड में
networksVLAN के लिए CIDR-से-नाम मैपिंग -- नियम स्पष्टीकरण और डायग्नोस्टिक्स में उपयोग किया जाता है
devicesडायग्नोज़ पेज पर त्वरित-चयन बटनों के लिए नामित IP
notificationsवैकल्पिक वेबहुक: url, channel (API कुंजी env वेरिएबल के माध्यम से सेट)

पर्यावरण चर (.env)

वेरिएबलडिफ़ॉल्टविवरण
FENCEPOST_USERNAMEadminलॉगिन उपयोगकर्ता नाम
FENCEPOST_PASSWORDfencepostलॉगिन पासवर्ड
FENCEPOST_SECRET_KEYchange-meसत्र कुकी हस्ताक्षर कुंजी
FENCEPOST_CONFIGconfig.yamlकॉन्फ़िग फ़ाइल का पथ
NOTIFICATIONS_API_KEYअधिसूचना वेबहुक के लिए बियरर टोकन

क्रेडेंशियल .env (gitignored) में संग्रहीत होते हैं और compose.yaml द्वारा संदर्भित होते हैं। रिपॉजिटरी में कभी भी रहस्य न डालें।

स्टैक

  • बैकएंड: Python 3.12 / FastAPI / Uvicorn
  • SSH: ed25519 कुंजी प्रमाणीकरण के साथ Paramiko
  • टेम्पलेट: Jinja2 (सर्वर-रेंडर्ड, कोई JS फ्रेमवर्क नहीं)
  • HTTP क्लाइंट: httpx (वेबहुक अधिसूचनाएँ)
  • स्टाइलिंग: कस्टम CSS, डार्क थीम, कोई फ्रेमवर्क नहीं
  • फ़ॉन्ट: DM Mono (डेटा), Anybody (शीर्षक)

प्रोजेक्ट संरचना

app/
  main.py           # FastAPI रूट्स और प्रमाणीकरण
  models.py         # HostFirewallState, UFWRule, ListeningPort डेटाक्लासेस
  parser.py         # ufw status और ss आउटपुट को पार्स करता है
  explainer.py      # नियमों को सरल अंग्रेजी में अनुवादित करता है
  diagnose.py       # कनेक्शन डायग्नोस्टिक इंजन
  gap_detector.py   # अनकवर्ड सुनने वाले पोर्ट ढूँढ़ता है
  ssh_client.py     # Paramiko रैपर, समानांतर होस्ट फ़ेचिंग
  eventfeed.py      # परिवर्तन पहचान और वेबहुक पोस्टिंग
  templates/
    base.html       # लेआउट, CSS, नेविगेशन
    overview.html   # होस्ट डैशबोर्ड ग्रिड
    host_detail.html # प्रति-होस्ट टैब्ड विवरण दृश्य
    diagnose.html   # कनेक्शन डायग्नोस्टिक फॉर्म और परिणाम
    login.html      # प्रमाणीकरण पृष्ठ
config.yaml         # होस्ट परिभाषाएँ, VLAN, डिवाइस, टाइमज़ोन
compose.yaml        # Docker Compose सेवा परिभाषा
Dockerfile          # Python 3.12 स्लिम इमेज
.env.example        # पर्यावरण चर के लिए टेम्पलेट
ssh/                # SSH कुंजी निर्देशिका (कुंजी प्रतिबद्ध नहीं)
data/               # रनटाइम अवस्था (last_state.json, प्रतिबद्ध नहीं)

होस्ट जोड़ना

  1. config.yaml में hosts: के अंतर्गत एक प्रविष्टि जोड़ें
  2. SSH सार्वजनिक कुंजी को होस्ट पर कॉपी करें: ssh-copy-id -i ssh/id_ed25519.pub user@host
  3. होस्ट पर आवश्यक NOPASSWD नियमों के साथ /etc/sudoers.d/fencepost बनाएँ
  4. पुनर्निर्माण करें: docker compose up -d --build

सूचनाएँ

जब config.yaml में NOTIFICATIONS_API_KEY env वेरिएबल के साथ कॉन्फ़िगर किया जाता है, तो FencePost प्रत्येक डैशबोर्ड रिफ्रेश पर परिवर्तन ईवेंट पोस्ट करता है:

  • UFW सक्रिय / निष्क्रिय
  • नियम जोड़े / हटाए (नियम विवरण के साथ)
  • नए अनकवर्ड बाहरी पोर्ट
  • होस्ट अगम्य हो गया / पुनर्प्राप्त

ईवेंट में डुप्लिकेट को रोकने के लिए idempotency कुंजियाँ शामिल होती हैं।

लाइसेंस

MIT

टूल डाउनलोड करें