- macOS 14 Sonoma beta और release candidate में PF firewall traffic को ठीक से filter नहीं कर पा रहा है, जिससे Mullvad VPN ऐप सामान्य रूप से काम नहीं कर रहा
- local network sharing जैसी कुछ settings enabled होने पर traffic leak हो सकता है, इसलिए Mullvad का मानना है कि macOS 14 पर functionality और security की गारंटी देना मुश्किल है
- Mullvad ने छठे beta के बाद issue की जांच कर Apple को report किया, लेकिन बाद के beta और release candidate में भी bug बना हुआ है
- ऐप में patch लगाकर workaround संभव है या नहीं, इसकी समीक्षा की गई, लेकिन सुरक्षित समाधान नहीं मिला; मूल रूप से Apple के firewall fix की जरूरत है
- PF filtering पर निर्भर users या संबंधित apps को macOS 14 upgrade करते समय सावधानी बरतनी चाहिए, और अगर bug मौजूद रहे तो macOS 13 Ventura पर रहना सुरक्षित है
macOS 14 Sonoma में PF firewall की समस्या
- macOS 14 Sonoma beta अवधि के दौरान Apple ने macOS firewall, यानी packet filter(PF) में एक bug introduce किया
- इस bug के कारण Mullvad VPN ऐप काम नहीं करता, और कुछ settings enabled होने पर traffic leak हो सकता है
- उदाहरण setting के रूप में local network sharing का उल्लेख किया गया है
- Mullvad ने छठे macOS 14 beta के बाद समस्या की जांच की और Apple को bug report किया
- इसके बाद के macOS 14 beta और release candidate में भी वही समस्या बनी रही
- उन्होंने यह आंका कि सिर्फ VPN ऐप को patch करके macOS 14 पर operation और security दोनों बनाए रखे जा सकते हैं या नहीं, लेकिन फिलहाल कोई अच्छा समाधान नहीं है
- असर सिर्फ Mullvad VPN ऐप तक सीमित नहीं है
- firewall rules network traffic पर ठीक से लागू नहीं हो रहे
- ऐसा traffic भी pass हो सकता है जिसे allow नहीं होना चाहिए
- PF filtering पर निर्भर users या background में इसका इस्तेमाल करने वाले apps को macOS 14 upgrade करते समय सावधान रहना चाहिए
- macOS 14 Sonoma 26 सितंबर को release होने वाला है, और अगर bug बना रहता है तो Mullvad users को fix आने तक macOS 13 Ventura पर बने रहने की सलाह दी जाती है
पुनरुत्पादन प्रक्रिया और वास्तविक परिणाम
- macOS 14 पर समस्या reproduce की जा सकती है, और यह प्रयोग PF में loaded firewall rules को clear कर देता है
- Terminal में virtual logging interface बनाएं, और बाद में जोड़े जाने वाले rule से match होने वाले traffic को monitor करें
sudo ifconfig pflog1 create
sudo tcpdump -nnn -e -ttt -i pflog1
pfrules file में निम्न firewall rules लिखें
pass quick log (all, to pflog1) inet from any to 127.0.0.1
block drop quick log (all, to pflog1)
- दूसरे Terminal में PF को enable करें और rules load करें
sudo pfctl -e
sudo pfctl -f pfrules
ping 45.83.223.209
- अपेक्षित परिणाम यह है कि ping इकलौते
pass rule की condition से match नहीं होगा, इसलिए block हो जाएगा, और traffic pflog1 में block rule से match के रूप में recorded होगा
- वास्तविकता में ping internet पर चला जाता है और response वापस आता है, और
pflog1 में traffic recorded नहीं होता
- प्रयोग के बाद firewall को disable करें और सभी rules clear करें
sudo pfctl -d
sudo pfctl -f /etc/pf.conf
1 टिप्पणियां
Hacker News की राय
वही PF bug OrbStack की एक networking feature को भी तोड़ रहा है
जब वजह को यहाँ तक narrow down किया तो यकीन करना मुश्किल था, लेकिन लगता है मैं अकेला नहीं हूँ। उम्मीद है stable version रिलीज़ होने से पहले यह ज़रूर ठीक हो जाएगा
कल ही इसे Apple को report कर पाया, और यह काफी recent regression लगता है, शायद beta 6 के आसपास आया होगा
PF तो असल में ऐसा firewall होना चाहिए जहाँ आख़िरी matching rule लागू होता है, लेकिन macOS लगभग पहले matching rule जैसा behave कर रहा है। आगे वाला
blockrule,quickके बिना भी, दूसरे anchors केpassrules को override कर रहा है, इसलिए दिक्कत होना तय हैअगर stable version ऐसी हालत में आता है तो यह स्वीकार्य नहीं होगा, और निजी तौर पर मेरे लिए यह Mac OS छोड़ने की वजह बन जाएगा। अगर वे चाहते हैं कि इसे serious काम में इस्तेमाल किया जाए, तो ऐसे regression वाला product release नहीं करना चाहिए
लेख बहुत concise और उपयोगी है, और इसमें bug reproduce करने के steps भी आसान तरीके से दिए गए हैं, यह अच्छा है
Mullvad मुझे पसंद है
थोड़ा off-topic, लेकिन macOS में पिछले कुछ releases से कुल मिलाकर अजीब firewall bugs काफी रहे हैं, और सोचता हूँ कि firewall side को फिर से लिखने की ज़रूरत क्यों पड़ी
local machine और operating system कुछ भी हो, browsing को dedicated server के ज़रिए चला सकते हैं। यह पूरे network connection को wrap नहीं करता, सिर्फ browsing पर लागू होता है, लेकिन उस दायरे में IP address बदलता है, location छिपाता है और browser zero-days से अतिरिक्त protection देता है
BrowserBox में privacy का सम्मान और सुरक्षा करने, और पूरे experience को बेहतर बनाने वाली features लगातार जोड़ी जा रही हैं। यह open source है, इसलिए आप इसे अपनी पसंद से बदल भी सकते हैं। अगर AGPL-3.0 पसंद नहीं है तो commercial license भी उपलब्ध है: https://github.com/dosyago/BrowserBoxPro
अगर open source पसंद नहीं है और बड़ी company की comfort चाहते हैं, तो लगता है Mullvad के पास भी Mullvad Browser है जो मिलता-जुलता काम करता है
इससे जुड़ा एक पुराना लेख: https://9to5mac.com/2015/05/26/apple-drops-discoveryd-in-lat...
यह reproduction code सच में देखने में अच्छा है
बेशक bug का scope यही है, लेकिन यह test मुझे खास refined या खूबसूरत नहीं लगता
पता नहीं related है या नहीं, लेकिन हाल की दो macOS upgrades के तुरंत बाद networking काम नहीं कर रही थी
Wi‑Fi, Ethernet और hotspot से connect हो पा रहा था, लेकिन browser या ping जैसे actual connections कुछ भी नहीं चल रहे थे, और router तक भी नहीं पहुँच पा रहा था
दोनों बार Mullvad VPN app को सिर्फ एक बार open करने से सब फिर से काम करने लगा। सिर्फ app खोलने से समस्या कैसे ठीक हुई, पता नहीं
पूरी तरह related नहीं है, लेकिन एक और पुराना bug भी है: macOS
Popen()का 11 साल पुराना bug: https://news.ycombinator.com/item?id=37238433संदर्भ के लिए, Mullvad.app से connection problem थी, लेकिन Wireguard.app में Mullvad WireGuard config चलाने पर सब ठीक काम करता था
हाल ही में latest Sonoma beta install किया था और Mullvad को किसी भी तरह काम नहीं करा पा रहा था, अब समझ आया
अच्छा है कि Mullvad workaround पर काम कर रहा है। आज सुबह Ventura पर downgrade करने का भी सोच रहा था, अब लगता है सच में यही मेरी problem थी
अच्छा लगा कि Mullvad ने इस मुद्दे पर public pressure बढ़ाया। यह bug निश्चित रूप से noticeable था और काफी worrying भी
original में लिखा है “we have investigated this issue after the 6th beta was released and reported the bug to Apple”
मेरे case में WireGuard config download करके Wireguard app इस्तेमाल करना solution था
PostUpऔरPostDownfirewall rules न डालें। तब इसे solution कहना मुश्किल हैसवाल: अगर
pflog1create नहीं होता, तो क्या pf expected तरीके से काम करता है?अगर
tcpdump,pflog1पर जाने वाली कोई चीज़ record नहीं करता, तो इसका मतलब लगता है कि datapflog1को भेजा ही नहीं जा रहा। फिर problem उससे पहले की layer में हैक्या
pflog1connected और up state में था? पहले interface को manually connect और up करना पड़ता था। क्या MacOS यह automatically करता है?बेशक इसे isolate करना bug reporter का काम नहीं है। लेकिन किसी point पर responsible engineer ऐसे सवाल पूछेगा, इसलिए पहले से जवाब रखना बेहतर है
ifconfig pflog1 destroy