enp0s3: flags = 4163 <UP, TRANSMISSÃO, EXECUÇÃO MULTICAST> mtu 1500
inet 192.168.23.11 máscara de rede 255.255.255.0 broadcast 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: ba4 prefixo 64 escopo 0x20 éter 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
Pacotes RX 61 bytes 7873 (7,6 KiB)
Erros RX 0 eliminados 0 excedem 0 quadros 0
Pacotes TX 65 bytes 10917 (10,6 KiB)
Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0
enp0s8: flags = 4163 <UP, TRANSMISSÃO, EXECUÇÃO MULTICAST> mtu 1500
inet 192.168.201.254 máscara de rede 255.255.255.0 transmitida 192.168.201.255
inet6 fe80 :: a00: 27ff: fe79: a7e3 prefixo 64 escopo 0x20 éter 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
Pacotes RX 0 bytes 0 (0,0 B)
Erros RX 0 eliminados 0 excedem 0 quadros 0
Pacotes TX 8 bytes 648 (648,0 B)
Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0
lo: flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
inet 127.0.0.1 máscara de rede 255.0.0.0
inet6 :: 1 prefixo 128 escopo 0x loop txqueuelen 1 (loop local)
Pacotes RX 0 bytes 0 (0,0 B)
Erros RX 0 eliminados 0 excedem 0 quadros 0
Pacotes TX 0 bytes 0 (0,0 B)
Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0
3. Tudo acabou, agora você precisa configurar o 3proxy para proxying transparente.
root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf
Exemplo de configuração do servidor proxy transparente nº 1daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
tempos limite 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"
rodar 3
nivelar
auth iponly
dnspr
permitir *
pai 1000 meias5 IP_EXTERNAL_PROXY 3128 testador 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. Agora execute o 3proxy com a nova configuração
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
5. Adicione o crontab novamente
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
6. Vamos ver o que nosso proxy está ouvindo agora
root@debian9:~# netstat -nlp
log netstatConexões ativas da Internet (apenas servidores)
Proto Recv-Q Send-Q Endereço Local Endereço Externo Estado PID / Nome do Programa
tcp 0 0 0.0.0.0:22 0.0.0.0:* OUVIR 349 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* OUVIR 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. Agora, o proxy está pronto para aceitar qualquer conexão TCP na porta 888, DNS na porta 53, para que eles possam ser redirecionados para as peúgas remotas5 - proxy e Google DNS 8.8.8.8. Resta configurar as regras netfilter (iptables) e DHCP para emitir endereços.
8. Instale o pacote iptables-persistent e o dhcpd
root@debian9:~# apt-get install iptables-persistent isc-dhcp-server
9. Edite o arquivo de inicialização dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf
dhcpd.conf# dhcpd.conf
#
# Arquivo de configuração de amostra para ISC dhcpd
#
# definições de opções comuns a todas as redes suportadas ...
opção nome do domínio "example.org";
opção domain-name-servers ns1.example.org, ns2.example.org;
tempo de concessão padrão 600;
tempo máximo de locação 7200;
ddns-update-style nenhum;
# Se este servidor DHCP for o servidor DHCP oficial para o local
# network, a diretiva autoritativa deve ser descomentada.
autoritário;
# Uma configuração ligeiramente diferente para uma sub-rede interna.
sub-rede 192.168.201.0 máscara de rede 255.255.255.0 {
intervalo 192.168.201.10 192.168.201.250;
opção domain-name-servers 192.168.201.254;
roteadores de opções 192.168.201.254;
opção de endereço de transmissão 192.168.201.255;
tempo de concessão padrão 600;
tempo máximo de locação 7200;
}
11. Reinicialize e verifique o serviço na porta 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp
log netstatConexões ativas da Internet (apenas servidores)
Proto Recv-Q Send-Q Endereço Local Endereço Externo Estado PID / Nome do Programa
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:* OUVIR 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
bruto 0 0 0.0.0.0:1 0.0.0.0:* 393 / dhcpd
12. Resta redirecionar todas as solicitações tcp para a porta 888 e salvar a regra no 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 a largura de banda do canal, você pode usar vários servidores proxy ao mesmo tempo. O valor total deve ser 1000. Novas conexões são estabelecidas com uma probabilidade de 0,2, 0,2, 0,2, 0,2, 0,1, 0,1 para os servidores proxy especificados.
Nota: se tivermos um proxy da web, em vez de socks5, será necessário escrever connect, se socks4 e socks4 (socks4 NÃO SUPORTA A AUTORIZAÇÃO DE LOGIN / SENHA!)
Exemplo de configuração transparente do servidor proxy nº 2daemon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
tempos limite 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"
rodar 3
nivelar
auth iponly
dnspr
permitir *
pai 200 meias5 IP_EXT_EXT_PROXY # 1 3128 testador 1234
pai 200 meias5 IP_EXT_EXT_PROXY # 2 3128 testador 1234
pai 200 meias5 IP_EXT_EXT_PROXY # 3 3128 testador 1234
pai 200 meias5 IP_EXT_EXT_PROXY # 4 3128 testador 1234
pai 100 meias5 IP_EXT_EXT_PROXY # 5 3128 testador 1234
pai 100 meias5 IP_EXT_EXT_PROXY # 6 3128 testador 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 e executar a configuração NAT + Proxy Transparente
Nesta configuração, usaremos o mecanismo NAT usual com proxying transparente seletivo ou total de endereços ou sub-redes individuais. Os usuários da rede interna trabalharão com determinados serviços / sub-redes, mesmo sem perceber que eles funcionam através de um proxy. Todas as conexões https funcionam bem, nenhum certificado precisa ser gerado / substituído.
Primeiro, decidimos quais sub-redes / serviços queremos proxy. Suponha que proxies externos estejam localizados onde um serviço como o pandora.com está sendo executado. Agora resta determinar sua sub-rede / endereço.
1. Ping
root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56 (84) bytes de dados.
2. Digitamos no Google BGP 208.85.40.20
Acesse o site
bgp.he.net/net/208.85.40.0/24#_netinfoVocê pode ver que estou procurando a sub-rede AS40428 Pandora Media, Inc
bgp.he.net/net/208.85.40.0/24#_netinfoPrefixos v4 abertos
bgp.he.net/AS40428#_prefixesAqui estão as sub-redes desejadas!
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 reduzir o número de sub-redes, a agregação deve ser realizada. Vá para
ip-calculator.ru/aggregate e copie nossa lista lá. Como resultado - 6 sub-redes em vez 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. Regras claras de iptables
root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X
Ativar encaminhamento e 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 o encaminhamento esteja sempre ativado após a reinicialização, altere o arquivo
root@debian9:~# nano /etc/sysctl.conf
E descomente a linha
net.ipv4.ip_forward = 1
Ctrl + X para salvar o arquivo
5. Enrolamos as sub-redes pandora.com no 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. Salve as regras
root@debian9:~# iptables-save > /etc/iptables/rules.v4
Configurar e executar o Proxy transparente via configuração do roteador
Nessa configuração, o servidor proxy transparente pode ser um PC separado ou uma máquina virtual atrás de um roteador doméstico / corporativo. É suficiente registrar rotas estáticas no roteador ou nos dispositivos e toda a sub-rede usará proxies sem a necessidade de configurações adicionais.
IMPORTANTE! É necessário que nosso gateway receba um IP estático do roteador ou seja configurado para a própria estática.
1. Configure um endereço de gateway estático (adaptador enp0s3)
root@debian9:~# nano /etc/network/interfaces
arquivo / etc / network / interfaces# Este arquivo descreve as interfaces de rede disponíveis no seu sistema
# e como ativá-los. Para mais informações, consulte interfaces (5).
origem /etc/network/interfaces.d/*
# A interface de rede de loopback
auto lo
iface lo inet loopback
# A interface de rede principal
allow-hotplug enp0s3
iface enp0s3 inet static
endereço 192.168.23.2
máscara de rede 255.255.255.0
gateway 192.168.23.254
# A interface de rede secundária
allow-hotplug enp0s8
iface enp0s8 inet static
endereço 192.168.201.254
máscara de rede 255.255.255.0
2. Permita que os dispositivos da sub-rede 192.168.23.0/24 usem 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. Salve as regras
root@debian9:~# iptables-save > /etc/iptables/rules.v4
4. Registraremos as sub-redes no roteador
Lista de redes do roteador199.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
Materiais / Recursos Utilizados
1. O site oficial do programa 3proxy
3proxy.ru2. Instruções de instalação do 3proxy da fonte
www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy3. Ramificação do desenvolvedor 3proxy no github
github.com/z3APA3A/3proxy/issues/274