
Single Packet Authorization > Port Knocking
fwknop एक प्राधिकरण योजना लागू करता है जिसे एकल पैकेट प्राधिकरण (SPA) के रूप में जाना जाता है, जो मजबूत सेवा गोपन के लिए है। SPA के लिए केवल एक एकल पैकेट की आवश्यकता होती है जो एन्क्रिप्टेड, पुन: प्रस्तुत न किया जा सकने वाला और HMAC के माध्यम से प्रमाणित होता है, ताकि एक फ़ायरवॉल के पीछे छिपी सेवा तक वांछित पहुंच संप्रेषित की जा सके, जो डिफ़ॉल्ट-ड्रॉप फ़िल्टरिंग स्थिति में है। SPA का मुख्य अनुप्रयोग SSH जैसी सेवाओं से कनेक्ट करने के सभी प्रयासों को ड्रॉप करने के लिए फ़ायरवॉल का उपयोग करना है, ताकि कमजोरियों (दोनों 0-दिन और अप्रबंधित कोड) का शोषण करना कठिन हो सके। चूंकि कोई खुले पोर्ट नहीं हैं, SPA द्वारा छिपी किसी भी सेवा को Nmap के साथ स्कैन नहीं किया जा सकता है। fwknop परियोजना चार अलग-अलग फ़ायरवॉल का समर्थन करती है: iptables, firewalld, PF, और ipfw Linux, OpenBSD, FreeBSD, और Mac OS X पर। कस्टम स्क्रिप्ट के लिए भी समर्थन है ताकि fwknop को ipset या nftables जैसे अन्य बुनियादी ढांचे का समर्थन करने के लिए बनाया जा सके।
SPA मूलतः अगली पीढ़ी का पोर्ट नॉकिंग (PK) है, लेकिन PK की कई सीमाओं को हल करता है जबकि इसके मुख्य लाभों को बनाए रखता है। PK सीमाओं में पुन: प्रस्तुति हमलों से बचाव की सामान्य कठिनाई शामिल है, आमतौर पर असममित सिफर और HMAC योजनाओं का विश्वसनीय रूप से समर्थन करना संभव नहीं है, और PK सर्वर के विरुद्ध DoS हमला करना केवल एक अतिरिक्त पैकेट को PK अनुक्रम में स्पूफ करके आसानी से किया जा सकता है क्योंकि यह नेटवर्क पर यात्रा करता है (जिससे PK सर्वर को विश्वास हो जाता है कि क्लाइंट सही अनुक्रम नहीं जानता)। SPA द्वारा इन सभी कमियों को हल किया जाता है। साथ ही, SPA डिफ़ॉल्ट-ड्रॉप फ़ायरवॉल नीति के पीछे सेवाओं को छिपाता है, SPA डेटा को निष्क्रिय रूप से प्राप्त करता है (आमतौर पर libpcap या अन्य माध्यमों से), और SPA पैकेट प्रमाणीकरण और एन्क्रिप्शन/डिक्रिप्शन के लिए मानक क्रिप्टोग्राफ़िक संक्रियाएँ लागू करता है।
fwknop द्वारा उत्पन्न SPA पैकेट एन्क्रिप्ट-फिर-प्रमाणित मॉडल में प्रमाणित एन्क्रिप्शन के लिए HMAC का लाभ उठाते हैं। यद्यपि HMAC का उपयोग वर्तमान में वैकल्पिक है (--use-hmac कमांड लाइन स्विच के माध्यम से सक्षम), इसे तीन कारणों से अत्यधिक अनुशंसित किया जाता है:
उपरोक्त अंतिम कारण यह है कि HMAC का उपयोग तब भी किया जाना चाहिए जब SPA पैकेट को GnuPG के साथ एन्क्रिप्ट किया जाए, क्योंकि SPA डेटा को libgpgme फ़ंक्शन के माध्यम से तब तक नहीं भेजा जाता जब तक कि HMAC पहले जांच न लिया जाए। GnuPG और libgpgme अपेक्षाकृत जटिल कोड निकाय हैं, और इसलिए एक HMAC ऑपरेशन के माध्यम से संभावित हमलावर की इस कोड के साथ बातचीत करने की क्षमता को सीमित करना एक मजबूत सुरक्षा स्थिति बनाए रखने में मदद करता है। SPA संचार के लिए HMAC उत्पन्न करने के लिए सामान्य एन्क्रिप्शन कुंजी के अतिरिक्त एक समर्पित कुंजी की आवश्यकता होती है, और दोनों को --key-gen विकल्प से उत्पन्न किया जा सकता है।
fwknop SPA पैकेट को या तो Rijndael ब्लॉक सिफर के साथ या GnuPG और संबंधित असममित सिफर के माध्यम से एन्क्रिप्ट करता है। यदि सममित एन्क्रिप्शन विधि चुनी जाती है, तो हमेशा की तरह एन्क्रिप्शन कुंजी क्लाइंट और सर्वर के बीच साझा की जाती है (विवरण के लिए /etc/fwknop/access.conf फ़ाइल देखें)। Rijndael एन्क्रिप्शन के लिए उपयोग की जाने वाली वास्तविक एन्क्रिप्शन कुंजी मानक PBKDF1 कुंजी व्युत्पत्ति एल्गोरिथ्म के माध्यम से उत्पन्न होती है, और CBC मोड सेट किया जाता है। यदि GnuPG विधि चुनी जाती है, तो एन्क्रिप्शन कुंजी GnuPG कुंजी रिंग से प्राप्त होती हैं।
एकल पैकेट प्राधिकरण (SPA) या इसके सुरक्षा-चुनौतीपूर्ण चचेरे भाई पोर्ट नॉकिंग (PK) का उपयोग करने वाले लोग आमतौर पर उसी सिस्टम पर चलने वाले SSHD तक पहुँचते हैं जहाँ SPA/PK सॉफ़्टवेयर तैनात किया गया है। अर्थात्, एक होस्ट पर चलने वाला फ़ायरवॉल सभी आने वाले SSH कनेक्शनों के विरुद्ध डिफ़ॉल्ट-ड्रॉप नीति रखता है ताकि SSHD को स्कैन नहीं किया जा सके, लेकिन एक SPA डेमॉन फ़ायरवॉल को पुन: कॉन्फ़िगर करके अस्थायी रूप से एक निष्क्रिय रूप से प्रमाणित SPA क्लाइंट तक पहुँच प्रदान करता है:
"SSHD तक पहुँचने के लिए मूल SPA उपयोग"
fwknop उपरोक्त का समर्थन करता है, लेकिन इससे भी आगे जाकर NAT का मजबूत उपयोग करता है (iptables/firewalld फ़ायरवॉल के लिए)। आखिरकार, महत्वपूर्ण फ़ायरवॉल आमतौर पर नेटवर्क के बीच गेटवे होते हैं, न कि केवल स्टैंडअलोन होस्ट पर तैनात होते हैं। ऐसे फ़ायरवॉल पर NAT का आमतौर पर उपयोग किया जाता है (कम से कम IPv4 संचार के लिए) RFC 1918 पता स्थान पर आंतरिक नेटवर्क को इंटरनेट तक पहुँच प्रदान करने के लिए, और बाहरी होस्ट को आंतरिक सिस्टम पर होस्ट की गई सेवाओं तक पहुँचने की अनुमति देने के लिए भी।
क्योंकि fwknop NAT के साथ एकीकृत होता है, SPA का लाभ उठाकर बाहरी इंटरनेट पर उपयोगकर्ता फ़ायरवॉल के माध्यम से आंतरिक सेवाओं तक पहुँच सकते हैं। हालांकि आधुनिक पारंपरिक नेटवर्क पर इसके कई अनुप्रयोग हैं, यह fwknop को Amazon के AWS जैसे क्लाउड कंप्यूटिंग वातावरण का समर्थन करने की भी अनुमति देता है:
"Amazon AWS क्लाउड वातावरण पर SPA उपयोग"
आधिकारिक क्रॉस-प्लेटफ़ॉर्म fwknop क्लाइंट उपयोगकर्ता इंटरफ़ेस fwknop-gui
(डाउनलोड, github)
को Jonathan Bennett द्वारा विकसित किया गया है। अधिकांश प्रमुख क्लाइंट-साइड SPA मोड समर्थित हैं, जिनमें NAT अनुरोध, HMAC और Rijndael कुंजियाँ (GnuPG अभी तक समर्थित नहीं है), fwknoprc स्टैन्ज़ा सेविंग, और बहुत कुछ शामिल है। वर्तमान में fwknop-gui Linux, Mac OS X, और Windows पर चलता है - यहाँ OS X से एक स्क्रीनशॉट है:
"Mac OS X पर fwknop-gui"
इसी तरह, एक अद्यतन
Android क्लाइंट भी
उपलब्ध है।
fwknop पर एक व्यापक ट्यूटोरियल यहाँ पाया जा सकता है:
http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
fwknop परियोजना द्वारा समर्थित सुविधाओं की पूरी सूची निम्नलिखित है: