
Apache NiFi CVE-2023-34468 के लिए एक्सप्लॉइट, संस्करण 1.21.0 और उससे पहले के संस्करणों में एक कमजोरी को लक्षित करता है ताकि डेटा एक्सेस और सिस्टम समझौते का प्रदर्शन किया जा सके।
Apache NiFi एक उपयोग में आसान, शक्तिशाली और विश्वसनीय प्रणाली है जो डेटा को प्रोसेस और वितरित करती है।
Apache NiFi डेटाफ़्लो के लिए बनाया गया है। यह डेटा रूटिंग, रूपांतरण और सिस्टम मध्यस्थता लॉजिक के अत्यधिक कॉन्फ़िगर करने योग्य निर्देशित ग्राफ़ का समर्थन करता है। इसकी कुछ प्रमुख विशेषताएँ निम्नलिखित हैं:
विकास के लिए क्विकस्टार्ट गाइड पढ़ें। इसमें स्रोत की स्थानीय प्रति प्राप्त करने की जानकारी, समस्या ट्रैकिंग पर संकेत और विकास वातावरण में आम समस्याओं के बारे में कुछ चेतावनियाँ शामिल होंगी।
परियोजना में योगदान देने के संबंध में जानकारी और विकास की अधिक व्यापक मार्गदर्शिका के लिए NiFi डेवलपर गाइड पढ़ें।
mvn clean install चलाएँ या समानांतर निर्माण के लिए mvn -T 2.0C clean install निष्पादित करें।
समानांतर निर्माण आधुनिक हार्डवेयर पर लगभग पंद्रह मिनट ले सकता है।
laptop:nifi myuser$ mvn -T 2.0C clean install
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 115 modules...
...tens of thousands of lines elided...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:24 min (Wall Clock)
[INFO] Finished at: 2015-04-30T00:30:36-05:00
[INFO] Final Memory: 173M/1359M
[INFO] ------------------------------------------------------------------------
यूनिट परीक्षण निष्पादन छोड़ने के लिए mvn clean install -DskipTests चलाएँ।
nifi-assembly निर्देशिका में बदलें। target निर्देशिका में बाइनरी संग्रह होते हैं।
laptop:nifi myuser$ cd nifi-assembly
laptop:nifi-assembly myuser$ ls -lhd target/nifi*
drwxr-xr-x 3 myuser mygroup 102B Apr 30 00:29 target/nifi-1.0.0-SNAPSHOT-bin
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.zip
nifi-VERSION-bin.tar.gz या nifi-VERSION-bin.zip को एक अलग परिनियोजन निर्देशिका में कॉपी करें। वितरण निकालने पर संस्करण के नाम पर एक नई निर्देशिका बन जाएगी।
laptop:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
laptop:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
laptop:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
total 0
drwxr-xr-x 10 myuser mygroup 340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT
परिनियोजन स्थान पर निर्देशिका बदलें और NiFi प्रारंभ करने के लिए निम्न कमांड चलाएँ।
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
bin/nifi.sh start चलाने से NiFi बैकग्राउंड में प्रारंभ होता है और प्रोग्राम समाप्त हो जाता है। समाप्त होने से पहले पूर्ण प्रारंभ की प्रतीक्षा करने के लिए --wait-for-init का उपयोग वैकल्पिक टाइमआउट (सेकंड में) के साथ करें।
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
डिफ़ॉल्ट कॉन्फ़िगरेशन प्रारंभ पर एक यादृच्छिक उपयोगकर्ता नाम और पासवर्ड उत्पन्न करता है। NiFi उत्पन्न क्रेडेंशियल को NiFi इंस्टॉलेशन निर्देशिका के अंतर्गत logs/nifi-app.log में स्थित एप्लिकेशन लॉग में लिखता है।
grep स्थापित ऑपरेटिंग सिस्टम पर उत्पन्न क्रेडेंशियल खोजने के लिए निम्न कमांड का उपयोग किया जा सकता है:
laptop:nifi-1.0.0-SNAPSHOT myuser$ grep Generated logs/nifi-app*log
NiFi उत्पन्न क्रेडेंशियल को निम्नानुसार लॉग करता है:
Generated Username [USERNAME]
Generated Password [PASSWORD]
USERNAME 36 वर्णों से बना एक यादृच्छिक UUID होगा। PASSWORD 32 वर्णों से बना एक यादृच्छिक स्ट्रिंग होगा। उत्पन्न क्रेडेंशियल को conf/login-identity-providers.xml में संग्रहीत किया जाएगा, जिसमें पासवर्ड bcrypt हैशिंग का उपयोग करके संग्रहीत होगा। NiFi तक पहुँच के लिए इन क्रेडेंशियल को एक सुरक्षित स्थान पर नोट कर लें।
यादृच्छिक उपयोगकर्ता नाम और पासवर्ड को निम्न कमांड का उपयोग करके कस्टम क्रेडेंशियल से बदला जा सकता है:
./bin/nifi.sh set-single-user-credentials <username> <password>
NiFi तक पहुँचने के लिए वेब ब्राउज़र में निम्न लिंक खोलें: https://localhost:8443/nifi
वेब ब्राउज़र प्रारंभीकरण के दौरान NiFi द्वारा उत्पन्न सेल्फ-साइन्ड प्रमाणपत्र के कारण संभावित सुरक्षा जोखिम का संकेत देने वाला एक चेतावनी संदेश प्रदर्शित करेगा। प्रारंभिक विकास इंस्टॉलेशन के लिए संभावित सुरक्षा जोखिम स्वीकार करना और इंटरफ़ेस लोड करना जारी रखना एक विकल्प है। उत्पादन परिनियोजन के लिए किसी विश्वसनीय प्रमाणपत्र प्राधिकरण से प्रमाणपत्र प्राप्त करना और NiFi कीस्टोर तथा ट्रस्टस्टोर कॉन्फ़िगरेशन को अपडेट करना चाहिए।
सेल्फ-साइन्ड प्रमाणपत्र स्वीकार करने के बाद NiFi तक पहुँचने पर लॉगिन स्क्रीन प्रदर्शित होगी।

