3proxy va iptables/netfilter yordamida shaffof proksi-serverning asoslari yoki "hamma narsani proksi-server orqali o'rnatish"

Ushbu maqolada men mijozlar tomonidan mutlaqo sezilmaydigan tashqi proksi-serverlar orqali trafikning to'liq yoki bir qismini qayta yo'naltirish imkonini beruvchi shaffof proksi-serverning imkoniyatlarini ochib bermoqchiman.

Men ushbu muammoni hal qilishni boshlaganimda, men uni amalga oshirishda bitta muhim muammo - HTTPS protokoli mavjudligiga duch keldim. Qadimgi kunlarda shaffof HTTP proksi-server bilan bog'liq hech qanday maxsus muammolar yo'q edi, ammo HTTPS proksi-xizmati bilan brauzerlar protokolga aralashish haqida xabar berishadi va baxt shu erda tugaydi.

Squid proksi-serverining umumiy ko'rsatmalarida ular hatto o'z sertifikatingizni yaratishni va uni mijozlarga o'rnatishni taklif qilishadi, bu hech bo'lmaganda mutlaqo bema'nilik, mantiqsiz va MITM hujumiga o'xshaydi. Bilaman, Squid allaqachon shunga o'xshash narsani qila oladi, ammo bu maqola hurmatli 3APA3A dan 3proksi yordamida tasdiqlangan va ishlaydigan usul haqida.

Keyinchalik, manbadan 3proksi yaratish jarayonini, uning konfiguratsiyasini, NAT yordamida to'liq va tanlangan proksi-serverni, kanallarni bir nechta tashqi proksi-serverlarga taqsimlashni, shuningdek, yo'riqnoma va statik marshrutlardan foydalanishni batafsil ko'rib chiqamiz. Biz OT sifatida Debian 9 x64 dan foydalanamiz. Boshlanishi!

3proksi-ni o'rnatish va oddiy proksi-serverni ishga tushirish

1. ifconfig ni o'rnating (net-tools to'plamidan)
apt-get install net-tools
2. Midnight Commander dasturini o'rnating
apt-get install mc
3. Endi bizda 2 ta interfeys mavjud:
enp0s3 - tashqi, Internetga qaraydi
enp0s8 - ichki, mahalliy tarmoqqa qarash kerak
Boshqa Debian-ga asoslangan tarqatishlarda interfeyslar odatda eth0 va eth1 deb ataladi.
ifconfig -a

interfeyslarnienp0s3: bayroqlar = 4163 mtu 1500
inet 192.168.23.11 tarmoq maskasi 255.255.255.0 translyatsiya 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefiks 64 scopeid 0x20 efir 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX paketlari 6412 bayt 8676619 (8.2 MiB)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 1726 bayt 289128 (282.3 KiB)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

enp0s8: bayroqlar = 4098 mtu 1500
efir 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX paketlari 0 bayt 0 (0.0 B)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 0 bayt 0 (0.0 B)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

lo: bayroqlar = 73 mtu 65536
inet 127.0.0.1 tarmoq niqobi 255.0.0.0
inet6 ::1 prefiks 128 scopeid 0x10 halqa txqueuelen 1 (Mahalliy qayta tiklash)
RX paketlari 0 bayt 0 (0.0 B)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 0 bayt 0 (0.0 B)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

Enp0s8 interfeysi hozircha ishlatilmaydi, biz proksi NAT yoki NAT konfiguratsiyasidan foydalanmoqchi bo'lganimizda uni yoqamiz. Shunda unga statik IP belgilash mantiqan to'g'ri keladi.

4. 3proxy-ni o'rnatishni boshlaylik

4.1 Manbalardan 3proksi kompilyatsiya qilish uchun asosiy paketlarni o'rnatish

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

4.2. Keling, arxivni manbalar bilan yuklab olish uchun papka yarataylik

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

4.3. Keling, ushbu papkaga o'tamiz

root@debian9:~# cd /opt/proxy

4.4. Endi so'nggi 3proxy paketini yuklab olaylik. Yozish paytida eng so'nggi barqaror versiya 0.8.12 (18) 04proxy rasmiy veb-saytidan yuklab oling

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

