web-dev-qa-db-ja.com

MySQLのbind-addressを0.0.0.0に設定することはどれほど悪いことですか。

リモートサーバーが、現在LinuxサーバーをWebアプリと共有しているMySQLインスタンスにアクセスできるようにしようとしています。 ドキュメント によると、これが可能になる唯一の方法(私が正しく理解していない場合を除く)は、bind-addressディレクティブが0.0.0.0。これにより、MySQLは有効なユーザーを生成できる任意のIPからのアクセスを許可します。

したがって、2つの質問:

  1. これはセキュリティにどの程度有害ですか?
  2. mySQLとのローカルとリモートの両方の相互作用を可能にするより良いアプローチはありますか?
35
jonathanatx

bind-address設定を少し誤解していると思います。これらは、MySQLが接続を待機するローカルアドレスです。デフォルトは0.0.0.0で、すべてのインターフェイスです。 localhostのみに127.0.0.1を指定しない限り、この設定はサーバーにアクセスできるIPを制限しません。

特定のユーザーを制限する必要がある場合from特定のIPアドレス、このようなcreate/grant userを利用しますCREATE USER 'bobdole'@'192.168.10.221';

36
Doug Luxem

a。悪いです。各データベースでIPによるユーザーアクセスを制限することはできますが、すべての接続をローカルで行う方が安全だと思います。私のサーバーでは、MySQLにローカル接続のみを許可します。デフォルトの構成は127.0.0.1です。データベースにリモートでアクセスするには、データベースに接続する前にsshトンネルを作成し、ローカルに接続するだけです。 PHPでコーディングしている場合は、これを行うのはかなり簡単です。デスクトップアプリケーションをLinuxで簡単に実行できる場合(sshトンネルを検索)、Windowsでは通常、PuTTYなどのプログラムを使用してトンネルを作成します。

1
Jayson Just