Թափանցիկ պրոքսիինգի հիմունքները՝ օգտագործելով 3proxy և iptables/netfilter կամ ինչպես «ամեն ինչ դնել պրոքսիի միջոցով»

Այս հոդվածում ես կցանկանայի բացահայտել թափանցիկ պրոքսիինգի հնարավորությունները, որը թույլ է տալիս վերաուղղորդել ամբողջ տրաֆիկը կամ դրա մի մասը արտաքին պրոքսի սերվերների միջոցով՝ բացարձակապես աննկատ հաճախորդների կողմից:

Երբ ես սկսեցի լուծել այս խնդիրը, ես կանգնած էի այն փաստի հետ, որ դրա իրականացումն ուներ մեկ էական խնդիր՝ HTTPS արձանագրությունը։ Հին բարի ժամանակներում թափանցիկ HTTP պրոքսինգի հետ կապված հատուկ խնդիրներ չկային, բայց HTTPS պրոքսիինգի դեպքում բրաուզերները հայտնում են պրոտոկոլին միջամտելու մասին, և ահա, որտեղ ավարտվում է երջանկությունը:

Squid proxy server-ի ընդհանուր ցուցումներում նրանք նույնիսկ առաջարկում են ստեղծել ձեր սեփական վկայականը և տեղադրել այն հաճախորդների վրա, ինչն առնվազն կատարյալ անհեթեթություն է, իռացիոնալ և նման է MITM հարձակման: Ես գիտեմ, որ Squid-ն արդեն կարող է նման բան անել, բայց այս հոդվածը ապացուցված և գործող մեթոդի մասին է՝ օգտագործելով 3proxy հարգված 3APA3A-ից:

Հաջորդը, մենք մանրամասնորեն կանդրադառնանք աղբյուրից 3proxy-ի կառուցման գործընթացին, դրա կազմաձևմանը, NAT-ի միջոցով լրիվ և ընտրովի պրոքսիինգին, ալիքների բաշխմանը մի քանի արտաքին պրոքսի սերվերներին, ինչպես նաև երթուղիչի և ստատիկ երթուղիների օգտագործմանը: Մենք օգտագործում ենք Debian 9 x64 որպես ՕՀ: Սկսի՛ր

3proxy-ի տեղադրում և սովորական պրոքսի սերվերի գործարկում

1. Տեղադրեք ifconfig-ը (net-tools փաթեթից)
apt-get install net-tools
2. Տեղադրեք Midnight Commander-ը
apt-get install mc
3. Այժմ մենք ունենք 2 ինտերֆեյս.
enp0s3 - արտաքին, նայում է ինտերնետին
enp0s8 - ներքին, պետք է փնտրի տեղական ցանց
Debian-ի վրա հիմնված այլ բաշխումների դեպքում միջերեսները սովորաբար կոչվում են eth0 և eth1:
ifconfig -a

Որոնումenp0s3: դրոշներ = 4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 հեռարձակում 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 նախածանց 64 scopeid 0x20 եթեր 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 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 Բ)
TX սխալներ 0 իջել 0 գերազանցում 0 կրիչ 0 բախում 0

