Die Grundlagen des transparenten Proxyings mit 3proxy und iptables/netfilter oder wie man „alles über einen Proxy leitet“

In diesem Artikel möchte ich die Möglichkeiten des transparenten Proxyings aufzeigen, das es den Clients völlig unbemerkt ermöglicht, den Datenverkehr ganz oder teilweise über externe Proxyserver umzuleiten.

Als ich anfing, dieses Problem zu lösen, stieß ich auf die Tatsache, dass seine Implementierung ein erhebliches Problem aufweist – das HTTPS-Protokoll. In den guten alten Zeiten gab es mit transparentem HTTP-Proxy keine besonderen Probleme, aber beim HTTPS-Proxy melden Browser Protokollstörungen, und da hört das Glück schon auf.

In gängigen Anleitungen für den Squid-Proxyserver wird sogar angeboten, ein eigenes Zertifikat zu generieren und auf Clients zu installieren, was völliger Unsinn, zumindest irrational ist und wie ein MITM-Angriff aussieht. Ich weiß, dass Squid bereits weiß, wie man etwas Ähnliches macht, aber in diesem Artikel geht es um eine bewährte und funktionierende Methode mit 3proxy der angesehenen 3APA3A.

Als nächstes werfen wir einen genaueren Blick auf den Prozess des Aufbaus von 3proxy aus Quellen, seine Konfiguration, vollständiges und selektives Proxying mittels NAT, Verteilung des Kanals auf mehrere externe Proxyserver sowie die Verwendung eines Routers und statischer Routen. Als Betriebssystem nutzen wir Debian 9 x64. Start!

3proxy installieren und einen normalen Proxy ausführen

1. Installieren Sie ifconfig (aus dem Net-Tools-Paket)
apt-get install net-tools
2. Installieren Sie Midnight Commander
apt-get install mc
3. Wir haben jetzt 2 Schnittstellen:
enp0s3 – extern, schaut ins Internet
enp0s8 – intern, muss im lokalen Netzwerk nachschauen
In anderen Debian-basierten Distributionen heißen die Schnittstellen normalerweise eth0 und eth1.
ifconfig -a

Schnittstellenenp0s3: flags=4163 MTU 1500
inet 192.168.23.11 Netzmaske 255.255.255.0 Broadcast 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX-Pakete 6412 Bytes 8676619 (8.2 MiB)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 1726 Byte 289128 (282.3 KiB)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

enp0s8: flags=4098 MTU 1500
Ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX-Pakete 0 Bytes 0 (0.0 B)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 0 Bytes 0 (0.0 B)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

lo: flags=73 mtu 65536
inet 127.0.0.1 Netzmaske 255.0.0.0
inet6 ::1 Präfixlen 128 Scopeid 0x10 Schleife txqueuelen 1 (Lokaler Loopback)
RX-Pakete 0 Bytes 0 (0.0 B)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 0 Bytes 0 (0.0 B)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

Die enp0s8-Schnittstelle wird derzeit nicht verwendet. Wir werden sie aktivieren, wenn wir die Proxy-NAT- oder NAT-Konfiguration verwenden möchten. Dann wäre es logisch, ihm eine statische IP zuzuweisen.

4. Beginnen wir mit der Installation von 3proxy

4.1 Basispakete zum Kompilieren von 3proxy aus dem Quellcode installieren

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

4.2. Erstellen Sie einen Ordner zum Herunterladen des Archivs mit Quellen

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

4.3. Gehen wir zu diesem Ordner

root@debian9:~# cd /opt/proxy

4.4. Laden wir nun das neueste 3proxy-Paket herunter. Zum Zeitpunkt des Verfassens dieses Artikels war die neueste stabile Version 0.8.12 (18). Laden Sie sie von der offiziellen 04proxy-Website herunter

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

4.5. Entpacken Sie das heruntergeladene Archiv

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

4.6. Gehen Sie in das entpackte Verzeichnis, um das Programm zu erstellen

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

4.7. Als nächstes müssen Sie der Header-Datei eine Zeile hinzufügen, damit unser Server völlig anonym ist (es funktioniert wirklich, alles wird überprüft, Client-IPs werden ausgeblendet).

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

Fügen Sie eine Zeile hinzu

#define ANONYMOUS 1

Drücken Sie Strg+x und die Eingabetaste, um die Änderungen zu speichern.

4.8. Lassen Sie uns das Programm erstellen

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

Makelogmake[2]: Verlässt das Verzeichnis „/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin“
make[1]: Verlässt das Verzeichnis „/opt/proxy/3proxy-0.8.12/src“

Keine Fehler, fahren Sie fort.

4.9. Installieren Sie das Programm auf dem System

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