4.5. Yuklab olingan arxivni ochamiz

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

4.6. Dasturni yaratish uchun ochilmagan katalogga o'ting

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

4.7. Keyinchalik, serverimiz to'liq anonim bo'lishi uchun sarlavha fayliga qator qo'shishimiz kerak (u haqiqatan ham ishlaydi, hamma narsa tekshiriladi, mijozning IP-lari yashiringan)

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

Bir qator qo'shing

#define ANONYMOUS 1

O'zgarishlarni saqlash uchun Ctrl+x va Enter tugmalarini bosing.

4.8. Keling, dasturni yig'ishni boshlaylik

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

Makelogmake[2]: “/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin” katalogini tark etilmoqda
make[1]: “/opt/proxy/3proxy-0.8.12/src” katalogini tark etilmoqda

Hech qanday xatolik yo'q, keling, davom etamiz.

4.9. Dasturni tizimga o'rnating

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

4.10. Ildiz katalogiga o'ting va dastur qaerga o'rnatilganligini tekshiring

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

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

4.11. Keling, foydalanuvchining uy katalogida konfiguratsiya fayllari va jurnallar uchun papka yarataylik

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

4.12. Konfiguratsiya bo'lishi kerak bo'lgan katalogga o'ting

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

4.13. Bo'sh fayl yarating va konfiguratsiyani u erda nusxalang

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

3proxy.confdaemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
foydalanuvchilar tester: CL: 1234
kutish vaqti 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. aylantirish
haqiqat kuchli
yuvish
sinovchiga ruxsat bering
paypoq - p3128
proksi -p8080

Saqlash uchun Ctrl + Z tugmalarini bosing

4.14. Ishga tushirish vaqtida xatolik bo'lmasligi uchun pid fayl yarataylik.

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

Saqlash uchun Ctrl + Z tugmalarini bosing

4.15. Proksi-serverni ishga tushiramiz!

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

4.16. Keling, server portlarni tinglayotganini ko'rib chiqaylik

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

netstat jurnaliFaol Internet ulanishlari (faqat serverlar)
Proto Recv-Q Send-Q Mahalliy manzil Xorijiy manzil Davlat PID/Dastur nomi
tcp 0 0 0.0.0.0:8080 0.0.0.0:* TINGLASH 504/3proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* TINGLASH 338/sshd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* TINGLASH 504/3proxy
tcp6 0 0 :::22 :::* TINGLASH 338/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 352/dhclient

Konfiguratsiyada yozilganidek, bizning veb-proksi-serverimiz 8080-portni, Socks5 proksi-serverimiz 3128-portni tinglaydi.

4.17. Qayta ishga tushirilgandan so'ng proksi-servisni avtomatik ishga tushirish uchun uni cron-ga qo'shishingiz kerak.

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

Bir qator qo'shing

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

Biz Enter tugmasini bosamiz, chunki cron satr oxiridagi belgini ko'rishi va faylni saqlashi kerak.

Yangi crontab o'rnatish haqida xabar bo'lishi kerak.

crontab: yangi crontab o'rnatilmoqda

4.18. Keling, tizimni qayta ishga tushiramiz va brauzer orqali proksi-serverga ulanishga harakat qilamiz. Tekshirish uchun biz Firefox brauzeridan (veb proksi-server uchun) va autentifikatsiyaga ega socks5 uchun FoxyProxy plaginidan foydalanamiz.

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

4.19. Qayta ishga tushirilgandan so'ng proksi-serverning ishlashini tekshirgandan so'ng, siz jurnallarni ko'rishingiz mumkin. Bu proksi-serverni sozlashni yakunlaydi.

3 proksi jurnali1542573996.018 PROXY.8080 00000 tester 192.168.23.10:50915 217.12.15.54:443 1193 6939 0 CONNECT_ads.yahoo.com/443_
1542574289.634 SOCK5.3128 00000 tester 192.168.23.10:51193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443

Transparent Proxy NAT konfiguratsiyasini o'rnatish va ishga tushirish

