सवाल Iptables का उपयोग करते समय अस्वीकार बनाम डीआरओपी


क्या कोई कारण है कि मैं चाहता हूं

iptables -A INPUT -j REJECT

के बजाय

iptables -A INPUT -j DROP

80
2017-07-04 09:49


मूल




जवाब:


एक सामान्य नियम के रूप में, जब आप चाहते हैं कि बंदरगाह को जानने के दूसरे सिरे को पहुंचने योग्य है, तो उन लोगों के कनेक्शन के लिए डीआरओपी का उपयोग करें, जिन्हें आप नहीं देखना चाहते हैं।

आमतौर पर, आपके LAN के अंदर कनेक्शन के लिए सभी नियमों का उपयोग अस्वीकार करना चाहिए। इंटरनेट के लिए, कुछ सर्वरों पर पहचान के अपवाद के साथ, इंटरनेट से कनेक्शन आमतौर पर खींचे जाते हैं।

डीआरओपी का उपयोग कनेक्शन को एक अपरिपक्व आईपी पते पर दिखाई देता है। स्कैनर स्कैनिंग पते जारी नहीं रख सकते हैं जो अनुपस्थित दिखाई देते हैं। यह देखते हुए कि फ़ायरवॉल पर कनेक्शन को पुनर्निर्देशित करने के लिए एनएटी का उपयोग किया जा सकता है, एक प्रसिद्ध सेवा का अस्तित्व किसी पते पर किसी सर्वर के अस्तित्व को इंगित नहीं करता है।

पहचान एसएमटीपी सेवा प्रदान करने वाले किसी भी पते पर पारित या अस्वीकार कर दी जानी चाहिए। हालांकि, एसएमटीपी द्वारा पहचान पहचान-अप का उपयोग उपयोग से बाहर हो गया है। चैट प्रोटोकॉल हैं जो एक काम करने वाली पहचान सेवा पर भरोसा करते हैं।

संपादित करें: डीआरओपी नियमों का उपयोग करते समय:  - यूडीपी पैकेट गिराए जाएंगे और व्यवहार किसी भी सेवा के बिना एक unfirewalled बंदरगाह से कनेक्ट करने के समान होगा।  - टीसीपी पैकेट एक एसीके / आरएसटी वापस कर देंगे जो एक ही प्रतिक्रिया है कि इसके साथ कोई सेवा नहीं वाला एक खुला बंदरगाह इसका जवाब देगा। कुछ राउटर नीचे दिए गए सर्वर की तरफ से और एसीके / आरएसटी के साथ जवाब देंगे।

REJECT नियमों का उपयोग करते समय एक आईसीएमपी पैकेट भेजा जाता है जो इंगित करता है कि बंदरगाह अनुपलब्ध है।


72
2017-07-04 16:40



यह सच नहीं है। यहां तक ​​कि जब नियम "डीआरओपी" कहता है तब भी सिस्टम आने वाले पैकेट को टीसीपी एसवाईएन / एसीके के साथ जवाब देगा जैसे कि यह खुला था। वास्तव में एक पैकेट ड्रॉप करने के लिए, सिस्टम को एक टीसीपी आरएसटी / एसीके के साथ जवाब देने की आवश्यकता होती है - जिसके लिए कोई फ़ायरवॉल नियम नहीं है। इस प्रकार, सबसे अच्छा फ़ायरवॉलिंग सेटअप वह है जहां केवल चयनित बंदरगाहों को अग्रेषित किया जाता है। आपका डीआरओपी नियम आपके फ़ायरवॉल का विज्ञापन करेगा और पोर्ट-स्कैनर्स को पता चलेगा कि आप कुछ फ़ायरवॉल कर रहे हैं और अपनी फ़ायरवॉल को पकड़ने की उम्मीद में आपको हथियार देते रहेंगे। - Dagelf
@Dagelf मेरा संपादन देखें। आरएसटी / एसीके स्कैनर को इंगित नहीं करता है कि आप कुछ भी फ़ायरवॉल कर रहे हैं। जबकि कुछ हैकर्स इस प्रतिक्रिया के बाद जांच जारी रख सकते हैं, यह आपकी सेवाओं को जानने के आधार पर फ़ायरवॉल प्रतिक्रिया नहीं होना चाहिए। यह निश्चित रूप से मुझे अनुभव स्कैन की संख्या और लंबाई गिरा दिया। - BillThor
मेरा मुद्दा यह है कि यह बाहर से पता लगाने योग्य है कि आप फ़ायरवॉलिंग कर रहे हैं या नहीं, केवल इतना तथ्य यह है कि आपका टीसीपी स्टैक अलग-अलग व्यवहार करता है जब आप पहली बार सेवा चलाने की तुलना में डीआरओपी करते हैं! - Dagelf
इस तथ्य को नहीं बदले कि अंतर पर पूंजीकरण करने वाले बॉटनेट हैं और परिणामस्वरूप आपके बंदरगाहों की निगरानी कर रहे हैं। - Dagelf
@Dagelf आपको जानकारी कहाँ मिल रही है कि डीआरओपी प्रतिक्रिया भेजता है? यह बड़ी खबर है और मैंने जो कुछ देखा है उसे काउंटर चलाता है और बताया गया है। क्या आपके पास इस व्यवहार का वर्णन करने वाले दस्तावेज़ों का एक लिंक है? - Score_Under