ահա՝ դրոշներ=73 mtu 65536
inet 127.0.0.1 ցանցային դիմակ 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 Բ)
TX սխալներ 0 իջել 0 գերազանցում 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. Այժմ ներբեռնենք վերջին 3proxy փաթեթը: Գրելու պահին վերջին կայուն տարբերակը 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. Հաջորդը, մենք պետք է տող ավելացնենք վերնագրի ֆայլին, որպեսզի մեր սերվերը լիովին անանուն լինի (այն իսկապես աշխատում է, ամեն ինչ ստուգված է, հաճախորդի 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

Մակելոգ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

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.confdaemon
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 Դ
logformat "- +_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

netstat մատյանԱկտիվ ինտերնետ կապեր (միայն սերվերներ)
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. Եկեք վերաբեռնենք համակարգը և փորձենք բրաուզերի միջոցով միանալ վստահված անձին: Ստուգելու համար մենք օգտագործում ենք Firefox բրաուզերը (վեբ վստահված անձի համար) և 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_HTTP/443.
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 ծառայությունը կօգտագործի 3 պրոքսի (dnspr) հնարավորություններ: UDP-ն «չի գնա» դեպի դուրս, քանի որ մենք դեռ չենք օգտագործում առաջընթաց մեխանիզմը (Լինուքսի միջուկում լռելյայն անջատված է):

1. Ժամանակն է միացնել enp0s8 ինտերֆեյսը

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

/etc/network/interfaces ֆայլ# Այս ֆայլը նկարագրում է ձեր համակարգում առկա ցանցային միջերեսները
# և ինչպես ակտիվացնել դրանք: Լրացուցիչ տեղեկությունների համար տե՛ս միջերեսները (5):

աղբյուր /etc/network/interfaces.d/*

# Loopback ցանցային ինտերֆեյս
մեքենա այն
iface lo inet loopback

# Առաջնային ցանցային ինտերֆեյս
Թույլատրել-hotplug enp0s3
iface enp0s3 inet dhcp

# Երկրորդական ցանցային ինտերֆեյս
Թույլատրել-hotplug enp0s8
iface enp0s8 inet static
հասցեն `192.168.201.254
netmask 255.255.255.0

Այստեղ մենք enp0s8 ինտերֆեյսին նշանակեցինք ստատիկ հասցե 192.168.201.254 և դիմակ 255.255.255.0
Պահպանեք Ctrl+X կոնֆիգուրացիան և վերագործարկեք

root@debian9:~# reboot

2. Ինտերֆեյսերի ստուգում

root@debian9:~# ifconfig

ifconfig մատյանenp0s3: դրոշներ = 4163 mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 հեռարձակում 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 նախածանց 64 scopeid 0x20 եթեր 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: դրոշներ = 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 եթեր 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 Բ)
TX սխալներ 0 իջել 0 գերազանցում 0 կրիչ 0 բախում 0

ահա՝ դրոշներ=73 mtu 65536
inet 127.0.0.1 ցանցային դիմակ 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 Բ)
TX սխալներ 0 իջել 0 գերազանցում 0 կրիչ 0 բախում 0

3. Ամեն ինչ ստացվեց, այժմ դուք պետք է կարգավորեք 3proxy-ը թափանցիկ պրոքսիինգի համար:

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

Թիվ 1 թափանցիկ պրոքսի սերվերի կազմաձևման օրինակdaemon
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 Դ
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
պտտել 3
փչել
auth iponly
dnspr
թույլ տալ *
մայր 1000 գուլպաներ5 IP_ADDRESS OF EXTERNAL_PROXY 3128 Tester 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. Այժմ մենք գործարկում ենք 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

netstat մատյանԱկտիվ ինտերնետ կապեր (միայն սերվերներ)
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/3 proxy
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-ի համար
#

# տարբերակի սահմանումներ, որոնք ընդհանուր են բոլոր աջակցվող ցանցերի համար…
տարբերակ տիրույթի անուն «example.org»;
տարբերակ domain-name-servers 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:* 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/3 proxy
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-ի փոխարեն պետք է գրել connect, եթե socks4, ապա socks4 (socks4-ը ՉԻ ԱՋԱԿՑՈՒՄ ՄՈՒՏՔ/ԳԱՂԱՌԱԿ ԼԻԶԱՎՈՐՈՒՄԸ):

Թիվ 2 թափանցիկ պրոքսի սերվերի կազմաձևման օրինակdaemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
ժամանակամիջոցներ 1 5 30 60 180 1800 16 60
log /home/joke/proxy/logs/3proxy.log Դ
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
պտտել 3
փչել
auth iponly
dnspr
թույլ տալ *

ծնող 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 + 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 Google-ում

Եկեք գնանք կայք 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/agregate և պատճենեք մեր ցուցակը այնտեղ: Արդյունքում՝ 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/*

# Loopback ցանցային ինտերֆեյս
մեքենա այն
iface lo inet loopback

# Առաջնային ցանցային ինտերֆեյս
Թույլատրել-hotplug enp0s3
iface enp0s3 inet static
հասցեն `192.168.23.2
netmask 255.255.255.0
Gateway 192.168.23.254

# Երկրորդական ցանցային ինտերֆեյս
Թույլատրել-hotplug enp0s8
iface enp0s8 inet static
հասցեն `192.168.201.254
netmask 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-take-your-socks-proxy

3. 3proxy-ի զարգացման մասնաճյուղ GitHub-ում github.com/z3APA3A/3proxy/issues/274

Source: www.habr.com

Добавить комментарий