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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
linux-malware-detect — पांच डिटेक्शन चरणों (MD5, HEX पैटर्न, YARA, ClamAV, सांख्यिकीय), रीयल-टाइम inotify मॉनिटरिंग, क्वारंटाइन और मल्टी-चैनल अलर्टिंग के साथ मल्टी-इंजन लिनक्स मैलवेयर स्कैनर | Kitploit
उपकरण/GitHubGitHub/rfxn/linux-malware-detect
रक्षात्मक उपकरणमालवेयर विश्लेषणखतरा खुफियाघुसपैठ का पता लगानाघटना प्रतिक्रियाविसंगति का पता लगाना
GitHubrfxn/linux-malware-detect

linux-malware-detect

पांच डिटेक्शन चरणों (MD5, HEX पैटर्न, YARA, ClamAV, सांख्यिकीय), रीयल-टाइम inotify मॉनिटरिंग, क्वारंटाइन और मल्टी-चैनल अलर्टिंग के साथ मल्टी-इंजन लिनक्स मैलवेयर स्कैनर

रिपॉजिटरी देखें
1.5k2482 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
वेबसाइट

Linux Malware Detect (LMD)

Linux Malware Detect

CI Version License: GPL v2 Platform: Linux

लिनक्स के लिए मैलवेयर स्कैनर — बहु-चरणीय खतरे की पहचान (MD5, SHA-256, HEX, YARA, सांख्यिकीय विश्लेषण), ClamAV एकीकरण, रीयल-टाइम inotify निगरानी, क्वारंटीन/साफ/पुनर्स्थापना संचालन, और बहु-चैनल अलर्टिंग (ईमेल, Slack, Telegram, Discord)।

(C) 2002-2026, R-fx Networks <[email protected]>
(C) 2026, Ryan MacDonald <[email protected]>
GNU GPL v2 के तहत लाइसेंस प्राप्त


2.0.1 में नया क्या है

43x तेज़ नेटिव स्कैन इंजन — नेटिव स्कैनिंग पाइपलाइन को बैच समानांतर प्रोसेसिंग के साथ पूरी तरह से फिर से लिखा गया है। ~10,000 फ़ाइलों पर वास्तविक दुनिया का बेंचमार्क:

VersionRuntimeFilesHits
v1.6.61,217s9,93135
v2.0.128s9,93135

MD5 और HEX सिग्नेचर मिलान अब Aho-Corasick समांतर वर्कर्स के साथ बैच grep का उपयोग करता है, जिससे प्रति-फ़ाइल पैटर्न संकलन ओवरहेड और प्रति स्कैन ~500,000 सबप्रोसेस फोर्क्स समाप्त हो जाते हैं। scan_workers (डिफ़ॉल्ट: auto) के साथ समांतर वर्कर संख्या कॉन्फ़िगर करें।

अन्य मुख्य बातें: स्कैन लाइफसाइकिल प्रबंधन (--kill, --pause, --stop/--continue, -L), CPU हार्डवेयर स्वतः-पहचान के साथ SHA-256 हैश स्कैनिंग (scan_hashtype), नेटिव YARA स्कैनिंग (scan_yara=1), Discord वेबहुक अलर्टिंग, Slack/Telegram अलर्टिंग सुधार, नेटिव इंजन में ClamAV हेक्स वाइल्डकार्ड समर्थन, और कोडबेस में 200+ बग फिक्स। पूर्ण विवरण के लिए CHANGELOG देखें।


सामग्री

  • 1. परिचय
  • 2. स्थापना
  • 3. कॉन्फ़िगरेशन
    • 3.1 सामान्य विकल्प
    • 3.2 अलर्टिंग
    • 3.3 स्कैनिंग विकल्प
    • 3.4 YARA स्कैनिंग
    • 3.5 क्वारंटीन विकल्प
    • 3.6 निगरानी विकल्प
    • 3.7 पोस्ट-स्कैन हुक
    • 3.8 ClamAV एकीकरण
    • 3.9 रिमोट ClamAV
    • 3.10 ELK एकीकरण
    • 3.11 कॉन्फ़िगरेशन लोडिंग क्रम
  • 4. उपयोग
  • 5. इग्नोर विकल्प
  • 6. दैनिक क्रॉन
  • 7. इनोटिफ़ाई निगरानी
  • 8. सिग्नेचर सिस्टम
    • 8.1 सिग्नेचर अपडेट
    • 8.2 कस्टम सिग्नेचर
  • 9. क्वारंटीन और सफाई
    • 9.1 क्लीनर नियम
  • 10. हुक स्कैनिंग
  • एकीकरण
  • लाइसेंस
  • सहायता

त्वरित प्रारंभ```bash

Install to /usr/local/maldetect

./install.sh

Scan all files under a path

maldet -a /home/?/public_html

Scan files modified in the last 2 days

maldet -r /home/?/public_html 2

Enable YARA scanning at runtime

maldet -co scan_yara=1 -a /home/?/public_html

Quarantine all hits from a scan

maldet -q SCANID

Start real-time inotify monitoring

maldet -m users

Update signatures

maldet -u

root@kitploit:~
---

## 1. परिचय

LMD की आर्किटेक्चर, पहचान चरण और समर्थित प्लेटफ़ॉर्म।

Linux Malware Detect (LMD) Linux के लिए एक मैलवेयर स्कैनर है जो GNU GPLv2 लाइसेंस के तहत जारी किया गया है, और इसे साझा होस्टिंग वातावरण में सामने आने वाले खतरों को ध्यान में रखकर डिज़ाइन किया गया है। यह नेटवर्क एज इंट्रूज़न डिटेक्शन सिस्टम से खतरे का डेटा उपयोग करता है ताकि उन मैलवेयर को निकाला जा सके जो वास्तव में हमलों में सक्रिय रूप से उपयोग हो रहे हैं, और पहचान के लिए सिग्नेचर उत्पन्न करता है। इसके अलावा, खतरे का डेटा LMD चेकआउट सुविधा के साथ उपयोगकर्ता सबमिशन और मैलवेयर समुदाय संसाधनों से प्राप्त होता है।

LMD उन मैलवेयर वर्गों पर केंद्रित है जिन्हें पारंपरिक AV उत्पाद अक्सर नहीं पकड़ पाते: PHP शेल, JavaScript इंजेक्टर, base64-एन्कोडेड बैकडोर, IRC बॉट, और अन्य वेब-एप्लिकेशन-लेयर खतरे जो ऑपरेटिंग सिस्टम के आंतरिक भागों के बजाय साझा होस्टिंग उपयोगकर्ता खातों को लक्षित करते हैं।

**पहचान चरण**
- सटीक खतरे की पहचान के लिए MD5 फ़ाइल हैश मिलान
- समानांतर वर्कर्स के साथ नेटिव बैच grep इंजन के माध्यम से HEX पैटर्न मिलान
- मल्टी-पैटर्न बूलियन लॉजिक (AND/OR/threshold), केस-इन्सेंसिटिव मिलान, वाइड (UTF-16LE) मिलान और बाउंडेड गैप वाइल्डकार्ड के साथ कंपाउंड सिग्नेचर (csig) स्कैनिंग
- पूर्ण मॉड्यूल समर्थन और कस्टम नियमों के साथ नेटिव YARA नियम स्कैनिंग
- अस्पष्ट (obfuscated) खतरों (base64, gzinflate) का पता लगाने के लिए सांख्यिकीय स्ट्रिंग-लंबाई विश्लेषण
- LMD-अनुरक्षित ClamAV सिग्नेचर के साथ विस्तारित कवरेज के लिए ClamAV एकीकरण

**स्कैनिंग और निगरानी**
- सभी फ़ाइलें, हाल ही में संशोधित फ़ाइलें, या सूची से फ़ाइलें स्कैन करें
- कर्नेल inotify रीयल-टाइम फ़ाइल निगरानी (create/modify/move इवेंट)
- ModSecurity2 `inspectFile` हुक के माध्यम से HTTP अपलोड स्कैनिंग
- बिना पर्यवेक्षण के बड़े पैमाने पर संचालन के लिए बैकग्राउंड स्कैनिंग
- प्रति-स्कैन include/exclude regex फ़िल्टरिंग

**क्वारंटीन और प्रतिक्रिया**
- शून्य-अनुमति फ़ाइल भंडारण के साथ क्वारंटीन कतार
- स्कैन ID द्वारा बैच क्वारंटीन/पुनर्स्थापना
- मैलवेयर हटाने के लिए सिग्नेचर-विशिष्ट क्लीनर नियम
- पूर्ण फ़ाइल पुनर्स्थापना (सामग्री, स्वामी, अनुमतियाँ, mtime)

**अलर्ट और रिपोर्टिंग**
- एकीकृत rfxn डिज़ाइन (teal ब्रांड, कार्ड प्रविष्टियाँ) के साथ HTML + टेक्स्ट ईमेल अलर्ट
- स्थानीय MTA के बिना वातावरण के लिए SMTP रिले समर्थन (TLS/SSL)
- Slack Block Kit, Telegram MarkdownV2, Discord embed प्रति-प्रविष्टि अलर्ट
- `alert/custom.d/` ओवरराइड के माध्यम से अनुकूलन योग्य अलर्ट टेम्पलेट
- प्रति-फ़ाइल हिट विवरण, रंग-कोडित हिट प्रकारों के साथ स्कैन रिपोर्ट

**इंफ्रास्ट्रक्चर**
- दोहरे-इंजन कवरेज के लिए स्वचालित ClamAV सिग्नेचर लिंकिंग
- 12+ होस्टिंग कंट्रोल पैनल की स्व-पहचान के साथ दैनिक cron
- CPU/IO संसाधन नियंत्रण (nice, ionice, cpulimit)
- सिग्नेचर और संस्करण स्वचालित अपडेट
- systemd सर्विस यूनिट और SysV init स्क्रिप्ट समर्थन

### समर्थित प्लेटफ़ॉर्म

LMD किसी भी Linux वितरण पर bash और मानक GNU उपयोगिताओं के साथ चलता है। परीक्षण किए गए प्लेटफ़ॉर्म:

| प्लेटफ़ॉर्म | इनिट सिस्टम | पैकेज कॉन्फ़िग पथ |
|----------|-------------|---------------------|
| RHEL / Rocky / AlmaLinux 8, 9, 10 | systemd | `/etc/sysconfig/maldet` |
| CentOS 6, 7 | SysV / systemd | `/etc/sysconfig/maldet` |
| Debian 10, 11, 12 | systemd | `/etc/default/maldet` |
| Ubuntu 20.04, 22.04, 24.04 | systemd | `/etc/default/maldet` |
| Gentoo | OpenRC | — |
| Slackware | SysV | — |
| FreeBSD | — | — (आंशिक; कोई inotify नहीं) |

---

## 2. स्थापना

सिस्टम पर LMD की स्थापना, उन्नयन और निष्कासन।

शामिल `install.sh` स्क्रिप्ट सभी स्थापना कार्यों को संभालती है। पिछली स्थापनाओं का स्वचालित रूप से बैकअप लिया जाता है।```bash
./install.sh