4.10. Gehen Sie in das Stammverzeichnis und prüfen Sie, wo das Programm installiert wurde

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

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

4.11. Erstellen wir einen Ordner für Konfigurationsdateien und Protokolle im Home-Verzeichnis des Benutzers

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

4.12. Gehen Sie in das Verzeichnis, in dem sich die Konfiguration befinden sollte

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

4.13. Erstellen Sie eine leere Datei und kopieren Sie die Konfiguration dorthin

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

3proxy.confDaemon
pidfile /home/joke/proxy/3proxy.pid
Server 8.8.8.8
nscache 65536
Benutzertester:CL:1234
Zeitüberschreitungen 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"
drehen 3
authentifiziert stark
spülen
Tester zulassen
Socken -p3128
Proxy -p8080

Zum Speichern drücken Sie Strg + Z

4.14. Erstellen wir eine PID-Datei, damit keine Startfehler auftreten.

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

Zum Speichern drücken Sie Strg + Z

4.15. Starten wir den Proxyserver!

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

4.16. Mal sehen, ob der Server auf Ports lauscht

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

Netstat-ProtokollAktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Programmname
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

Wie in der Konfiguration geschrieben, lauscht der Web-Proxy auf Port 8080, Socks5-Proxy – 3128.

4.17. Um den Proxy-Dienst nach einem Neustart automatisch zu starten, müssen Sie ihn zu cron hinzufügen.

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

Fügen Sie eine Zeile hinzu

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

Wir drücken die Eingabetaste, da Cron das Zeilenendezeichen sehen und die Datei speichern sollte.

Es sollte eine Meldung zur Installation einer neuen Crontab angezeigt werden.

Crontab: Neues Crontab installieren

4.18. Starten wir das System neu und versuchen, über den Browser eine Verbindung zum Proxy herzustellen. Zur Verifizierung nutzen wir den Firefox-Browser (für einen Web-Proxy) und das FoxyProxy-Add-on für sock5 mit Authentifizierung.

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

4.19. Nachdem Sie die Arbeit des Proxys nach dem Neustart überprüft haben, können Sie die Protokolle einsehen. Damit ist die Einrichtung des Proxyservers abgeschlossen.

3 Proxy-Protokoll1542573996.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

Einrichten und Ausführen der Transparent Proxy NAT-Konfiguration

In dieser Konfiguration arbeiten alle Geräte im internen Netzwerk transparent über einen Remote-Proxyserver im Internet. Absolut alle TCP-Verbindungen werden auf einen oder mehrere (erweitert die Kanalbreite wirklich, Konfigurationsbeispiel Nr. 2!) Proxy-Server umgeleitet. Der DNS-Dienst nutzt 3proxy (dnspr)-Funktionen. UDP wird nicht „nach draußen gehen“, da wir den Weiterleitungsmechanismus noch nicht verwenden (standardmäßig im Linux-Kernel deaktiviert).

1. Es ist Zeit, die enp0s8-Schnittstelle zu aktivieren

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

/etc/network/interfaces-Datei# Diese Datei beschreibt die Netzwerkschnittstellen auf Ihrem System verfügbaren
# Und wie um sie zu aktivieren. Weitere Informationen finden Sie unter Schnittstellen (5).

