サブドメインの接続を介してのみアクセスできるように、特定のサービスへの接続を制限するにはどうすればよいですか?

サブドメインの接続を介してのみアクセスできるように、特定のサービスへの接続を制限するにはどうすればよいですか?

Ubuntu 14.04.4 LTSを実行しているPCがあります。 TeamspeakとMinecraftサーバーはもちろん、ウェブサイトをホストするために使用します。

サブドメインが正しいサービスのみを指すようにします。例えば

使用は(CPパネル)のみを panel.example.com指します。https://localhost:8000Aレコードの代わりにDNS URLリダイレクトを使用してCPパネルをきれいに管理しました。

使用は(Minecraftサーバー)のみをmc.example.com指します。localhost:25565

(Teamspeakサーバー)のみをts.example.com指します。localhost:9987

使用はウェブサイト()のみをexample.com指します。example.com/forums /index.php

私は少なくとも次のようにWebブラウザを介して行われた接続に対してこれを行いましたhttpd.conf

<VirtualHost *:80>
ServerName mc.example.com
redirect / localhost:25565
</VirtualHost>

<VirtualHost *:80>
ServerName ts.example.com
redirect / localhost:9987
</VirtualHost>

しかし、これはWebブラウザの接続でのみ機能します。サブドメインまたはドメイン名を使用してTeamspeakに接続しようとすると、引き続き接続されます。

これはおそらく役に立たず、ドメイン名のみを使用する必要がありますが、いくつかのソートを実行したいと思います。

可能ですか?

私が理解したのは、これがIPTableと関係があるかもしれませんが、正直なところ分かりません。このような?

iptables coming from any ip:25565 to anything else than localhost:25565 Drop
iptables coming from any ip:9987 to anything else than localhost:9987 Drop
iptables coming from any ip:80 to anything else than localhost:80/8000 Drop

私は正しいですか?

答え1

作成したIPTABLEルールは、すべてのトラフィックを拒否して削除します。そのApacheルールも役に立ちません。
必要なものを達成する唯一の方法は、Linuxサーバーに3つの仮想ネットワークアダプタを追加することです。これにより、各アダプタに有効な外部IPアドレスがあります。各ドメイン名が4つのIPアドレスのいずれかを指すようにDNSを設定できます。

MinecraftはexternalIp1:25565にバインドし、TeamspeakはexternalIP2:9987にバインドし、CPannelはexternalIP3にバインドし、最後にApacheはexternalIP4:80にバインドする必要があります。

「バインド」とは、アプリケーションがIP(ほとんどのアプリケーションのデフォルト動作)ではなく特定のIPを受信するように設定する必要があることを意味します。

関連情報