Força a resolução de DNS local para hosts externos

3

Meu ambiente: * OS: * Angstrom Linux

DNS: Ligação

Cenário atual:

  1. O usuário se conecta à minha rede off-line privada.
  2. O usuário tenta acessar o google.com e minha caixa está em uma rede privada portanto, eles conectam erro não disponível.

Exemplo do cenário desejado:

  1. O usuário se conecta à minha rede off-line particular.
  2. O usuário tenta acessar o google.com ou qualquer outro host externo no navegador e é redirecionado para a minha página inicial.

A ideia é que, se minha máquina perder a conectividade com a Internet, o usuário final ainda poderá acessar o google.com ou qualquer outro site externo e ser redirecionado para minha página inicial / de portal.

Qualquer opinião ou feedback sobre como isso pode ser alcançado seria muito apreciado.

    
por Fostah 22.08.2013 / 18:27

1 resposta

3

Método 1 # IPTABLES

                                                                     xxxxx
      +----------+                 +----------+             xxxxxxxxx     xxx xxxxx
      |          |                 |          |            xx                     xx
      |          |                 |  Linux   |          xxx                       xx x
      |          |                 |  Box     |          x                            x
      |  Clinet  |     ========>   |  As      |  ====>  x   WebServer portal page.
      |          |                 |  GateWay |          xx                        xxx
      |          |                 |          |           x                         x
      |          |                 |          |            xx xxx       x       xxxxx
      +----------+                 +----------+                   xxxxxxxxxx xxx

Use o Gateway no Client Machine, e adicione a seguinte regra na sua Linux Box e habilite o Ipforwording

/sbin/iptables -t nat -A PREROUTING -s [source network/mask] -p tcp --dport 80 -j DNAT --to-destination [your webserver]

Ativar IP_Forwarding:

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

aplique então

sysctl -p

Como Drav Said

You can redirect port 443, but remember this will cause browser warnings about invalid Certificates (this will happen no matter what you do)

Método 2 # DNS

No named.conf:

zone "." IN {
    type master;
    file "named.root";
};

Em "named.root":

$ORIGIN .
$TTL 1D
@    IN     SOA  @ none. ( 0 1D 1H 1W 3H );
.     IN     NS   @
@     IN     A   10.0.0.1
*     IN     A   10.0.0.1

Substitua o endereço IP 10.0.0.1 pelo seu servidor da Web.

O método acima foi testado e está funcionando.

    
por 22.08.2013 / 20:05