MySQLの警告「IPアドレスを解決できませんでした」


36

MySQL Master / Slaveのセットアップがあり、両方のサーバーのmysqlログファイルに次の警告があることに気付きました。

[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known

確認したところ、DNSルックアップは正常に機能し、これらのIPのほとんどは中国からのものです。

ファイアウォールのポート3306でのアクセスを制限する予定ですが、彼らが何をしようとしているのか理解していただけると助かります。彼らは単にMySQLサーバーに接続しようとしていますか?詳細を確認できる場所。

ありがとう

回答:


48

MySQLユーザーを作成するとき、MySQL username@example.comは接続しているすべてのIPアドレスで逆引きを実行して、それらがの一部であるかどうかを判断する必要がありexample.comます。

もちろん、逆引きの作成に制限はありませんので、私はプロバイダーにIPアドレスの逆引きを設定するように非常に喜んで依頼することができgoogle.comます...またはexample.comデータベースのユーザーが持っているものを知っている場合。MySQLは、返されたドメインで前方参照を実行して、接続している同じIPアドレスと一致することを確認するため、これを許可しません。

でこれをオフに切り替えることができskip_name_resolveますmy.cnfこれをする多くの正当な理由があります

このエラーが発生する理由は、問題のIPアドレスに逆引きがまったくないためです。

また、中国からの悪意のある攻撃者があなたのデータベースに強引に侵入しようとしています。それが最優先事項です。


1
localhostに問題はありますか?
マレーM

あるIPアドレスの逆引きがに解決されたlocalhost場合、MySQLは引き続き正引きをlocalhost行い、元のIPアドレスと一致することを確認するため、そこにセキュリティホールがあるとは思わない。ただし、セキュリティに関連するすべてのものと同様に、このことについて私だけを信頼しないでください。そして、あなたの設定で名前解決をオフにする方が良いでしょう。
ラダダダダ

13

データベースサーバーをインターネットに直接公開するのは非常に悪い考えだと思います。

リモートホストに複製していて、それを実現するためにインターネットアクセスが必要な場合は、2つのネットワーク間にVPNをセットアップし、ローカルネットワークのみをリッスンするようにMySQLサーバーをバインドすることをお勧めします。

両方のホストが同じローカルネットワーク上にある場合、mysqlサーバーをそのネットワークに安全にバインドできます。


1

Amazon RDSでも同様です。私はテストデータベースインスタンスにのみ接続したかった(本番データベースには以下は絶対にお勧めできません):

Amazon RDSのセキュリティグループは、EC2インスタンスの通常のファイアウォールルールとは少し異なる動作をします。特定のIPのMySQLポートを開く場合、IPはMySQLサーバーによって認識される必要があります。そうでない場合、接続は拒否されます。一時的な解決策は、新しいセキュリティグループを作成することです。つまりanyone_can_connect_to_mysql、単一のアイテムで-インターネットからMySQL / Auroraへのインバウンド接続を許可し、このセキュリティグループをデータベースにアタッチします。

Inbound
-----------------------------------------
| MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 |
-----------------------------------------

これにより、クライアント接続からIPチェックが削除されるため、自由に接続できます。anyone_can_connect_to_mysql解決の問題が終わったら、データベースからポリシーをデタッチすることを忘れないでください。


0

Mysqlにリモートで接続すると、エラーが発生しました。私はこの警告を受けました/var/log/mysqld.log

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

/etc/hostsファイルに次の行を追加しました。

X.X.X.X some_name

問題が解決しました!を使用せずにskip-name-resolve、mysqlに接続すると、ローカルアプリでエラーが発生しました。


1年以上前に、mysqlを再起動する必要がありましたか?これはうまくいきませんでした。
エジョソ

hostsファイルはmysqlサーバーではなくクライアント上で管理されるため、そうしません。
leeman24
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.