The installer:

  • /usr/local/maldetect में फ़ाइलें कॉपी करता है
  • /usr/local/sbin/ में maldet सिमलिंक बनाता है
  • /etc/cron.daily/maldet पर cron.daily स्क्रिप्ट इंस्टॉल करता है
  • systemd सर्विस यूनिट (या पुराने सिस्टम पर SysV init स्क्रिप्ट) इंस्टॉल करता है
  • LMD सिग्नेचर को ClamAV डेटा निर्देशिकाओं से लिंक करता है (यदि ClamAV इंस्टॉल है)
  • अपग्रेड के दौरान मौजूदा कॉन्फ़िगरेशन (conf.maldet), कस्टम सिग्नेचर और इग्नोर फ़ाइलों को संरक्षित रखता है

पिछले इंस्टॉल /usr/local/maldetect.bk{PID} में सहेजे जाते हैं, सबसे हालिया बैकअप के लिए maldetect.last सिमलिंक के साथ।

डिफ़ॉल्ट पथ:

  • इंस्टॉल पथ: /usr/local/maldetect
  • बाइनरी सिमलिंक: /usr/local/sbin/maldet
  • क्रॉन स्क्रिप्ट: /etc/cron.daily/maldet
  • सर्विस यूनिट: /usr/lib/systemd/system/maldet.service

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

सभी उपयोगकर्ता-सामने वाली सेटिंग्स और उनके डिफ़ॉल्ट। पूर्ण संदर्भ के लिए man maldet(1) देखें।

मुख्य कॉन्फ़िगरेशन फ़ाइल /usr/local/maldetect/conf.maldet है। सभी विकल्प कॉन्फ़िगरेशन में आसानी के लिए कमेंट किए गए हैं। जब तक अन्यथा नोट न किया जाए, विकल्प डिसेबल/इनेबल के लिए 0/1 का उपयोग करते हैं।

कॉन्फ़िगरेशन को रनटाइम पर -co फ़्लैग का उपयोग करके भी ओवरराइड किया जा सकता है:```bash maldet -co quarantine_hits=1,email_addr=[email protected] -a /home

root@kitploit:~
### 3.1 सामान्य विकल्प

| Variable | उद्देश्य | डिफ़ॉल्ट |
|----------|---------|---------|
| `autoupdate_signatures` | क्रोन के माध्यम से प्रतिदिन सिग्नेचर स्वतः अपडेट करें | `1` |
| `autoupdate_version` | क्रोन के माध्यम से प्रतिदिन LMD संस्करण स्वतः अपडेट करें | `1` |
| `autoupdate_version_hashed` | LMD निष्पादनयोग्य SHA-256 हैश को अपस्ट्रीम से सत्यापित करें (विफल होने पर MD5 पर वापस) | `1` |
| `sigup_interval` | स्वतंत्र क्रोन जॉब (`/etc/cron.d/maldet-sigup`) के माध्यम से स्वचालित सिग्नेचर अपडेट जाँचों के बीच घंटे; 0 = अक्षम | `6` |
| `cron_prune_days` | क्वारंटीन/सत्र/अस्थायी डेटा बनाए रखने के दिन | `21` |
| `cron_daily_scan` | क्रोन के माध्यम से दैनिक स्वचालित स्कैनिंग सक्षम करें | `1` |
| `scan_days` | दैनिक क्रोन स्कैन में संशोधित फ़ाइलों के लिए पीछे देखने के दिन | `1` |
| `import_config_url` | दूरस्थ कॉन्फ़िगरेशन ओवरराइड डाउनलोड करने के लिए URL | — |
| `import_config_expire` | आयातित कॉन्फ़िग के लिए कैश समाप्ति (सेकंड) | `43200` |
| `sig_import_md5_url` | कस्टम MD5 सिग्नेचर डाउनलोड करने के लिए URL | — |
| `sig_import_hex_url` | कस्टम HEX सिग्नेचर डाउनलोड करने के लिए URL | — |
| `sig_import_yara_url` | कस्टम YARA नियम डाउनलोड करने के लिए URL | — |
| `sig_import_sha256_url` | कस्टम SHA-256 सिग्नेचर डाउनलोड करने के लिए URL | — |
| `sig_import_csig_url` | कस्टम कंपाउंड सिग्नेचर डाउनलोड करने के लिए URL | — |
| `session_legacy_compat` | TSV के साथ-साथ लीगेसी प्लेनटेक्स्ट सत्र फ़ाइलें बनाएँ: `auto` (पुराने प्रारूप के सत्रों का पता लगाएँ), `1` (हमेशा), `0` (केवल TSV) | `auto` |

### 3.2 अलर्टिंग

| Variable | उद्देश्य | डिफ़ॉल्ट |
|----------|---------|---------|
| `email_alert` | स्कैन के बाद ईमेल अलर्ट सक्षम करें | `0` |
| `email_addr` | अलर्ट प्राप्तकर्ता का पता | `[email protected]` |
| `email_subj` | ईमेल विषय पंक्ति टेम्पलेट | `maldet alert from $(hostname)` |
| `email_ignore_clean` | जब सभी हिट साफ़ कर दिए गए हों तो अलर्ट दबाएँ | `1` |
| `email_panel_user_alerts` | हिट पाए जाने पर पैनल उपयोगकर्ता अलर्ट भेजें | `0` |
| `email_panel_from` | पैनल उपयोगकर्ता अलर्ट के लिए From हेडर | `[email protected]` |
| `email_panel_replyto` | पैनल उपयोगकर्ता अलर्ट के लिए Reply-To हेडर | `[email protected]` |
| `email_panel_alert_subj` | पैनल उपयोगकर्ता अलर्ट के लिए विषय पंक्ति | `maldet alert from $(hostname)` |
| `email_format` | ईमेल प्रारूप: `text`, `html`, या `both` | `html` |
| `smtp_relay` | SMTP रिले URL (जैसे, `smtps://smtp.gmail.com:465`) | — |
| `smtp_from` | SMTP रिले डिलीवरी के लिए प्रेषक पता | — |
| `smtp_user` | SMTP प्रमाणीकरण उपयोगकर्ता नाम | — |
| `smtp_pass` | SMTP प्रमाणीकरण पासवर्ड | — |
| `slack_alert` | Slack फ़ाइल अपलोड अलर्ट सक्षम करें | `0` |
| `slack_subj` | Slack अपलोड के लिए फ़ाइल नाम | `maldet alert from $(hostname)` |
| `slack_token` | Slack Bot API टोकन (स्कोप: `files:write`, `files:read`) | — |
| `slack_channels` | चैनल नामों या IDs की अल्पविराम से अलग की गई सूची | `maldetreports` |
| `telegram_alert` | Telegram अलर्ट सक्षम करें | `0` |
| `telegram_bot_token` | Telegram Bot API टोकन | — |
| `telegram_channel_id` | Telegram चैट या समूह ID | — |
| `discord_alert` | Discord वेबहुक अलर्ट सक्षम करें | `0` |
| `discord_webhook_url` | अलर्ट डिलीवरी के लिए Discord वेबहुक URL | — |

