3proxy болон iptables/netfilter ашиглан ил тод прокси хийх үндсэн ойлголтууд эсвэл "бүх зүйлийг проксигаар дамжуулан хэрхэн оруулах"

Энэ нийтлэлд би үйлчлүүлэгчдэд огт мэдэгдэхгүйгээр гадаад прокси серверүүдээр дамжуулан траффикийг бүхэлд нь эсвэл хэсэгчлэн чиглүүлэх боломжийг олгодог ил тод прокси хийх боломжуудыг дэлгэхийг хүсч байна.

Би энэ асуудлыг шийдэж эхлэхэд түүний хэрэгжилт нь HTTPS протокол гэсэн нэг чухал асуудалтай тулгарсан. Эрт дээр үед ил тод HTTP прокси хийхтэй холбоотой ямар ч онцгой асуудал гардаггүй байсан ч HTTPS прокси ашиглан хөтчүүд протоколд хөндлөнгөөс оролцож байгааг мэдээлдэг бөгөөд үүгээр л аз жаргал дуусдаг.

Squid прокси серверийн нийтлэг зааварт тэд өөрийн гэрчилгээг үүсгэж, үйлчлүүлэгчиддээ суулгахыг санал болгодог бөгөөд энэ нь хамгийн багаар бодоход утгагүй, утгагүй бөгөөд MITM халдлага шиг харагдаж байна. Squid нь үүнтэй төстэй зүйлийг аль хэдийн хийж чадна гэдгийг би мэднэ, гэхдээ энэ нийтлэл нь нэр хүндтэй 3APA3A-ийн 3proxy ашиглан батлагдсан, ажлын аргын тухай юм.

Дараа нь бид эх сурвалжаас 3прокси үүсгэх үйл явц, түүний тохиргоо, 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 мту 1500
inet 192.168.23.11 сүлжээний маск 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 мту 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

