أساسيات البروكسيات الشفافة باستخدام 3proxy و iptables / netfilter أو كيفية "السماح لكل شيء عبر وكيل"

في هذه المقالة ، أود أن أكشف عن إمكانات البروكسيات الشفافة ، والتي تسمح لك بإعادة توجيه كل حركة المرور أو جزء منها عبر خوادم بروكسي خارجية بشكل غير محسوس.

عندما بدأت في حل هذه المشكلة ، واجهت حقيقة أن تنفيذها به مشكلة كبيرة واحدة - بروتوكول HTTPS. في الأيام الخوالي ، لم تكن هناك مشاكل خاصة مع بروكسي HTTP الشفاف ، ولكن عند بروكسي HTTPS ، أبلغت المتصفحات عن تداخل مع البروتوكول ، وهنا تنتهي السعادة.

وفقًا لتعليمات عامة على الخادم الوكيل ، تقدم Squid حتى إنشاء شهادة خاصة بها وتثبيتها للعملاء ، وهو أمر لا معنى له على الأقل غير عقلاني ويبدو أنه هجوم MITM. أعرف أن Squid يعرف بالفعل كيفية القيام بشيء من هذا القبيل ، ولكن هذه المقالة تدور حول طريقة مجربة وعملية باستخدام 3proxy من 3APA3A المحترم.

بعد ذلك ، سوف نلقي نظرة فاحصة على عملية بناء 3proxy من المصدر ، وتكوينه ، والوكيل الكامل والانتقائي باستخدام NAT ، وتوزيع القنوات على عدة خوادم بروكسي خارجية ، واستخدام جهاز توجيه وطرق ثابتة. نستخدم Debian 9 x64 كنظام تشغيل. لنبدأ!

تثبيت 3proxy وبدء خادم وكيل منتظم


1. تثبيت ifconfig (من حزمة أدوات الشبكة)
apt-get install net-tools
2. تثبيت قائد Midnigth
apt-get install mc
3. لدينا الآن 2 واجهات:
enp0s3 - خارجي ، يبدو على الإنترنت
enp0s8 - داخلي ، يجب أن ننظر إلى شبكة محلية
في توزيعات أخرى تعتمد على دبيان ، عادة ما تسمى واجهات eth0 و eth1.
ifconfig -a

واجهات
enp0s3: flags = 4163 <UP ، و BROADCAST ، RUNNING ، MULTICAST> mtu 1500
آينت 192.168.23.11 قناع الشبكة 255.255.255.0 البث 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: bae4 prefixlen 64 rangeid 0x20 ether 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
حزم RX 6412 بايت 8676619 (8.2 ميغا بايت)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 1726 بايت 289128 (282.3 كيلوبايت)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

enp0s8: إشارات = 4098 <البث ، MULTICAST> mtu 1500
الأثير 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
رزم RX 0 بايت 0 (0.0 B)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 0 بايت 0 (0.0 B)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

lo: flags = 73 <UP ، LOOPBACK ، RUNNING> mtu 65536
آينت 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 prefixlen 128 rangeid 0x10 loop txqueuelen 1 (Local Loopback)
رزم RX 0 بايت 0 (0.0 B)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 0 بايت 0 (0.0 B)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

لا يتم استخدام واجهة enp0s8 حاليًا ، وسوف نقوم بتمكينها عندما نريد استخدام تكوين وكيل أو NAT. ثم يكون من المنطقي تعيين عنوان IP ثابت له.

4. انتقل إلى تثبيت 3proxy

4.1 تثبيت الحزم الأساسية لتجميع 3proxy من المصدر

root@debian9:~# apt-get install build-essential libevent-dev libssl-dev -y

4.2. قم بإنشاء مجلد لتنزيل الأرشيف مع المصدر

root@debian9:~# mkdir -p /opt/proxy

4.3. دعنا نذهب إلى هذا المجلد

root@debian9:~# cd /opt/proxy


