Podstawy przezroczystego proxy przy użyciu 3proxy i iptables/netfilter, czyli jak „przesłać wszystko przez proxy”

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 bgp.he.net/net/208.85.40.0/24#_netinfo
Widać, że podsieć, której szukam, to AS40428 Pandora Media, Inc

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

Otwieranie prefiksów v4

bgp.he.net/AS40428#_prefixes

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 ip-calculator.ru/aggregate i skopiuj tam naszą listę. W rezultacie - 6 podsieci zamiast 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. 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 3proxy.ru

2. Instrukcje instalacji 3proxy ze źródła www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. Oddział rozwoju 3proxy na GitHubie github.com/z3APA3A/3proxy/issues/274

Źródło: www.habr.com

Dodaj komentarz