2012-01-08 6 views
3

私は大規模なインターネットでサーバを使い果たしました。ホームシステムに接続するためにmysqlクライアントを実行したいのです。明白なセキュリティ上の理由から、私はMySqlサーバに自分のIPアドレスが接続できるようにしたい。私は現在のIPアドレスを追跡するdyndns.orgアカウントを持っています。 Comcastはいつでも自分のIPアドレスを変更することができます。MySQLユーザ名に動的DNS名を使用するにはどうすればよいですか?

ので、私はこのようなユーザーの作成:

CREATE USER 'user'@'mememe.dyndns.org' IDENTIFIED BY 'changeme'; 
GRANT ALL PRIVILEGES ON mydata TO 'user'@'mememe.dyndns.org'; 

私は私のホームシステムからこのサーバーに接続しようとするので、私が取得:

ERROR 1130 (HY000): Host 'c-98-234-122-18.hsd1.ca.comcast.net' is not allowed to connect to this MySQL server 

もちろん、MySQLが見ているホスト名をIPアドレスのRDNSルックアップは何だったのでしょうか。私が望むのは、dyndns.orgの名前を認識させることです。これを行う方法はありますか?

これを行う方法がない場合は、ワイルドカードまたは特定のIPアドレスを使用してユーザー名を作成する必要がありますか?

答えて

3

問題は、comcastホスト名がDynDNSではなく、そのIPの正式な逆引き参照名であることです。あなたがしたいことは、MySQLではまったく不可能かもしれません。

しかし、独自のサーバーをお持ちの場合は、これを別の角度から実行して、mySQL内の任意のIPからの接続を許可しますが、サーバーのファイアウォールを使用してIPベースのフィルタリングを行う方法はありますか?本格的なファイアウォール製品には、このようなものを引き出す可能性がさらにあります。

This blog postは、たとえば、動的DNSホストからiptablesレコードを更新する方法を示しています。多分それはスタートです。それ以外の場合、「LinuxファイアウォールDyndns」や「iptables dyndns」のような検索クエリで解決策が得られる可能性があります。

これについてはServerfaultで別の質問をする価値があります。

+0

私はiptablesフィルタを使用することを考えましたが、最初に行う「純粋なMySQL」方法がないことを確認したかったのです。私はまだ非常にMySQLで経験していないので、不可能な解決策を実装しようと時間を無駄にしないようにすると便利です。 – AlanObject

+0

@Alan yeah。私はmySQLの専門家ではありませんが、これを行う方法がないと確信しています - mySQLのIPフィルタリングは非常に基本的なものであり、意図的なものです。 iptablesはやり方のように聞こえる。 –

4

厳密には不可能である何を達成したい、

  • のMySQL解決されるホスト名にIP接続(c-98-234-122-18.hsd1.caイベントは、MySQLに

    1. ユーザーが接続している流れを検討.comcast.net)
    2. MySQLは、MySQLは、これまで 'mememe.dyndns.org' を見上げるんがない時点で権限

    ため、この(ユーザー、ホスト名)のタプルを検索します。

  • +0

    これは残念ですが、非常に有用なデータポイントです。私はこれが私が質問に自分自身で答えることができた論理だと分かっていました。 – AlanObject

    関連する問題