4.4. الآن قم بتنزيل أحدث حزمة 3proxy. في وقت كتابة هذا التقرير ، كان أحدث إصدار مستقر هو 0.8.12 (04/18/2018) قم بتنزيله من موقع الويب الرسمي 3proxy

root@debian9:/opt/proxy# wget https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz


4.5. قم بفك ضغط الأرشيف الذي تم تنزيله

root@debian9:/opt/proxy# tar zxvf 0.8.12.tar.gz

4.6. انتقل إلى الدليل الذي تم فك حزمه لإنشاء البرنامج

root@debian9:/opt/proxy# cd 3proxy-0.8.12

4.7. بعد ذلك ، تحتاج إلى إضافة سطر إلى ملف الرأس بحيث يكون خادمنا مجهول الهوية تمامًا (يعمل حقًا ، كل شيء محدد ، عملاء بروتوكول الإنترنت مخفيون)

root@debian9:/opt/proxy/3proxy-0.8.12# nano +29 src/proxy.h

أضف خط

#define ANONYMOUS 1

اضغط على Ctrl + x وأدخل لحفظ التغييرات.

4.8. دعنا نبني البرنامج

root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux

Makelog
make [2]: دليل الخروج '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin'
make [1]: دليل الخروج '/opt/proxy/3proxy-0.8.12/src'

لا توجد أخطاء ، تابع.

4.9. تثبيت البرنامج في النظام

root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux install

4.10. انتقل إلى الدليل الجذر وتحقق من مكان تثبيت البرنامج.

root@debian9:/opt/proxy/3proxy-0.8.12# cd ~/
root@debian9:~# whereis 3proxy

3proxy: / usr / local / bin / 3proxy / usr / local / etc / 3proxy

4.11. قم بإنشاء مجلد لملفات التكوين وسجلات في الدليل الرئيسي للمستخدم

root@debian9:~# mkdir -p /home/joke/proxy/logs

4.12. انتقل إلى الدليل حيث يجب أن يكون التكوين

root@debian9:~# cd /home/joke/proxy/

4.13. إنشاء ملف فارغ ونسخ التكوين هناك

root@debian9:/home/joke/proxy# cat > 3proxy.conf

3proxy.conf
الخفي
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
اختبار المستخدمين: CL: 1234
مهلات 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- + _L٪ t.٪.٪ N.٪ p٪ E٪ U٪ C:٪ c٪ R:٪ r٪ O٪ I٪ h٪ T"
تدوير 3
مصادقة قوية
فورة
السماح للاختبار
الجوارب - MP3128
الوكيل -8080

للحفظ ، اضغط على Ctrl + Z

4.14. قم بإنشاء ملف pid بحيث لا توجد أخطاء عند بدء التشغيل.

root@debian9:/home/joke/proxy# cat > 3proxy.pid

للحفظ ، اضغط على Ctrl + Z

4.15. إطلاق خادم وكيل!

root@debian9:/home/joke/proxy# 3proxy /home/joke/proxy/3proxy.conf

4.16. دعونا نرى ما إذا كان الخادم يستمع على المنافذ

root@debian9:~/home/joke/proxy# netstat -nlp

سجل نتستت
اتصالات الإنترنت النشطة (الخوادم فقط)
Proto Recv-Q Send-Q العنوان المحلي ، العنوان الخارجي ، الدولة ، اسم البرنامج ، اسم البرنامج
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 504 / 3proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 338 / sshd
tcp 0 0 0.0.0.0lla128 0.0.0.0:* LISTEN 504 / 3proxy
tcp6 0 0 ::: 22 ::: * الاستماع 338 / sshd
UDP 0 0 0.0.0.0:68 0.0.0.0:* 352 / dhclient

كما تمت كتابته في التكوين ، يستمع وكيل الويب إلى المنفذ 8080 ، ويستمع وكيل Socks5 إلى 3128.

