3proxy اور iptables/netfilter کا استعمال کرتے ہوئے شفاف پراکسینگ کی بنیادی باتیں یا "ہر چیز کو پراکسی کے ذریعے ڈالنے" کا طریقہ

اس آرٹیکل میں میں شفاف پراکسینگ کے امکانات کو ظاہر کرنا چاہوں گا، جو آپ کو کلائنٹس کی طرف سے بالکل غیر دھیان کیے گئے بیرونی پراکسی سرورز کے ذریعے ٹریفک کے تمام یا کچھ حصے کو ری ڈائریکٹ کرنے کی اجازت دیتا ہے۔

جب میں نے اس مسئلے کو حل کرنا شروع کیا تو مجھے اس حقیقت کا سامنا کرنا پڑا کہ اس کے نفاذ میں ایک اہم مسئلہ تھا - HTTPS پروٹوکول۔ اچھے پرانے دنوں میں، شفاف HTTP پراکسینگ کے ساتھ کوئی خاص مسئلہ نہیں تھا، لیکن HTTPS پراکسینگ کے ساتھ، براؤزر پروٹوکول میں مداخلت کی اطلاع دیتے ہیں اور یہیں سے خوشی ختم ہوجاتی ہے۔

Squid پراکسی سرور کے لیے عام ہدایات میں، وہ یہاں تک کہ آپ کا اپنا سرٹیفکیٹ تیار کرنے اور اسے کلائنٹس پر انسٹال کرنے کا مشورہ دیتے ہیں، جو کہ کم از کم مکمل بکواس ہے، غیر معقول اور MITM حملے کی طرح لگتا ہے۔ میں جانتا ہوں کہ Squid پہلے سے ہی کچھ ایسا ہی کر سکتا ہے، لیکن یہ مضمون قابل احترام 3APA3A سے 3proxy کا استعمال کرتے ہوئے ثابت شدہ اور کام کرنے والے طریقہ کے بارے میں ہے۔

اس کے بعد، ہم ماخذ سے 3 پراکسی بنانے کے عمل، اس کی ترتیب، NAT کا استعمال کرتے ہوئے مکمل اور سلیکٹیو پراکسینگ، کئی بیرونی پراکسی سرورز پر چینل کی تقسیم کے ساتھ ساتھ روٹر اور سٹیٹک روٹس کے استعمال پر تفصیل سے غور کریں گے۔ ہم Debian 9 x64 کو بطور OS استعمال کرتے ہیں۔ شروع کرو!

3 پراکسی انسٹال کرنا اور باقاعدہ پراکسی سرور چلانا

1. ifconfig انسٹال کریں (نیٹ ٹولز پیکج سے)
apt-get install net-tools
2. آدھی رات کا کمانڈر انسٹال کریں۔
apt-get install mc
3. اب ہمارے پاس 2 انٹرفیس ہیں:
enp0s3 - بیرونی، انٹرنیٹ کو دیکھتا ہے۔
enp0s8 - اندرونی، مقامی نیٹ ورک کو دیکھنا ضروری ہے۔
دیگر ڈیبین پر مبنی تقسیم پر انٹرفیس کو عام طور پر eth0 اور eth1 کا نام دیا جاتا ہے۔
ifconfig -a

انٹرفیسزenp0s3: flags=4163 ایم ٹی یو 1500
inet 192.168.23.11 نیٹ ماسک 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 MiB)
RX کی غلطیاں 0 گرا 0 اووررنز 0 فریم 0
TX پیکٹ 1726 بائٹس 289128 (282.3 KiB)
TX کی غلطیاں 0 گرا 0 overruns 0 کیریئر 0 تصادم 0

enp0s8: flags=4098 ایم ٹی یو 1500
ایتھر 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 overruns 0 کیریئر 0 تصادم 0

lo: flags=73 ایم ٹی یو 65536
انیٹ 127.0.0.1 نیٹ ماسک 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (مقامی لوپ بیک)
RX پیکٹ 0 بائٹس 0 (0.0 B)
RX کی غلطیاں 0 گرا 0 اووررنز 0 فریم 0
TX پیکٹ 0 بائٹس 0 (0.0 B)
TX کی غلطیاں 0 گرا 0 overruns 0 کیریئر 0 تصادم 0