Ushbu konfiguratsiyada ichki tarmoqdagi barcha qurilmalar masofaviy proksi-server orqali Internetda shaffof ishlaydi. Mutlaqo barcha TCP ulanishlari bir yoki bir nechta proksi-serverlarga yo'naltiriladi (haqiqatan ham kanal kengligini kengaytiradi, konfiguratsiya misoli № 2!). DNS xizmati 3proxy (dnspr) imkoniyatlaridan foydalanadi. UDP tashqariga "ketmaydi", chunki biz hali oldinga o'tish mexanizmidan foydalanmayapmiz (Linux yadrosida sukut bo'yicha o'chirilgan).

1. Enp0s8 interfeysini yoqish vaqti keldi

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

/etc/network/interfaces fayli# Ushbu fayl tizimingizda mavjud tarmoq interfeyslarini tavsiflaydi
# va ularni qanday faollashtirish kerak. Qo'shimcha ma'lumot olish uchun interfeyslarga qarang(5).

manba /etc/network/interfaces.d/*

# Orqaga aylanish tarmog'i interfeysi
uni mashina
iface lo inet loopback

# Asosiy tarmoq interfeysi
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# Ikkilamchi tarmoq interfeysi
allow-hotplug enp0s8
iface enp0s8 inet statik
192.168.201.254 manzili
tarmoq niqobi 255.255.255.0

Bu erda biz enp0s8 interfeysiga statik manzil 192.168.201.254 va niqob 255.255.255.0ni tayinladik.
Ctrl+X konfiguratsiyasini saqlang va qayta yoqing

root@debian9:~# reboot

2. Interfeyslarni tekshirish

root@debian9:~# ifconfig

ifconfig jurnalienp0s3: bayroqlar = 4163 mtu 1500
inet 192.168.23.11 tarmoq maskasi 255.255.255.0 translyatsiya 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefiks 64 scopeid 0x20 efir 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX paketlari 61 bayt 7873 (7.6 KiB)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 65 bayt 10917 (10.6 KiB)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

enp0s8: bayroqlar = 4163 mtu 1500
inet 192.168.201.254 tarmoq maskasi 255.255.255.0 translyatsiya 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefiks 64 scopeid 0x20 efir 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX paketlari 0 bayt 0 (0.0 B)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 8 bayt 648 (648.0 B)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

lo: bayroqlar = 73 mtu 65536
inet 127.0.0.1 tarmoq niqobi 255.0.0.0
inet6 ::1 prefiks 128 scopeid 0x10 halqa txqueuelen 1 (Mahalliy qayta tiklash)
RX paketlari 0 bayt 0 (0.0 B)
RX xatolar 0 tushib ketdi 0 haddan tashqari yuk 0 kadr 0
TX paketlari 0 bayt 0 (0.0 B)
TX xatolari 0 tushib ketdi 0 ortiqcha yuk 0 tashuvchi 0 to'qnashuv 0

3. Hammasi amalga oshdi, endi shaffof proksi-server uchun 3proxy-ni sozlashingiz kerak.

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

Shaffof proksi-serverning №1 konfiguratsiyasi namunasidaemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
kutish vaqti 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. aylantirish
yuvish
auth iponly
dnspr
ruxsat berish *
ota-ona 1000 paypoq5 EXTERNAL_PROXY 3128 IP_ADDRESS tester 1234
plagin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111

4. Endi biz yangi konfiguratsiya bilan 3proxy-ni ishga tushiramiz
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

5. Crontab-ga yana qo'shing
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

6. Keling, bizning proksi-serverimiz hozir nimani tinglayotganini ko'rib chiqaylik
root@debian9:~# netstat -nlp

netstat jurnaliFaol Internet ulanishlari (faqat serverlar)
Proto Recv-Q Send-Q Mahalliy manzil Xorijiy manzil Davlat PID/Dastur nomi
tcp 0 0 0.0.0.0:22 0.0.0.0:* TINGLASH 349/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* TINGLASH 354/3proxy
tcp6 0 0 :::22 :::* TINGLASH 349/sshd
udp 0 0 0.0.0.0:53 0.0.0.0:* 354/3proksi
udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient

7. Endi proksi-server 888-portdagi har qanday TCP ulanishlarini, 53-portdagi DNS-ni qabul qilishga tayyor, shunda ularni masofaviy socks5 proksi-serveriga va Google 8.8.8.8 DNS-ga yo'naltirish mumkin. Biz qilishimiz kerak bo'lgan narsa - manzillarni berish uchun netfilter (iptables) va DHCP qoidalarini sozlash.

8. iptables-persistent va dhcpd paketini o'rnating

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

9. dhcpd ishga tushirish faylini tahrirlang
root@debian9:~# nano /etc/dhcp/dhcpd.conf

dhcpd.conf# dhcpd.conf
#
# ISC dhcpd uchun namuna konfiguratsiya fayli
#

Barcha qoʻllab-quvvatlanadigan tarmoqlar uchun umumiy # ta parametr taʼriflari…
variant domen nomi "example.org";
domen nomi-serverlari varianti ns1.example.org, ns2.example.org;

standart ijaraga berish muddati 600;
maksimal ijara muddati 7200;

ddns-yangilash uslubi yo'q;

# Agar ushbu DHCP server mahalliy uchun rasmiy DHCP server bo'lsa
# tarmoq, vakolatli direktiv izohsiz bo'lishi kerak.

vakolatli;

# Ichki pastki tarmoq uchun biroz boshqacha konfiguratsiya.
ichki tarmoq 192.168.201.0 tarmoq niqobi 255.255.255.0 {
192.168.201.10 192.168.201.250 oralig'i;
domen nomi-serverlari opsiyasi 192.168.201.254;
yo'riqnoma parametrlari 192.168.201.254;
opsiyali translyatsiya-manzil 192.168.201.255;
standart ijaraga berish muddati 600;
maksimal ijara muddati 7200;
}

11. 67-portda xizmatni qayta ishga tushiring va tekshiring
root@debian9:~# reboot
root@debian9:~# netstat -nlp

netstat jurnaliFaol Internet ulanishlari (faqat serverlar)
Proto Recv-Q Send-Q Mahalliy manzil Xorijiy manzil Davlat PID/Dastur nomi
tcp 0 0 0.0.0.0:22 0.0.0.0:* TINGLASH 389/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* TINGLASH 310/3proxy
tcp6 0 0 :::22 :::* TINGLASH 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/3proksi
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
xom 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd

12. Barcha tcp so‘rovlarini 888-portga yo‘naltirish va qoidani iptables-da saqlash qoladi.

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. Kanalning o'tkazish qobiliyatini kengaytirish uchun siz bir vaqtning o'zida bir nechta proksi-serverlardan foydalanishingiz mumkin. Jami 1000 ta bo'lishi kerak. Yangi ulanishlar ko'rsatilgan proksi-serverlarga 0.2, 0.2, 0.2, 0.2, 0,1, 0,1 ehtimollik bilan o'rnatiladi.

Eslatma: agar bizda veb-proksi-server bo'lsa, u holda biz paypoq5 o'rniga ulanishni yozishimiz kerak, agar paypoq4 bo'lsa, paypoq4 (paypoq4 LOGIN/PAROL AVTORIZATSIYASINI QO'LLAMAYDI!)

Shaffof proksi-serverning №2 konfiguratsiyasi namunasidaemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
kutish vaqti 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. aylantirish
yuvish
auth iponly
dnspr
ruxsat berish *

ota-ona 200 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 tester 1234
ota-ona 200 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 tester 1234
ota-ona 200 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 tester 1234
ota-ona 200 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 tester 1234
ota-ona 100 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 tester 1234
ota-ona 100 paypoq5 IP_ADDRESS_EXTERNAL_PROXY#6 3128 tester 1234

plagin /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 Proksi konfiguratsiyasini sozlash va ishga tushirish

Ushbu konfiguratsiyada biz odatiy NAT mexanizmidan individual manzillar yoki kichik tarmoqlarni tanlab yoki to'liq shaffof proksi-server bilan ishlatamiz. Ichki tarmoq foydalanuvchilari proksi-server orqali ishlayotganliklarini sezmasdan ham ma'lum xizmatlar/subnetlar bilan ishlaydi. Barcha https ulanishlari yaxshi ishlaydi, sertifikatlarni yaratish/almashtirish shart emas.

Birinchidan, keling, qaysi subnets/xizmatlarni proksi-serverdan foydalanmoqchi ekanligimizni hal qilaylik. Tashqi proksi-serverlar pandora.com kabi xizmat ishlaydigan joyda joylashgan deb faraz qilaylik. Endi uning pastki tarmoqlari/manzillarini aniqlash qoladi.

1. Ping

root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56(84) bayt ma'lumotlar.

2. Google-ga BGP 208.85.40.20 ni kiriting

Keling, saytga boramiz bgp.he.net/net/208.85.40.0/24#_netinfo
Ko'rinib turibdiki, men izlayotgan pastki tarmoq AS40428 Pandora Media, Inc

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

v4 prefikslari ochilmoqda

bgp.he.net/AS40428#_prefikslar

Mana kerakli pastki tarmoqlar!

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. Subtarmoqlar sonini kamaytirish uchun siz birlashtirishni amalga oshirishingiz kerak. Saytga o'ting ip-calculator.ru/aggregate va bizning ro'yxatimizni u erda nusxalash. Natijada - 6 o'rniga 14 ta pastki tarmoq.

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 qoidalarini tozalang

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

Oldinga va NAT mexanizmini yoqing

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

Qayta ishga tushirilgandan so'ng oldinga yo'naltirish doimiy ravishda yoqilganligiga ishonch hosil qilish uchun faylni o'zgartiraylik

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

Va qatorni izohdan olib tashlang

net.ipv4.ip_forward = 1

Faylni saqlash uchun Ctrl+X

5. Biz pandora.com subnetlarini proksi-serverga o'rab olamiz

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. Keling, qoidalarga rioya qilaylik

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

Router konfiguratsiyasi orqali Transparent Proksi-ni sozlash va ishga tushirish

Ushbu konfiguratsiyada shaffof proksi-server alohida shaxsiy kompyuter yoki uy/korporativ router ortidagi virtual mashina bo'lishi mumkin. Router yoki qurilmalarda statik marshrutlarni ro'yxatdan o'tkazish kifoya va butun quyi tarmoq hech qanday qo'shimcha sozlamalarni talab qilmasdan proksi-serverdan foydalanadi.

MUHIM! Bizning shlyuzimiz marshrutizatordan statik IP olishi yoki o'zi statik bo'lishi uchun tuzilgan bo'lishi kerak.

1. Statik shlyuz manzilini sozlang (enp0s3 adapteri)

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

/etc/network/interfaces fayli# Ushbu fayl tizimingizda mavjud tarmoq interfeyslarini tavsiflaydi
# va ularni qanday faollashtirish kerak. Qo'shimcha ma'lumot olish uchun interfeyslarga qarang(5).

manba /etc/network/interfaces.d/*

# Orqaga aylanish tarmog'i interfeysi
uni mashina
iface lo inet loopback

# Asosiy tarmoq interfeysi
allow-hotplug enp0s3
iface enp0s3 inet statik
192.168.23.2 manzili
tarmoq niqobi 255.255.255.0
gateway 192.168.23.254

# Ikkilamchi tarmoq interfeysi
allow-hotplug enp0s8
iface enp0s8 inet statik
192.168.201.254 manzili
tarmoq niqobi 255.255.255.0

2. 192.168.23.0/24 quyi tarmog‘idagi qurilmalarga proksi-serverdan foydalanishga ruxsat bering.

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. Keling, qoidalarga rioya qilaylik
root@debian9:~# iptables-save > /etc/iptables/rules.v4

4. Routerda quyi tarmoqlarni ro'yxatdan o'tkazamiz

Router tarmog'i ro'yxati199.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

Ishlatilgan materiallar/resurslar

1. 3proxy dasturining rasmiy sayti 3proxy.ru

2. 3proksini manbadan o'rnatish bo'yicha ko'rsatmalar www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. GitHub’da 3proksi ishlab chiqish bo‘limi github.com/z3APA3A/3proxy/issues/274

Manba: www.habr.com

a Izoh qo'shish