4.17. لبدء تشغيل خدمة البروكسي بعد إعادة التشغيل ، أضفها إلى cron.

root@debian9:/home/joke/proxy# crontab -e

أضف خط

@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxy.conf

اضغط على Enter ، حيث يجب أن يرى cron نهاية حرف السطر وحفظ الملف.

يجب أن تكون هناك رسالة حول تثبيت crontab جديد.

crontab: تثبيت crontab جديد

4.18. سنقوم بإعادة تشغيل النظام ونحاول الاتصال من خلال المتصفح بالوكيل. للتحقق ، نستخدم متصفح Firefox (وكيل الويب) و FoxyProxy الوظيفة الإضافية للجوارب 5 مع المصادقة.

root@debian9:/home/joke/proxy# reboot

4.19. بعد التحقق من الوكيل بعد إعادة التشغيل ، يمكنك رؤية السجلات. هذا يكمل إعداد الوكيل.

3 سجل الوكيل
1542573996.018 PROXY.8080 00000 tester 192.168.23.10:50915 217.12.15.54ced43 1193 6939 0 CONNECT_ads.yahoo.com:443_HTTP/1.1
1542574289.634 SOCK5.3128 00000 tester 192.168.23.10/101193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443

تكوين وتشغيل تكوين وكيل شفاف


في هذا التكوين ، ستعمل جميع الأجهزة على الشبكة الداخلية بشفافية على الإنترنت من خلال خادم وكيل بعيد. بالتأكيد سيتم إعادة توجيه جميع اتصالات tcp إلى واحد أو عدة (توسيع نطاق عرض القناة ، مثال التكوين رقم 2!) خوادم بروكسي. سيستخدم DNS قدرات 3proxy (dnspr). لن يخرج UDP لأننا لم نستخدم آلية إعادة التوجيه (يتم تعطيلها افتراضيًا في نواة Linux).

1. لقد حان الوقت لتمكين واجهة enp0s8

root@debian9:~# nano /etc/network/interfaces

/ الخ / شبكة / ملف واجهات
# يصف هذا الملف واجهات الشبكة المتوفرة على نظامك
# وكيفية تفعيلها. لمزيد من المعلومات ، انظر واجهات (5).

