Use Domínio em iptables PREROUTING

Use Domínio em iptables PREROUTING

Tenho um www.example.comcom X.X.Y.Yip quero encaminhar o tráfego da porta 80 para o domínio (www.example.com), usei o seguinte iptable:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination X.X.Y.Y:80

mas não obtenho um bom resultado porque X.X.Y.Yo conteúdo não é igual ao domínio (www.example.com).
Por exemplo: se você acessar 198.252.206.16(o ip do serverfault) com seu navegador você verá esse resultado e o conteúdo do endereço (endereço IP ) não é igual www.serverfault.com.
Quero usar domínio na regra iptables acima, por exemplo: --to-destination www.example.com(é apenas um exemplo e sei que não está funcionando), como posso fazer isso?
Existe alguma maneira alternativa de fazer isso sem usar o iptables?
Obrigado

Responder1

Acho que você precisa é de um proxy HTTP para reescrever os cabeçalhos da solicitação. IPTables não analisa o cabeçalho HTTP e substitui os domínios neles.

Você deve procurar algo como Nginx ou Squid para fazer isso, apenas algo que entenda e reescreva os cabeçalhos de solicitação HTTP no domínio que você deseja.

IPTables não conhece nenhum protocolo superior ao TCP ou UDP.

Responder2

Você não pode fazer isso iptablesmesmo se usar a -dopção, pois os nomes de domínio são carregados durante a inicialização do iptables. A maneira certa de fazer o que você deseja é usar um servidor proxy como o Squid.

Responder3

no seu servidor web faça algo assim:

 NameVirtualHost *:80
 <VirtualHost *:80>
   # The DNS1 site is hosted locally
   ServerName DNS1
   DocumentRoot /var/www./...
 </VirtualHost>

 <VirtualHost *:80>
   ServerName DNS2
   # Forward all requests to container:
   Proxypass / http://<container-ip>
   ProxypassReverse / http://<container-ip>
 </VirtualHost>

informação relacionada