Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
NFtables-IPtables-integration-script — NFtables या IPtables पर सीधे Q-Feeds लागू करने की स्क्रिप्ट | Kitploit
उपकरण/GitHubGitHub/q-feeds/nftables-iptables-integration-script
रक्षात्मक उपकरणस्क्रिप्टिंग और स्वचालनकॉन्फ़िगरेशन ऑडिटिंगनेटवर्क सुरक्षाखतरा खुफियाघटना प्रतिक्रिया
GitHubq-feeds/nftables-iptables-integration-script

NFtables-IPtables-integration-script

NFtables या IPtables पर सीधे Q-Feeds लागू करने की स्क्रिप्ट

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
रिपॉजिटरी देखेंवेबसाइट
21 महीना पहलेअभी तक समीक्षित नहीं
साझा करें

🛡️ Q-Feeds Linux फ़ायरवॉल ब्लॉकलिस्ट एकीकरण

Linux सर्वरों के लिए स्वचालित मैलवेयर IP ब्लॉकलिस्ट — nftables और iptables+ipset का समर्थन

लाइसेंस लिनक्स


📋 विषय सूची

  • त्वरित प्रारंभ
  • अवलोकन
  • यह कैसे काम करता है
  • पूर्वापेक्षाएँ
  • विस्तृत स्थापना मार्गदर्शिका
  • कॉन्फ़िगरेशन
  • उपयोग और सत्यापन
  • समस्या निवारण
  • अनइंस्टॉल करना
  • लाइसेंस

🚀 त्वरित प्रारंभ

चरण 1: अपना API टोकन प्राप्त करें

tip.qfeeds.com पर एक निःशुल्क API कुंजी प्राप्त करें।

चरण 2: स्क्रिप्ट डाउनलोड करें```bash

git clone https://github.com/Q-Feeds/NFtables-IPtables-integration-script.git cd NFtables-IPtables-integration-script chmod +x qfeeds-installer.sh qfeeds-uninstaller.sh

root@kitploit:~
### चरण 3: इंस्टॉलर को root के रूप में चलाएँ```bash
sudo ./qfeeds-installer.sh

इंस्टॉलर निम्नलिखित कार्य करेगा:

  1. स्वचालित रूप से पता लगाएगा आपका फ़ायरवॉल बैकएंड (nftables या iptables)
  2. आपसे आपका API टोकन, ब्लॉकिंग विकल्प और वैकल्पिक व्हाइटलिस्ट माँगेगा
  3. सभी निर्भरताएँ, अपडेटर स्क्रिप्ट और क्रॉन जॉब इंस्टॉल करेगा
  4. तुरंत पहला पूर्ण सिंक करेगा

चरण 4: हो गया

आपका सर्वर अब सुरक्षित है। क्रॉन जॉब हर 20 मिनट (कॉन्फ़िगरेबल) में अपडेट की जाँच करता है, और वास्तविक API कॉल केवल तब होती हैं जब आपका लाइसेंस अनुमति देता है।


📖 अवलोकन

यह समाधान समय-समय पर Q-Feeds से नवीनतम खतरा खुफिया फ़ीड डाउनलोड करता है और इसे फ़ायरवॉल नियमों के रूप में लागू करता है, जिससे आप यह कर सकते हैं:

  • ✅ ज्ञात दुर्भावनापूर्ण IPs से आने वाले कनेक्शनों को ब्लॉक करें
  • ✅ ज्ञात दुर्भावनापूर्ण IPs के लिए बाहर जाने वाले कनेक्शनों को ब्लॉक करें
  • ✅ अपने स्वयं के IPs/CIDRs को व्हाइटलिस्ट करें ताकि आप कभी खुद को लॉक न करें
  • ✅ आपके Q-Feeds लाइसेंस के आधार पर स्वचालित शेड्यूलिंग
  • ✅ वृद्धिशील अपडेट न्यूनतम संसाधन उपयोग के लिए डिफ़-आधारित सिंक के माध्यम से