харна уу: туг = 73 mtu 65536
inet 127.0.0.1 сүлжээний маск 255.0.0.0
inet6 ::1 угтвар 128 scopeid 0x10 гогцоо txqueuelen 1 (Орон нутгийн 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 интерфэйсийг одоогоор ашиглаагүй байгаа тул бид 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.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
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:* 504/3прокси СОНСОХ
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/3прокси СОНСОХ
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

cron нь мөрийн төгсгөлийн тэмдэгтийг харж файлыг хадгалах учир бид Enter дарна.

Шинэ crontab суулгах тухай мессеж байх ёстой.

crontab: шинэ crontab суулгаж байна

4.18. Системийг дахин ачаалж, хөтөчөөр дамжуулан прокси руу холбогдохыг оролдъё. Шалгахын тулд бид Firefox хөтчийг (вэб проксид зориулсан) болон оймс5-д зориулсан 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_.
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 холболтууд нэг буюу хэд хэдэн (сувгийн өргөнийг үнэхээр өргөжүүлдэг, тохиргооны жишээ No2!) прокси сервер рүү дахин чиглүүлэх болно. DNS үйлчилгээ нь 3proxy (dnspr) боломжийг ашиглах болно. Бид урагшлах механизмыг хараахан ашиглаагүй байгаа (Linux цөмд анхдагчаар идэвхгүй болсон) тул UDP гадагш гарахгүй.

1. Enp0s8 интерфейсийг идэвхжүүлэх цаг боллоо

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

/etc/network/interfaces файл# Энэ файл нь таны системд байгаа сүлжээний интерфэйсүүдийг тодорхойлдог
# мөн тэдгээрийг хэрхэн идэвхжүүлэх талаар. Дэлгэрэнгүй мэдээллийг интерфэйс(5)-аас үзнэ үү.

эх сурвалж /etc/network/interfaces.d/*

# Сүлжээний холболтын интерфейс
машинаар хий
iface lo inet loopback

# Сүлжээний үндсэн интерфейс
allow-hotplug enp0s3
iface enp0s3 inet dhcp

# Хоёрдогч сүлжээний интерфейс
allow-hotplug enp0s8
iface enp0s8 inet статик
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 мту 1500
inet 192.168.23.11 сүлжээний маск 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 мту 1500
inet 192.168.201.254 сүлжээний маск 255.255.255.0 нэвтрүүлэг 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 угтвар 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 B)
TX алдаа 0 уналт 0 давсан 0 тээвэрлэгч 0 мөргөлдөөн 0

харна уу: туг = 73 mtu 65536
inet 127.0.0.1 сүлжээний маск 255.0.0.0
inet6 ::1 угтвар 128 scopeid 0x10 гогцоо txqueuelen 1 (Орон нутгийн 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
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
3 эргүүлэх
угаах
auth iponly
dnspr
зөвшөөрөх *
эцэг эх 1000 оймс5 ГАДААД_ПРОХСИЙН IP_ADDRESS 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

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/3прокси СОНСОХ
tcp6 0 0 :::22 :::* СОНСОХ 349/sshd
udp 0 0 0.0.0.0:53 0.0.0.0:* 354/3прокси
udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient

7. Одоо прокси нь 888-р порт дээрх TCP холболтыг, 53-р порт дээрх DNS-ийг хүлээн авахад бэлэн болсон бөгөөд ингэснээр тэдгээрийг алсын 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";
сонголт домайн-нэр-серверүүд ns1.example.org, ns2.example.org;

анхдагч түрээсийн хугацаа 600;
хамгийн их түрээсийн хугацаа 7200;

ddns-update-style none;

# Хэрэв энэ DHCP сервер нь орон нутгийн албан ёсны DHCP сервер юм
# сүлжээ, эрх бүхий удирдамжийг тайлбаргүй байх ёстой.

эрх бүхий;

# Дотоод дэд сүлжээнд арай өөр тохиргоо.
дэд сүлжээ 192.168.201.0 netmask 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/3прокси СОНСОХ
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/3прокси
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-ийн магадлалтайгаар шинэ холболтууд бий болно.

Анхаарна уу: Хэрэв бидэнд вэб прокси байгаа бол оймс5-ын оронд connect, хэрэв оймс4 бол оймс4 гэж бичих хэрэгтэй (оймс4 нь НЭВТРЭХ/НУУЦ ҮГИЙН ЗӨВШӨЛГӨЛИЙГ ДЭМЖИХГҮЙ!)

Ил тод прокси серверийн №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
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

залгаас /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. Google-д 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

Чиглүүлэгчийн тохиргоогоор дамжуулан Transparent Proxy-г тохируулж, ажиллуулж байна

Энэ тохиргоонд ил тод прокси сервер нь тусдаа компьютер эсвэл гэрийн/корпорацийн чиглүүлэгчийн ард байрлах виртуал машин байж болно. Чиглүүлэгч эсвэл төхөөрөмж дээр статик маршрутыг бүртгэх нь хангалттай бөгөөд бүх дэд сүлжээ нь нэмэлт тохиргоо хийх шаардлагагүйгээр прокси ашиглах болно.

ЧУХАЛ! Манай гарц нь чиглүүлэгчээс статик IP хүлээн авах эсвэл өөрөө статик байхаар тохируулагдсан байх шаардлагатай.

1. Статик гарцын хаягийг тохируулах (enp0s3 адаптер)

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

/etc/network/interfaces файл# Энэ файл нь таны системд байгаа сүлжээний интерфэйсүүдийг тодорхойлдог
# мөн тэдгээрийг хэрхэн идэвхжүүлэх талаар. Дэлгэрэнгүй мэдээллийг интерфэйс(5)-аас үзнэ үү.

эх сурвалж /etc/network/interfaces.d/*

# Сүлжээний холболтын интерфейс
машинаар хий
iface lo inet loopback

# Сүлжээний үндсэн интерфейс
allow-hotplug enp0s3
iface enp0s3 inet статик
192.168.23.2 хаяг
netmask 255.255.255.0
гарц 192.168.23.254

# Хоёрдогч сүлжээний интерфейс
allow-hotplug enp0s8
iface enp0s8 inet статик
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. Эх сурвалжаас 3прокси суулгах заавар www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. GitHub дээрх 3прокси хөгжүүлэлтийн салбар github.com/z3APA3A/3proxy/issues/274

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх