- यह दावा कि IPv4, NAT को डिफ़ॉल्ट रूप से इस्तेमाल करता है इसलिए वह ज़्यादा सुरक्षित है, सुरक्षा और address translation के बीच भ्रम से पैदा होता है
- NAT(Network Address Translation) कोई security feature नहीं, बल्कि IPv4 address shortage को हल करने के लिए address conservation mechanism है
- NAT का काम बस port mapping के आधार पर कई devices को एक public IP share कराने तक सीमित है
- वास्तव में बाहरी traffic को block करने का काम NAT नहीं, बल्कि stateful firewall करता है
- IPv6 environment में भी डिफ़ॉल्ट रूप से firewall unauthorized traffic को block करता है, इसलिए NAT की गैरमौजूदगी का मतलब security कमजोर होना नहीं है
NAT और security के बीच भ्रम
- यह दावा कि IPv4, NAT का इस्तेमाल करता है इसलिए वह ज़्यादा सुरक्षित है, गलत धारणा है
- NAT कोई security feature नहीं, बल्कि address conservation के लिए इस्तेमाल होने वाली तकनीक है
- IPv6 में भी NAT इस्तेमाल किया जा सकता है, लेकिन उससे security मज़बूत नहीं होती
- NAT internal network के कई devices को एक public IP address share करने देता है
- packet के destination port के आधार पर destination IP को rewrite करके routing करता है
- यह network administrator द्वारा सेट किए गए port mapping या port forwarding नियमों के अनुसार काम करता है
NAT वास्तव में कैसे काम करता है
- NAT environment में बाहर से आने वाला traffic, अगर उसके पास unexpected destination port हो, तो उसे internal device तक नहीं भेजा जाता
- ऐसा traffic public IP वाले device पर ही रुक जाता है और internal network तक route नहीं होता
- इसी वजह से ऐसा लग सकता है कि NAT बाहरी access को block करता है, लेकिन यह सिर्फ एक सहायक परिणाम है, security design का उद्देश्य नहीं
firewall की भूमिका
- NAT से मिलने वाला समझा जाने वाला security effect, दरअसल stateful firewall से आता है
- ज़्यादातर modern routers, NAT हो या न हो, डिफ़ॉल्ट रूप से inbound traffic को block करने वाली firewall policy के साथ आते हैं
- firewall packet को rewrite या route करने से पहले unexpected destination traffic को drop कर देता है
- उदाहरण के तौर पर UniFi router के default IPv6 firewall rules इस प्रकार हैं
- Established/Related traffic की अनुमति (outbound response traffic)
- Invalid traffic block
- इसके अलावा बाकी सभी traffic block
IPv6 environment में security
- IPv6 network में भी default firewall rules unauthorized inbound traffic को block करते हैं
- NAT का इस्तेमाल न करने पर भी समान स्तर की protection लागू होती है
- बाहर से किसी IPv6 device तक unsolicited traffic की अनुमति देने के लिए firewall rule को explicitly जोड़ना पड़ता है
- यह NAT इस्तेमाल होने या न होने, दोनों स्थितियों में समान रूप से लागू होता है
निष्कर्ष
- सिर्फ इसलिए कि IPv6 NAT का इस्तेमाल नहीं करता, यह कहना कि उसकी security कमजोर हो जाती है, निराधार है
- वास्तविक security, NAT नहीं बल्कि firewall policies और traffic control rules तय करते हैं
- IPv6 environment में भी सही firewall configuration के ज़रिए default-deny security strategy बनाए रखी जा सकती है
1 टिप्पणियां
Hacker News की राय
चर्चा में भाग लेने से पहले RFC 4787 के section 5 को देखने की सलाह दी गई
NAT firewall नहीं है, फिर भी यह traffic को filter करता है, और इस वजह से एक स्तर की security functionality देता है
व्यवहार में NAT सिर्फ address translation से आगे विकसित हो चुका है, और IPv6 में NAT न होने पर भी firewall के ज़रिए वही filtering लागू की जा सकती है
Linux netfilter NAT और firewall दोनों को implement करता है, और
nattable के DNAT/SNAT rules NAT का काम करते हैं, जबकिfiltertable के REJECT/DROP rules firewall की भूमिका निभाते हैंअगर सिर्फ NAT rules लागू हों, तो मौजूदा connection का हिस्सा न होने वाला traffic भी वैसे ही pass हो जाता है
इसमें बताया गया है कि NAT बाहर जाने वाला connection बनाते समय state table बनाता है, और उसके अनुरूप inbound packets को allow करता है
यानी इस दस्तावेज़ में “filtering” का मतलब unsolicited inbound connection नहीं है
IPv6 भी IPv4 जितना सुरक्षित हो सकता है, लेकिन यह configuration पर निर्भर करता है
system और application engineers अगर पूरी समस्या को समझे बिना NAT और perimeter firewall पर निर्भर रहते हैं, तो यह खराब security habit है
खासकर जब वे वास्तविक implementation से दूर होते हैं, तब RFC की विश्वसनीयता कम हो जाती है
अमेरिका के mobile networks में NAT के बिना भी IPv6 addresses उपयोग किए जाते हैं
उदाहरण के लिए T-Mobile 464XLAT के ज़रिए IPv4 को IPv6 के ऊपर tunnel करता है
यह दिखाता है कि NAT के बिना भी बड़े पैमाने पर stateful firewalls चलाए जा सकते हैं
Termux और netcat से test किया गया, IPv4 CGNAT के पीछे था, लेकिन IPv6 पर direct connection संभव था
अगर network capacity कम है, तो उस समस्या को हल किया जाना चाहिए
IPv6 आम होने पर लोगों के लिए direct communication सामान्य बात बन जाएगी
network engineer के रूप में सबसे पहले NAT और security के संबंध के बारे में सीखा गया
IPv4 के private addresses (192.168.0.1) तक बाहर से पहुँचना कठिन होता है, लेकिन IPv6 के global addresses device information उजागर कर सकते हैं
IPv6 में Prefix Translation जैसे विकल्प हैं, जो NAT के कुछ लाभ बनाए रखते हुए भी transparent access दे सकते हैं
दोनों को या तो internal address या external address के रूप में मिलाकर तुलना करनी चाहिए
CGNAT environment में inbound connection संभव नहीं होता, इसलिए IPv6 में भी उसी तरह की पाबंदी लगाई जा सकती है
NAT66 से prefix छिपाया जा सकता है, लेकिन वास्तविक security benefit बहुत बड़ा नहीं है
बहुत से hackers NAT और firewall के फ़र्क को लेकर भ्रमित रहते हैं
NAT security के लिए नहीं है, और security firewall देता है
NAT namespacing है, firewall policy-based security है
namespacing अपने आप में भी मज़बूत security property है, क्योंकि यह attacker को resources का “नाम तक न जानने” की स्थिति में रख सकता है
IPv6 firewall में एक गलत rule की वजह से सब कुछ पूरी दुनिया के सामने खुल सकता है
firewall के बिना भी केवल NAT से internal resources को सुरक्षित रखा जा सकता है
NAT home network की attack surface को एक router तक सीमित कर देता है
दूसरी ओर firewall के defaults अलग हो सकते हैं, इसलिए आम users को IPv6 security regression जैसा लग सकता है
यह कहना कि UPnP NAT की security तोड़ देता है, वैसा ही है जैसे कहना कि PCP firewall की security तोड़ देता है
इस दावे पर कि NAT की default-blocking प्रकृति IPv4 security का लाभ है
IPv6 के default blocking rules वही security level देते हैं, इसलिए संरचनात्मक security difference नहीं है
IPv4 NAT और IPv6 default blocking rules दोनों वही invariant बनाए रखते हैं
दोनों ही गलत configuration होने पर समान रूप से कमजोर हो सकते हैं
NAT होने के कारण निश्चिंत रहने और IPv6 firewall न configure करने की वजह से SBC के hack होने का अनुभव साझा किया गया
कारण NAT नहीं, बल्कि IPv6 configuration error था
NAT भी security समस्याएँ पैदा करता है
reflection attacks या address-endpoint separation की वजह से tracing कठिन हो जाती है
पहले AOL में कुछ users के block होने में दिक्कत इसलिए आई थी क्योंकि बहुत से लोग थोड़े से shared egress addresses का इस्तेमाल करते थे
लेकिन समय के साथ NAT को security cargo cult की तरह देखा जाने लगा
ISP और router configuration के अनुसार NAT का प्रभाव बदलता है
NAT कोई intended security feature नहीं है, लेकिन इसका incidental security effect होता है
IPv6 में अगर हर device को direct address मिले, तो default-blocking firewall की ज़रूरत होती है
UPnP specification link
इस बात पर कि जो लोग NAT को security का आधार मानते हैं, वे network को ठीक से नहीं समझते
उसने उस समय privacy address accumulation issue की वजह से SIP server के fail होने का उदाहरण साझा किया
संबंधित चर्चा Reddit VOIP thread में अब भी प्रासंगिक है
इस दावे पर कि NAT inbound traffic को drop नहीं करता
NAT सिर्फ address translation करता है, packets को drop नहीं करता
बताया गया कि इस feedback को ध्यान में रखकर लेख में संशोधन किया गया