यह दृष्टिकोण क्यों?

  • ✅ स्वचालित रूप से बैकएंड का पता लगाता है — बिना मैन्युअल चयन के nftables या iptables+ipset पर काम करता है
  • ✅ तेज़ — अनुकूलित हैश सेट (nftables) या ipset (iptables) का उपयोग करके सेकंडों में 400k+ IPs लोड करता है
  • ✅ सुरक्षित — समर्पित टेबल/सेट का उपयोग करता है — आपके मौजूदा फ़ायरवॉल नियमों को कभी नहीं छूता
  • ✅ कुशल — डिफ़-आधारित अपडेट केवल परिवर्तनों को प्रोसेस करते हैं, पूरी सूची को नहीं
  • ✅ विश्वसनीय — स्व-उपचार: खाली या अधूरे स्थानीय सेट (जैसे रीबूट के बाद) का पता लगाता है और उसे पुनर्निर्मित करता है, डिफ़ विफल होने पर पूर्ण सिंक के लिए स्वचालित फ़ॉलबैक के साथ
  • ✅ लचीला — आने वाले/बाहर जाने वाले ब्लॉकिंग, वैकल्पिक व्हाइटलिस्ट चुनें

🔧 यह कैसे काम करता है

बैकएंड का पता लगाना

इंस्टॉलर स्वचालित रूप से पता लगाता है कि कौन सा फ़ायरवॉल बैकएंड उपलब्ध है:

प्राथमिकतापता लगानाबैकएंड

पता लगाया गया बैकएंड कॉन्फ़िगरेशन फ़ाइल में संग्रहीत किया जाता है। अपडेटर और अनइंस्टॉलर स्क्रिप्ट सही फ़ायरवॉल कमांड चलाने के लिए इसका उपयोग करते हैं।

आर्किटेक्चर: दो सेट प्रकार

दोनों बैकएंड अधिकतम प्रदर्शन के लिए समान स्प्लिट-सेट रणनीति का उपयोग करते हैं:

nftables बैकएंड:``` ┌─────────────────────────────────────────────────────────┐ │ table ip qfeeds │ │ │ │ ┌─────────────────────────┐ ┌───────────────────────┐ │ │ │ qfeeds_blacklist_v4 │ │ qfeeds_blacklist_v4 │ │ │ │ (hash set) │ │ _nets (interval set) │ │ │ │ │ │ │ │ │ │ Individual IPs │ │ CIDR ranges │ │ │ │ ~99% of entries │ │ ~1% of entries │ │ │ │ O(1) lookup & insert │ │ O(log n) lookup │ │ │ └─────────────────────────┘ └───────────────────────┘ │ │ │ │ ┌─────────────────────────┐ │ │ │ qfeeds_whitelist_v4 │ │ │ │ (interval set) │ │ │ │ Your allowed IPs/CIDRs │ │ │ └─────────────────────────┘ │ │ │ │ chain input-chain (hook input, priority 0, accept) │ │ → ip saddr @qfeeds_whitelist_v4 accept │ │ → ip saddr @qfeeds_blacklist_v4 drop │ │ → ip saddr @qfeeds_blacklist_v4_nets drop │ │ │ │ chain output-chain (if enabled) │ │ → ip daddr @qfeeds_whitelist_v4 accept │ │ → ip daddr @qfeeds_blacklist_v4 drop │ │ → ip daddr @qfeeds_blacklist_v4_nets drop │ └─────────────────────────────────────────────────────────┘

root@kitploit:~
**iptables+ipset बैकएंड:**```
┌──────────────────────────────────────────────────────────┐
│  ipset sets                                              │
│                                                          │
│  ┌─────────────────────────┐  ┌────────────────────────┐ │
│  │ qfeeds_blacklist_v4     │  │ qfeeds_blacklist_v4    │ │
│  │ (hash:ip)               │  │ _nets (hash:net)       │ │
│  │ maxelem 1000000         │  │ maxelem 65536          │ │
│  │                         │  │                        │ │
│  │ Individual IPs          │  │ CIDR ranges            │ │
│  └─────────────────────────┘  └────────────────────────┘ │
│                                                          │
│  ┌─────────────────────────┐                             │
│  │ qfeeds_whitelist_v4     │                             │
│  │ (hash:net)              │                             │
│  └─────────────────────────┘                             │
│                                                          │
│  iptables: INPUT/OUTPUT jump to a dedicated chain        │
│  (jump rule tagged -m comment "qfeeds"):                 │
│                                                          │
│  chain QFEEDS_INPUT (rebuilt each run, in order):        │
│    -m set --match-set whitelist_v4 src -j ACCEPT         │
│    -m set --match-set blacklist_v4 src -j DROP           │
│    -m set --match-set blacklist_v4_nets src -j DROP      │
│    (QFEEDS_OUTPUT mirrors this with dst, if enabled)     │
└──────────────────────────────────────────────────────────┘

