外部ホストのローカルDNS検証を強制する

外部ホストのローカルDNS検証を強制する

私の環境: *オペレーティングシステム:*エストロムLinux

ドメイン名システム:製本

現状:

  1. ユーザーが個人用オフラインネットワークに接続します。
  2. ユーザーがgoogle.comにアクセスしようとしていますが、私のボックスがプライベートネットワークにあるため、接続が利用できないというエラーが発生します。

必須シナリオの例:

  1. ユーザーが個人用オフラインネットワークに接続します。
  2. ユーザーがブラウザからgoogle.comまたは他の外部ホストにアクセスしようとすると、私のスプラッシュページにリダイレクトされます。

マイコンピュータのインターネット接続が失われても、エンドユーザーは引き続きgoogle.comまたは他の外部ウェブサイトにアクセスしてマイラン/ポータルページにリダイレクトされる可能性があります。

これを達成する方法についてのアイデアやフィードバックをいただきありがとうございます。

答え1

方法 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

クライアントコンピュータでゲートウェイを使用し、Linuxボックスに次のルールを追加し、Ipforwordingを有効にします。

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

IP_転送を有効にする:

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

それから申請してください

sysctl -p

ドラブが言ったように

ポート443をリダイレクトできますが、これはブラウザに無効な証明書に関する警告が表示されることに注意してください(これは何でも)。

方法2#DNS

名前付き.confから:

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

"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

IPアドレス10.0.0.1をWebサーバーに置き換えます。

上記の方法はテストされ、効果的です。

関連情報