उत्पन्न क्रेडेंशियल का उपयोग करके, User फ़ील्ड में उत्पन्न उपयोगकर्ता नाम और Password फ़ील्ड में उत्पन्न पासवर्ड दर्ज करें, फिर सिस्टम तक पहुँचने के लिए LOG IN चुनें।

NiFi उपयोगकर्ता गाइड बताता है कि डेटा फ़्लो कैसे बनाया जाए।
NiFi को रोकने के लिए निम्न कमांड चलाएँ:
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh stop
MiNiFi, Apache NiFi की एक बाल परियोजना प्रयास है। यह एक अनुपूरक डेटा संग्रह दृष्टिकोण है जो डेटाफ़्लो प्रबंधन में NiFi के मूल सिद्धांतों को पूरक बनाता है, जिसमें डेटा के निर्माण के स्रोत पर संग्रह पर ध्यान केंद्रित किया जाता है।
MiNiFi के विशिष्ट लक्ष्य निम्नलिखित हैं:
MiNiFi की भूमिका के परिप्रेक्ष्य उस एजेंट के परिप्रेक्ष्य से होने चाहिए जो स्रोत सेंसर, सिस्टम या सर्वर के ठीक पास या सीधे उन पर कार्य करता है।
चलाने के लिए:
निर्देशिका को 'minifi-assembly' में बदलें। target निर्देशिका में, minifi का एक निर्माण होना चाहिए।
$ cd minifi-assembly
$ ls -lhd target/minifi*
drwxr-xr-x 3 user staff 102B Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin
-rw-r--r-- 1 user staff 39M Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 user staff 39M Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin.zip
चल रहे विकास के परीक्षण के लिए आप "minifi-version-bin" नामक निर्देशिका में पहले से अनपैक किए गए निर्माण का उपयोग कर सकते हैं, जहाँ version वर्तमान परियोजना संस्करण है। किसी अन्य स्थान पर परिनियोजित करने के लिए टारबॉल या ज़िपफ़ाइल में से किसी एक का उपयोग करें और उन्हें जहाँ चाहें वहाँ अनपैक करें। वितरण संस्करण के नाम पर एक सामान्य मूल निर्देशिका के भीतर होगा।
$ mkdir ~/example-minifi-deploy
$ tar xzf target/minifi-*-bin.tar.gz -C ~/example-minifi-deploy
$ ls -lh ~/example-minifi-deploy/
total 0
drwxr-xr-x 10 user staff 340B Jul 6 01:06 minifi-1.14.0-SNAPSHOT
MiNiFi चलाने के लिए:
उस निर्देशिका में बदलें जहाँ आपने MiNiFi स्थापित किया है और इसे चलाएँ।
$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh start
logs फ़ोल्डर में स्थित लॉग देखें $ tail -F ~/example-minifi-deploy/logs/minifi-app.log
अपना पहला डेटा फ़्लो बनाने और डेटा को NiFi इंस्टेंस में भेजने में सहायता के लिए docs फ़ोल्डर में स्थित सिस्टम एडमिन गाइड देखें या minifi-toolkit का उपयोग करें, जो NiFi टेम्पलेट्स को MiNiFi YAML कॉन्फ़िगरेशन फ़ाइल प्रारूप में अपनाने में सहायता करता है।
यदि आप चल रहे विकास का परीक्षण कर रहे हैं, तो आप अपने इंस्टेंस को रोकना चाहेंगे।
$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh stop
निर्माण के लिए:
mvn -P docker clean install निष्पादित करें। यह पूर्ण निर्माण चलाएगा, उसके आधार पर एक docker इमेज बनाएगा, और docker-compose एकीकरण परीक्षण चलाएगा। सफलतापूर्वक पूर्ण होने के बाद, आपके पास एक apacheminifi:${minifi.version} इमेज होनी चाहिए जिसे निम्न कमांड से प्रारंभ किया जा सकता है (${minifi.version} को आपकी शाखा के वर्तमान maven संस्करण से बदलें):docker run -d -v YOUR_CONFIG.YML:/opt/minifi/minifi-${minifi.version}/conf/config.yml apacheminifi:${minifi.version}
Registry—Apache NiFi की एक उपपरियोजना—एक पूरक एप्लिकेशन है जो NiFi और/या MiNiFi के एक या अधिक इंस्टेंस में साझा संसाधनों के भंडारण और प्रबंधन के लिए एक केंद्रीय स्थान प्रदान करता है।
या
केवल Registry उपपरियोजना बनाएँ:
cd nifi/nifi-registry
mvn clean install
यदि आप शैली और लाइसेंस जाँच सक्षम करना चाहते हैं, तो contrib-check प्रोफ़ाइल निर्दिष्ट करें:
mvn clean install -Pcontrib-check
2) Registry प्रारंभ करें
cd nifi-registry/nifi-registry-assembly/target/nifi-registry-<VERSION>-bin/nifi-registry-<VERSION>/
./bin/nifi-registry.sh start
ध्यान दें कि एप्लिकेशन वेब सर्वर उपलब्ध होने से पहले लोड होने में कुछ समय ले सकता है।
डिफ़ॉल्ट सेटिंग्स के साथ, एप्लिकेशन UI http://localhost:18080/nifi-registry पर उपलब्ध होगा।
यदि आप एप्लिकेशन REST API के विरुद्ध परीक्षण करना चाहते हैं, तो आप सीधे REST API तक पहुँच सकते हैं। डिफ़ॉल्ट सेटिंग्स के साथ, REST API का आधार URL http://localhost:18080/nifi-registry-api पर होगा। REST API के परीक्षण के लिए एक UI http://localhost:18080/nifi-registry-api/swagger/ui.html पर उपलब्ध होगा।
लॉग logs/nifi-registry-app.log में उपलब्ध होंगे।
यह सुनिश्चित करने के लिए कि NiFi Registry विभिन्न रिलेशनल डेटाबेस के विरुद्ध सही ढंग से काम करता है, मौजूदा एकीकरण परीक्षणों को Testcontainers फ्रेमवर्क का लाभ उठाकर विभिन्न डेटाबेस के विरुद्ध चलाया जा सकता है।
Spring एप्लिकेशन कॉन्टेक्स्ट के लिए उपलब्ध कराई जाने वाली DataSource फैक्टरी को नियंत्रित करने के लिए Spring प्रोफ़ाइल का उपयोग किया जाता है। DataSource फैक्टरियाँ प्रदान की गई हैं जो किसी दिए गए डेटाबेस के लिए Docker कंटेनर प्रारंभ करने और संबंधित DataSource बनाने के लिए Testcontainers फ्रेमवर्क का उपयोग करती हैं। यदि कोई प्रोफ़ाइल निर्दिष्ट नहीं है तो डिफ़ॉल्ट रूप से H2 DataSource का उपयोग किया जाएगा और किसी Docker कंटेनर की आवश्यकता नहीं है।
यह मानते हुए कि Docker उस सिस्टम पर चल रहा है जहाँ निर्माण चल रहा है, निम्न कमांड चलाए जा सकते हैं:
| लक्ष्य डेटाबेस | निर्माण कमांड |
|---|---|
| सभी समर्थित | mvn verify -Ptest-all-dbs |
| H2 (डिफ़ॉल्ट) | mvn verify |
| MariaDB 10.3 | mvn verify -Pcontrib-check -Dspring.profiles.active=mariadb-10-3 |
| MySQL 8 | mvn verify -Pcontrib-check -Dspring.profiles.active=mysql-8 |
| PostgreSQL 10 | mvn verify -Dspring.profiles.active=postgres-10 |
उपलब्ध DataSource फैक्टरियों की पूरी सूची के लिए, nifi-registry-test मॉड्यूल देखें।
यदि आपके प्रश्न हैं, तो आप हमारी मेलिंग सूची: [email protected] (संग्रह) पर संपर्क कर सकते हैं। अधिक इंटरैक्टिव चर्चाओं के लिए, समुदाय के सदस्य अक्सर निम्नलिखित स्थानों पर पाए जा सकते हैं:
Apache NiFi Slack कार्यक्षेत्र: https://apachenifi.slack.com/
नए उपयोगकर्ता निम्न आमंत्रण लिंक का उपयोग करके कार्यक्षेत्र में शामिल हो सकते हैं।
सुविधा अनुरोध या बग रिपोर्ट सबमिट करने के लिए, कृपया https://issues.apache.org/jira/projects/NIFI/issues पर Jira दर्ज करें। यदि यह सुरक्षा भेद्यता रिपोर्ट है, तो कृपया सीधे [email protected] पर ईमेल करें और पहले Apache NiFi सुरक्षा भेद्यता प्रकटीकरण और Apache Software Foundation सुरक्षा प्रक्रियाओं की समीक्षा करें।
नवीनतम NiFi दस्तावेज़ीकरण के लिए https://nifi.apache.org/ देखें।
नवीनतम MiNiFi-विशिष्ट दस्तावेज़ीकरण के लिए https://nifi.apache.org/minifi और https://cwiki.apache.org/confluence/display/MINIFI देखें।
नवीनतम Registry-विशिष्ट दस्तावेज़ीकरण के लिए https://nifi.apache.org/registry देखें।
जब तक अन्यथा नोट न किया गया हो, यह सॉफ़्टवेयर Apache License, Version 2.0 के अंतर्गत लाइसेंस प्राप्त है।
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
इस वितरण में क्रिप्टोग्राफ़िक सॉफ़्टवेयर शामिल है। आप वर्तमान में जिस देश में निवास करते हैं, वहाँ एन्क्रिप्शन सॉफ़्टवेयर के आयात, कब्ज़े, उपयोग और/या किसी अन्य देश में पुनः-निर्यात पर प्रतिबंध हो सकते हैं। किसी भी एन्क्रिप्शन सॉफ़्टवेयर का उपयोग करने से पहले, कृपया यह देखने के लिए कि यह अनुमत है या नहीं, अपने देश के एन्क्रिप्शन सॉफ़्टवेयर के आयात, कब्ज़े या उपयोग और पुनः-निर्यात से संबंधित कानूनों, विनियमों और नीतियों की जाँच करें। अधिक जानकारी के लिए https://www.wassenaar.org/ देखें।
अमेरिकी सरकार के वाणिज्य विभाग, उद्योग और सुरक्षा ब्यूरो (BIS) ने इस सॉफ़्टवेयर को निर्यात वस्तु नियंत्रण संख्या (ECCN) 5D002.C.1 के रूप में वर्गीकृत किया है, जिसमें असममित एल्गोरिदम के साथ क्रिप्टोग्राफ़िक फ़ंक्शन का उपयोग या निष्पादन करने वाला सूचना सुरक्षा सॉफ़्टवेयर शामिल है। Apache Software Foundation वितरण का यह रूप और तरीका इसे लाइसेंस अपवाद ENC प्रौद्योगिकी सॉफ़्टवेयर अप्रतिबंधित (TSU) अपवाद (BIS निर्यात प्रशासन विनियम, धारा 740.13 देखें) के अंतर्गत ऑब्जेक्ट कोड और स्रोत कोड दोनों के लिए निर्यात के योग्य बनाता है।
निम्नलिखित शामिल क्रिप्टोग्राफ़िक सॉफ़्टवेयर के बारे में अधिक विवरण प्रदान करता है:
Apache NiFi SSL, SSH, और संवेदनशील कॉन्फ़िगरेशन मापदंडों की सुरक्षा के लिए BouncyCastle, JCraft Inc., और अंतर्निहित Java क्रिप्टोग्राफ़ी लाइब्रेरी का उपयोग करता है। देखें
इनमें से प्रत्येक लाइब्रेरी की क्रिप्टोग्राफ़ी सुविधाओं के बारे में अधिक विवरण के लिए।