IPv6 के लिए भी यही संरचना मौजूद है (ip6 qfeeds तालिका या ip6tables + family inet6 ipsets)।

दो सेट प्रकार क्यों?

  • हैश सेट O(1) सम्मिलन और खोज के साथ अलग-अलग IPs संग्रहीत करते हैं — 400k+ IPs को लोड करने में सेकंड लगते हैं
  • नेट/इंटरवल सेट केवल फ़ीड में CIDR रेंज की छोटी संख्या के लिए उपयोग किए जाते हैं
  • यह महंगी मर्ज संचालन से बचाता है जो सैकड़ों हजारों प्रविष्टियों वाले एकल सेट को धीमा कर देगा

अपडेट प्रवाह```

┌──────────────────────────────────────────────────────┐ │ 1. Check license schedule (licenses.php API) │ │ → Skip run if not yet time for next update │ │ 2. Determine sync mode (full or diff) │ │ 3. Fetch IPv4 feed (ipv6=0) and IPv6 feed │ │ (ipv6=only) separately │ │ 4. Separate IPs from CIDRs in awk │ │ 5. Batch-load into hash set (IPs) and net/interval │ │ set (CIDRs) │ │ 6. Update whitelist sets from config │ │ 7. Persist rules │ └──────────────────────────────────────────────────────┘

root@kitploit:~
### पूर्ण सिंक बनाम डिफ सिंक

| मोड | कब | यह क्या करता है |
|------|------|-------------|
| **पूर्ण सिंक** | पहली बार चलाने पर, बलपूर्वक अपडेट करने पर, डिफ विफलता के बाद, जब स्थानीय सेट अपनी आधार रेखा खो चुका हो (खाली या अपेक्षा से बहुत छोटा), या जब अंतिम सिंक `FULL_SYNC_MAX_AGE` (डिफ़ॉल्ट 24 घंटे) से पुराना हो | पहले प्रत्येक फ़ीड को प्राप्त करता है और मान्य करता है, फिर ब्लैकलिस्ट सेट को फ्लश और रीलोड करता है। सेट केवल तभी फ्लश किया जाता है जब वैध डेटा हाथ में हो, इसलिए असफल फ़ेच आपको कभी असुरक्षित नहीं छोड़ता |
| **डिफ सिंक** | बाद के रन (केवल `malware_ip` फ़ीड) एक स्वस्थ स्थानीय सेट के साथ | अंतिम पुल के बाद से केवल जोड़ (`+`) और हटाव (`-`) प्राप्त करता है |

डिफ सिंक **प्रति API कुंजी** है — API आपके अंतिम सफल पुल को ट्रैक करता है और तब से केवल परिवर्तन लौटाता है। यदि डिफ विफल होता है, तो स्क्रिप्ट स्वचालित रूप से पूर्ण सिंक पर वापस आ जाती है।

> **स्व-उपचार:** डिफ अपडेट केवल मौजूदा सेट को पैच करते हैं। यदि वह सेट कभी खो जाता है या काट दिया जाता है — उदाहरण के लिए रिबूट जहाँ फ़ायरवॉल नियम बनाए नहीं रखे गए, मैन्युअल फ्लश, या पिछला आंशिक सिंक — तो अपडेटर लापता आधार रेखा (लाइव एलिमेंट काउंट 0 है या अंतिम रिकॉर्ड किए गए काउंट से बहुत कम है) का पता लगाता है और खाली सेट पर डिफ करने के बजाय एक पूर्ण पुनर्निर्माण को बाध्य करता है। एक अतिरिक्त सुरक्षा जाल के रूप में, यह समय-समय पर पूर्ण सिंक (डिफ़ॉल्ट रूप से हर 24 घंटे, `FULL_SYNC_MAX_AGE` के माध्यम से) भी बाध्य करता है।

### लाइसेंस-आधारित शेड्यूलिंग

अपडेटर प्रत्येक रन से पहले Q-Feeds लाइसेंस API (`licenses.php`) की जाँच करता है। यदि आपके लाइसेंस का `next_update` टाइमस्टैम्प अभी तक नहीं पहुँचा है, तो स्क्रिप्ट अनावश्यक API कॉल किए बिना जल्दी बाहर निकल जाती है। क्रॉन जॉब बार-बार चलता है (डिफ़ॉल्ट: हर 20 मिनट), लेकिन वास्तविक अपडेट केवल तब होते हैं जब आपका लाइसेंस अनुमति देता है।

---

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

इंस्टॉल करने से पहले, सुनिश्चित करें कि आपके पास है:

- [x] **Linux सर्वर** जिसमें **nftables** या **iptables** हो (Debian, Ubuntu, CentOS, Fedora, Arch, Alpine)
- [x] **रूट एक्सेस** — इंस्टॉलर और अपडेटर को रूट के रूप में चलना चाहिए
- [x] **Q-Feeds API टोकन** — [tip.qfeeds.com](https://tip.qfeeds.com/) पर मुफ्त प्राप्त करें
- [x] **इंटरनेट एक्सेस** — सर्वर को `api.qfeeds.com` तक पहुँचने में सक्षम होना चाहिए

इंस्टॉलर आवश्यक निर्भरताओं को स्वचालित रूप से इंस्टॉल करेगा:
- **nftables बैकएंड**: `nftables`, `curl`, `jq`, `util-linux`
- **iptables बैकएंड**: `iptables`, `ipset`, `curl`, `jq`, `util-linux`

---

## 📝 विस्तृत इंस्टॉलेशन गाइड

### 1. अपना API टोकन प्राप्त करें

अपना मुफ्त Q-Feeds API टोकन प्राप्त करने के लिए [tip.qfeeds.com](https://tip.qfeeds.com/) पर जाएँ।

### 2. डाउनलोड करें और चलाएँ```bash
git clone https://github.com/Q-Feeds/NFtables-IPtables-integration-script.git
cd NFtables-IPtables-integration-script
chmod +x qfeeds-installer.sh qfeeds-uninstaller.sh
sudo ./qfeeds-installer.sh