enp0s8 انٹرفیس فی الحال استعمال نہیں کیا گیا ہے، جب ہم Proxy NAT یا NAT کنفیگریشن استعمال کرنا چاہیں گے تو ہم اسے فعال کریں گے۔ تب یہ ہے کہ اسے ایک جامد 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 پروگرام بنانے کے لیے غیر پیک شدہ ڈائرکٹری پر جائیں۔

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 اور Enter دبائیں

4.8 آئیے پروگرام کو جمع کرنا شروع کریں۔

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

میکلوگبنائیں[2]: ڈائریکٹری چھوڑنا '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin'
بنائیں[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
لاگ فارمیٹ "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
گھمائیں 3
auth مضبوط
پھول
ٹیسٹر کی اجازت دیں
جرابیں -p3128
proxy -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

netstat لاگفعال انٹرنیٹ کنیکشن (صرف سرور)
Proto Recv-Q Send-Q مقامی پتہ غیر ملکی پتہ ریاست PID/پروگرام کا نام
tcp 0 0 0.0.0.0:8080 0.0.0.0:* سنیں 504/3proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* سنیں 338/sshd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* سنیں 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 ریبوٹ کے بعد پراکسی سروس کو خود بخود شروع کرنے کے لیے، آپ کو اسے کرون میں شامل کرنے کی ضرورت ہے۔

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

ایک لائن شامل کریں۔

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

ہم Enter دباتے ہیں، کیونکہ کرون کو لائن کریکٹر کا اختتام نظر آنا چاہیے، اور فائل کو محفوظ کرنا چاہیے۔

ایک نیا کرونٹاب انسٹال کرنے کے بارے میں ایک پیغام ہونا چاہئے۔

crontab: نیا crontab انسٹال کرنا

4.18۔ آئیے سسٹم کو ریبوٹ کریں اور براؤزر کے ذریعے پراکسی سے جڑنے کی کوشش کریں۔ چیک کرنے کے لیے، ہم توثیق کے ساتھ Firefox براؤزر (ویب پراکسی کے لیے) اور Socks5 کے لیے FoxyProxy ایڈ آن استعمال کرتے ہیں۔

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:443: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

شفاف پراکسی NAT کنفیگریشن کو ترتیب دینا اور چلانا

اس ترتیب میں، اندرونی نیٹ ورک پر موجود تمام آلات انٹرنیٹ پر ریموٹ پراکسی سرور کے ذریعے شفاف طریقے سے کام کریں گے۔ بالکل تمام TCP کنکشنز کو ایک یا زیادہ پر ری ڈائریکٹ کیا جائے گا (واقعی چینل کی چوڑائی کو بڑھاتا ہے، کنفیگریشن مثال نمبر 2!) پراکسی سرورز۔ DNS سروس 3proxy (dnspr) صلاحیتوں کا استعمال کرے گی۔ UDP باہر کی طرف نہیں جائے گا، کیونکہ ہم ابھی تک فارورڈ میکانزم استعمال نہیں کر رہے ہیں (لینکس کرنل میں ڈیفالٹ کے ذریعے غیر فعال)۔

1. enp0s8 انٹرفیس کو فعال کرنے کا وقت آگیا ہے۔

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

/etc/network/interfaces فائل# یہ فائل آپ کے سسٹم پر دستیاب نیٹ ورک انٹرفیس کی وضاحت کرتی ہے۔
# اور انہیں چالو کرنے کا طریقہ۔ مزید معلومات کے لیے، انٹرفیس (5) دیکھیں۔

ماخذ /etc/network/interfaces.d/*

# لوپ بیک نیٹ ورک انٹرفیس
آٹو لو
iface لو inet لوپ بیک

# بنیادی نیٹ ورک انٹرفیس
اجازت-ہاٹ پلگ enp0s3
iface enp0s3 inet dhcp

# ثانوی نیٹ ورک انٹرفیس
اجازت-ہاٹ پلگ enp0s8
iface enp0s8 inet جامد
ایڈریس 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

ifconfig لاگenp0s3: flags=4163 ایم ٹی یو 1500
inet 192.168.23.11 نیٹ ماسک 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 KiB)
RX کی غلطیاں 0 گرا 0 اووررنز 0 فریم 0
TX پیکٹ 65 بائٹس 10917 (10.6 KiB)
TX کی غلطیاں 0 گرا 0 overruns 0 کیریئر 0 تصادم 0

enp0s8: flags=4163 ایم ٹی یو 1500
inet 192.168.201.254 نیٹ ماسک 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 overruns 0 کیریئر 0 تصادم 0

lo: flags=73 ایم ٹی یو 65536
انیٹ 127.0.0.1 نیٹ ماسک 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (مقامی لوپ بیک)
RX پیکٹ 0 بائٹس 0 (0.0 B)
RX کی غلطیاں 0 گرا 0 اووررنز 0 فریم 0
TX پیکٹ 0 بائٹس 0 (0.0 B)
TX کی غلطیاں 0 گرا 0 overruns 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
لاگ فارمیٹ "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
گھمائیں 3
پھول
auth iponly
ڈی این ایس پی آر
اجازت دیں*
پیرنٹ 1000 جرابیں 5 IP_ADDRESS OF EXTERNAL_PROXY 3128 ٹیسٹر 1234
plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

4. اب ہم نئی تشکیل کے ساتھ 3 پراکسی لانچ کرتے ہیں۔
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

5. دوبارہ کرونٹاب میں شامل کریں۔
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

6. آئیے دیکھتے ہیں کہ ہماری پراکسی اب کیا سن رہی ہے۔
root@debian9:~# netstat -nlp

netstat لاگفعال انٹرنیٹ کنیکشن (صرف سرور)
Proto Recv-Q Send-Q مقامی پتہ غیر ملکی پتہ ریاست PID/پروگرام کا نام
tcp 0 0 0.0.0.0:22 0.0.0.0:* سنیں 349/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* سنیں 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. اب پراکسی پورٹ 888، پورٹ 53 پر DNS پر کسی بھی TCP کنکشن کو قبول کرنے کے لیے تیار ہے، تاکہ انہیں پھر ریموٹ ساکس5 پراکسی اور ڈی این ایس گوگل 8.8.8.8 پر ری ڈائریکٹ کیا جا سکے۔ ہمیں صرف نیٹ فلٹر (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-update-style none;

# اگر یہ 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

netstat لاگفعال انٹرنیٹ کنیکشن (صرف سرور)
Proto Recv-Q Send-Q مقامی پتہ غیر ملکی پتہ ریاست PID/پروگرام کا نام
tcp 0 0 0.0.0.0:22 0.0.0.0:* سنیں 389/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* سنیں 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
خام 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd

12. باقی تمام ٹی سی پی کی درخواستوں کو پورٹ 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
nserver 8.8.8.8
nscache 65536
میکس کون 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
پھول
auth iponly
ڈی این ایس پی آر
اجازت دیں*

پیرنٹ 200 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 ٹیسٹر 1234
پیرنٹ 200 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 ٹیسٹر 1234
پیرنٹ 200 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 ٹیسٹر 1234
پیرنٹ 200 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 ٹیسٹر 1234
پیرنٹ 100 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 ٹیسٹر 1234
پیرنٹ 100 جرابیں 5 IP_ADDRESS_EXTERNAL_PROXY#6 3128 ٹیسٹر 1234

plugin /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

اور لائن کو غیر تبصرہ کریں۔

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

/etc/network/interfaces فائل# یہ فائل آپ کے سسٹم پر دستیاب نیٹ ورک انٹرفیس کی وضاحت کرتی ہے۔
# اور انہیں چالو کرنے کا طریقہ۔ مزید معلومات کے لیے، انٹرفیس (5) دیکھیں۔

ماخذ /etc/network/interfaces.d/*

# لوپ بیک نیٹ ورک انٹرفیس
آٹو لو
iface لو inet لوپ بیک

# بنیادی نیٹ ورک انٹرفیس
اجازت-ہاٹ پلگ enp0s3
iface enp0s3 inet جامد
ایڈریس 192.168.23.2
نیٹ ورکاس 255.255.255.0
گیٹ وے 192.168.23.254

# ثانوی نیٹ ورک انٹرفیس
اجازت-ہاٹ پلگ 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. 3 پراکسی پروگرام کی آفیشل ویب سائٹ 3proxy.ru

2. ماخذ سے 3 پراکسی انسٹال کرنے کی ہدایات www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. GitHub پر 3 پراکسی ڈویلپمنٹ برانچ github.com/z3APA3A/3proxy/issues/274

ماخذ: www.habr.com

نیا تبصرہ شامل کریں