यह मॉड्यूल क्या करता है #
एक एंटीवायरस आपके सर्वर की फ़ाइलों की तुलना ज्ञात मैलवेयर के सिग्नेचर के एक कैटलॉग से करता है। यदि कुछ मेल खाता है, तो वह उसे संक्रमित के रूप में चिह्नित कर देता है ताकि वह आगे न फैले — उदाहरण के लिए, किसी सार्वजनिक फ़ोल्डर में अपलोड किया गया कोई दुर्भावनापूर्ण अटैचमेंट या FTP से आई कोई दूषित फ़ाइल।
clamav मॉड्यूल ClamAV इंजन को कुछ स्पष्ट कमांडों के साथ आपकी पहुँच में लाता है: उसकी स्थिति देखें, जो पथ आप चाहें उसे स्कैन करें (एक फ़ाइल या पूरा वृक्ष), संक्रमित के साथ क्या करना है यह तय करें — केवल रिपोर्ट करना, उसे हटाना या किसी सुरक्षित क्वारंटीन में ले जाना जहाँ से आप बाद में पुनर्स्थापित कर सकते हैं — और freshclam से सिग्नेचर डेटाबेस को अद्यतन रखें। क्वारंटीन फ़ाइल को बिना हटाए अलग कर देता है, इसलिए आप गलती से कुछ भी नहीं खोते।
एक स्कैन उस समय आपके पास मौजूद सिग्नेचर डेटाबेस से ही पहचान करता है। यदि आपने कई दिनों से अपडेट नहीं किया है, तो हाल के खतरे न चूकने के लिए पहले imaxe clamav update चलाएँ। बड़े वृक्षों को स्कैन करने में समय लग सकता है और CPU खप सकती है: पथ को केवल उसी तक सीमित रखें जिसे आप वास्तव में जाँचना चाहते हैं।
सामान्य कार्य #
जो करना चाहते हैं उसे चुनें। हर रेसिपी में कमांड पहले से लिखा हुआ है — बस पथ को अपने से बदलें और कॉपी करें दबाएँ।
1
देखें कि ClamAV तैयार है या नहीं
इंजन, मोड और आपके सिग्नेचर कितने पुराने हैं यह जाँचें।
SSH से अपने सर्वर से जुड़ें और सामान्य स्थिति माँगें:
$ sudo imaxe clamav statusकेवल सिग्नेचर डेटाबेस में रुचि है — संस्करण, तिथि और फ़ाइलें? db का उपयोग करें:
$ sudo imaxe clamav db2
किसी फ़ोल्डर को स्कैन करें
एक पथ की जाँच करें और रिपोर्ट रख लें, बिना कुछ छुए।
--recursive के साथ एक डायरेक्टरी और उसकी पूरी सामग्री का विश्लेषण करें। डिफ़ॉल्ट रूप से यह केवल रिपोर्ट करता है: न कुछ हटाता है, न कुछ ले जाता है।
$ sudo imaxe clamav scan /home --recursiveकेवल एक अकेली फ़ाइल? --recursive के बिना, उसका सीधा पथ दें:
$ sudo imaxe clamav scan /srv/uploads/factura.pdf3
स्कैन करें और संक्रमित को अलग करें
जो कुछ भी पॉज़िटिव निकले उसे अपने आप क्वारंटीन में ले जाएँ।
एक पथ स्कैन करें और --quarantine के साथ, हर संक्रमित फ़ाइल को उसी जगह छोड़ने के बजाय क्वारंटीन में हटा दें:
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantineयदि आप संक्रमित को अलग करने के बजाय सीधे हटाना पसंद करते हैं, तो --remove का उपयोग करें (यह अपरिवर्तनीय है, इसे सोच-समझकर उपयोग करें):
$ sudo imaxe clamav scan /srv/uploads --recursive --remove4
क्वारंटीन की समीक्षा और पुनर्स्थापना करें
देखें कि क्या अलग किया गया है और ज़रूरत पड़ने पर किसी झूठे पॉज़िटिव को वापस लाएँ।
क्वारंटीन में जो है उसकी सूची बनाएँ — हर प्रविष्टि में उसका पहचानकर्ता, मूल स्रोत, सिग्नेचर और तिथि आती है:
$ sudo imaxe clamav quarantine listक्या यह झूठा पॉज़िटिव था? सूची में दिखने वाले पहचानकर्ता से उसे उसके मूल पथ पर पुनर्स्थापित करें:
$ sudo imaxe clamav quarantine restore a1b2c3d4जब आप पुष्टि कर लें कि अलग किया गया सब कुछ कचरा है, तो क्वारंटीन को हमेशा के लिए खाली कर दें:
$ sudo imaxe clamav quarantine purge --yes5
सिग्नेचर अद्यतन करें
नए खतरों का पता लगाने के लिए नवीनतम परिभाषाएँ डाउनलोड करें।
सबसे हाल का सिग्नेचर डेटाबेस लाने के लिए freshclam चलाएँ:
$ sudo imaxe clamav updateइसके बाद जाँचें कि डेटाबेस अपने संस्करण और तिथि के साथ अद्यतन हो गया है:
$ sudo imaxe clamav db--remove से सावधान रहेंहटाने से फ़ाइल बिना वापसी के मिट जाती है, और कोई भी एंटीवायरस झूठे पॉज़िटिव से मुक्त नहीं है। संदेह हो तो हमेशा --quarantine का उपयोग करें: यह उतनी ही अच्छी तरह अलग करता है और गलती होने पर पुनर्स्थापित करने की सुविधा देता है।
सारांश #
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]जो सबकमांड फ़ाइलों को स्कैन, स्थानांतरित या हटाते हैं उन्हें root विशेषाधिकार चाहिए (sudo का उपयोग करें), क्योंकि वे अन्य उपयोगकर्ताओं के पथ पढ़ते हैं और सिस्टम क्वारंटीन में लिखते हैं। मशीन-पठनीय आउटपुट पाने के लिए किसी भी कमांड में --json जोड़ें, जो स्क्रिप्टिंग के लिए उपयुक्त है।
सबकमांड #
| सबकमांड | यह क्या करता है | प्रासंगिक फ़्लैग |
|---|---|---|
| status | ClamAV की स्थिति: engine, मोड (daemon/on-demand), freshclam और सिग्नेचर डेटाबेस। | --json |
| scan | एक पथ स्कैन करता है; संक्रमित को रिपोर्ट कर सकता है, हटा सकता है या क्वारंटीन में डाल सकता है। | --recursive, --remove, --quarantine, --json |
| update | freshclam के माध्यम से सिग्नेचर डेटाबेस अद्यतन करता है। | --json |
| db | सिग्नेचर डेटाबेस की जानकारी: संस्करण, तिथि और फ़ाइलें। | --json |
| quarantine | संक्रमित फ़ाइलों की क्वारंटीन प्रबंधित करता है (सबकमांडों का समूह)। | list · restore · purge |
quarantine समूह में तीन सबकमांड होते हैं:
| सबकमांड | यह क्या करता है | प्रासंगिक फ़्लैग |
|---|---|---|
| quarantine list | क्वारंटीन में मौजूद फ़ाइलों की सूची बनाता है (मूल स्रोत, सिग्नेचर, तिथि)। | --json |
| quarantine restore | क्वारंटीन से किसी फ़ाइल को उसके मूल पथ या दिए गए गंतव्य पर पुनर्स्थापित करता है। | <id> [<destino>] |
| quarantine purge | क्वारंटीन में जो कुछ भी है उसे हमेशा के लिए हटा देता है। | --yes |
आर्ग्युमेंट और फ़्लैग #
| फ़्लैग / आर्ग्युमेंट | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
| <ruta> आव. | path | — | scan में, स्कैन करने के लिए फ़ाइल या डायरेक्टरी। |
| <id> आव. | string | — | quarantine restore में, क्वारंटीन में मौजूद तत्व का पहचानकर्ता (quarantine list में दिखता है)। |
| <destino> | path | मूल पथ | quarantine restore में, वह पथ जहाँ फ़ाइल पुनर्स्थापित करनी है। डिफ़ॉल्ट रूप से, उसका मूल स्थान। |
| --recursive | bool | false | scan में, डायरेक्टरियों का रिकर्सिव स्कैन। |
| --quarantine | bool | false | scan में, संक्रमित फ़ाइलों को क्वारंटीन में ले जाता है। |
| --remove | bool | false | scan में, संक्रमित फ़ाइलों को हटा देता है। अपरिवर्तनीय; --quarantine के साथ परस्पर अपवर्जी। |
| --yes | bool | false | quarantine purge में, बिना पूछे हटाने की पुष्टि करता है। |
| --json | bool | false | परिणाम को stdout पर JSON के रूप में उत्सर्जित करता है। सभी सबकमांडों में उपलब्ध। |
फ़ाइलें और पथ #
| पथ | सामग्री |
|---|---|
| /etc/imaxe/clamav.yml | मॉड्यूल का कॉन्फ़िगरेशन: क्वारंटीन डायरेक्टरी और स्कैन से बाहर रखे गए पथ। |
| /var/lib/imaxe/clamav/quarantine | क्वारंटीन का भंडार: यहाँ संक्रमित फ़ाइलें अलग की जाती हैं जिन्हें पुनर्स्थापित किया जा सकता है। |
| /var/lib/clamav/ | सिग्नेचर डेटाबेस जिसे freshclam बनाए रखता है (मैलवेयर परिभाषाएँ)। |
| /var/log/imaxe/clamav.log | हर स्कैन, क्वारंटीन और अद्यतन का संरचित लॉग। |
clamav.yml का उदाहरण:
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
exclude:
- /proc
- /sysscan.exclude उन पथों की एक सूची है जिन्हें स्कैन छोड़ देता है; डिफ़ॉल्ट रूप से यह खाली आती है।
एग्ज़िट कोड और लॉग #
हर निष्पादन एक कोड लौटाता है जिसे आप echo $? से जाँच सकते हैं — स्क्रिप्ट में शृंखलाबद्ध करने के लिए उपयोगी:
डिबग करते समय लॉग को लाइव देखें:
$ sudo tail -f /var/log/imaxe/clamav.logसमस्या निवारण #
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| INFECTED निकलता है (कोड 3) | स्कैन ने एक या अधिक खतरे पहचाने। | रिपोर्ट देखें; उन्हें अलग करने के लिए scan को --quarantine के साथ फिर से चलाएँ। |
| UPDATE निकलता है (कोड 4) | freshclam सिग्नेचर डाउनलोड नहीं कर सका (नेटवर्क या मिरर बंद)। | सर्वर के इंटरनेट कनेक्शन की जाँच करें और clamav update फिर से आज़माएँ। |
| स्कैन बहुत अधिक समय लेता है | पथ में बहुत सारी फ़ाइलें या सिस्टम पथ शामिल हैं। | पथ को सीमित करें और clamav.yml में scan.exclude से अनावश्यक को बाहर रखें। |
| मैंने एक वैध फ़ाइल खो दी | --quarantine द्वारा क्वारंटीन में ले जाया गया झूठा पॉज़िटिव। | उसे quarantine list से ढूँढें और quarantine restore <id> से वापस लाएँ। |
| स्थिति पुराने सिग्नेचर दिखाती है | काफ़ी समय से freshclam नहीं चला। | clamav update चलाएँ और clamav db से सत्यापित करें। |
ClamAV मॉड्यूल में अटक गए?
हमें «imaxe <module> status --json» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।