وكيل شفاف لحركة مرور IPv6 ضمن Linux
سؤال
عند صيانة الشبكات، غالبًا ما يكون من المفيد تشغيل وكيل شفاف.أعني بالوكيل الشفاف الوكيل الذي "يختطف" الاتصالات الصادرة ويقوم بتشغيلها من خلال خدمة محلية.على وجه التحديد، أقوم بتشغيل جدار حماية Linux مع تكوين squid بحيث يتم تمثيل جميع اتصالات tcp/ip الموجودة على المنفذ 80 بواسطة squid.
ويتم تحقيق ذلك باستخدام جدول iptables 'nat'، باستخدام IPv4.
لكن iptables لـ IPv6 لا يحتوي على جدول "nat"، لذلك لا يمكنني استخدام نفس التنفيذ.ما هي التقنية التي يمكنني استخدامها لتوكيل حركة مرور اتصالات IPv6 بشفافية؟
المحلول
هناك طريقة فعالة للقيام بذلك وهي استخدام قاعدة TPROXY في iptables، والوثائق متاحة هنا:
- http://wiki.squid-cache.org/Features/Tproxy4#IPv6_Support
- http://www.mjmwired.net/kernel/Documentation/networking/tproxy.txt
يجب أن يكون هذا مدعومًا بـ Squid (>= الإصدار 3.2).استخدام --enable-linux-netfilter
و ال iptables -t mangle -j TPROXY
قاعدة.
نصائح أخرى
وإيبتبلس لديها هدف QUEUE، والتي يمكنك استخدامها لتقديم الحزم إلى مساحة المستخدم. ولست متأكدا، ولكن ربما شيء يمكن تنفيذها هناك.
والماضي الذي، يمكن أن تأخذ طعنة في إضافة شيء إلى النواة للقيام إعادة التوجيه.
وأنت لا تستطيع ذلك. نقلا عن squid-cache.org :
<اقتباس فقرة>وNAT ببساطة لا وجود لها في IPv6. بواسطة التصميم.
ونظرا إلى أن الشفافية / اعتراض هو في الواقع ميزة المكتسبة من قبل التواء سرا طرق NAT داخل الخروج والعودة على أنفسهم. انها تماما من المنطقي أن بروتوكول دون NAT لا تستطيع أن تفعل الشفافية و اعتراضها على هذا النحو.
اقتباس فقرة>إليك التنفيذ:
نوع آخر من الاختراق القبيح:
- وضع علامة على كل حركة المرور باستخدام iptables (يبدو أن هناك هدف CONNMARK لـ IPv6)
- توجيه كل حركة المرور المحددة لضبط الجهاز
- قم بإجراء NAT لمساحة المستخدم في البرنامج الخفي الذي يستمع إلى جهاز tun
- ...
وكتابة التنفيذ الخاص من NAT في IPv6 المكدس.