Atacante Proxy e proxy reverso
1. O que é o proxy de encaminhamento (proxy para a frente)?
Antes da tecnologia NAT (Network Address Translation) aparece, todos os hosts que não estão directamente relacionados com a rede externa, com a Internet, você precisa se conectar a uma rede para acesso ao servidor Web externo, e, em seguida, acessar a Internet através deste servidor. Este servidor Web é chamado de "servidor proxy para a frente."
Agora, o "por cima do muro" A tecnologia é também a forma como podemos colocar a solicitação para um servidor Web ligado ao mundo exterior, que transmitiu o nosso pedido, e, em seguida, retorna os resultados para nós. Este servidor Web é "servidor proxy para a frente."
Para resumir: servidor proxy para a frente é um intermediário entre o cliente e os clientes de acesso de cliente do servidor de destino não pode acessar o objetivo original servidor para a frente proxy.
2. O que é um proxy reverso?
Depois que os submete cliente um pedido para o servidor A, o servidor A para secretamente acesso a recursos no servidor B, e devolvido ao cliente. O cliente é ingênuo pensar que o servidor de dados A para ele. Neste processo, o servidor A é chamado de "servidor proxy reverso", o servidor B é chamado de "servidor back-end" servidor proxy reverso.
3, a diferença
É a diferença entre os dois maioria dos ângulos de usuário intuitiva. "Forward proxy" é a tecnologia usada pelo usuário. A primeira é o know usuário que o servidor de destino que eles querem alcançar, mas por algum motivo não pode acessar o servidor de destino diretamente, e, portanto, optar por usar o servidor para a frente Proxy encaminha a solicitação para ajuda.
O "proxy reverso" é a tecnologia usada pelo servidor. Depois que um usuário envia uma solicitação para o servidor, o servidor de acesso ao conhecimento para baixo do usuário para recursos em outros servidores e voltou para o usuário.
recurso de proxy reverso
Ativar proxy reverso
ProxyPass "/" "http://192.168.34.102/" ProxyPassReverse "/" "http://192.168.34.102/"
URL proxy reverso específico
ProxyPass "/ imagens" "http://www.example.com/" ProxyPassReverse "/ images" http://www.example.com/
exemplo:
<VirtualHost *> ServerName www.magedu.com ProxyPass / http: // localhost: 8080 / ProxyPassReverse / http: // localhost: 8080 / </ VirtualHost>
implantação piloto: implementar a funcionalidade proxy reverso
Uma série como um cliente: 192.168.34.100
host B como um servidor proxy reverso: 192.168.34.101
hospedeiro C como um servidor de fundo: 192.168.34.102
httpd serviço começar três hosts
(1) Primeiro index.html arquivo em um novo hospedeiro C / var / www / html diretório
[Root @ centos777 ~] #echo 192.168.34.102> /var/www/html/index.html
(2) o conteúdo escrito no reverso host B proxy:
vim /etc/httpd/conf.d/test.conf ProxyPass "/" "http://192.168.34.102/" ProxyPassReverse "/" "192.168.34.102/"
Reinicie o serviço httpd: systemctl reiniciar httpd
(3) Neste caso, o acesso para o host B no hospedeiro A, C hospedeiro é o serviço efectivo no fundo, isto é a aceder a informações C hospedeiro
(4) o log de controle de acesso no hospedeiro C, B pode ser visto na informação da máquina o acesso ao servidor hospedeiro C
(5) pode verificar o seu host local log log B, você pode realmente ver um acesso ao host B
tail / var / log / httpd / access_log
mecanismo sendfile
tradicional rede de transmissão sem sendfile:
leia (arquivo, tmp_buf, len) write (socket, tmp_buf, len)
硬盘 >> Kernel tampão >> buffer do usuário >> kernel do soquete tampão >> 协议 栈
Normalmente, o disco rígido através da leitura aplicações de rede de dados, gravação de dados para completar a tomada de rede para transmissão, o processo de execução subjacente:
1 chamada de sistema read () para gerar uma mudança de contexto: interruptor do modo de utilizador para o modo kernel, e em seguida, executar o DMA cópia, para ler os dados do arquivo do disco rígido em um buffer de kernel. 2 Tampão de copiar dados de núcleo para tampão de utilizador, em seguida, o sistema retorna para a leitura de chamada (), e tempo para produzir uma mudança de contexto: de comutação de modo de núcleo para o modo de utilizador 3 sistema de gravação de chamada () gera uma chave de contexto:. Comutador do modo de utilizador para o kernel modo, e depois passo 2 a leitura de dados para a cópia tampão Usuário tampão Kernel (2º dados copiados para o buffer do kernel), mas este é um buffer de kernel diferente, o buffer e soquete associado. 4 Sistema de gravação de chamada () retorna, gerando uma mudança de contexto: de comutação de modo de núcleo para o modo de utilizador (quarto parâmetro), e, em seguida, o DMA copie os dados do buffer de núcleo para a pilha de protocolos (4o cópias)
Os quatro passos acima de contexto interruptores 4, existem quatro cópias, tais como o número de comutadores pode ser reduzido e o número de cópias irá eficazmente melhorar o desempenho
Na versão do kernel 2.0+, o sistema chama o sendfile () é usado para simplificar o passo acima para melhorar o desempenho. sendfile () não só reduzir o número de interruptores, mas também para reduzir o número de cópias
Com o procedimento sendfile () para a transmissão de rede:
sendfile (soquete, arquivo, len);
disco rígido >> Kernel Buffer (rapidamente copiado para o buffer do soquete kernel) >> pilha de protocolos
A chamada do sistema sendfile 1 () por DMA para copiar os dados para o disco rígido do kernel de tampão, depois de dados é copiado directamente para o kernel kernel Tampão associada com o encaixe outro. Não há comutação entre o modo de usuário e modo kernel, o kernel é feito directamente a partir de uma reserva para outra cópia do buffer de 2 DMA os dados diretamente copiado do buffer de kernel para a pilha de protocolos, não faz, nem precisa dos dados de modo de usuário copiado para o modo kernel, porque os dados no kernel em