web-dev-qa-db-ja.com

MySQLデータベースをいくつかのWebサーバーに提供するUbuntu16.04のUFW設定

一部のWebサーバーとの間のMySQLデータベース要求の送受信にのみ使用されるUbuntu16.04サーバーをセットアップしています。

UFWを使用して、すべてをブロックしてから例外を作成できるかどうか疑問に思っています。私が取ったいくつかの古いメモは提案しました:

Sudo ufw default deny incoming
Sudo ufw default deny outgoing

入力した後、ufwstatusはそれらのルールに関して何も表示しません。

その後:

Sudo ufw allow mysql
Sudo ufw allow OpenSSH
Sudo ufw allow 2222/tcp
Sudo ufw allow from 012.34.567.89 comment ip's of web servers

私は得ています:

Host 'pool-012-34-567-89.area.fios.verizon.net' is not allowed 
to connect to this MySQL server

どうすれば修正できますか?そして、ルールの順序に魔法はありますか?

更新:私はすでに特権を持つユーザーを設定していました:

CREATE USER 'usr'@'web-server_ip' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database.* TO 'usr'@'web_server_ip';

私のsshポートはポート22以外のものです。「2222」は単なる例示です。

1
Jay

あなたのsshポートは何ですか?おそらく次のいずれかが必要です。ルール「ssh」は2222のものと同じですが、ポート22用です。さらに、mysql dbサーバーでsshとmysqlを既に許可している場合、サーバーのipを明示的に許可するのはなぜですか。あなたはすでに3306をグローバルにオープンしました!そして、いいえ。 ufwのルールの順序に「魔法」はありません。

編集に追加したエラーは、作成したmysqlアカウントが上記のホストからの接続を許可されていないことを意味します。

ホストごとにアカウントを作成するか、%ワイルドカードを使用してアカウントが任意のホストから接続することを非常に安全に許可しないでください。

Mysql dbサーバーを実装する場合は、ドキュメントを読むことをお勧めします。

Update 2の後、私はあなたが実際にあなたが書いたことをしなかったか、プール-.... verizon.netがmysqlcreateuserステートメントで追加したホストと同じではないと言わなければなりません。別の名前で別のユーザーを作成し、ホスト名とIPアドレスの両方、そしてもちろん同じパスワードを使用して2回作成してみてください。何も混乱させない場合は、[〜#〜] must [〜#〜]仕事。

また、ドキュメントを読んでください。現時点では、パーティション分割とマウント、データベースサーバーの構成、ファイアウォールの緩みなど、少なくとも3つのエラーが発生している可能性があり、4つ目はアクセス許可の付与です。

3
Marco