المصدر /etc/network/interfaces.d/*

# واجهة شبكة الاسترجاع
لو السيارات
iface لو آينت استرجاع

# واجهة الشبكة الأساسية
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# واجهة الشبكة الثانوية
allow-hotplug enp0s8
iface enp0s8 inet ثابت
العنوان 192.168.201.254
قناع الشبكة 255.255.255.0

هنا قمنا بتعيين عنوان ثابت 192.168.201.254 وقناع 255.255.255.0 لواجهة enp0s8
حفظ التكوين Ctrl + X وإعادة التشغيل

root@debian9:~# reboot

2. التحقق من واجهات

root@debian9:~# ifconfig

سجل ifconfig
enp0s3: flags = 4163 <UP ، و BROADCAST ، RUNNING ، MULTICAST> mtu 1500
آينت 192.168.23.11 قناع الشبكة 255.255.255.0 البث 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: bae4 prefixlen 64 rangeid 0x20 ether 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
حزم RX 61 بايت 7873 (7.6 كيلو بايت)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 65 بايت 10917 (10.6 كيلوبايت)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

enp0s8: flags = 4163 <UP ، و BROADCAST ، RUNNING ، MULTICAST> mtu 1500
آينت 192.168.201.254 قناع الشبكة 255.255.255.0 البث 192.168.201.255
inet6 fe80 :: a00: 27ff: fe79: a7e3 prefixlen 64 rangeid 0x20 ether 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
رزم RX 0 بايت 0 (0.0 B)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 8 بايت 648 (648.0 B)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

lo: flags = 73 <UP ، LOOPBACK ، RUNNING> mtu 65536
آينت 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 prefixlen 128 rangeid 0x10 loop txqueuelen 1 (Local Loopback)
رزم RX 0 بايت 0 (0.0 B)
أخطاء RX 0 انخفضت 0 تجاوزات 0 إطار 0
حزم TX 0 بايت 0 (0.0 B)
أخطاء TX 0 انخفضت 0 تجاوزات 0 ناقل 0 تصادم 0

3. تحول كل شيء ، والآن تحتاج إلى تكوين 3proxy للوكيل شفافة.

root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf


مثال تكوين خادم وكيل شفاف # 1
الخفي
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
مهلات 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- + _L٪ t.٪.٪ N.٪ p٪ E٪ U٪ C:٪ c٪ R:٪ r٪ O٪ I٪ h٪ T"
تدوير 3
فورة
مصادقة iponly
dnspr
اسمح *
الأصل 1000 socks5 IP_EXTERNAL_PROXY 3128 اختبار 1234
البرنامج المساعد /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

4. الآن قم بتشغيل 3proxy باستخدام التكوين الجديد
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

5. إضافة crontab مرة أخرى
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf


6. دعنا نرى ما يستمع إليه وكيلنا الآن
root@debian9:~# netstat -nlp


سجل نتستت
اتصالات الإنترنت النشطة (الخوادم فقط)
Proto Recv-Q Send-Q العنوان المحلي ، العنوان الخارجي ، الدولة ، اسم البرنامج ، اسم البرنامج
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 349 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 354 / 3proxy
tcp6 0 0 ::: 22 ::: * الاستماع 349 / sshd
UDP 0 0 0.0.0.0:53 0.0.0.0:* 354 / 3proxy
UDP 0 0 0.0.0.0:68 0.0.0.0:* 367 / dhclient

7. الآن الوكيل جاهز لقبول أي اتصالات TCP على المنفذ 888 ، DNS على المنفذ 53 ، بحيث يمكن بعد ذلك إعادة توجيههم إلى الجوارب عن بعد 5 - وكيل Google و DNS 8.8.8.8. يبقى لنا أن تكوين قواعد netfilter (iptables) و DHCP لإصدار عناوين.

8. قم بتثبيت الحزمة iptables-persistent و dhcpd

root@debian9:~# apt-get install iptables-persistent isc-dhcp-server

9. قم بتحرير ملف بدء تشغيل dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf

dhcpd.conf
# dhcpd.conf
#
# ملف التكوين عينة ل ISC dhcpd
#

# تعريفات الخيار الشائعة لجميع الشبكات المدعومة ...
اسم نطاق الخيار "example.org" ؛
الخيار اسم المجال خوادم ns1.example.org ، ns2.example.org ؛

وقت التأجير الافتراضي 600 ؛
مدة التأجير القصوى 7200 ؛

ddns- تحديث نمط لا شيء.

# إذا كان خادم DHCP هذا هو خادم DHCP الرسمي للمحلي
# الشبكة ، يجب أن يكون التوجيه الرسمي غير مكتمل.

موثوقة.

# تكوين مختلف قليلا لشبكة فرعية داخلية.
الشبكة الفرعية 192.168.201.0 قناع الشبكة 255.255.255.0 {
النطاق 192.168.201.10 192.168.201.250 ؛
الخيار اسم المجال خوادم 192.168.201.254 ؛
أجهزة التوجيه الخيار 192.168.201.254 ؛
الخيار بث عنوان 192.168.201.255.
وقت التأجير الافتراضي 600 ؛
مدة التأجير القصوى 7200 ؛
}

11. أعد تشغيل وتحقق من الخدمة على المنفذ 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp


سجل نتستت
اتصالات الإنترنت النشطة (الخوادم فقط)
Proto Recv-Q Send-Q العنوان المحلي ، العنوان الخارجي ، الدولة ، اسم البرنامج ، اسم البرنامج
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 389 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 310 / 3proxy
tcp6 0 0 ::: 22 ::: * الاستماع 389 / sshd
udp 0 0 0.0.0.0:20364 0.0.0.0:* 393 / dhcpd
UDP 0 0 0.0.0.0:53 0.0.0.0:* 310 / 3proxy
udp 0 0 0.0.0.0:67 0.0.0.0:* 393 / dhcpd
UDP 0 0 0.0.0.0:68 0.0.0.0:* 405 / dhclient
udp6 0 0 ::: 31728 ::: * 393 / dhcpd
raw 0 0 0.0.0.0:1 0.0.0.0:* 393 / dhcpd


12. يبقى لإعادة توجيه جميع طلبات TCP إلى المنفذ 888 وحفظ القاعدة في iptables

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -p tcp -j REDIRECT --to-ports 888

root@debian9:~# iptables-save > /etc/iptables/rules.v4

13. لتوسيع عرض النطاق الترددي للقناة ، يمكنك استخدام عدة خوادم بروكسي في آن واحد. يجب أن يكون المبلغ الإجمالي 1000. يتم إنشاء اتصالات جديدة باحتمال 0.2 ، 0.2 ، 0.2 ، 0.2 ، 0.1 ، 0.1 للخوادم الوكيلة المحددة.

ملاحظة: إذا كان لدينا وكيل ويب ، فبدلاً من socks5 ، تحتاج إلى كتابة الاتصال ، إذا socks4 ، ثم socks4 (socks4 لا تدعم تسجيل الدخول / تخويل كلمة المرور!)

شفافة التكوين خادم وكيل المثال رقم 2
الخفي
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
ماكسكون 500
مهلات 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- + _L٪ t.٪.٪ N.٪ p٪ E٪ U٪ C:٪ c٪ R:٪ r٪ O٪ I٪ h٪ T"
تدوير 3
فورة
مصادقة iponly
dnspr
اسمح *

الأصل 200 socks5 IP_EXT_EXT_PROXY # 1 3128 اختبار 1234
الأصل 200 socks5 IP_EXT_EXT_PROXY # 2 3128 اختبار 1234
الأصل 200 socks5 IP_EXT_EXT_PROXY # 3 3128 اختبار 1234
الأصل 200 socks5 IP_EXT_EXT_PROXY # 4 3128 اختبار 1234
الأصل 100 socks5 IP_EXT_EXT_PROXY # 5 3128 اختبار 1234
الأصل 100 socks5 IP_EXT_EXT_PROXY # 6 3128 اختبار 1234

البرنامج المساعد /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

تكوين وتشغيل تكوين NAT + وكيل شفاف


في هذا التكوين ، سوف نستخدم آلية NAT المعتادة مع وكيل انتقائي أو كامل شفاف للعناوين الفردية أو الشبكات الفرعية. سيعمل مستخدمو الشبكة الداخلية مع بعض الخدمات / الشبكات الفرعية دون أن يدركوا أنهم يعملون من خلال وكيل. تعمل جميع اتصالات https بشكل جيد ، ولا يلزم إنشاء / استبدال شهادات.

أولاً ، نقرر الشبكات الفرعية / الخدمات التي نريد أن نوفرها. لنفترض أن الوكلاء الخارجيين موجودون حيث تعمل خدمة مثل pandora.com. الآن يبقى لتحديد الشبكة الفرعية / العنوان.

1. بينغ

root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56 (84) بايت من البيانات.

2. نكتب في جوجل BGP 208.85.40.20

انتقل إلى موقع الويب bgp.he.net/net/208.85.40.0/24#_netinfo
يمكنك أن ترى أنني أبحث عن الشبكة الفرعية وهي AS40428 Pandora Media، Inc

bgp.he.net/net/208.85.40.0/24#_netinfo

فتح بادئات v4

bgp.he.net/AS40428#_prefixes

فيما يلي الشبكات الفرعية المطلوبة!

199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
199.116.164.0/24
199.116.165.0/24
208.85.40.0/24
208.85.41.0/24
208.85.42.0/23
208.85.42.0/24
208.85.43.0/24
208.85.44.0/24
208.85.46.0/23
208.85.46.0/24
208.85.47.0/24

3. لتقليل عدد الشبكات الفرعية ، يجب إجراء التجميع. انتقل إلى ip-calculator.ru/aggregate وانسخ قائمتنا هناك. نتيجة لذلك - 6 شبكات فرعية بدلاً من 14.

199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
208.85.40.0/22
208.85.44.0/24
208.85.46.0/23

4. قواعد iptables واضحة

root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X


تمكين الأمام و NAT

root@debian9:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@debian9:~# iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
root@debian9:~# iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
root@debian9:~# iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.201.0/24 -j MASQUERADE


بحيث يكون للأمام دائمًا بعد إعادة التشغيل ، قم بتغيير الملف

root@debian9:~# nano /etc/sysctl.conf

و uncomment الخط

net.ipv4.ip_forward = 1

Ctrl + X لحفظ الملف

5. نحن التفاف الشبكة الفرعية pandora.com في الوكيل

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888

6. حفظ القواعد

root@debian9:~# iptables-save > /etc/iptables/rules.v4

تكوين وتشغيل وكيل شفاف عبر تكوين جهاز التوجيه


في هذا التكوين ، يمكن أن يكون الخادم الوكيل الشفاف جهاز كمبيوتر منفصلًا أو جهازًا افتراضيًا وراء جهاز توجيه الشركة / المنزل. يكفي تسجيل مسارات ثابتة على جهاز التوجيه أو الأجهزة وستستخدم الشبكة الفرعية بالكامل الوكلاء دون الحاجة إلى أي إعدادات إضافية.

! هام من الضروري أن تستقبل البوابة الخاصة بنا عنوان IP ثابتًا من جهاز التوجيه ، أو أن تتم تهيئته للاستاتيكي نفسه.

1. تكوين عنوان بوابة ثابت (محول enp0s3)

root@debian9:~# nano /etc/network/interfaces

/ الخ / شبكة / ملف واجهات
# يصف هذا الملف واجهات الشبكة المتوفرة على نظامك
# وكيفية تفعيلها. لمزيد من المعلومات ، انظر واجهات (5).

المصدر /etc/network/interfaces.d/*

# واجهة شبكة الاسترجاع
لو السيارات
iface لو آينت استرجاع

# واجهة الشبكة الأساسية
allow-hotplug enp0s3
iface enp0s3 inet ثابت
العنوان 192.168.23.2
قناع الشبكة 255.255.255.0
بوابة 192.168.23.254

# واجهة الشبكة الثانوية
allow-hotplug enp0s8
iface enp0s8 inet ثابت
العنوان 192.168.201.254
قناع الشبكة 255.255.255.0

2. اسمح للأجهزة من الشبكة الفرعية 192.168.23.0/24 باستخدام الوكيل

root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.23.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888

3. حفظ القواعد
root@debian9:~# iptables-save > /etc/iptables/rules.v4

4. سنقوم بتسجيل الشبكات الفرعية على جهاز التوجيه

قائمة شبكة التوجيه
199.116.161.0 255.255.255.0 192.168.23.2
199.116.162.0 255.255.255.0 192.168.23.2
199.116.164.0 255.255.254.0 192.168.23.2
208.85.40.0 255.255.252.0 192.168.23.2
208.85.44.0 255.255.255.0 192.168.23.2
208.85.46.0 255.255.254.0 192.168.23.2

المواد / الموارد المستخدمة


1. الموقع الرسمي لبرنامج 3proxy 3proxy.ru

2. تعليمات التثبيت ل 3proxy من المصدر www.ekzorchik.ru/2015/02/02/how-to-take-your-socks-proxy

3. فرع مطور 3proxy على github github.com/z3APA3A/3proxy/issues/274

Source: https://habr.com/ru/post/ar460469/


All Articles