3. इंस्टॉलर प्रॉम्प्ट

इंस्टॉलर निम्नलिखित प्रश्न पूछेगा:

API टोकन (आवश्यक)```

Enter your Q-Feeds API Token:

root@kitploit:~
आपका टोकन [tip.qfeeds.com](https://tip.qfeeds.com/) से। यदि खाली है तो इंस्टॉलर जारी रखने से मना कर देता है।

#### फ़ीड प्रकार```
Enter feed type [default: malware_ip]:

डिफ़ॉल्ट malware_ip है। इसे केवल तभी बदलें जब Q-Feeds ने आपको एक अलग फ़ीड प्रकार प्रदान किया हो।

IP सीमा```

Enter the limit of IPs to fetch (leave empty for no limit):

root@kitploit:~
सीमा न होने के लिए Enter दबाएँ (अनुशंसित)। फ़ीड का आकार सीमित करने के लिए एक संख्या दर्ज करें।

#### दिशात्मक अवरोधन```
Block INCOMING connections from malicious IPs? [Y/n]:
Block OUTGOING connections to malicious IPs? [y/N]:
  • Incoming (डिफ़ॉल्ट: हाँ) — ब्लैकलिस्टेड आईपी से आपके सर्वर पर आने वाले ट्रैफ़िक को ब्लॉक करता है
  • Outgoing (डिफ़ॉल्ट: नहीं) — आपके सर्वर से ब्लैकलिस्टेड आईपी पर जाने वाले ट्रैफ़िक को ब्लॉक करता है

व्हाइटलिस्ट (वैकल्पिक)```

Configure a whitelist of IPs/CIDRs that must NEVER be blocked? [y/N]: Enter IPv4 whitelist (comma-separated, e.g. 1.2.3.4,5.6.7.8): Enter IPv6 whitelist (comma-separated, e.g. 2001:db8::1):

root@kitploit:~
अपने प्रबंधन IP(s) को यहां जोड़ें ताकि यह सुनिश्चित हो सके कि आप कभी लॉक आउट न हों, भले ही वे फ़ीड में दिखाई दें। व्हाइटलिस्ट नियमों की जाँच हमेशा **ब्लैकलिस्ट** नियमों से **पहले** की जाती है।

#### Cron Schedule```
Enter cron schedule (e.g., '*/20 * * * *') [default: */20 * * * *]:

