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. 1Daemon
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 logAktive 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 logAktive 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. 2Daemon
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#_netinfoSie 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#_prefixesHier 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
Routernetzwerkliste199.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.ru2. Installationsanweisungen für 3proxy von der Quelle
www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy3. 3proxy-Entwicklerzweig auf github
github.com/z3APA3A/3proxy/issues/274