enp0s3: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.23.11 netmask 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)
Paquetes RX 61 bytes 7873 (7.6 KiB)
Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
Paquetes TX 65 bytes 10917 (10.6 KiB)
Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0
enp0s8: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.201.254 netmask 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)
Paquetes RX 0 bytes 0 (0.0 B)
Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
Paquetes TX 8 bytes 648 (648.0 B)
Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0
lo: flags = 73 <ARRIBA, LOOPBACK, RUNNING> mtu 65536
inet 127.0.0.1 máscara de red 255.0.0.0
inet6 :: 1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Loopback local)
Paquetes RX 0 bytes 0 (0.0 B)
Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
Paquetes TX 0 bytes 0 (0.0 B)
Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0
3. Todo resultó, ahora necesita configurar 3proxy para proxy transparente.
root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf
Ejemplo de configuración del servidor proxy transparente # 1demonio
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
tiempos de espera 1 5 30 60180 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"
rotar 3
rubor
autenticación iponly
dnspr
permitir *
padre 1000 calcetines5 IP_EXTERNAL_PROXY 3128 probador 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. Ahora ejecute 3proxy con la nueva configuración
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
5. Agregue crontab nuevamente
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
6. Veamos qué está escuchando nuestro proxy ahora
root@debian9:~# netstat -nlp
registro de netstatConexiones activas a Internet (solo servidores)
Proto Recv-Q Send-Q Dirección local Dirección extranjera Estado PID / Nombre del programa
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHE 349 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* ESCUCHE 354 / 3proxy
tcp6 0 0 ::: 22 ::: * ESCUCHE 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. Ahora el proxy está listo para aceptar cualquier conexión TCP en el puerto 888, DNS en el puerto 53, para que luego pueda ser redirigido a los calcetines remotos5: proxy de Google y DNS 8.8.8.8. Nos queda por configurar las reglas netfilter (iptables) y DHCP para emitir direcciones.
8. Instale el paquete iptables-persistent y dhcpd
root@debian9:~# apt-get install iptables-persistent isc-dhcp-server
9. Edite el archivo de inicio dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf
dhcpd.conf# dhcpd.conf
# #
# Archivo de configuración de muestra para ISC dhcpd
# #
# definiciones de opciones comunes a todas las redes compatibles ...
opción nombre-dominio "ejemplo.org";
opción de servidores de nombres de dominio ns1.example.org, ns2.example.org;
tiempo de arrendamiento predeterminado 600;
max-lease-time 7200;
ddns-update-style none;
# Si este servidor DHCP es el servidor DHCP oficial para el local
# network, la directiva autorizada no debe ser comentada.
autoritario;
# Una configuración ligeramente diferente para una subred interna.
subred 192.168.201.0 máscara de red 255.255.255.0 {
rango 192.168.201.10 192.168.201.250;
opción de servidores de nombres de dominio 192.168.201.254;
enrutadores opcionales 192.168.201.254;
opción broadcast-address 192.168.201.255;
tiempo de arrendamiento predeterminado 600;
max-lease-time 7200;
}
11. Reinicie y verifique el servicio en el puerto 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp
registro de netstatConexiones activas a Internet (solo servidores)
Proto Recv-Q Send-Q Dirección local Dirección extranjera Estado PID / Nombre del programa
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHE 389 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* ESCUCHE 310 / 3proxy
tcp6 0 0 ::: 22 ::: * ESCUCHE 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
sin procesar 0 0 0.0.0.0:1 0.0.0.0:* 393 / dhcpd
12. Queda por redirigir todas las solicitudes de TCP al puerto 888 y guardar la regla en 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. Para expandir el ancho de banda del canal, puede usar varios servidores proxy. La cantidad total debe ser 1000. Se establecen nuevas conexiones con una probabilidad de 0.2, 0.2, 0.2, 0.2, 0.1, 0.1 a los servidores proxy especificados.
Nota: si tenemos un proxy web, entonces en lugar de socks5 necesita escribir connect, si socks4, luego socks4 (socks4 ¡NO APOYA LA AUTORIZACIÓN DE INICIO DE SESIÓN / CONTRASEÑA!)
Ejemplo de configuración del servidor proxy transparente # 2demonio
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
tiempos de espera 1 5 30 60180 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"
rotar 3
rubor
autenticación iponly
dnspr
permitir *
padre 200 calcetines5 IP_EXT_EXT_PROXY # 1 3128 probador 1234
padre 200 calcetines5 IP_EXT_EXT_PROXY # 2 3128 probador 1234
padre 200 calcetines5 IP_EXT_EXT_PROXY # 3 3128 probador 1234
padre 200 calcetines5 IP_EXT_EXT_PROXY # 4 3128 probador 1234
padre 100 calcetines5 IP_EXT_EXT_PROXY # 5 3128 probador 1234
padre 100 calcetines5 IP_EXT_EXT_PROXY # 6 3128 probador 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
Configurar y ejecutar la configuración de proxy transparente NAT +
En esta configuración, utilizaremos el mecanismo NAT habitual con representación selectiva o transparente total de direcciones o subredes individuales. Los usuarios de la red interna trabajarán con ciertos servicios / subredes sin siquiera darse cuenta de que funcionan a través de un proxy. Todas las conexiones https funcionan bien, no es necesario generar / reemplazar certificados.
Primero, decidimos qué subredes / servicios queremos proxy. Supongamos que los servidores proxy externos se encuentran donde se está ejecutando un servicio como pandora.com. Ahora queda por determinar su subred / dirección.
1. Ping
root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56 (84) bytes de datos.
2. Escribimos en Google BGP 208.85.40.20
Vaya al sitio web
bgp.he.net/net/208.85.40.0/24#_netinfoPuede ver que estoy buscando la subred es AS40428 Pandora Media, Inc
bgp.he.net/net/208.85.40.0/24#_netinfoAbrir prefijos v4
bgp.he.net/AS40428#_prefixes¡Aquí están las subredes deseadas!
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. Para reducir el número de subredes, se debe realizar la agregación. Vaya a
ip-calculator.ru/aggregate y copie nuestra lista allí. Como resultado, 6 subredes en lugar de 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. Borrar las reglas de iptables
root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X
Habilitar reenvío y 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
Para que el reenvío esté siempre activado después de reiniciar, cambie el archivo
root@debian9:~# nano /etc/sysctl.conf
Y descomentar la línea
net.ipv4.ip_forward = 1
Ctrl + X para guardar el archivo
5. Envolvemos las subredes de pandora.com en el 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. Guardar las reglas
root@debian9:~# iptables-save > /etc/iptables/rules.v4
Configure y ejecute el Proxy transparente a través de la configuración del enrutador
En esta configuración, el servidor proxy transparente puede ser una PC separada o una máquina virtual detrás de un enrutador doméstico / corporativo. Es suficiente registrar rutas estáticas en el enrutador o dispositivos y toda la subred usará proxies sin la necesidad de ninguna configuración adicional.
¡IMPORTANTE! Es necesario que nuestra puerta de enlace reciba una IP estática del enrutador, o que esté configurada para la misma estática.
1. Configure una dirección de puerta de enlace estática (adaptador enp0s3)
root@debian9:~# nano /etc/network/interfaces
archivo / etc / network / interfaces# Este archivo describe las interfaces de red disponibles en su sistema
# y cómo activarlos. Para obtener más información, consulte las interfaces (5).
fuente /etc/network/interfaces.d/*
# La interfaz de red de bucle invertido
auto lo
iface lo inet loopback
# La interfaz de red primaria
allow-hotplug enp0s3
iface enp0s3 inet estático
dirección 192.168.23.2
máscara de red 255.255.255.0
Gateway 192.168.23.254
# La interfaz de red secundaria
allow-hotplug enp0s8
iface enp0s8 inet estático
dirección 192.168.201.254
máscara de red 255.255.255.0
2. Permitir que los dispositivos de la subred 192.168.23.0/24 utilicen el 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. Guardar las reglas
root@debian9:~# iptables-save > /etc/iptables/rules.v4
4. Registraremos las subredes en el enrutador
Lista de red del enrutador199.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
Materiales / recursos utilizados
1. El sitio web oficial del
programa 3proxy
3proxy.ru2. Instrucciones de instalación para 3proxy de la fuente
www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy3. Rama de desarrollador 3proxy en github
github.com/z3APA3A/3proxy/issues/274