How often the updater checks for new data. Default is every 20 minutes. The license-based scheduling ensures the API is only called when your license allows an update.

Re-running the installer with a customized crontab: If a Q-Feeds cron entry already exists, the installer asks before touching it:

root@kitploit:~
An existing Q-Feeds cron entry was found in the current crontab.
Replace it with a fresh default entry? Choosing 'no' keeps your crontab unchanged [y/N]:

Answer no (the default) to keep your existing crontab. A clean first install has no existing entry and skips this prompt. For unattended installs, set QFEEDS_SKIP_CRON=1 to leave the crontab untouched without prompting.


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

सभी सेटिंग्स /etc/qfeeds/qfeeds_config.conf में संग्रहीत हैं। आप इंस्टॉलर को फिर से चलाए बिना इस फ़ाइल को सीधे संपादित कर सकते हैं। परिवर्तन अगले क्रॉन रन पर प्रभावी होते हैं।

कॉन्फ़िगरेशन फ़ाइल संदर्भ

इंस्टॉलर द्वारा बनाई गई फ़ाइलें


🎯 उपयोग और सत्यापन

nftables बैकएंड```bash

Show the table structure and rules

nft list table ip qfeeds

Count loaded IPv4 IPs (individual addresses)

nft list set ip qfeeds qfeeds_blacklist_v4 | grep -oP '\d+.\d+.\d+.\d+' | wc -l

Show loaded CIDR ranges

nft list set ip qfeeds qfeeds_blacklist_v4_nets | head -20

Count loaded IPv6 addresses

nft list set ip6 qfeeds qfeeds_blacklist_v6 | wc -l

root@kitploit:~
### iptables+ipset backend```bash
# List all Q-Feeds ipsets and their sizes
ipset list -t | grep -A4 qfeeds

# Count loaded IPv4 IPs
ipset list qfeeds_blacklist_v4 | tail -n +9 | wc -l

# Show loaded CIDR ranges
ipset list qfeeds_blacklist_v4_nets | tail -n +9 | head -20

# Show the qfeeds jump rule in INPUT, then the dedicated chain's block rules
iptables -L INPUT -n --line-numbers | grep qfeeds
iptables -L QFEEDS_INPUT -n
ip6tables -L QFEEDS_INPUT -n

