Die Grundlagen des transparenten Proxys mit 3proxy und iptables / netfilter oder wie man "alles durch einen Proxy lässt"

In diesem Artikel möchte ich die Möglichkeiten des transparenten Proxys aufzeigen, mit dem Sie den gesamten oder einen Teil des Datenverkehrs über externe Proxyserver absolut unmerklich umleiten können.

Als ich anfing, dieses Problem zu lösen, war ich mit der Tatsache konfrontiert, dass seine Implementierung ein bedeutendes Problem aufweist - das HTTPS-Protokoll. In den guten alten Zeiten gab es keine besonderen Probleme mit transparentem HTTP-Proxy, aber beim Proxy von HTTPS melden Browser Störungen des Protokolls, und hier endet das Glück.

In allgemeinen Anweisungen an den Proxyserver bietet Squid sogar an, ein eigenes Zertifikat zu generieren und es für Clients zu installieren. Dies ist zumindest irrational und sieht aus wie ein MITM-Angriff. Ich weiß, dass Squid bereits weiß, wie man so etwas macht, aber in diesem Artikel geht es um eine bewährte und funktionierende Methode mit 3proxy aus dem angesehenen 3APA3A.

Als Nächstes werden wir den Prozess des Erstellens von 3proxy aus dem Quellcode, seine Konfiguration, das vollständige und selektive Proxying mithilfe von NAT, die Kanalverteilung auf mehrere externe Proxyserver sowie die Verwendung eines Routers und statischer Routen im Detail betrachten. Wir verwenden Debian 9 x64 als Betriebssystem. Fangen wir an!

Installieren Sie 3proxy und starten Sie einen regulären Proxyserver


1. Installieren Sie ifconfig (aus dem Net-Tools-Paket).
apt-get install net-tools
2. Installieren Sie Midnigth Commander
apt-get install mc
3. Wir haben jetzt 2 Schnittstellen:
enp0s3 - extern, schaut im Internet
enp0s8 - intern, sollte in ein lokales Netzwerk schauen
In anderen Debian-basierten Distributionen werden Schnittstellen normalerweise als eth0 und eth1 bezeichnet.
ifconfig -a

Schnittstellen
enp0s3: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.23.11 Netzmaske 255.255.255.0 Broadcast 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: bae4 prefixlen 64 scopeid 0x20 ether 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
Empfangspakete 6412 Bytes 8676619 (8,2 MiB)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 1726 Bytes 289128 (282,3 KiB)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

enp0s8: flags = 4098 <BROADCAST, MULTICAST> mtu 1500
ether 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
Empfangspakete 0 Bytes 0 (0,0 B)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 0 Bytes 0 (0,0 B)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

lo: flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 Präfix 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback)
Empfangspakete 0 Bytes 0 (0,0 B)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 0 Bytes 0 (0,0 B)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

Die enp0s8-Schnittstelle wird derzeit nicht verwendet. Wir aktivieren sie, wenn wir die Proxy-NAT- oder NAT-Konfiguration verwenden möchten. Es ist dann logisch, ihm eine statische IP zuzuweisen.

4. Fahren Sie mit der Installation von 3proxy fort

4.1 Installieren von Basispaketen zum Kompilieren von 3proxy aus dem Quellcode

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

4.2. Erstellen Sie einen Ordner, um das Archiv mit Quelle herunterzuladen

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

4.3. Gehen wir zu diesem Ordner

root@debian9:~# cd /opt/proxy


