اصول پروکسی شفاف با استفاده از 3proxy و iptables / netfilter یا نحوه "قرار دادن همه چیز از طریق یک پروکسی"

در این مقاله، من می‌خواهم امکانات پروکسی شفاف را نشان دهم، که به شما امکان می‌دهد بدون توجه به کلاینت‌ها، تمام یا بخشی از ترافیک را از طریق سرورهای پراکسی خارجی هدایت کنید.

وقتی شروع به حل این مشکل کردم، با این واقعیت مواجه شدم که اجرای آن یک مشکل مهم دارد - پروتکل HTTPS. در روزهای خوب گذشته، هیچ مشکل خاصی در پروکسی HTTP شفاف وجود نداشت، اما با پروکسی HTTPS، مرورگرها تداخل پروتکل را گزارش می‌کردند و اینجاست که خوشحالی به پایان می‌رسد.

در دستورالعمل‌های رایج برای سرور پراکسی Squid، آنها حتی پیشنهاد می‌کنند گواهی خود را تولید کنند و آن را روی کلاینت‌ها نصب کنند، که حداقل غیرمنطقی کامل است و مانند یک حمله MITM به نظر می‌رسد. من می دانم که Squid قبلاً می داند که چگونه کاری مشابه انجام دهد، اما این مقاله در مورد یک روش اثبات شده و کارآمد با استفاده از 3proxy از 3APA3A محترم است.

در مرحله بعد، نگاهی دقیق به فرآیند ساخت 3پراکسی از منبع، پیکربندی آن، پروکسی کامل و انتخابی با استفاده از NAT، توزیع کانال به چندین سرور پراکسی خارجی و همچنین استفاده از روتر و مسیرهای ثابت خواهیم داشت. ما از Debian 9 x64 به عنوان سیستم عامل استفاده می کنیم. شروع!

نصب 3پراکسی و اجرای یک پروکسی معمولی

1. ifconfig (از بسته net-tools) را نصب کنید
apt-get install net-tools
2. Midnigth Commander را نصب کنید
apt-get install mc
3. اکنون 2 رابط داریم:
enp0s3 - خارجی، به اینترنت نگاه می کند
enp0s8 - داخلی، باید به شبکه محلی نگاه کند
در سایر توزیع‌های مبتنی بر دبیان، رابط‌ها معمولا eth0 و eth1 نام‌گذاری می‌شوند.
ifconfig -a

واسطenp0s3: flags=4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 پخش 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (اترنت)
بسته های RX 6412 بایت 8676619 (8.2 مگابایت)
خطاهای RX 0 ریزش 0 بیش از حد 0 فریم 0
بسته های TX 1726 بایت 289128 (282.3 کیلوبایت)
خطاهای TX 0 ریزش 0 غلبه بر 0 حامل 0 برخورد 0

enp0s8: flags=4098 mtu 1500
ether 08:00:27:79:a7:e3 txqueuelen 1000 (اترنت)
بسته های 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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 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 یا NAT Proxy استفاده کنیم، آن را فعال می کنیم. پس از آن منطقی است که یک IP ثابت به آن اختصاص دهیم.

4. اجازه دهید شروع به نصب 3proxy کنیم