सामान्य कमांड (दोनों बैकएंड्स)```bash

Check the log (last 20 entries)

tail -20 /var/log/qfeeds_blocklist.log

Check for errors

grep -i "error" /var/log/qfeeds_blocklist.log

Normal run (respects license schedule)

sudo /usr/local/bin/update_qfeeds_blocklist.sh

Force a full sync (ignores schedule, reloads everything)

sudo QFEEDS_FORCE_UPDATE=1 /usr/local/bin/update_qfeeds_blocklist.sh

Verify cron is set up

sudo crontab -l | grep qfeeds

root@kitploit:~
---

## 🔍 समस्या निवारण

### सामान्य

**इंस्टॉलेशन विफल होता है "Unable to locate package" के साथ**
- इंस्टॉलर आपके डिस्ट्रो (Debian/Ubuntu, CentOS/RHEL, Fedora, Arch, Alpine) का स्वतः पता लगाता है। यदि पहचान विफल होती है, तो निर्भरताओं को मैन्युअल रूप से स्थापित करें: `curl`, `jq`, `util-linux` (`flock` के लिए), साथ ही `nftables` या `iptables`+`ipset`।

**इंस्टॉलेशन के बाद सेट खाली हैं**
- लॉग जांचें: `tail -50 /var/log/qfeeds_blocklist.log`
- अपना API टोकन सही होने की पुष्टि करें
- एक बलपूर्वक अपडेट का प्रयास करें: `sudo QFEEDS_FORCE_UPDATE=1 /usr/local/bin/update_qfeeds_blocklist.sh`

**"अभी समय नहीं हुआ। अगला अपडेट निर्धारित है..."**
- अपडेटर आपके लाइसेंस शेड्यूल का सम्मान करता है। इस संदेश का अर्थ है कि क्रोन चला, लेकिन आपका लाइसेंस अभी अपडेट की अनुमति नहीं देता। यह सामान्य है — अगला क्रोन रन फिर से जांच करेगा।
- लिनक्स इंस्टॉलर स्थानीय कैश्ड `licenses.php` इंडेक्स रखता है और कैश्ड `next_update` को अपने शेड्यूल गेट के रूप में उपयोग करता है। सफल पुल के बाद यह अगले चक्र के लिए उस स्थानीय इंडेक्स को ताज़ा करता है।

**रीबूट के बाद नियम स्थायी नहीं रहते**
- यदि `netfilter-persistent` स्थापित है, तो नियम स्वचालित रूप से सहेजे जाते हैं
- **nftables**: यदि `netfilter-persistent` अनुपस्थित है, तो अपडेटर अब पूर्ण रूलसेट को `/etc/nftables.conf` में स्वचालित रूप से लिखता है और `nftables` सेवा को सक्षम करता है; आप अभी भी `nft list ruleset > /etc/nftables.conf` से मैन्युअल रूप से सहेज सकते हैं
- **iptables**: अपडेटर `ipset save > /etc/ipset.conf` और `iptables-save` से सहेजता है; आप मैन्युअल रूप से भी सहेज सकते हैं
- यदि स्थायित्व पूरी तरह विफल भी हो, तो अपडेटर स्व-सुधार करता है: अगले रन पर यह रीबूट के बाद खाली सेट का पता लगाता है और पूर्ण सिंक के साथ इसे पुनर्निर्माण करता है

### nftables-विशिष्ट

**"Batch nft -f विफल। प्रति-कमांड निष्पादन पर वापस जा रहा है..."**
- यह सामान्य है, विशेषकर LXC कंटेनरों पर जहां कर्नेल का नेटलिंक बफर (`wmem_max`) प्रतिबंधित है। प्रति-कमांड फ़ॉलबैक सही ढंग से काम करता है और तेज़ है (~400k+ आईपी के लिए 10 सेकंड)।

**सिंटैक्स त्रुटि: "unexpected string"**
- सुनिश्चित करें कि आप nftables का एक हालिया संस्करण चला रहे हैं। स्क्रिप्ट `ip saddr`/`ip daddr` सिंटैक्स का उपयोग करती है जिसके लिए nftables 0.9+ आवश्यक है।

**"Error: Could not process rule: Message too long"**
- यह नेटलिंक बफर सीमा है, आमतौर पर LXC कंटेनरों में। स्क्रिप्ट स्वचालित रूप से प्रति-कमांड निष्पादन पर वापस आ जाती है। यदि आप लॉग में एक सफल लोड के साथ यह देखते हैं, तो यह इच्छित रूप से काम कर रहा है।

### iptables+ipset-विशिष्ट

**"ipset restore failed"**
- जांचें कि `ipset` स्थापित है: `command -v ipset`
- विशिष्ट त्रुटियों के लिए लॉग जांचें: `grep -i "error" /var/log/qfeeds_blocklist.log`
- सुनिश्चित करें कि ipset मॉड्यूल लोड है: `lsmod | grep ip_set`

**iptables नियम दिखाई नहीं दे रहे**
- ब्लॉकिंग नियम समर्पित `QFEEDS_INPUT` / `QFEEDS_OUTPUT` चेन में रहते हैं; `INPUT`/`OUTPUT` केवल `qfeeds` टिप्पणी के साथ टैग किए गए एक `-j QFEEDS_INPUT` जंप को रखते हैं
- इससे सत्यापित करें: `iptables -L INPUT -n | grep qfeeds` (जंप) और `iptables -L QFEEDS_INPUT -n` (ब्लॉक नियम)
- जंप नियम पहचान के लिए `-m comment --comment "qfeeds"` का उपयोग करता है
- सुनिश्चित करें कि `xt_set` मॉड्यूल लोड है: `modprobe xt_set`

**"ipset create ... विफल"**
- बहुत पुराने कर्नेल पर, `hash:ip` या `hash:net` प्रकार उपलब्ध नहीं हो सकते हैं। अपने कर्नेल को अपग्रेड करें या एक नए रिपॉजिटरी से `ipset` स्थापित करें।

## 🗑️ अनइंस्टॉल करना```bash
sudo ./qfeeds-uninstaller.sh