### 3.3 स्कैनिंग विकल्प

| Variable | उद्देश्य | डिफ़ॉल्ट |
|----------|---------|---------|
| `scan_hashtype` | चरण 1 के लिए हैश एल्गोरिदम: `auto`, `sha256`, `md5`, `both` | `auto` |
| `scan_max_depth` | find के लिए अधिकतम निर्देशिका गहराई | `15` |
| `scan_min_filesize` | स्कैन करने के लिए न्यूनतम फ़ाइल आकार | `24` bytes |
| `scan_max_filesize` | स्कैन करने के लिए अधिकतम फ़ाइल आकार | `2048k` |
| `scan_hexdepth` | HEX सिग्नेचर मिलान के लिए बाइट गहराई | `262144` |
| `scan_hex_chunk_size` | HEX+CSIG स्कैनिंग में प्रति माइक्रो-बैच फ़ाइलें (सीमा: 1024-20480) | `10240` |
| `scan_csig` | कंपाउंड सिग्नेचर (csig) स्कैनिंग सक्षम करें (केवल नेटिव मोड में) | `1` |
| `scan_workers` | MD5, SHA-256, HEX, और CSIG स्कैन पास के लिए समानांतर वर्कर | `auto` |
| `scan_cpunice` | स्कैन प्रक्रिया के लिए nice प्राथमिकता (-19 से 19) | `19` |
| `scan_ionice` | IO शेड्यूलिंग क्लास प्राथमिकता (0-7) | `6` |
| `scan_cpulimit` | हार्ड CPU सीमा प्रतिशत (0=अक्षम) | `0` |
| `scan_ignore_root` | स्कैन में root-स्वामित्व वाली फ़ाइलें छोड़ें (मॉनिटर मोड में डिफ़ॉल्ट रूप से लागू नहीं; `monitor_scan_owner_filters` देखें) | `1` |
| `scan_ignore_user` | विशिष्ट उपयोगकर्ताओं के स्वामित्व वाली फ़ाइलें छोड़ें | — |
| `scan_ignore_group` | विशिष्ट समूहों के स्वामित्व वाली फ़ाइलें छोड़ें | — |
| `scan_user_access` | गैर-root उपयोगकर्ताओं को स्कैन चलाने की अनुमति दें | `0` |
| `scan_user_access_minuid` | --mkpubpaths उपयोगकर्ता निर्देशिका निर्माण के लिए न्यूनतम UID | `100` |
| `scan_find_timeout` | find फ़ाइल सूची निर्माण के लिए टाइमआउट (0=अक्षम, न्यूनतम 60s, 14400=4hr अनुशंसित) | `0` |
| `scan_export_filelist` | find परिणाम tmp/find_results.last में सहेजें | `0` |
| `scan_tmpdir_paths` | -a/-r स्कैन में शामिल विश्व-लेखन योग्य अस्थायी पथ | `/tmp /var/tmp /dev/shm /var/fcgi_ipc` |
| `string_length_scan` | सांख्यिकीय स्ट्रिंग-लंबाई विश्लेषण सक्षम करें | `0` |
| `string_length` | न्यूनतम संदिग्ध स्ट्रिंग लंबाई | `150000` |
| `scan_progress_log_interval` | पृष्ठभूमि स्कैन के दौरान प्रगति लॉग चेकपॉइंट्स के बीच सेकंड (0=अक्षम) | `60` |
| `scan_meta_cleanup_age` | पूर्ण/समाप्त स्कैन मेटा फ़ाइलों को बनाए रखने के घंटे (0=अक्षम) | `48` |
| `maint_compress_age` | पूर्ण सत्र फ़ाइलों को gzip करने से पहले के दिन (0=अक्षम) | `30` |
| `maint_archive_age` | संपीड़ित सत्रों को मासिक संग्रह में बंडल करने से पहले के दिन (0=अक्षम) | `90` |

### 3.4 YARA स्कैनिंग

नेटिव YARA स्कैनिंग ClamAV से स्वतंत्र रूप से `yara` बाइनरी (या YARA-X से `yr`) को आमंत्रित करती है, जो पूर्ण YARA मॉड्यूल, संकलित नियमों, और कस्टम नियम फ़ाइलों का समर्थन करती है, जिन्हें ClamAV का सीमित YARA उपसमुच्चय संभाल नहीं सकता। जब दोनों उपलब्ध हों, तो `yr` (YARA-X) को प्राथमिकता दी जाती है। जब `auto` पर सेट किया जाता है, तो नेटिव YARA केवल तभी सक्षम होता है जब ClamAV अनुपलब्ध हो और yara/yr बाइनरी पाई जाए, जिससे डुप्लिकेट नियम मूल्यांकन रुकता है।

| Variable | उद्देश्य | डिफ़ॉल्ट |
|----------|---------|---------|
| `scan_yara` | नेटिव YARA स्कैन चरण सक्षम करें: `auto` (बाइनरी का पता लगाएँ, ClamAV फ़ॉलबैक), `0` (अक्षम), `1` (सक्षम) | `auto` |
| `scan_yara_timeout` | सेकंड में टाइमआउट (0=कोई टाइमआउट नहीं) | `300` |
| `scan_yara_scope` | जब ClamAV भी सक्रिय हो तो नियम दायरा: `all` (पूर्ण नेटिव स्कैन) या `custom` (केवल कस्टम नियम नेटिव रूप से, ClamAV rfxn.yara संभालता है) | `custom` |
| `sig_import_yara_url` | सिग्नेचर अपडेट पर कस्टम YARA नियम डाउनलोड करने के लिए URL | — |

**कस्टम YARA नियम** दो स्थानों पर रखे जा सकते हैं, दोनों अपग्रेड के दौरान संरक्षित रहते हैं:
- `sigs/custom.yara` — एकल-फ़ाइल नियम
- `sigs/custom.yara.d/` — `.yar` और `.yara` नियम फ़ाइलों के लिए ड्रॉप-इन निर्देशिका