4.1 نصب بسته های پایه برای کامپایل 3 پروکسی از منبع

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. حالا بیایید آخرین بسته 3 پروکسی را دانلود کنیم. در زمان نگارش این مقاله، آخرین نسخه پایدار 0.8.12 (18/04/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. برای ساخت برنامه به دایرکتوری unpacked بروید

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

4.7. بعد، شما باید یک خط به فایل هدر اضافه کنید تا سرور ما کاملاً ناشناس باشد (واقعاً کار می کند، همه چیز بررسی می شود، IP های مشتری پنهان می شوند)

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

اضافه کردن یک خط

#define ANONYMOUS 1

برای ذخیره تغییرات Ctrl+x و Enter را فشار دهید.

4.8. بیایید برنامه را بسازیم

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

makelogmake[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 بروید و محل نصب برنامه را بررسی کنید

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

3پروکسی: /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
سرور 8.8.8.8
nscache 65536
تستر کاربر:CL:1234
تایم اوت 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
قالب لاگ "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
چرخش 3
اعتبار قوی
خیط و پیت کردن
اجازه آزمایشگر
جوراب -p3128
پروکسی -p8080

برای ذخیره، 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 آدرس محلی آدرس خارجی PID/نام برنامه
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.0:3128 0.0.0.0:* LISTEN 504/3proxy
tcp6 0 0 :::22 :::* LISTEN 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. بیایید سیستم را راه اندازی مجدد کنیم و سعی کنیم از طریق مرورگر به پروکسی متصل شویم. برای تأیید، ما از مرورگر فایرفاکس (برای یک پروکسی وب) و افزودنی FoxyProxy برای socks5 با احراز هویت استفاده می کنیم.

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

4.19. پس از بررسی کار پروکسی پس از راه اندازی مجدد، می توانید گزارش ها را مشاهده کنید. این کار راه اندازی سرور پروکسی را کامل می کند.

3 لاگ پروکسی1542573996.018 PROXY.8080 00000 تستر 192.168.23.10:50915 217.12.15.54:443 1193 6939 0 CONNECT_ads.yahoo.com.443TTP/1.1
1542574289.634 SOCK5.3128 00000 تستر 192.168.23.10:51193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443

راه اندازی و اجرای پیکربندی Transparent Proxy NAT

در این پیکربندی، تمام دستگاه های موجود در شبکه داخلی به طور شفاف از طریق یک سرور پراکسی راه دور در اینترنت کار می کنند. کاملاً تمام اتصالات tcp به یک یا چند سرور پراکسی هدایت می شوند (واقعاً عرض کانال را گسترش می دهد، مثال پیکربندی شماره 2!). سرویس DNS از قابلیت های 3پروکسی (dnspr) استفاده خواهد کرد. UDP خارج نمی شود، زیرا ما هنوز از مکانیزم فوروارد (به طور پیش فرض در هسته لینوکس غیرفعال شده) استفاده نمی کنیم.

1. زمان فعال کردن رابط enp0s8 فرا رسیده است

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

فایل /etc/network/interfaces/# این فایل رابط های شبکه موجود در سیستم شما را شرح می دهد
# و نحوه فعال کردن آنها. برای اطلاعات بیشتر، به رابط ها (5) مراجعه کنید.

منبع /etc/network/interfaces.d/*

# رابط شبکه Loopback
ماشینش کن
بازگشت به عقب iface lo inet

# رابط شبکه اصلی
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# رابط شبکه ثانویه
allow-hotplug enp0s8
iface enp0s8 inet static
آدرس 192.168.201.254
ماسک خالص 255.255.255.0

در اینجا ما به رابط enp0s8 یک آدرس ثابت 192.168.201.254 و یک ماسک 255.255.255.0 اختصاص دادیم.
تنظیمات Ctrl+X را ذخیره کرده و راه اندازی مجدد کنید

root@debian9:~# reboot

2. بررسی رابط ها

root@debian9:~# ifconfig

گزارش ifconfigenp0s3: flags=4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 پخش 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (اترنت)
بسته های RX 61 بایت 7873 (7.6 کیلوبایت)
خطاهای RX 0 ریزش 0 بیش از حد 0 فریم 0
بسته های TX 65 بایت 10917 (10.6 کیلوبایت)
خطاهای TX 0 ریزش 0 غلبه بر 0 حامل 0 برخورد 0

enp0s8: flags=4163 mtu 1500
inet 192.168.201.254 netmask 255.255.255.0 پخش 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64 scopeid 0x20 ether 08:00:27:79:a7:e3 txqueuelen 1000 (اترنت)
بسته های 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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 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
سرور 8.8.8.8
nscache 65536
تایم اوت 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
قالب لاگ "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
چرخش 3
خیط و پیت کردن
احراز هویت منحصر به فرد
dnspr
اجازه *
والدین 1000 socks5 IP_ADDRESS_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 آدرس محلی آدرس خارجی PID/نام برنامه
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 :::* LISTEN 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 است تا آنها را به socks5 راه دور - پراکسی و DNS Google 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
#

# تعریف گزینه مشترک برای همه شبکه های پشتیبانی شده…
گزینه domain-name "example.org";
گزینه domain-name-servers ns1.example.org, ns2.example.org;

زمان اجاره پیش فرض 600؛
حداکثر زمان اجاره 7200;

ddns-update-style هیچکدام.

# اگر این سرور DHCP سرور رسمی DHCP برای محلی است
شبکه #، بخشنامه معتبر باید بدون اظهار نظر باشد.

معتبر ؛

# پیکربندی کمی متفاوت برای یک زیرشبکه داخلی.
زیر شبکه 192.168.201.0 netmask 255.255.255.0 {
محدوده 192.168.201.10 192.168.201.250؛
گزینه domain-name-servers 192.168.201.254;
روترهای گزینه 192.168.201.254؛
گزینه Broadcast-address 192.168.201.255؛
زمان اجاره پیش فرض 600؛
حداکثر زمان اجاره 7200;
}

11. راه اندازی مجدد و بررسی سرویس در پورت 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp

نت استات لاگاتصالات اینترنتی فعال (فقط سرورها)
Proto Recv-Q Send-Q آدرس محلی آدرس خارجی PID/نام برنامه
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 :::* LISTEN 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
خام 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 باید بنویسید connect، اگر socks4، سپس socks4 (socks4 از مجوز ورود / گذرواژه پشتیبانی نمی کند!)

مثال پیکربندی پروکسی شفاف شماره 2روح پلید
pidfile /home/joke/proxy/3proxy.pid
سرور 8.8.8.8
nscache 65536
maxconn 500
تایم اوت 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
قالب لاگ "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
چرخش 3
خیط و پیت کردن
احراز هویت منحصر به فرد
dnspr
اجازه *

والدین 200 socks5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 تستر 1234
والدین 200 socks5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 تستر 1234
والدین 200 socks5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 تستر 1234
والدین 200 socks5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 تستر 1234
والدین 100 socks5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 تستر 1234
والدین 100 socks5 IP_ADDRESS_EXTERNAL_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 + Transparent Proxy

در این پیکربندی، ما از مکانیسم معمول 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

و خط را از نظر خارج کنید

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 ثابت از روتر دریافت کند یا برای خود static پیکربندی شود.

1. یک آدرس دروازه ایستا تنظیم کنید (آداپتور enp0s3)

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

فایل /etc/network/interfaces/# این فایل رابط های شبکه موجود در سیستم شما را شرح می دهد
# و نحوه فعال کردن آنها. برای اطلاعات بیشتر، به رابط ها (5) مراجعه کنید.

منبع /etc/network/interfaces.d/*

# رابط شبکه Loopback
ماشینش کن
بازگشت به عقب iface lo inet

# رابط شبکه اصلی
allow-hotplug enp0s3
iface enp0s3 inet static
آدرس 192.168.23.2
ماسک خالص 255.255.255.0
دروازه 192.168.23.254

# رابط شبکه ثانویه
allow-hotplug enp0s8
iface enp0s8 inet static
آدرس 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/how-to-toke-your-socks-proxy

3. شعبه توسعه دهنده 3 پروکسی در GitHub github.com/z3APA3A/3proxy/issues/274

منبع: www.habr.com

اضافه کردن نظر