अंतर यह है कि अस्वीकृति लक्ष्य स्रोत को अस्वीकार कर देता है, जबकि डीआरओपी लक्ष्य कुछ भी नहीं भेजता है।

यह उपयोगी हो सकता है उदा। पहचान सेवा के लिए। यदि आप अस्वीकृति का उपयोग करते हैं तो ग्राहकों को टाइमआउट के लिए प्रतीक्षा करने की आवश्यकता नहीं है।

इसके बारे में अधिक: http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html


25
2017-07-04 09:59



डीआरओपी लक्ष्य कुछ भी नहीं भेजता है। स्वीकार्य उत्तर पर मेरी टिप्पणी देखें और यदि आप विवरण में रुचि रखते हैं तो विषय को स्वयं खोजें! - Dagelf


आमतौर पर, आप चाहते हैं नज़रअंदाज़ करना हमलावरों से कुछ बंदरगाहों की जांच, जिसके माध्यम से मेरा मतलब है कि आप 'कनेक्शन से इनकार कर दिया' वापस नहीं भेजना चाहते हैं। 'कनेक्शन से इनकार' का अर्थ है: 'यहां एक सर्वर है', और संभवतः अधिक जानकारी देता है, जबकि एक पैकेट छोड़ना सॉफ्टवेयर संस्करणों, संभावित भेद्यता या यहां तक ​​कि तथ्य यह है कि कोई सर्वर आपको आईपी सुन रहा है।

उपर्युक्त के बजाय डीआरओपी का उपयोग करने के मुख्य कारणों में से एक है।


8
2017-07-04 13:09



Iptables नियमों के बिना, एक बंद बंदरगाह अस्वीकार करने के लिए डिफ़ॉल्ट। यदि आप प्रत्येक बंदरगाह को ड्रॉ करते हैं तो यह एक अच्छा विकल्प है (आपका होस्ट नीचे दिखाई देता है) लेकिन यदि आप केवल विशिष्ट बंदरगाहों को ड्रॉ करते हैं तो आप वास्तव में उन्हें अस्वीकृति से अधिक जानकारी दे रहे हैं। अगर कोई एनएमएपी जैसे कंबल जांच का उपयोग करता है, तो विशिष्ट पोर्ट जो ड्रॉप पैकेट "फ़िल्टर" के रूप में दिखाई देंगे, जिसका अर्थ है कि उन्हें पता है कि आपके पास एक ऐसी सेवा है जहां आप छुपा रहे हैं। - Raptor007


मैं यहां बहुत सारे विवादित उत्तरों देखता हूं और यह सही कीवर्ड वाले Google में पहला लेख है; यहां सही स्पष्टीकरण है।
यह आसान है:

डीआरओपी पैकेट के साथ कुछ भी नहीं करता है। इसे किसी होस्ट को अग्रेषित नहीं किया जाता है, इसका उत्तर नहीं मिलता है। आईपीटीबल्स के मैनपेज का कहना है कि यह फर्श पर पैकेट छोड़ देता है, यानी यह पैकेट के साथ कुछ भी नहीं करता है।

अस्वीकृति डीआरओपी से अलग है कि यह एक पैकेट वापस भेजती है, लेकिन जवाब यह है कि एक सर्वर आईपी पर स्थित है, लेकिन एक सुनवाई स्थिति में बंदरगाह नहीं है। आईपीटीबल्स टीसीपी के मामले में या यूडीपी के साथ आईसीएमपी गंतव्य बंदरगाह के बिना एक आरएसटी / एसीके भेजा जाएगा।


6
2018-01-11 12:29