The uninstaller removes everything based on the detected backend:

nftables backend:

  • ip qfeeds और ip6 qfeeds तालिकाओं को हटाता है (सभी श्रृंखलाओं, नियमों और सेटों सहित)

iptables backend:

  • qfeeds टिप्पणी से टैग किए गए सभी iptables/ip6tables नियमों को हटाता है (जंप नियमों सहित)
  • QFEEDS_INPUT / QFEEDS_OUTPUT श्रृंखलाओं को फ्लश और हटाता है
  • सभी ipset सेटों को नष्ट करता है (qfeeds_blacklist_v4, qfeeds_blacklist_v4_nets, qfeeds_whitelist_v4, और IPv6 समकक्ष)

Both backends:

  • कॉन्फ़िगरेशन निर्देशिका (/etc/qfeeds/)
  • अपडेटर स्क्रिप्ट (/usr/local/bin/update_qfeeds_blocklist.sh)
  • क्रॉन जॉब, लॉग फ़ाइल और लॉक फ़ाइल

यदि कॉन्फ़िग फ़ाइल गायब है, तो अनइंस्टॉलर दोनों बैकएंड के लिए सफाई का प्रयास करता है।

नोट: अनइंस्टॉलर निर्भरता के रूप में स्थापित सिस्टम पैकेज (curl, jq, ipset, आदि) को नहीं हटाता है।


📄 लाइसेंस

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


⚠️ अस्वीकरण

Use at your own risk.

Please test these scripts in your environment before deploying them in production. The author is not responsible for any issues or damages that may occur from their use.

AI सहायता: इस प्रोजेक्ट के कुछ भाग (कोड, सुधार और दस्तावेज़ीकरण) AI टूल्स की सहायता से लिखे गए थे और बाद में अनुरक्षकों द्वारा समीक्षा की गई। जबकि हम परिवर्तनों का परीक्षण और समीक्षा करते हैं, कृपया स्क्रिप्ट्स को चलाने से पहले स्वयं जांच लें और कुछ भी गलत लगे तो रिपोर्ट करें।


बग रिपोर्ट करें · सुविधा का अनुरोध करें

टूल डाउनलोड करें
1stnft कमांड मिलाnftables
2ndiptables कमांड मिलाiptables+ipset
—कोई नहीं मिलात्रुटि (बाहर निकलें)
VariableDescriptionDefault
BACKENDफ़ायरवॉल बैकएंड (nftables or iptables)(स्वतः पता लगाया गया)
API_TOKENआपका Q-Feeds API टोकन(आवश्यक)
FEED_TYPEप्राप्त करने के लिए फ़ीड प्रकारmalware_ip
LIMITप्राप्त करने के लिए अधिकतम IP (खाली = कोई सीमा नहीं)(खाली)
BLOCK_INCOMINGब्लैकलिस्टेड IP से आने वाले को ब्लॉक करेंyes
BLOCK_OUTGOINGब्लैकलिस्टेड IP को जाने वाले को ब्लॉक करेंno
WHITELIST_V4अल्पविराम से अलग किया गया IPv4 व्हाइटलिस्ट(खाली)
WHITELIST_V6अल्पविराम से अलग किया गया IPv6 व्हाइटलिस्ट(खाली)
LOG_FILEलॉग फ़ाइल का पथ/var/log/qfeeds_blocklist.log
FULL_SYNC_MAX_AGEपूर्ण पुनः-सिंक को बाध्य करने से पहले सेकंड में अधिकतम आयु (गहराई में रक्षा)86400 (24 घंटे)
PathPurpose
/etc/qfeeds/qfeeds_config.confकॉन्फ़िगरेशन फ़ाइल
/etc/qfeeds/.last_syncपूर्ण/अंतर सिंक ट्रैकिंग के लिए स्थिति फ़ाइल
/etc/qfeeds/.last_countअंतिम सफल तत्व गणना, खोए हुए आधार रेखा का पता लगाने के लिए उपयोग किया जाता है
/usr/local/bin/update_qfeeds_blocklist.shअद्यतन स्क्रिप्ट (क्रॉन के माध्यम से चलती है)
/var/log/qfeeds_blocklist.logलॉग फ़ाइल