Quelle /etc/network/interfaces.d/*

# Der Loopback-Netzwerkschnittstelle
auto es
iface lo inet loopback

# Die primäre Netzwerkschnittstelle
Allow-Hotplug enp0s3
iface enp0s3 inet dhcp

# Die sekundäre Netzwerkschnittstelle
Allow-Hotplug enp0s8
iface enp0s8 inet statisch
Adresse 192.168.201.254
netmask 255.255.255.0

Hier haben wir der enp0s8-Schnittstelle eine statische Adresse 192.168.201.254 und eine Maske 255.255.255.0 zugewiesen
Konfiguration speichern Strg+X und neu starten

root@debian9:~# reboot

2. Schnittstellen prüfen

root@debian9:~# ifconfig

ifconfig-Protokollenp0s3: flags=4163 MTU 1500
inet 192.168.23.11 Netzmaske 255.255.255.0 Broadcast 192.168.23.255
inet6 fe80::a00:27ff:fec2:bae4 prefixlen 64scopeid 0x20 ether 08:00:27:c2:ba:e4 txqueuelen 1000 (Ethernet)
RX-Pakete 61 Byte 7873 (7.6 KiB)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 65 Byte 10917 (10.6 KiB)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

enp0s8: flags=4163 MTU 1500
inet 192.168.201.254 Netzmaske 255.255.255.0 Broadcast 192.168.201.255
inet6 fe80::a00:27ff:fe79:a7e3 prefixlen 64scopeid 0x20 ether 08:00:27:79:a7:e3 txqueuelen 1000 (Ethernet)
RX-Pakete 0 Bytes 0 (0.0 B)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 8 Bytes 648 (648.0 B)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

lo: flags=73 mtu 65536
inet 127.0.0.1 Netzmaske 255.0.0.0
inet6 ::1 Präfixlen 128 Scopeid 0x10 Schleife txqueuelen 1 (Lokaler Loopback)
RX-Pakete 0 Bytes 0 (0.0 B)
RX-Fehler 0 Dropped 0 Overruns 0 Frame 0
TX-Pakete 0 Bytes 0 (0.0 B)
TX-Fehler 0 Dropped 0 Overruns 0 Träger 0 Kollisionen 0

3. Alles hat geklappt, jetzt müssen Sie 3proxy für transparentes Proxying konfigurieren.

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

Beispiel Nr. 1 für eine transparente Proxy-KonfigurationDaemon
pidfile /home/joke/proxy/3proxy.pid
Server 8.8.8.8
nscache 65536
Zeitüberschreitungen 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"
drehen 3
spülen
eindeutig authentifizieren
dnspr
erlauben *
Eltern 1000 Socken5 EXTERNAL_PROXY IP_ADDRESS 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. Führen Sie nun 3proxy mit der neuen Konfiguration aus
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

5. Erneut zur Crontab hinzufügen
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf

6. Sehen wir uns an, was unser Proxy gerade hört
root@debian9:~# netstat -nlp

Netstat-ProtokollAktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Programmname
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/3proxy
udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient

7. Jetzt ist der Proxy bereit, alle TCP-Verbindungen auf Port 888 und DNS auf Port 53 zu akzeptieren, um sie an Remote-Socks5 umzuleiten – Proxy und DNS Google 8.8.8.8. Es bleibt uns überlassen, die Netfilter- (iptables) und DHCP-Regeln für die Adressvergabe zu konfigurieren.

8. Installieren Sie das Paket iptables-persistent und dhcpd

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

9. Bearbeiten Sie die DHCPD-Startdatei
root@debian9:~# nano /etc/dhcp/dhcpd.conf

dhcpd.conf#dhcpd.conf
#
# Beispielkonfigurationsdatei für ISC dhcpd
#

# Optionsdefinitionen, die allen unterstützten Netzwerken gemeinsam sind…
Option Domänenname „example.org“;
Option Domänennamenserver ns1.example.org, ns2.example.org;

Standard-Lease-Time 600;
maximale Mietzeit 7200;

ddns-update-style none;

# Wenn dieser DHCP-Server der offizielle DHCP-Server für die lokale ist
# Netzwerk, die maßgebliche Anweisung sollte unkommentiert sein.

maßgebend;

# Eine etwas andere Konfiguration für ein internes Subnetz.
Subnetz 192.168.201.0 Netzmaske 255.255.255.0 {
Bereich 192.168.201.10 192.168.201.250;
Option Domain-Name-Server 192.168.201.254;
Optionsrouter 192.168.201.254;
Option Broadcast-Adresse 192.168.201.255;
Standard-Lease-Time 600;
maximale Mietzeit 7200;
}

11. Starten Sie neu und überprüfen Sie den Dienst auf Port 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp

Netstat-ProtokollAktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Programmname
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/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
raw 0 0 0.0.0.0:1 0.0.0.0:* 393/dhcpd

12. Es müssen noch alle TCP-Anfragen an Port 888 umgeleitet und die Regel in iptables gespeichert werden

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. Um die Bandbreite des Kanals zu erweitern, können Sie mehrere Proxyserver gleichzeitig verwenden. Die Gesamtzahl sollte 1000 betragen. Neue Verbindungen werden mit einer Wahrscheinlichkeit von 0.2, 0.2, 0.2, 0.2, 0,1, 0,1 zu den angegebenen Proxyservern hergestellt.

Hinweis: Wenn wir einen Web-Proxy haben, müssen Sie anstelle von SOCKS5 Connect schreiben, wenn SOCKS4, dann SOCKS4 (SOCKS4 UNTERSTÜTZT KEINE LOGIN-/PASSWORT-Autorisierung!)

Beispiel Nr. 2 für eine transparente Proxy-KonfigurationDaemon
pidfile /home/joke/proxy/3proxy.pid
Server 8.8.8.8
nscache 65536
maxconn 500
Zeitüberschreitungen 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"
drehen 3
spülen
eindeutig authentifizieren
dnspr
erlauben *

Eltern 200 Socken5 IP_ADDRESS_EXTERNAL_PROXY#1 3128 Tester 1234
Eltern 200 Socken5 IP_ADDRESS_EXTERNAL_PROXY#2 3128 Tester 1234
Eltern 200 Socken5 IP_ADDRESS_EXTERNAL_PROXY#3 3128 Tester 1234
Eltern 200 Socken5 IP_ADDRESS_EXTERNAL_PROXY#4 3128 Tester 1234
Eltern 100 Socken5 IP_ADDRESS_EXTERNAL_PROXY#5 3128 Tester 1234
Eltern 100 Socken5 IP_ADDRESS_EXTERNAL_PROXY#6 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

Einrichten und Ausführen der NAT + Transparent Proxy-Konfiguration

In dieser Konfiguration verwenden wir den üblichen NAT-Mechanismus mit selektivem oder vollständig transparentem Proxying einzelner Adressen oder Subnetze. Benutzer des internen Netzwerks arbeiten mit bestimmten Diensten/Subnetzen, ohne überhaupt zu bemerken, dass sie über einen Proxy arbeiten. Alle https-Verbindungen funktionieren einwandfrei, es müssen keine Zertifikate generiert/ersetzt werden.

Lassen Sie uns zunächst entscheiden, welche Subnetze/Dienste wir als Proxy verwenden möchten. Nehmen wir an, dass sich dort, wo ein Dienst wie pandora.com läuft, externe Proxys befinden. Jetzt müssen noch seine Subnetze/Adressen ermittelt werden.

1. Ping

root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56(84) Bytes Daten.

2. Wir geben Google BGP 208.85.40.20 ein

Gehen wir zur Website bgp.he.net/net/208.85.40.0/24#_netinfo
Es ist ersichtlich, dass das von mir gesuchte Subnetz AS40428 Pandora Media, Inc. ist.

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

Eröffnungspräfixe v4

bgp.he.net/AS40428#_prefixes

Hier sind die benötigten Subnetze!

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. Um die Anzahl der Subnetze zu reduzieren, müssen Sie eine Aggregation durchführen. Gehen wir zur Website ip-calculator.ru/aggregate und kopieren Sie unsere Liste dorthin. Das Ergebnis: 6 Subnetze statt 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. Bereinigen Sie die Iptables-Regeln

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

Aktivieren Sie den Weiterleitungsmechanismus und 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

Damit die Weiterleitung nach dem Neustart dauerhaft aktiviert ist, werden wir die Datei ändern

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

Und kommentieren Sie die Zeile aus

net.ipv4.ip_forward = 1

Strg+X zum Speichern der Datei

5. Binden Sie pandora.com-Subnetze in einen Proxy ein

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. Speichern Sie die Regeln

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

Einrichten und Ausführen des Transparent Proxy über die Router-Konfiguration

In dieser Konfiguration kann der transparente Proxyserver ein separater PC oder eine virtuelle Maschine hinter einem Heim-/Firmenrouter sein. Es reicht aus, statische Routen auf dem Router oder den Geräten zu registrieren, und das gesamte Subnetz verwendet den Proxy, ohne dass zusätzliche Einstellungen erforderlich sind.

WICHTIG! Es ist notwendig, dass unser Gateway eine statische IP vom Router erhält oder selbst für statische IP konfiguriert ist.

1. Richten Sie eine statische Gateway-Adresse ein (Adapter enp0s3)

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

/etc/network/interfaces-Datei# Diese Datei beschreibt die Netzwerkschnittstellen auf Ihrem System verfügbaren
# Und wie um sie zu aktivieren. Weitere Informationen finden Sie unter Schnittstellen (5).

Quelle /etc/network/interfaces.d/*

# Der Loopback-Netzwerkschnittstelle
auto es
iface lo inet loopback

# Die primäre Netzwerkschnittstelle
Allow-Hotplug enp0s3
iface enp0s3 inet statisch
Adresse 192.168.23.2
netmask 255.255.255.0
192.168.23.254 Gateway

# Die sekundäre Netzwerkschnittstelle
Allow-Hotplug enp0s8
iface enp0s8 inet statisch
Adresse 192.168.201.254
netmask 255.255.255.0

2. Erlauben Sie Geräten aus dem Subnetz 192.168.23.0/24, Proxying zu verwenden

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. Speichern Sie die Regeln
root@debian9:~# iptables-save > /etc/iptables/rules.v4

4. Schreiben wir Subnetze auf den Router

Router-Netzwerkliste199.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

Verwendete Materialien/Ressourcen

1. Offizielle Website des 3proxy-Programms 3proxy.ru

2. Anweisungen zur Installation von 3proxy aus Quellen www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

3. 3proxy-Entwicklerzweig auf GitHub github.com/z3APA3A/3proxy/issues/274

Source: habr.com

Kommentar hinzufügen