मेरे द्वारा +1, लेकिन जवाब वास्तव में असहमत नहीं हैं। वे सभी सहमत हैं, जहां तक ​​मैं देख सकता हूं, डगल के अलावा - जो गलत है। - MadHatter
ठीक है, तो यहां आपके लिए एक छोटी सी चाल है: एक "एनएमएपी लोकलहोस्ट" करें। अब कोई भी पोर्ट चुनें जो "खुला" नहीं है ... और एक नियम जोड़ें जो "कुछ भी नहीं करता", उदाहरण के लिए: "iptables -I INPUT -p tcp --dport 888 -j DROP"। अब फिर से "nmap localhost"। क्या देखती है? ... - Dagelf


यदि आप पूरी तरह से अपनी मशीन के अस्तित्व को छिपाने की कोशिश कर रहे हैं, -j DROPउचित है। उदाहरण के लिए, आप ब्लैकलिस्ट को लागू करने के लिए इसका उपयोग कर सकते हैं।

यदि आप इस तथ्य को छिपाने की कोशिश कर रहे हैं कि एक बंदरगाह खुला है, तो आपको उस व्यवहार की नकल करनी चाहिए जो तब होगा जब पोर्ट खुला नहीं था:

  • टीसीपी: -p tcp -j REJECT --reject-with tcp-reset
  • यूडीपी: -p udp -j REJECT --reject-with icmp-port-unreachable

यदि एक बंदरगाह स्कैनर देखता है कि कुछ बंदरगाह पैकेट छोड़ रहे हैं, जबकि अधिकांश उन्हें अस्वीकार कर रहे हैं, तो यह अनुमान लगा सकता है कि गिराए गए पैकेट बंदरगाहों पर हैं जो खुले लेकिन छिपे हुए हैं।


3
2017-08-13 01:29



क्या होगा यदि आप कुछ बंदरगाह खोलते हैं (यानी 22, 25, 53, 80, 443) और फिर बाकी सब कुछ डीआरओपी? अब मेरे पास MySQL, PostgreSQL, SQLite, या Cassandra चल रहा है ... स्कैनर नहीं बता सकता है, है ना? - Alexis Wilke
@AlexisWilke उस मामले में, पोर्ट पोर्ट स्कैनर देने वाली एकमात्र अतिरिक्त जानकारी यह है कि आपके पास डिफ़ॉल्ट डीआरओपी नीति के साथ कुछ प्रकार की फ़ायरवॉल है। - Raptor007


बहुत सारे सही उत्तरों के बावजूद, बस मेरे दो सेंट:

यहां एक छोटा पीओसी है FW.IDS-ड्रॉप-बनाम-अस्वीकार प्रतिबंध प्रणाली (फ़ायरवॉल, आईडीएस, आदि) के नियमों के संबंध में मेरे विषय में।