[YARA Forge](https://yarahq.github.io/) और [Signature Base](https://github.com/Neo23x0/signature-base) जैसे तृतीय-पक्ष नियम सेटों के साथ संगत। संकलित नियम (`yarac` आउटपुट) भी `sigs/compiled.yarc` के माध्यम से समर्थित हैं।

**बैच स्कैनिंग:** YARA 4.0+ और सभी YARA-X संस्करण कुशल बैच फ़ाइल स्कैनिंग के लिए `--scan-list` का उपयोग करते हैं। पुराने YARA संस्करण स्वचालित रूप से प्रति-फ़ाइल स्कैनिंग पर वापस चले जाते हैं।

बिना कॉन्फ़िग संपादित किए रनटाइम पर सक्षम करें:```bash
maldet -co scan_yara=1 -a /home/?/public_html

3.5 क्वारंटाइन विकल्प

3.6 निगरानी विकल्प

3.7 पोस्ट-स्कैन हुक

स्कैन पूर्ण होने के बाद एक कॉन्फ़िगर करने योग्य हुक स्क्रिप्ट चलाई जा सकती है, जो स्थितीय तर्कों, LMD_* पर्यावरण चरों और वैकल्पिक रूप से stdin पर JSON के माध्यम से स्कैन परिणाम प्राप्त करती है। हुक स्कैनिंग को कभी नहीं तोड़ता — विफलताएँ लॉग की जाती हैं, घातक नहीं होतीं। पूर्ण हुक अनुबंध के लिए maldet(1) देखें।

3.8 ClamAV एकीकरण

जब ClamAV स्कैनिंग सक्षम होती है (scan_clamscan=1 या पहचाने गए बाइनरी के साथ auto), LMD प्राथमिकता क्रम में सर्वश्रेष्ठ उपलब्ध ClamAV इंजन चुनता है:

  1. रिमोट clamdscan (यदि scan_clamd_remote=1 और कॉन्फ़िग मौजूद है)
  2. root के रूप में चल रहा लोकल clamd डेमन
  3. गैर-root के रूप में चल रहा लोकल clamd डेमन (--fdpass के साथ)
  4. clamscan बाइनरी (फ़ॉलबैक, धीमा)

LMD सिग्नेचर install.sh द्वारा स्वचालित रूप से ClamAV डेटा निर्देशिकाओं में सिमलिंक किए जाते हैं, जिससे ClamAV को LMD के MD5 (rfxn.hdb), HEX (rfxn.ndb) और YARA (rfxn.yara) सिग्नेचर तक पहुँच मिलती है।

सिग्नेचर वैलिडेशन गेट: अद्यतन सिग्नेचर को ClamAV डेटा निर्देशिकाओं में तैनात करने से पहले, LMD उन्हें स्टेजिंग निर्देशिका के विरुद्ध clamscan -d के माध्यम से मान्य करता है। यदि वैलिडेशन विफल होता है, तो दोषपूर्ण डेटाबेस को ClamAV को तोड़ने से रोकने के लिए मौजूदा LMD सिग्नेचर ClamAV पथ से हटा दिए जाते हैं। clamd को SIGUSR2 रीलोड सिग्नल केवल तभी भेजा जाता है जब कम से कम एक ClamAV डेटा निर्देशिका वैलिडेशन पास करती है (issue #467)।

चरउद्देश्यडिफ़ॉल्ट
scan_clamscanClamAV को स्कैन इंजन के रूप में सक्षम करें: auto (रनटाइम पर बाइनरी पहचानें), 0 (अक्षम), 1 (सक्षम)auto

3.9 रिमोट ClamAV

3.10 ELK एकीकरण

3.11 कॉन्फ़िगरेशन लोडिंग क्रम

बाद के स्रोत पहले के मानों को ओवरराइड करते हैं:

  1. internals/internals.conf — आंतरिक पथ, बाइनरी खोज, URL परिभाषाएँ
  2. conf.maldet — उपयोगकर्ता-उन्मुख कॉन्फ़िगरेशन
  3. internals/compat.conf — अप्रचलित चर मैपिंग
  4. /etc/sysconfig/maldet या /etc/default/maldet — सिस्टम ओवरराइड
  5. CLI -co|--config-option — रनटाइम ओवरराइड

4. उपयोग

कमांड-लाइन इंटरफ़ेस, एग्ज़िट कोड और सामान्य उदाहरण। पूर्ण विकल्प संदर्भ के लिए man maldet(1) देखें।``` usage: maldet [OPTION] [ARGUMENT]

SCANNING: -a, --scan-all PATH scan all files in path (wildcard: ?) -r, --scan-recent PATH DAYS scan files created/modified in last X days -f, --file-list FILE scan files from a line-separated file list -b, --background run scan in the background

SCAN FILTERS: -i, --include-regex REGEX include only matching paths -x, --exclude-regex REGEX exclude matching paths -co, --config-option V=V,... override config options at runtime -U, --user USER run as specified user

MONITORING: -m, --monitor USERS|PATHS|FILE|RELOAD start inotify monitoring -k, --kill-monitor stop inotify monitoring

SCAN MANAGEMENT: -L, --list-active list active scans (text/json/tsv) --kill SCANID abort a running scan --pause SCANID [DURATION] pause a running scan (e.g., 2h, 30m) --unpause SCANID resume a paused scan --stop SCANID checkpoint and stop a running scan --continue SCANID resume a stopped scan from checkpoint --maintenance rotate histories, compress/archive old sessions

QUARANTINE & RESTORE: -q, --quarantine SCANID quarantine hits from scan -n, --clean SCANID clean malware from scan hits -s, --restore FILE|SCANID restore quarantined file(s) -qd PATH override quarantine directory for this run

REPORTING: -e, --report [SCANID|list|latest|hooks|active] view scan report --all show full history with -e list (default: recent) --format text|json|html|tsv set report output format (default: text) --mailto ADDRESS email report to address --json-report [SCANID|list] shorthand: --report --format json --alert-daily generate inotify monitor digest alert --digest fire unified digest (monitor + hook sources) -l, --log view event log

UPDATES: -u, --update-sigs [--force] update malware signatures -d, --update-ver [--force|--beta] update LMD version --cron-sigup cron sig update (internal use)

OTHER: -p, --purge clear logs, quarantine, temp data -c, --checkout FILE submit suspected malware to rfxn.com --test-alert TYPE CHANNEL test alert delivery (scan|digest, email|slack|telegram|discord) --mkpubpaths create per-user pub/ data directories --web-proxy IP:PORT set HTTP/HTTPS proxy -hscan, --hook-scan scan via service hook (internal use) -v, --version show version information -h, --help show detailed help

root@kitploit:~
### 4.1 निकास कोड

| कोड | अर्थ |
|------|---------|
| `0` | सफलता, कोई मैलवेयर हिट नहीं |
| `1` | त्रुटि या सभी स्कैन पथ मौजूद नहीं हैं |
| `2` | मैलवेयर हिट मिले |

**उदाहरण:**```bash
# Scan all files under user web roots
maldet -a /home/?/public_html

# Scan recent files with auto-quarantine and YARA enabled
maldet -co quarantine_hits=1,scan_yara=1 -r /home/?/public_html 2

# Background scan with email alert to specific address
maldet -b -co [email protected] -a /var/www

# View the most recent scan report
maldet -e

# Email a specific report
maldet --mailto [email protected] -e 050910-1534.21135

# Output scan report as JSON (pipe to jq for formatting)
maldet --format json -e 050910-1534.21135

# List all reports as JSON
maldet --format json -e list

# Shorthand JSON output (equivalent to --format json -e)
maldet --json-report 050910-1534.21135

# Restore all quarantined files from a scan
maldet -s 050910-1534.21135

JSON आउटपुट: --format json -e या --json-report का उपयोग करके संरचित JSON आउटपुट करें (v1.2 स्कीमा) जिसमें स्कैनर मेटाडेटा, स्कैन विवरण (पथ, समय, फ़ाइल संख्याएँ), प्रति-हिट प्रविष्टियाँ जिनमें सिग्नेचर नाम, फ़ाइल पथ, हिट प्रकार, स्वामी, अनुमतियाँ और क्वारंटीन स्थिति शामिल हो, साथ ही प्रति-प्रकार विवरण के साथ एक सारांश भी। TSV और लीगेसी प्लेनटेक्स्ट दोनों सत्र समर्थित हैं; लीगेसी सत्रों में "source": "legacy" शामिल होता है और अनुपलब्ध संवर्धित फ़ील्ड्स (हैश, आकार, स्वामी, आदि) null के रूप में रेंडर होते हैं।

4.2 स्कैन प्रबंधन

बड़े फ़ाइल सिस्टम (1M+ फ़ाइलें) पर लंबे समय से चलने वाले स्कैन को kill -9 के बिना नियंत्रित किया जा सकता है:```bash

List active scans (running, paused, stopped)

maldet -L

List active scans as JSON

maldet --format json -L

Abort a running scan (full cleanup of temp files and workers)

maldet --kill 260327-1509.25279

Pause a scan for 2 hours (workers sleep, I/O freed)

maldet --pause 260327-1509.25279 2h

Resume a paused scan

maldet --unpause 260327-1509.25279

Checkpoint and stop a scan for later resume

maldet --stop 260327-1509.25279

Resume from checkpoint (skips completed stages, restores prior hits)

maldet --continue 260327-1509.25279

Rotate histories, compress old sessions, archive by month

maldet --maintenance

root@kitploit:~
**चेकपॉइंट पुनः आरंभ:** `--stop` स्कैन चरण, हिट गिनती, कॉन्फ़िग विकल्प और प्रति-वर्कर प्रगति दर्ज करने वाली एक चेकपॉइंट फ़ाइल लिखता है। `--continue` चेकपॉइंट को मान्य करता है, यदि हस्ताक्षर बदले गए हों तो चेतावनी देता है, वर्तमान फ़ाइलसिस्टम स्थिति से फ़ाइल सूची पुनर्निर्मित करता है, पिछले हिट्स को पुनर्स्थापित करता है, और बाधित चरण से स्कैनिंग पुनः आरंभ करता है। HEX कार्यकर्ता चंक ग्रैन्युलैरिटी पर पुनः आरंभ होते हैं (प्रति कार्यकर्ता ~30 सेकंड का कार्य नष्ट हो जाता है)।

**इंजन समर्थन:** नेटिव इंजन (HEX/CSIG/हैश कार्यकर्ता) और स्टैंडअलोन `clamscan` सभी जीवनचक्र संचालन का समर्थन करते हैं। डेमॉन-आधारित ClamAV (`clamdscan`/`clamd`) केवल `--kill` का समर्थन करता है — `--pause` और `--stop` को एक त्रुटि संदेश के साथ अस्वीकार कर दिया जाता है क्योंकि डेमॉन I/O स्थिति अपारदर्शी है और अन्य क्लाइंटों के साथ साझा होती है।

---

## 5. उपेक्षा विकल्प

चार उपेक्षा फ़ाइलें नियंत्रित करती हैं कि स्कैनिंग से क्या बाहर रखा जाए:

| फ़ाइल | प्रारूप | उद्देश्य |
|------|--------|---------|
| `ignore_paths` | पंक्ति-पृथक पथ | स्कैन से निर्देशिकाओं या फ़ाइलों को बाहर करें |
| `ignore_file_ext` | पंक्ति-पृथक एक्सटेंशन | फ़ाइल एक्सटेंशन बाहर करें (`.js`, `.css`) |
| `ignore_sigs` | पंक्ति-पृथक पैटर्न | मेल खाने वाले हस्ताक्षरों को छोड़ें (regex, सबस्ट्रिंग मिलान) |
| `ignore_inotify` | पंक्ति-पृथक शाब्दिक पथ | inotify निगरानी ईवेंट्स बाहर करें |

सभी उपेक्षा फ़ाइलें `/usr/local/maldetect/` के अंतर्गत स्थित हैं।

**उदाहरण:**```
# ignore_paths
/home/user/public_html/cgi-bin

# ignore_file_ext
.js
.css

# ignore_sigs
base64.inject.unclassed

# ignore_inotify (user-owned — your additions only)
/home/user/public_html/cache/
backup-

# ignore_inotify.defaults (LMD-managed — refreshed on every upgrade)
# Ships under /usr/local/maldetect/internals/ with curated defaults
# for systemd-private tmpdirs, MariaDB temp tables, Redis, ClamAV, etc.
# Do NOT edit — add your own entries to ignore_inotify instead.

नोट: ignore_sigs प्रविष्टियों को विस्तारित regex पैटर्न के रूप में माना जाता है और ये उपस्ट्रिंग के रूप में मेल खाती हैं। एक प्रविष्टि php.shell php.shell, php.shell.v2, {YARA}php.shell.backdoor, आदि को दबा देगी। सटीक मिलान के लिए ^php\.shell$ का उपयोग करें। . वर्ण regex में किसी भी वर्ण से मेल खाता है; शाब्दिक डॉट के लिए इसे \. के रूप में एस्केप करें।


6. क्रॉन डेली

स्वचालित दैनिक स्कैनिंग, डेटा प्रूनिंग और सिग्नेचर अपडेट।

/etc/cron.daily/maldet पर स्थापित क्रॉन जॉब तीन कार्य करता है:

  1. प्रून करें: क्वारंटीन, सत्र और अस्थायी डेटा जो cron_prune_days (डिफ़ॉल्ट: 21) से पुराना है।
  2. अपडेट करें: सिग्नेचर और संस्करण (जब autoupdate_signatures और autoupdate_version सक्षम हों)
  3. स्कैन करें: पता लगाए गए होस्टिंग पैनल पथों के अंतर्गत हाल ही में संशोधित फ़ाइलें (scan_days दिनों के भीतर, डिफ़ॉल्ट: 1)

दैनिक स्कैन स्थापित नियंत्रण पैनलों का स्वतः पता लगाता है और तदनुसार स्कैन पथों को समायोजित करता है:

यदि मॉनिटर मोड सक्रिय है, तो दैनिक स्कैन छोड़ दिए जाते हैं और इसके बजाय मॉनिटरिंग घटनाओं की एक दैनिक रिपोर्ट जारी की जाती है।

कस्टम स्कैन पथों के लिए, हुक फ़ाइल /usr/local/maldetect/cron/custom.cron का उपयोग करें। क्रॉन के लिए विशिष्ट कॉन्फ़िगरेशन ओवरराइड के लिए, /etc/sysconfig/maldet (RHEL) या /etc/default/maldet (Debian) या /usr/local/maldetect/cron/conf.maldet.cron का उपयोग करें।

एक साप्ताहिक वॉचडॉग स्क्रिप्ट (/etc/cron.weekly/maldet-watchdog) प्राथमिक क्रॉन के टूटने या पुराना होने पर स्वतंत्र फ़ॉलबैक सिग्नेचर अपडेट प्रदान करती है।


7. Inotify मॉनिटरिंग

कर्नेल inotify, डाइजेस्ट अलर्ट और सुपरवाइज़र प्रबंधन के साथ रीयल-टाइम फ़ाइल मॉनिटरिंग।

रीयल-टाइम फ़ाइल मॉनिटरिंग फ़ाइल निर्माण, संशोधन और स्थानांतरण घटनाओं का पता लगाने के लिए कर्नेल inotify सबसिस्टम का उपयोग करती है। इसके लिए CONFIG_INOTIFY_USER वाले कर्नेल की आवश्यकता होती है (सभी आधुनिक कर्नेल पर मानक)।```bash

Monitor all user home directories (UIDs >= inotify_minuid) — foreground

maldet -m users

Monitor in the background (daemon mode)

maldet -b -m users

Monitor specific paths

maldet -m /home/mike,/home/ashton

Monitor paths from a file

maldet -m /root/monitor_paths

Stop monitoring (sends SIGTERM; escalates to SIGKILL after 10s)

maldet -k

root@kitploit:~
**यह कैसे काम करता है:**

`maldet -m` डिफ़ॉल्ट रूप से फोरग्राउंड में एक सुपरवाइज़र प्रक्रिया चलाता है। सुपरवाइज़र एक `inotifywait` चाइल्ड को प्रबंधित करता है और क्रैश रिकवरी, कॉन्फ़िगरेशन रीलोड और डाइजेस्ट अलर्टिंग को संभालता है। सुपरवाइज़र को डेमॉनाइज़ करने और तुरंत वापस लौटने के लिए `-b` का उपयोग करें।

1. `monitor_init()` मॉनिटर किए गए पथों के अंतर्गत सभी फ़ाइलों पर inotify वॉच सेट करता है
2. फ़ाइल इवेंट्स को क्यू किया जाता है और हर `inotify_sleep` सेकंड में बैच-स्कैन किया जाता है (डिफ़ॉल्ट: 15)
3. कॉन्फ़िगरेशन हर `inotify_reloadtime` सेकंड में रीलोड किया जाता है (डिफ़ॉल्ट: 3600)
4. इष्टतम प्रदर्शन के लिए कर्नेल `max_user_watches` और `max_user_instances` को स्वतः-ट्यून किया जाता है
5. यदि `inotifywait` क्रैश होता है, तो सुपरवाइज़र इसे एक्सपोनेंशियल बैकऑफ़ (2, 4, 8, 16, 32 सेकंड) के साथ पुनः आरंभ करता है; लगातार 3 विफलताओं के बाद सुपरवाइज़र बाहर निकल जाता है

**डाइजेस्ट अलर्ट** `digest_interval` द्वारा निर्धारित अंतराल पर समय-समय पर भेजे जाते हैं (डिफ़ॉल्ट: `24h`)। यदि पिछले डाइजेस्ट के बाद से हिट गिनती `digest_escalate_hits` से अधिक हो जाती है, तो एक तत्काल एस्केलेशन अलर्ट भेजा जाता है (डिफ़ॉल्ट: `0`, अक्षम)।

**अतिरिक्त पथ:** `conf.maldet` को संपादित किए बिना अतिरिक्त पथ देखने के लिए, उन्हें `monitor_paths_extra` द्वारा संदर्भित फ़ाइल में एक प्रति पंक्ति जोड़ें (डिफ़ॉल्ट: `/usr/local/maldetect/monitor_paths.extra`)। प्रत्येक कॉन्फ़िग रीलोड पर इन्हें प्राथमिक वॉच सूची के साथ विलय कर दिया जाता है।

`users` मोड का उपयोग करते समय, केवल `inotify_docroot` (डिफ़ॉल्ट: `public_html,public_ftp`) से मेल खाने वाली उपनिर्देशिकाएँ, साथ ही सिस्टम अस्थायी निर्देशिकाएँ `/tmp`, `/var/tmp`, और `/dev/shm` मॉनिटर की जाती हैं।

**इग्नोर फ़ाइलें (inotify):** मॉनिटर बहिष्करण दो फ़ाइलों को संयोजित करते हैं — उपयोगकर्ता-स्वामित्व वाली `/usr/local/maldetect/ignore_inotify` और LMD-प्रबंधित `/usr/local/maldetect/internals/ignore_inotify.defaults`। दोनों लाइन-विभाजित हैं और `#` टिप्पणियाँ + खाली पंक्तियों का समर्थन करते हैं। उपयोगकर्ता-स्वामित्व वाली `ignore_inotify` डिफ़ॉल्ट रूप से POSIX ERE (विस्तारित रेगेक्स) स्वीकार करती है — एंकर (`^`, `$`) और वाइल्डकार्ड (`.*`, `.+`) काम करते हैं। रेगेक्स मेटाकैरेक्टर वाले शाब्दिक पथ को बाहर करने के लिए, प्रविष्टि को `literal:` से उपसर्गित करें (जैसे `literal:/tmp/app.cache`)। LMD-प्रबंधित `ignore_inotify.defaults` को शाब्दिक सबस्ट्रिंग के रूप में माना जाता है — इसकी क्यूरेटेड प्रविष्टियाँ लोड समय पर स्वतः-एस्केप होती हैं। डिफ़ॉल्ट फ़ाइल हर LMD अपग्रेड पर अधिलेखित हो जाती है; केवल `ignore_inotify` में साइट-विशिष्ट बहिष्करण जोड़ें।

---

## 8. सिग्नेचर सिस्टम

सिग्नेचर प्रकार, नामकरण परंपराएँ, अपडेट और कस्टम नियम फ़ाइलें।

LMD पाँच सिग्नेचर प्रकारों के साथ आता है:

| प्रकार | फ़ाइल | प्रारूप | गिनती |
|------|------|--------|-------|
| MD5 हैश | `sigs/md5v2.dat` | `HASH:SIZE:{MD5}sig.name.N` | ~14,801 |
| SHA-256 हैश | `sigs/sha256v2.dat` | `HASH:SIZE:{SHA256}sig.name.N` | CDN |
| HEX पैटर्न | `sigs/hex.dat` | `HEXSTRING:{HEX}sig.name.N` | ~2,054 |
| कंपाउंड सिग्स | `sigs/csig.dat` | `SUBSIG1\|\|SUBSIG2:signame` | CDN |
| YARA नियम | `sigs/rfxn.yara` | YARA सिंटैक्स | ~783 नियम |
| संकलित YARA | `sigs/compiled.yarc` | `yarac` आउटपुट | वैकल्पिक |

ClamAV-संगत सिग्नेचर भी बनाए रखे जाते हैं:
- `sigs/rfxn.hdb` — ClamAV MD5 प्रारूप
- `sigs/rfxn.ndb` — ClamAV HEX प्रारूप
- `sigs/rfxn.hsb` — ClamAV SHA-256 प्रारूप (ClamAV >= 0.97 आवश्यक)

**सिग्नेचर नामकरण परंपरा:** `{TYPE}category.name.variant_number`

श्रेणियों में शामिल हैं: `bin.` (बाइनरी), `c.` (C भाषा), `exp.` (एक्सप्लॉइट), `php.` (PHP), `js.` (JavaScript), `perl.` (Perl), `html.` (फ़िशिंग), `base64.inject.`, `gzbase64.`

**स्कैन रिपोर्टों में हिट उपसर्ग:**

| उपसर्ग | स्रोत |
|--------|--------|
| `{MD5}` | MD5 हैश मिलान (चरण 1) |
| `{SHA256}` | SHA-256 हैश मिलान (चरण 1) |
| `{HEX}` | HEX पैटर्न मिलान (चरण 2) |
| `{CSIG}` | कंपाउंड सिग्नेचर मिलान (चरण 2.5) |
| `{SA}` | सांख्यिकीय विश्लेषण (स्ट्रिंग लंबाई) |
| `{YARA}` | नेटिव YARA स्कैन (`scan_yara=1`) |
| `{CAV}` | ClamAV इंजन (clamd/clamscan) |

### 8.1 सिग्नेचर अपडेट

सिग्नेचर क्रॉन जॉब के माध्यम से दैनिक या मैन्युअल रूप से अपडेट किए जाते हैं:```bash
maldet -u            # update signatures
maldet -u --force    # force update even if current

8.2 कस्टम सिग्नेचर

कस्टम सिग्नेचर तीन प्रारूपों में जोड़े जा सकते हैं, ये सभी अपग्रेड के दौरान सुरक्षित रहते हैं:

रिमोट इम्पोर्ट URL को सिग्नेचर अपडेट के दौरान स्वचालित डाउनलोड के लिए कॉन्फ़िगर किया जा सकता है:


9. क्वारंटाइन और सफाई

मैलवेयर-संक्रमित फ़ाइलों को अलग करना, पुनर्स्थापित करना और साफ करना।

क्वारंटाइन की गई फ़ाइलें /usr/local/maldetect/quarantine/ के अंतर्गत 000 अनुमतियों के साथ संग्रहीत की जाती हैं। मूल पथ, स्वामी, अनुमतियाँ और संशोधन समय पूर्ण पुनर्स्थापना के लिए /usr/local/maldetect/sess/quarantine.hist में दर्ज किए जाते हैं।```bash

Quarantine all hits from a scan

maldet -q SCANID

Restore all quarantined files from a scan

maldet -s SCANID

Restore a specific file

maldet -s /usr/local/maldetect/quarantine/config.php.23754

Clean (attempt malware removal) from a scan

maldet -n SCANID

root@kitploit:~
**क्वारंटाइन फ़ाइल नामकरण:** `FILENAME.INODE` (जैसे, `config.php.23754`)

गैर-रूट स्कैन (जैसे, ModSecurity2 अपलोड स्कैनिंग) के लिए, क्वारंटाइन डेटा `/usr/local/maldetect/pub/USERNAME/quar/` के अंतर्गत संग्रहीत किया जाता है। गैर-रूट क्वारंटाइन के साथ इंटरैक्ट करने के लिए `-U` फ़्लैग का उपयोग करें:```bash
maldet -U nobody -s 112012-0032.13771

9.1 क्लीनर नियम

क्लीनर फ़ंक्शन clean/ निर्देशिका के अंतर्गत सिग्नेचर-नामित स्क्रिप्ट ढूँढता है। प्रत्येक स्क्रिप्ट को संक्रमित फ़ाइल पथ तर्क के रूप में मिलता है और उसे दुर्भावनापूर्ण सामग्री हटानी चाहिए। सफाई के बाद, फ़ाइल को फिर से स्कैन किया जाता है — यदि यह अभी भी हिट ट्रिगर करती है, तो सफाई को FAILED चिह्नित किया जाता है।

सिग्नेचर php.cmdshell.r57 के लिए क्लीन नियम बनाने हेतु, clean/php.cmdshell.r57 नामक फ़ाइल जोड़ें जिसमें उपयुक्त पैटर्न के साथ sed -i जैसा कमांड हो। सफल सफाई फ़ाइल को उसके मूल पथ, स्वामी और अनुमतियों पर पुनर्स्थापित करती है।

क्लीनर क्वारंटाइन का एक उप-कार्य है — सफाई निष्पादित होने के लिए फ़ाइलों को क्वारंटीन किया जाना चाहिए (या -n उपयोग करें)।


10. हुक स्कैनिंग

ModSecurity, FTP, Exim और कस्टम एकीकरण के लिए सेवा हुक API।

LMD एकीकृत hookscan.sh API के माध्यम से कई सेवाओं के लिए रीयल-टाइम फ़ाइल स्कैनिंग प्रदान करता है। एक ही स्क्रिप्ट ModSecurity, pure-ftpd, ProFTPD, Exim और जेनेरिक (कस्टम) एकीकरणों के लिए मोड डिस्पैच को संभालती है।

हुक स्कैन डिटेक्शन को प्रति-स्कैन सत्र फ़ाइलें बनाने के बजाय एक रोलिंग हिट लॉग (hook.hits.log) में लॉग किया जाता है। डिटेक्शन आवधिक डाइजेस्ट अलर्ट में शामिल होते हैं और maldet --report hooks के माध्यम से देखे जा सकते हैं।

10.1 ModSecurity```apache

SecRequestBodyAccess On SecTmpSaveUploadedFiles On # Required for ModSecurity >= 2.9 SecRule FILES_TMPNAMES "@inspectFile /usr/local/maldetect/hookscan.sh"
"id:1999999,phase:2,t:none,deny,log,auditlog,severity:2,
msg:'Malware upload blocked by LMD'"

root@kitploit:~
दुर्भावनापूर्ण अपलोड को deny क्रिया के साथ अस्वीकार कर दिया जाता है और ModSecurity ऑडिट लॉग में लॉग किया जाता है। किसी मोड तर्क की आवश्यकता नहीं है — `hookscan.sh` पिछड़ी संगतता के लिए डिफ़ॉल्ट रूप से ModSecurity मोड का उपयोग करता है। ModSecurity v2 और v3 (libmodsecurity) दोनों समान `popen()` अनुबंध का उपयोग करते हैं।

### 10.2 pure-ftpd```bash
# pure-ftpd.conf (or command-line flags):
CallUploadScript yes

# Start the upload-script daemon:
pure-uploadscript -r /usr/local/maldetect/hookscan.sh -B

इसके लिए --with-uploadscript के साथ संकलित pure-ftpd की आवश्यकता होती है। मोड UPLOAD_VUSER पर्यावरण चर के माध्यम से स्वतः पता चलता है। अपलोड के बाद संक्रमित फ़ाइलें क्वारंटाइन कर दी जाती हैं (फायर-एंड-फ़ॉरगेट — अपलोड को अवरुद्ध नहीं किया जा सकता, केवल पोस्ट-प्रोसेस किया जा सकता है)।

10.3 ProFTPD```

ExecEngine on ExecLog /var/log/proftpd/exec.log ExecTimeout 30 ExecOnCommand STOR /usr/local/maldetect/hookscan.sh proftpd %f ExecEnviron PROFTPD_USER %u ExecEnviron PROFTPD_HOME %d ``` नोट: `mod_exec` हमेशा `PR_DECLINED` लौटाता है, भले ही स्क्रिप्ट का एग्ज़िट कोड कुछ भी हो — अपलोड को इस हुक द्वारा ब्लॉक नहीं किया जा सकता। LMD संक्रमित फ़ाइलों को अपलोड पूरा होने के बाद क्वारंटीन करता है।

10.4 Exim```

exim.conf

av_scanner = cmdline:
/usr/local/maldetect/hookscan.sh exim %s :
maldet: (.+):
maldet: (.+)

root@kitploit:~
तीन कोलन-सेपरेटेड फ़ील्ड हैं: कमांड टेम्पलेट, ट्रिगर regex, और नाम-कैप्चर regex। जब मैलवेयर का पता चलता है, Exim कैप्चर किए गए सिग्नेचर नाम का उपयोग करके संदेश को अस्वीकार कर देता है।

### 10.5 जेनेरिक API

कस्टम इंटीग्रेशन, बैच स्कैनिंग और थर्ड-पार्टी उपयोग के लिए:```bash
# Single file scan
hookscan.sh generic /path/to/file
# Exit: 0 = clean, 1 = error, 2 = infected
# Stdout: CLEAN: /path, INFECTED: signame /path, ERROR: reason

# Batch scan from a file list
hookscan.sh generic --list /tmp/filelist.txt

# Batch scan from stdin
find /uploads -newer /tmp/marker -type f | hookscan.sh generic --stdin

बैच आउटपुट प्रति फ़ाइल एक STATUS: PATH पंक्ति उत्पन्न करता है। एग्ज़िट कोड सबसे खराब परिणाम के अनुसार निर्धारित होता है।

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

हुक स्कैन कॉन्फ़िगरेशन conf.maldet.hookscan में संग्रहीत होता है (वैकल्पिक — डिफ़ॉल्ट स्क्रिप्ट में निर्मित होते हैं)। संदर्भ डिफ़ॉल्ट conf.maldet.hookscan.default में होते हैं।

मुख्य चर:

सक्षम करने के बाद गैर-root स्कैन कार्यों के लिए प्रति-उपयोगकर्ता डेटा निर्देशिकाएँ बनाने हेतु maldet --mkpubpaths चलाएँ।

10.7 परीक्षण अलर्ट

सत्यापित करें कि अलर्ट डिलीवरी चैनल सही ढंग से कॉन्फ़िगर किए गए हैं:```bash maldet --test-alert scan email # test per-scan email alert maldet --test-alert scan slack # test per-scan Slack alert maldet --test-alert digest email # test digest email alert maldet --test-alert digest telegram # test digest Telegram alert

root@kitploit:~
परीक्षण अलर्ट वास्तविक रेंडरिंग पाइपलाइन का उपयोग सिंथेटिक डेटा के साथ करते हैं। विषय पंक्ति को `[TEST]` से उपसर्गित किया जाता है। चैनल अलगाव यह सुनिश्चित करता है कि केवल निर्दिष्ट चैनल ही सक्रिय हो।

### 10.8 हुक डाइजेस्ट

हुक डिटेक्शन को आवधिक डाइजेस्ट अलर्ट के माध्यम से संक्षेपित किया जाता है:```bash
# On-demand digest (reads all sources: monitor + hooks)
maldet --digest

# View hook scan activity
maldet --report hooks                    # last 24 hours
maldet --report hooks --last 7d          # last 7 days
maldet --report hooks --mode modsec      # filter by mode

दैनिक cron जॉब स्वचालित रूप से एक hook digest चलाता है जब नई detections मौजूद हों (conf.maldet में cron_digest_hook=1 द्वारा नियंत्रित)।

10.9 CXS माइग्रेशन

CXS को LMD से बदलने वाले administrators के लिए:


एकीकरण

LMD को बाहरी टूल्स, ऑटोमेशन पाइपलाइनों और तृतीय-पक्ष स्कैनर्स से जोड़ना।

ClamAV

LMD सिग्नेचर install.sh द्वारा ClamAV डेटा निर्देशिकाओं से स्वचालित रूप से symlink किए जाते हैं, जिससे dual-engine कवरेज मिलता है। स्वचालित ClamAV पहचान के लिए scan_clamscan=auto (डिफ़ॉल्ट) सेट करें। इंजन चयन और सिग्नेचर सत्यापन के लिए 3.8 ClamAV एकीकरण देखें।

ELK Stack

स्कैन इवेंट्स को Elasticsearch पर स्ट्रीम करने के लिए elk_host, elk_port, और elk_index के साथ enable_statistic=1 सक्षम करें। 3.10 ELK एकीकरण देखें।

अलर्टिंग चैनल

LMD ईमेल के अलावा चार अलर्ट डिलीवरी चैनलों का समर्थन करता है: Slack (Block Kit), Telegram (MarkdownV2), Discord (webhook embeds), और स्थानीय MTA के बिना वातावरण के लिए SMTP रिले। कॉन्फ़िगरेशन के लिए 3.2 अलर्टिंग देखें।

JSON रिपोर्ट्स

CI/CD और ऑटोमेशन के लिए मशीन-पठनीय स्कैन आउटपुट:```bash maldet --format json -e SCANID # JSON report to stdout maldet --json-report list # list all scans as JSON

root@kitploit:~
v1.2 JSON स्कीमा के लिए `man maldet`(1) देखें (`-e SCANID` और `-e list` दोनों में समान `{schema_version, scanner, host, reports[]}` संरचना)।

### होस्टिंग पैनल डिटेक्शन

दैनिक क्रॉन 12+ होस्टिंग कंट्रोल पैनलों का स्वतः पता लगाता है और स्कैन पथ समायोजित करता है। पूर्ण पैनल मैट्रिक्स के लिए [6. क्रॉन दैनिक](#6-cron-daily) देखें।

---

## लाइसेंस

LMD का विकास और समर्थन Ryan MacDonald [[email protected]] द्वारा स्वयंसेवी आधार पर किया जाता है।

Linux Malware Detect (LMD) GNU जनरल पब्लिक लाइसेंस (GPL) v2 के अंतर्गत वितरित किया जाता है, जिसमें उपयोग या पुनर्वितरण पर कोई प्रतिबंध नहीं है। कॉपीराइट विवरण और GNU GPL `COPYING.GPL` फ़ाइल में शामिल हैं। GNU GPL के तहत आवश्यकतानुसार व्युत्पन्न कार्यों के लिए श्रेय दिया जाना चाहिए।

---

## सहायता

LMD सोर्स रिपॉज़िटरी यहाँ उपलब्ध है: https://github.com/rfxn/linux-malware-detect

बग, फीचर अनुरोध और सामान्य प्रश्न GitHub issues के रूप में दर्ज किए जा सकते हैं या [email protected] पर भेजे जा सकते हैं।

आधिकारिक प्रोजेक्ट पेज यहाँ है: https://www.rfxn.com/projects/linux-malware-detect/
टूल डाउनलोड करें
चरउद्देश्यडिफ़ॉल्ट
quarantine_hitsपता चले मैलवेयर को स्वचालित रूप से क्वारंटाइन करें0
quarantine_cleanक्वारंटाइन की गई फ़ाइलों से मैलवेयर साफ़ करने का प्रयास करें0
quarantine_suspend_userहिट होने पर cPanel खाता निलंबित करें या शेल रद्द करें0
quarantine_suspend_user_minuidनिलंबित करने के लिए न्यूनतम UID (सिस्टम खातों की सुरक्षा करता है)500
quarantine_on_errorस्कैन इंजन त्रुटि लौटाने पर फ़ाइलों को क्वारंटाइन करें1
चरउद्देश्यडिफ़ॉल्ट
default_monitor_modeमॉनिटर के लिए स्टार्टअप मोड (users या फ़ाइल का पथ); खाली = अक्षम""
inotify_base_watchesप्रति उपयोगकर्ता पथ फ़ाइल वॉच की आधार संख्या16384
inotify_minuidउपयोगकर्ता होम निगरानी के लिए न्यूनतम UID500
inotify_docrootउपयोगकर्ता होम में निगरानी के लिए उपनिर्देशिकाएँpublic_html,public_ftp
inotify_sleepस्कैन बैचों के बीच सेकंड15
inotify_reloadtimeकॉन्फ़िग रीलोड के बीच सेकंड3600
inotify_cpuniceमॉनिटर प्रक्रिया के लिए nice प्राथमिकता18
inotify_ioniceमॉनिटर प्रक्रिया के लिए IO प्राथमिकता6
inotify_cpulimitमॉनिटर के लिए हार्ड CPU सीमा (0=अक्षम)0
digest_intervalआवधिक डाइजेस्ट सारांश अलर्ट के बीच अंतराल: 24h, 30m, 7d, 0 (अक्षम)24h
digest_escalate_hitsतत्काल एस्केलेशन अलर्ट के लिए हिट संख्या सीमा; 0 = अक्षम0
cron_digest_hookcron.daily हुक डाइजेस्ट स्वीप सक्षम करें (नई हुक पहचान मौजूद होने पर डाइजेस्ट चालू करता है)1
monitor_paths_extraअतिरिक्त inotify वॉच पथों की लाइन-सेपरेटेड फ़ाइल का पथ/usr/local/maldetect/monitor_paths.extra
monitor_scan_owner_filtersमॉनिटर मोड में scan_ignore_root/scan_ignore_user/scan_ignore_group स्वामित्व फ़िल्टर लागू करें; 0 (डिफ़ॉल्ट) = बंद — मॉनिटर स्वामी की परवाह किए बिना सभी फ़ाइलों को स्कैन करता है (1.6.6 सेमेंटिक्स बहाल करता है, issue #485 ठीक करता है); 1 = चालू — स्वामित्व फ़िल्टर लागू करें0
चरउद्देश्यडिफ़ॉल्ट
post_scan_hookहुक स्क्रिप्ट का पथ (root-स्वामित्व वाली, विश्व-लेखनीय नहीं)। -co के माध्यम से सेट नहीं की जा सकती""
post_scan_hook_formatआउटपुट स्तर: args, file, json (संचयी)args
post_scan_hook_execनिष्पादन मोड: async (गैर-अवरोधक), sync (प्रतीक्षा)async
post_scan_hook_timeoutSIGTERM से पहले सेकंड (0=अक्षम, न्यूनतम 5)60
post_scan_hook_onस्कैन प्रकार फ़िल्टर: all, cli, digestall
post_scan_hook_min_hitsचालू करने के लिए न्यूनतम हिट (0=हमेशा)1
चरउद्देश्यडिफ़ॉल्ट
scan_clamd_remoteस्कैनिंग के लिए रिमोट clamd सर्वर का उपयोग करें0
remote_clamd_configरिमोट clamd कॉन्फ़िग फ़ाइल का पथ/etc/clamd.d/clamd.remote.conf
remote_clamd_max_retryरिमोट clamd विफलता पर अधिकतम पुनर्प्रयास5
remote_clamd_retry_sleepपुनर्प्रयासों के बीच सेकंड3
चरउद्देश्यडिफ़ॉल्ट
enable_statisticELK स्टैक सांख्यिकी संग्रह सक्षम करें0
elk_hostELK इनपुट के लिए TCP होस्ट—
elk_portELK इनपुट के लिए TCP पोर्ट—
elk_indexElasticsearch इंडेक्स नाम—
पैनलस्कैन पथ
cPanel/home?/?/public_html/ (+ ऐडन/सबडोमेन डॉकरूट्स)
Plesk/var/www/vhosts/?/
DirectAdmin/home?/?/domains/?/public_html/, /var/www/html/?/
Ensim/home/virtual/?/fst/var/www/html/
ISPConfig/var/www/clients/?/web?/web, …/subdomains, /var/www
Virtualmin/home/?/public_html/, /home/?/domains/?/public_html/
ISPmanager/var/www/?/data/, /home/?/data/
Froxlor/var/customers/webs/
Bitrix/home/bitrix/www/, /home/bitrix/ext_www/?/
VestaCP / HestiaCP/home/?/web/?/public_html/ (+ public_shtml, tmp, private)
DTC${conf_hosting_path:-/var/www/sites}/?/?/subdomains/?/html/
प्रकारफ़ाइलप्रारूप
कस्टम MD5sigs/custom.md5.datmd5v2.dat के समान
कस्टम SHA-256sigs/custom.sha256.datsha256v2.dat के समान
कस्टम HEXsigs/custom.hex.dathex.dat के समान
कस्टम CSIGsigs/custom.csig.datcsig.dat के समान
कस्टम YARAsigs/custom.yaraYARA नियम सिंटैक्स
कस्टम YARA (ड्रॉप-इन)sigs/custom.yara.d/*.yarYARA नियम फ़ाइलें
संकलित YARAsigs/compiled.yarcyarac आउटपुट (वैकल्पिक)
चरउद्देश्य
sig_import_md5_urlकस्टम MD5 सिग्नेचर के लिए URL
sig_import_sha256_urlकस्टम SHA-256 सिग्नेचर के लिए URL
sig_import_hex_urlकस्टम HEX सिग्नेचर के लिए URL
sig_import_csig_urlकस्टम कंपाउंड सिग्नेचर के लिए URL
sig_import_yara_urlकस्टम YARA नियमों के लिए URL
VariableDefaultविवरण
hookscan_timeout30स्कैन टाइमआउट सेकंड में
hookscan_fail_open1स्कैन त्रुटि पर फ़ाइल को अनुमति दें (0 = ब्लॉक करें)
hookscan_escalate_hits0N हुक हिट/घंटा पर तत्काल अलर्ट (0 = अक्षम)
hookscan_service_usersapache,nginx,...होमडीर प्रतिबंध से छूट प्राप्त सेवा UID
hookscan_user_rate_limit60गैर-root कॉल करने वालों के लिए अधिकतम स्कैन/घंटा
hookscan_user_show_signames1गैर-root कॉल करने वालों को सिग्नेचर नाम दिखाएँ
hookscan_list_max_bytes1048576अधिकतम सूची फ़ाइल आकार (1 MB)
hookscan_list_max_entries10000फ़ाइल सूची में अधिकतम प्रविष्टियाँ
CXS ComponentLMD Equivalent
cxscgi.shhookscan.sh modsec
cxsftp.shhookscan.sh ftp
ProFTPD mod_exec to cxshookscan.sh proftpd
cxs --filehookscan.sh generic
cxswatchmaldet --monitor
/etc/cxs/cxs.confconf.maldet.hookscan