4.4. Laden Sie jetzt das neueste 3proxy-Paket herunter. Zum Zeitpunkt des Schreibens war die neueste stabile Version 0.8.12 (18.04.2008). Laden Sie sie von der offiziellen 3proxy-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. Wechseln 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 vollständig anonym ist (es funktioniert wirklich, alles wird überprüft, IP-Clients 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

Makelog
make [2]: Verlassen des Verzeichnisses '/opt/proxy/3proxy-0.8.12/src/plugins/TransparentPlugin'
make [1]: Verlassen des Verzeichnisses '/opt/proxy/3proxy-0.8.12/src'

Keine Fehler, weiter.

4.9. Installieren Sie das Programm im System

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

4.10. Gehen Sie zum Stammverzeichnis und überprüfen Sie, wo das Programm installiert ist.

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 Sie einen Ordner für Konfigurationsdateien und Protokolle im Home-Verzeichnis des Benutzers

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

4.12. Wechseln Sie in das Verzeichnis, in dem sich die Konfiguration befinden soll

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

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

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

3proxy.conf
Daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 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
auth stark
spülen
Tester zulassen
Socken -p3128
Proxy -p8080

Drücken Sie zum Speichern Strg + Z.

4.14. Erstellen Sie eine PID-Datei, damit beim Start keine Fehler auftreten.

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

Drücken Sie zum Speichern Strg + Z.

4.15. Starten Sie einen Proxyserver!

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

4.16. Mal sehen, ob der Server Ports überwacht

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

netstat log
Aktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Lokale Adresse Fremdadresse Status 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:* HÖREN 338 / sshd
tcp 0 0 0.0.0.0lla128 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 beschrieben, lauscht der Webproxy auf Port 8080 und der Socks5-Proxy auf 3128.

4.17. Um den Proxy-Dienst nach dem Neustart zu starten, fügen Sie ihn cron hinzu.

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

Fügen Sie eine Zeile hinzu

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

Drücken Sie die Eingabetaste, da cron das Zeilenendezeichen sehen und die Datei speichern soll.

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

crontab: Installation eines neuen crontab

4.18. Wir werden das System neu starten und versuchen, über den Browser eine Verbindung zum Proxy herzustellen. Zur Überprüfung verwenden wir den Firefox-Browser (für Web-Proxy) und das FoxyProxy-Add-On für socks5 mit Authentifizierung.

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

4.19. Nachdem Sie den Proxy nach dem Neustart überprüft haben, können Sie die Protokolle anzeigen. Damit ist die Proxy-Einrichtung abgeschlossen.

3 Proxy-Protokoll
1542573996.018 PROXY.8080 00000 Tester 192.168.23.10:50915 217.12.15.54ced43 1193 6939 0 CONNECT_ads.yahoo.com:443_HTTP/1.1
1542574289.634 SOCK5.3128 00000 Tester 192.168.23.10/101193 54.192.13.69:443 0 0 0 CONNECT_normandy.cdn.mozilla.net:443

Konfigurieren Sie die NAT-Konfiguration von Transparent Proxy und führen Sie sie aus


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 Proxyserver umgeleitet (Erweiterung der Kanalbreite, Konfigurationsbeispiel Nr. 2!). DNS nutzt die Funktionen von 3proxy (dnspr). 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 Schnittstelle enp0s8 zu aktivieren

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

/ etc / network / interfaces Datei
# Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen
# und wie man sie aktiviert. Weitere Informationen finden Sie unter Schnittstellen (5).

Quelle /etc/network/interfaces.d/*

# Die Loopback-Netzwerkschnittstelle
auto lo
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 static
Adresse 192.168.201.254
Netzmaske 255.255.255.0

Hier haben wir der Schnittstelle enp0s8 die statische Adresse 192.168.201.254 und die Maske 255.255.255.0 zugewiesen
Speichern Sie die Konfiguration Strg + X und starten Sie neu

root@debian9:~# reboot

2. Überprüfen Sie die Schnittstellen

root@debian9:~# ifconfig

ifconfig-Protokoll
enp0s3: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.23.11 Netzmaske 255.255.255.0 Broadcast 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: bae4 prefixlen 64 scopeid 0x20 ether 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
Empfangspakete 61 Bytes 7873 (7,6 KiB)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 65 Bytes 10917 (10,6 KiB)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

enp0s8: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.201.254 Netzmaske 255.255.255.0 Broadcast 192.168.201.255
inet6 fe80 :: a00: 27ff: fe79: a7e3 prefixlen 64 scopeid 0x20 ether 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
Empfangspakete 0 Bytes 0 (0,0 B)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 8 Bytes 648 (648,0 B)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

lo: flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 Präfix 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback)
Empfangspakete 0 Bytes 0 (0,0 B)
RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
TX-Pakete 0 Bytes 0 (0,0 B)
TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

3. Es hat sich alles herausgestellt, jetzt müssen Sie 3proxy für transparentes Proxy konfigurieren.

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


Beispielkonfiguration des transparenten Proxyservers Nr. 1
Daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 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
Auth iponly
dnspr
erlauben *
Eltern 1000 Socken5 IP_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. 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. Crontab erneut hinzufügen
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf


6. Mal sehen, was unser Proxy gerade hört
root@debian9:~# netstat -nlp


netstat log
Aktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Lokale Adresse Fremdadresse Status PID / Programmname
tcp 0 0 0.0.0.0:22 0.0.0.0:* HÖREN 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 an Port 888 und DNS an Port 53 zu akzeptieren, damit sie dann an die Remote-Socks5 umgeleitet werden können - Google-Proxy und DNS 8.8.8.8. Es bleibt uns überlassen, die Netfilter- (iptables) und DHCP-Regeln für die Ausgabe von Adressen 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 Domain-Name "example.org";
Option Domain-Name-Server ns1.example.org, ns2.example.org;

Standard-Lease-Time 600;
maximale Mietzeit 7200;

ddns-update-style keine;

# Wenn dieser DHCP-Server der offizielle DHCP-Server für den lokalen Server ist
# Netzwerk sollte die maßgebliche Direktive nicht kommentiert werden.

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 den Dienst an Port 67 neu und überprüfen Sie ihn
root@debian9:~# reboot
root@debian9:~# netstat -nlp


netstat log
Aktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Lokale Adresse Fremdadresse Status PID / Programmname
tcp 0 0 0.0.0.0:22 0.0.0.0:* HÖREN 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 bleibt, alle TCP-Anforderungen an Port 888 umzuleiten und die Regel in iptables zu speichern

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 Kanalbandbreite zu erweitern, können Sie mehrere Proxyserver gleichzeitig verwenden. Der Gesamtbetrag sollte 1000 betragen. Neue Verbindungen zu den angegebenen Proxyservern werden mit einer Wahrscheinlichkeit von 0,2, 0,2, 0,2, 0,2, 0,1, 0,1 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!)

Konfigurationsbeispiel für transparenten Proxyserver Nr. 2
Daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 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
Auth iponly
dnspr
erlauben *

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

Konfigurieren Sie die NAT + Transparent Proxy-Konfiguration und führen Sie sie aus


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

Zunächst entscheiden wir, welche Subnetze / Dienste wir als Proxy verwenden möchten. Angenommen, externe Proxys befinden sich dort, wo ein Dienst wie pandora.com ausgeführt wird. Nun bleibt es, sein Subnetz / seine Adresse zu bestimmen.

1. Ping

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

2. Wir geben Google BGP 208.85.40.20 ein

Gehen Sie zur Website bgp.he.net/net/208.85.40.0/24#_netinfo
Sie können sehen, dass ich nach dem Subnetz suche, das AS40428 Pandora Media, Inc. Ist

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

Öffnen Sie die v4-Präfixe

bgp.he.net/AS40428#_prefixes

Hier sind die gewünschten 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 verringern, muss eine Aggregation durchgeführt werden. Gehen Sie zu ip-calculator.ru/aggregate und kopieren Sie dort unsere Liste. Als 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. Löschen Sie die iptables-Regeln

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


Forward und NAT aktivieren

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


Ändern Sie die Datei, damit die Weiterleitung nach dem Neustart immer aktiviert ist

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

Und kommentieren Sie die Zeile

net.ipv4.ip_forward = 1

Strg + X, um die Datei zu speichern

5. Wir verpacken die Subnetze von pandora.com in den 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. Speichern Sie die Regeln

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

Konfigurieren Sie den transparenten Proxy und führen Sie ihn über die Routerkonfiguration aus


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

WICHTIG! Es ist erforderlich, dass unser Gateway eine statische IP vom Router empfängt oder für statische selbst konfiguriert ist.

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

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

/ etc / network / interfaces Datei
# Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen
# und wie man sie aktiviert. Weitere Informationen finden Sie unter Schnittstellen (5).

Quelle /etc/network/interfaces.d/*

# Die Loopback-Netzwerkschnittstelle
auto lo
iface lo inet loopback

# Die primäre Netzwerkschnittstelle
allow-hotplug enp0s3
iface enp0s3 inet static
Adresse 192.168.23.2
Netzmaske 255.255.255.0
Gateway 192.168.23.254

# Die sekundäre Netzwerkschnittstelle
allow-hotplug enp0s8
iface enp0s8 inet static
Adresse 192.168.201.254
Netzmaske 255.255.255.0

2. Ermöglichen Sie Geräten aus dem Subnetz 192.168.23.0/24 die Verwendung von 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. Speichern Sie die Regeln
root@debian9:~# iptables-save > /etc/iptables/rules.v4

4. Wir werden die Subnetze auf dem Router registrieren

Routernetzwerkliste
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

Verwendete Materialien / Ressourcen


1. Die offizielle Website des Programms 3proxy 3proxy.ru

2. Installationsanweisungen für 3proxy von der Quelle www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy

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

Source: https://habr.com/ru/post/de460469/


All Articles