कुछ ही समय:

  • DROP सभी बंदरगाहों पर प्रतिबंध लगाने पर, भरोसेमंद घुसपैठियों के लिए इस्तेमाल किया जा सकता है (ऐसा लगता है जैसे सर्वर घुसपैठ की तरफ नीचे है)
  • REJECT --reject-with tcp-reset बहु-पोर्ट प्रतिबंध लगाने के लिए सबसे अच्छा विकल्प है, क्योंकि ऐसा लगता है कि यह वास्तविक बंद बंदरगाह के रूप में व्यवहार करता है
  • अगर कुछ बंदरगाह जवाब दे रहे हैं (घुसपैठिया जानता है कि मेजबान जीवित है) DROP तथा REJECT (के बिना tcp-reset) घुसपैठिया को "संकेत" देगा कि कुछ अवरोधन है (ताकि वह किसी भी समय आवश्यक डेटा प्रदान करने के लिए आशा में "हमला" जारी रखने के लिए प्रोत्साहित कर सके।

0
2017-09-20 16:49





हां, डीआरओपी का उपयोग व्यर्थ है। अस्वीकृति का प्रयोग करें।

यहां तक ​​कि जब नियम "डीआरओपी" कहता है तब भी सिस्टम एक टीसीपी आरएसटी / एसीके के साथ आने वाली एसवाईएन का जवाब देता है - जो बंदरगाहों के लिए डिफ़ॉल्ट व्यवहार नहीं है, जिसमें कोई सेवाएं नहीं चलती है। (tcpdump et al इसे लॉग नहीं करता है।)

यदि कोई सेवा चल रही है, तो एसईएन टीसीपी एसवाईएन / एसीके से मुलाकात की जाती है।

चूंकि डीआरओपी सामान्य रूप से टीसीपी एसवाईएन / एसीके के साथ प्रतिक्रिया नहीं देता है, लेकिन इसके बजाय आरएसटी / एसीके के साथ, आपका डीआरओपी नियम आपके फ़ायरवॉल का विज्ञापन करेगा और पोर्ट-स्कैनर्स को पता चलेगा कि आप कुछ फ़ायरवॉल कर रहे हैं और उम्मीदों में आपको धक्का दे सकते हैं अपने फायरवॉल को पकड़ने के लिए।

यह अब एनएमएपी उदाहरण के लिए "बंद" के बजाय "फ़िल्टर" की रिपोर्ट कर सकता है:

$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -I INPUT -p tcp --dport 1111 -j DROP
$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http
1111/tcp filtered lmsocialserver

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -D INPUT 1

इस प्रकार, केवल "अदृश्य" फ़ायरवॉलिंग सेटअप वह है जहां एक समर्पित डिवाइस आपके डिवाइस और केवल चुनिंदा रूप से आगे के बंदरगाहों के बीच बैठता है।

यदि आप वास्तव में मूल स्कैनर के साथ गड़बड़ करना चाहते हैं, तो आप टीसीपीआईटी टीसीपी कनेक्शन कर सकते हैं, जो टीसीपी विंडो को 0 पर सेट करता है ताकि कनेक्शन खोले जाने के अनुरोधों को अनदेखा कर, कनेक्शन को बंद करने के अनुरोधों को अनदेखा कर सकें, जिसका अर्थ है स्कैनर को प्रतीक्षा करना है कनेक्शन टाइमआउट होने के लिए, यदि यह सुनिश्चित करना चाहता है। लेकिन यह हमलावर के लिए यह पता लगाने के लिए छोटा है और अपना टाइमआउट बहुत छोटा कर देता है।

सभी चीजों को माना जाता है, आप शायद रीजेट का उपयोग कर सबसे अच्छा हो - या अपने सर्वर और इंटरनेट के बीच समर्पित पोर्ट अग्रेषण डिवाइस डालें।

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

आम तौर पर वेब सर्वर के लिए अस्वीकृति सर्वोत्तम है, क्योंकि जो भी सेवा इसे एक्सेस करने का प्रयास कर रही है (शायद अधिक से अधिक नहीं, आपको तुरंत प्रतिक्रिया मिल जाएगी और उपयोगकर्ताओं या अन्य सेवाओं को नेटवर्क आउटेज होने पर सोचने का इंतजार नहीं किया जाएगा।


-3



यह जवाब गलत है। इसे आसानी से टीसीपीडम्प के साथ दिखाया जा सकता है कि डीआरओपी नियम के परिणामस्वरूप सिस्टम किसी भी उत्तर नहीं भेज रहा है - जैसा कि कोई उम्मीद करेगा। और आपका बयान "वास्तव में एक पैकेट ड्रॉप करने के लिए, सिस्टम को एक टीसीपी आरएसटी / एसीके के साथ जवाब देने की आवश्यकता है" कुछ भी जवाब देने के रूप में समझ में नहीं आता है, जाहिर है कि "वास्तव में एक पैकेट छोड़ना" नहीं है। यदि आप एक पैकेट को "वास्तव में छोड़ देते हैं", तो आप जवाब नहीं देते हैं और यह प्रदर्शनशील रूप से डीआरओपी नियम का प्रभाव है। - Juliane Holzt
क्या आप आरोपों के लिए एक स्रोत प्रदान कर सकते हैं DROP एक जारी करेंगे SYN/ACK? मैंने इसे अपनी मशीनों पर कभी नहीं देखा। - motobói
@Dagelf आपका लेख कहता है "ड्रोप (उर्फ डेनी, ब्लैकहोले) पास से गुजरने से एक पैकेट को रोकें। कोई प्रतिक्रिया नहीं भेजें।" - JeanT
यह सामान्य प्रतिक्रिया नहीं भेजता है, लेकिन यह एक के रूप में समझाया गया है, भले ही। - Dagelf
जिस दस्तावेज़ से आप लिंक करते हैं वह कहता है "ड्रॉप ... कोई प्रतिक्रिया नहीं भेजें", और नहीं, जहां तक ​​मैं देख सकता हूं, अपने दावे का समर्थन करें DROP एक देता है SYN/ACK। मैंने भी इस व्यवहार को किसी भी संस्करण के तहत कभी नहीं देखा है iptables। यदि आपके पास कोई स्रोत है जो आपके दावे का समर्थन करता है, तो इसे देखना सबसे उपयोगी होगा; निश्चित रूप से, मैंने जो पैकेट डंप किया है, वह आपके दावे का समर्थन नहीं करता है। - MadHatter