W tym artykule chciałbym ujawnić możliwości transparentnego proxy, które pozwala na przekierowanie całości lub części ruchu przez zewnętrzne serwery proxy całkowicie niezauważone przez klientów.
Kiedy zacząłem rozwiązywać ten problem, stanąłem przed faktem, że jego implementacja ma jeden istotny problem – protokół HTTPS. Za starych dobrych czasów nie było specjalnych problemów z przezroczystym proxy HTTP, ale w przypadku proxy HTTPS przeglądarki zgłaszają zakłócenia protokołu i na tym szczęście się kończy.
We wspólnych instrukcjach serwera proxy Squid sugerują nawet wygenerowanie własnego certyfikatu i zainstalowanie go na klientach, co jest co najmniej kompletnym bzdurą, irracjonalne i wygląda na atak MITM. Wiem, że Squid potrafi już zrobić coś podobnego, ale ten artykuł dotyczy sprawdzonej i działającej metody wykorzystującej 3proxy z szanowanego 3APA3A.
Następnie przyjrzymy się szczegółowo procesowi budowy 3proxy ze źródeł, jego konfiguracji, pełnemu i selektywnemu proxy z wykorzystaniem NAT, dystrybucji kanałów do kilku zewnętrznych serwerów proxy, a także wykorzystaniu routera i tras statycznych. Jako systemu operacyjnego używamy Debiana 9 x64. Zaczynać!
Instalacja 3proxy i uruchomienie zwykłego serwera proxy
1. Zainstaluj ifconfig (z pakietu net-tools)
apt-get install net-tools
2. Zainstaluj Midnight Commandera
apt-get install mc
3. Mamy teraz 2 interfejsy:
enp0s3 - zewnętrzny, przegląda Internet
enp0s8 - wewnętrzny, musi zajrzeć do sieci lokalnej
W innych dystrybucjach opartych na Debianie interfejsy są zwykle nazywane eth0 i eth1.
ifconfig -a
interfejsyenp0s3: flagi=4163 mtu 1500
inet 192.168.23.11 maska sieci 255.255.255.0 rozgłoszenie 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 zakresid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
Pakiety RX 6412 bajty 8676619 (8.2 MiB)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 1726 bajtów 289128 (282.3 KiB)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
enp0s8: flagi=4098 mtu 1500
ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
Pakiety RX 0 bajtów 0 (0.0 B)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 0 bajtów 0 (0.0 B)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
lo: flagi=73 mtu 65536
inet 127.0.0.1 maska sieci 255.0.0.0
inet6 ::1 prefixlen 128 Scopeid 0x10 pętla txqueuelen 1 (lokalna pętla zwrotna)
Pakiety RX 0 bajtów 0 (0.0 B)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 0 bajtów 0 (0.0 B)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
Interfejs enp0s8 nie jest obecnie używany, włączymy go, gdy będziemy chcieli skorzystać z konfiguracji Proxy NAT lub NAT. Wtedy logiczne byłoby przypisanie mu statycznego adresu IP.
4. Zacznijmy instalować 3proxy
4.1 Instalowanie podstawowych pakietów do kompilacji 3proxy ze źródeł
root@debian9:~# apt-get install build-essential libevent-dev libssl-dev -y
4.2. Utwórzmy folder do pobrania archiwum ze źródłami
root@debian9:~# mkdir -p /opt/proxy
4.3. Przejdźmy do tego folderu
root@debian9:~# cd /opt/proxy
4.4. Pobierzmy teraz najnowszy pakiet 3proxy. W chwili pisania tego tekstu najnowsza stabilna wersja to 0.8.12 (18). Pobierz ją z oficjalnej strony 04proxy
root@debian9:/opt/proxy# wget https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz
4.5. Rozpakujmy pobrane archiwum
root@debian9:/opt/proxy# tar zxvf 0.8.12.tar.gz
4.6. Przejdź do rozpakowanego katalogu, aby zbudować program
root@debian9:/opt/proxy# cd 3proxy-0.8.12
4.7. Następnie musimy dodać linię do pliku nagłówkowego, aby nasz serwer był całkowicie anonimowy (naprawdę działa, wszystko jest sprawdzane, adresy IP klientów są ukryte)
root@debian9:/opt/proxy/3proxy-0.8.12# nano +29 src/proxy.h
Dodaj linię
#define ANONYMOUS 1
Naciśnij Ctrl+x i Enter, aby zapisać zmiany.
4.8. Zacznijmy montować program
root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux
Makelogmake[2]: Opuszczanie katalogu „/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin”
make[1]: Opuszczanie katalogu „/opt/proxy/3proxy-0.8.12/src”
Żadnych błędów, kontynuujmy.
4.9. Zainstaluj program w systemie
root@debian9:/opt/proxy/3proxy-0.8.12# make -f Makefile.Linux install
4.10. Przejdź do katalogu głównego i sprawdź, gdzie program został zainstalowany
root@debian9:/opt/proxy/3proxy-0.8.12# cd ~/
root@debian9:~# whereis 3proxy
3proxy: /usr/local/bin/3proxy /usr/local/etc/3proxy
4.11. Utwórzmy folder na pliki konfiguracyjne i logi w katalogu domowym użytkownika
root@debian9:~# mkdir -p /home/joke/proxy/logs
4.12. Przejdź do katalogu, w którym powinna znajdować się konfiguracja
root@debian9:~# cd /home/joke/proxy/
4.13. Utwórz pusty plik i skopiuj tam konfigurację
root@debian9:/home/joke/proxy# cat > 3proxy.conf
3proxy.confDemon
plik pid /home/joke/proxy/3proxy.pid
nserwer 8.8.8.8
nscache 65536
tester użytkowników:CL:1234
limity czasu 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"
obróć 3
autoryzacja silna
spłuczka
zezwól na testera
skarpetki -p3128
proxy -p8080
Aby zapisać, naciśnij Ctrl + Z
4.14. Utwórzmy plik pid, aby podczas uruchamiania nie było błędów.
root@debian9:/home/joke/proxy# cat > 3proxy.pid
Aby zapisać, naciśnij Ctrl + Z
4.15. Uruchommy serwer proxy!
root@debian9:/home/joke/proxy# 3proxy /home/joke/proxy/3proxy.conf
4.16. Zobaczmy, czy serwer nasłuchuje na portach
root@debian9:~/home/joke/proxy# netstat -nlp
dziennik netstatAktywne połączenia internetowe (tylko serwery)
Proto Recv-Q Wyślij-Q Adres lokalny Adres obcy Stan PID/Nazwa programu
tcp 0 0 0.0.0.0:8080 0.0.0.0:* SŁUCHAJ 504/3proxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* SŁUCHAJ 338/sshd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* SŁUCHAJ 504/3proxy
tcp6 0 0 :::22 :::* SŁUCHAJ 338/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 352/dhclient
Tak jak napisano w konfiguracji, nasz web proxy nasłuchuje na porcie 8080, Socks5 proxy nasłuchuje na porcie 3128.
4.17. Aby automatycznie uruchomić usługę proxy po ponownym uruchomieniu, musisz dodać ją do cron.
root@debian9:/home/joke/proxy# crontab -e
Dodaj linię
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxy.conf
Wciskamy Enter, ponieważ cron powinien zobaczyć znak końca linii i zapisać plik.
Powinien pojawić się komunikat o instalacji nowego crontaba.
crontab: instalowanie nowego crontaba
4.18. Zrestartujmy system i spróbujmy połączyć się przez przeglądarkę z serwerem proxy. Aby to sprawdzić, używamy przeglądarki Firefox (dla internetowego serwera proxy) i dodatku FoxyProxy do skarpetek5 z uwierzytelnianiem.
root@debian9:/home/joke/proxy# reboot
4.19. Po sprawdzeniu działania serwera proxy po ponownym uruchomieniu komputera można wyświetlić logi. To kończy konfigurację serwera proxy.
3 dziennik proxy1542573996.018 PROXY.8080 00000 tester 192.168.23.10:50915 217.12.15.54:443 1193 6939 0 CONNECT_ads.yahoo.com:443_HTTP/1.1
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
Konfigurowanie i uruchamianie konfiguracji Transparent Proxy NAT
W tej konfiguracji wszystkie urządzenia w sieci wewnętrznej będą w sposób przezroczysty działać w Internecie za pośrednictwem zdalnego serwera proxy. Absolutnie wszystkie połączenia TCP zostaną przekierowane do jednego lub więcej (naprawdę zwiększa szerokość kanału, przykład konfiguracji nr 2!) serwerów proxy. Usługa DNS będzie korzystać z możliwości 3proxy (dnspr). UDP nie „wyjdzie” na zewnątrz, ponieważ nie korzystamy jeszcze z mechanizmu przekazywania (domyślnie wyłączonego w jądrze Linuksa).
1. Czas włączyć interfejs enp0s8
root@debian9:~# nano /etc/network/interfaces
plik /etc/network/interfaces# Ten plik zawiera opis interfejsów sieciowych dostępnych na komputerze
# Aktywowany i jak się do nich. Aby uzyskać więcej informacji, zobacz interfejsy (5).
źródło /etc/network/interfaces.d/*
# Interfejs sieciowy loopback
auto lo
iface lo inet loopback
# Główny interfejs sieciowy
Zezwalaj na hotplug enp0s3
iface enp0s3 inet dhcp
# Dodatkowy interfejs sieciowy
Zezwalaj na hotplug enp0s8
iface enp0s8 inet statyczne
adres 192.168.201.254
255.255.255.0 netmask
Tutaj przypisaliśmy interfejsowi enp0s8 statyczny adres 192.168.201.254 i maskę 255.255.255.0
Zapisz konfigurację Ctrl+X i uruchom ponownie
root@debian9:~# reboot
2. Sprawdzenie interfejsów
root@debian9:~# ifconfig
dziennik ifconfigenp0s3: flagi=4163 mtu 1500
inet 192.168.23.11 maska sieci 255.255.255.0 rozgłoszenie 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64 zakresid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
Pakiety RX 61 bajtów 7873 (7.6 KiB)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 65 bajtów 10917 (10.6 KiB)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
enp0s8: flagi=4163 mtu 1500
inet 192.168.201.254 maska sieci 255.255.255.0 rozgłoszenie 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64 zakresid 0x20 ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
Pakiety RX 0 bajtów 0 (0.0 B)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 8 bajtów 648 (648.0 B)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
lo: flagi=73 mtu 65536
inet 127.0.0.1 maska sieci 255.0.0.0
inet6 ::1 prefixlen 128 Scopeid 0x10 pętla txqueuelen 1 (lokalna pętla zwrotna)
Pakiety RX 0 bajtów 0 (0.0 B)
Błędy RX 0 porzucone 0 przekroczenia 0 ramka 0
Pakiety TX 0 bajtów 0 (0.0 B)
Błędy TX 0 porzucone 0 przekroczenia 0 przewoźnika 0 kolizji 0
3. Wszystko się udało, teraz musisz skonfigurować 3proxy do przezroczystego proxy.
root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf
Przykładowa konfiguracja transparentnego serwera proxy nr 1Demon
plik pid /home/joke/proxy/3proxy.pid
nserwer 8.8.8.8
nscache 65536
limity czasu 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"
obróć 3
spłuczka
autoryzuj tylko
dnspr
umożliwić *
rodzic 1000 skarpetki5 ADRES IP EXTERNAL_PROXY 3128 tester 1234
wtyczka /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
4. Teraz uruchamiamy 3proxy z nową konfiguracją
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
5. Dodaj ponownie do crontaba
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
6. Zobaczmy czego teraz słucha nasz proxy
root@debian9:~# netstat -nlp
dziennik netstatAktywne połączenia internetowe (tylko serwery)
Proto Recv-Q Wyślij-Q Adres lokalny Adres obcy Stan PID/Nazwa programu
tcp 0 0 0.0.0.0:22 0.0.0.0:* SŁUCHAJ 349/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* SŁUCHAJ 354/3proxy
tcp6 0 0 :::22 :::* SŁUCHAJ 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. Teraz proxy jest gotowe do akceptowania wszelkich połączeń TCP na porcie 888, DNS na porcie 53, dzięki czemu można je następnie przekierować do zdalnego proxy Socks5 i DNS Google 8.8.8.8. Wystarczy, że skonfigurujemy netfilter (iptables) i reguły DHCP przydzielania adresów.
8. Zainstaluj pakiet iptables-persistent i dhcpd
root@debian9:~# apt-get install iptables-persistent isc-dhcp-server
9. Edytuj plik startowy dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf
dhcpd.conf# dhcpd.conf
#
# Przykładowy plik konfiguracyjny dla ISC dhcpd
#
# definicje opcji wspólne dla wszystkich obsługiwanych sieci…
opcja nazwa-domeny „example.org”;
opcja serwery nazw domen ns1.example.org, ns2.example.org;
domyślny czas dzierżawy 600;
max-czas najmu 7200;
brak stylu aktualizacji ddns;
# Jeśli ten serwer DHCP jest oficjalnym serwerem DHCP dla lokalnego
# network, autorytatywną dyrektywę należy odkomentować.
autorytatywny;
# Nieco inna konfiguracja dla podsieci wewnętrznej.
podsieć 192.168.201.0 maska sieci 255.255.255.0 {
zakres 192.168.201.10 192.168.201.250;
opcja serwery nazw domen 192.168.201.254;
routery opcjonalne 192.168.201.254;
opcja adres-rozgłoszeniowy 192.168.201.255;
domyślny czas dzierżawy 600;
max-czas najmu 7200;
}
11. Uruchom ponownie i sprawdź usługę na porcie 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp
dziennik netstatAktywne połączenia internetowe (tylko serwery)
Proto Recv-Q Wyślij-Q Adres lokalny Adres obcy Stan PID/Nazwa programu
tcp 0 0 0.0.0.0:22 0.0.0.0:* SŁUCHAJ 389/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* SŁUCHAJ 310/3proxy
tcp6 0 0 :::22 :::* SŁUCHAJ 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
surowy 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd
12. Pozostaje tylko przekierować wszystkie żądania tcp na port 888 i zapisać regułę w 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. Aby rozszerzyć przepustowość kanału, możesz użyć kilku serwerów proxy jednocześnie. Suma musi wynosić 1000. Nowe połączenia są ustanawiane z prawdopodobieństwem 0.2, 0.2, 0.2, 0.2, 0,1, 0,1 z określonymi serwerami proxy.
Uwaga: jeśli mamy web proxy to zamiast skarpetki5 należy napisać connect, jeśli skarpetki4 to skarpetki4 (socks4 NIE OBSŁUGUJE AUTORYZACJI LOGINEM/HASŁEM!)
Przykładowa konfiguracja transparentnego serwera proxy nr 2Demon
plik pid /home/joke/proxy/3proxy.pid
nserwer 8.8.8.8
nscache 65536
maxconn 500
limity czasu 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"
obróć 3
spłuczka
autoryzuj tylko
dnspr
umożliwić *
rodzic 200 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 tester 1234
rodzic 200 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 tester 1234
rodzic 200 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 tester 1234
rodzic 200 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 tester 1234
rodzic 100 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 tester 1234
rodzic 100 skarpet5 IP_ADDRESS_EXTERNAL_PROXY#6 3128 tester 1234
wtyczka /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
Konfigurowanie i uruchamianie konfiguracji NAT + Transparent Proxy
W tej konfiguracji użyjemy zwykłego mechanizmu NAT z selektywnym lub całkowicie przezroczystym proxy poszczególnych adresów lub podsieci. Użytkownicy sieci wewnętrznej będą pracować z określonymi usługami/podsieciami, nawet nie zdając sobie sprawy, że pracują za pośrednictwem serwera proxy. Wszystkie połączenia https działają dobrze, nie trzeba generować/wymieniać żadnych certyfikatów.
Najpierw zdecydujmy, które podsieci/usługi chcemy proxy. Załóżmy, że zewnętrzne serwery proxy znajdują się tam, gdzie działa usługa taka jak pandora.com. Teraz pozostaje określić jego podsieci/adresy.
1. Pinguj
root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56(84) bajtów danych.
2. Wpisz BGP 208.85.40.20 w Google
Chodźmy do serwisu
Widać, że podsieć, której szukam, to AS40428 Pandora Media, Inc
Otwieranie prefiksów v4
Oto wymagane podsieci!
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. Aby zmniejszyć liczbę podsieci należy przeprowadzić agregację. Przejdź do witryny
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. Wyczyść reguły iptables
root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X
Włącz mechanizm przekazywania i 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
Aby mieć pewność, że przekazywanie dalej będzie włączone na stałe po ponownym uruchomieniu, zmieńmy plik
root@debian9:~# nano /etc/sysctl.conf
I odkomentuj linię
net.ipv4.ip_forward = 1
Ctrl+X, aby zapisać plik
5. Zawijamy podsieci pandora.com w proxy
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. Przestrzegajmy zasad
root@debian9:~# iptables-save > /etc/iptables/rules.v4
Konfigurowanie i uruchamianie Transparent Proxy poprzez konfigurację routera
W tej konfiguracji przezroczystym serwerem proxy może być oddzielny komputer PC lub maszyna wirtualna znajdująca się za routerem domowym/firmowym. Wystarczy zarejestrować trasy statyczne na routerze lub urządzeniach, a cała podsieć będzie korzystać z proxy bez konieczności dokonywania jakichkolwiek dodatkowych ustawień.
WAŻNY! Konieczne jest, aby nasza brama otrzymywała statyczny adres IP z routera lub sama była skonfigurowana tak, aby była statyczna.
1. Skonfiguruj statyczny adres bramy (adapter enp0s3)
root@debian9:~# nano /etc/network/interfaces
plik /etc/network/interfaces# Ten plik zawiera opis interfejsów sieciowych dostępnych na komputerze
# Aktywowany i jak się do nich. Aby uzyskać więcej informacji, zobacz interfejsy (5).
źródło /etc/network/interfaces.d/*
# Interfejs sieciowy loopback
auto lo
iface lo inet loopback
# Główny interfejs sieciowy
Zezwalaj na hotplug enp0s3
iface enp0s3 inet statyczne
adres 192.168.23.2
255.255.255.0 netmask
192.168.23.254 bramki
# Dodatkowy interfejs sieciowy
Zezwalaj na hotplug enp0s8
iface enp0s8 inet statyczne
adres 192.168.201.254
255.255.255.0 netmask
2. Zezwól urządzeniom z podsieci 192.168.23.0/24 na korzystanie z proxy
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. Przestrzegajmy zasad
root@debian9:~# iptables-save > /etc/iptables/rules.v4
4. Zarejestrujmy podsieci na routerze
Lista sieci routerów199.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
Wykorzystane materiały/zasoby
1. Oficjalna strona programu 3proxy
2. Instrukcje instalacji 3proxy ze źródła
3. Oddział rozwoju 3proxy na GitHubie
Źródło: www.habr.com