تسريب عنوان ProtonVPN IP على لينكس والحل البديل

قبل أن نبدأ…

أُرسل بريدًا إلكترونيًا إلى Proton بخصوص هذه المشكلة في أواخر أغسطس 2022 وقالوا إنهم يعملون على إصلاحها، على الرغم من أن الأمر سيستغرق بعض الوقت لأنه يتطلب بعض التغييرات الهيكلية في كيفية عمل مفتاح الإيقاف (Killswitch).

التسرب

من الناحية المثالية، عند تنفيذ مفتاح الإيقاف، يجب على عميل VPN إسقاط جميع الاتصالات على واجهات غير VPN إلا عندما يكون الاتصال بخوادم موفر VPN. يعد ذلك ضروريًا لمنع التسريبات العرضية، على الأقل من خلال التطبيقات غير المميزة (unprivileged). ولسوء الحظ، لا يقوم عميل ProtonVPN بهذا حاليًا.

على نحو فعّال، فإن أي تطبيق يرتبط بالواجهة المادية المتصلة (على عكس الواجهة الافتراضية لشبكة VPN) على نظام Linux الخاص بك سوف يكشف عن عنوان IP الفعلي الخاص بك، بغض النظر عن حالة مفتاح الإيقاف. يُعد هذا مشكلة، خاصة بالنسبة لبعض التطبيقات مثل عملاء تورنت، حيث يميلون إلى استخدام أي واجهات يمكنهم الوصول إليها (بدلاً من الواجهة الافتراضية فقط) للاتصال بالإنترنت. يمكنك التحقق من ذلك باستخدام
curl :

curl --interface <physical interface> https://ipinfo.io

سيؤدي هذا إلى إرجاع عنوان IP الفعلي الخاص بك.

الحل البديل

توزيعات لينكس العامة

في توزيعة Linux العامة، يتمثل الحل البديل في تضبيط OpenVPN يدويًا وإعداد مفتاح الإيقاف بنفسك.

نظرًا لأن ProtonVPN لا يدعم IPv6، فيجب عليك تعطيله في إعدادات النواة (kernel) لديك:

echo 'net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1' | sudo tee /etc/sysctl.d/10-disable-ipv6.conf
sudo sysctl -p

بعد ذلك، نزّل ملفات تضبيط OpenVPN من account.protonvpn.com. في ملفات التضبيط هذه، من المفترض أن ترى قائمة بعناوين IP ومنافذ خوادم ProtonVPN.

أخيرًا، قم بإعداد مفتاح إيقاف VPN. القواعد التي نشرتها هنا مبنية على هذه المناقشة.

جدار الحماية Firewalld

sudo firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -o tun+ -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i tun+ -j ACCEPT

sudo firewall-cmd --direct --permanent --add-rule ipv6 filter INPUT 0 -j DROP
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 -i lo -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 1 -i tun+ -p tcp -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 1 -i tun+ -p udp -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 999 -j DROP

sudo firewall-cmd --direct --permanent --add-rule ipv6 filter OUTPUT 0 -j DROP
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -o lo -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -o tun+ -j ACCEPT

#You will need to add each of the IP address and port with the following command:
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 1 -p udp -m udp --dport $PORT -d $IP -j ACCEPT

sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 999 -j DROP

sudo firewall-cmd --reload

طرفية UFW


sudo ufw default deny incoming
sudo ufw default deny outgoing

#You will need to add each of the IP address and port with the following command:
sudo ufw allow out to $IP port $PORT proto udp

sudo ufw allow out on tun0 from any to any

لنظام Qubes OS

في نظام Qubes OS، لن تواجه مشكلة بشكل عام إذا كنت تستخدم عميل ProtonVPN في ProxyVM. على الرغم من أن نفس المشكلة لا تزال موجودة داخل ProxyVM نفسه، فمن غير المرجح أن تظهر حيث لا ينبغي عليك تشغيل أي تطبيقات أخرى في نفس Qube على أي حال، ولا يمكن ربط التطبيقات الموجودة في AppVM بالواجهة العامة لـ ProxyVM. لم ألاحظ أي تسريبات من AppVM خلف ProtonVPN ProxyVM.


المصادر:

إذا لديك أي سؤال أو استفسار.
انضم إلى مجموعة أسس لأمن المعلومات والخصوصية الرقمية على:

ماتركس: https://matrix.to/#/#privacy-security:aosus.org

تيليجرام: Telegram: Contact @aosus_privacy_security

4 إعجابات

مرحبا صديقي … بعد التحية ,
لماذا لا يتم استخدام الهكلية التي داخل التوزيعة التي تتيح اضافة مستضيف خاص والتحكم فيه عن طريق الملف ؟ بدل استخدام Open vpn