1つのポートのすべてのトラフィックをブロックするにはどうすればよいですか?次の状況を取ります。
通常のセットアップでは、発信トラフィックが許可されているため、MySQLクライアントはAmazonEC2のようにホストされたmysqlサーバーに接続できます。
現在、次の設定があります。これで3306がブロックされると思いましたが、MySQLクライアントを使用してAmazonと接続できます。すべてのルールが適用されていることを確認するために再起動しました。
To Action From ------- ---- [1] 22どこでも許可 [2] 80どこでも許可 [3] 5900どこでも許可 [4]どこでも拒否3306 [5] 3306どこでも拒否 [6] 22どこでも許可(v6) [7] 80どこでも許可(v6) [8] 5900どこでも許可(v6) [9]どこでも(v6)3306で拒否 [10] 3306どこでも拒否(v6)
もう少し説明...
VMを使用して既存のWebアプリケーションをテストします。ライブ環境のコピーを作成し、VMで復元します。ライブアプリケーションはAmazonEC2でホストされます。ライブのデータベースサーバーアプリケーションはlocalhostではなく、別のサーバーです。Amazonでは、接続文字列に12.34.56.78.eu-west-1.compute.amazonaws.com
のようなパブリックアドレスを使用できます。内部的にはこれをキャッチし、内部IPアドレスが使用されます。これには次の利点があります。インスタンスがクラッシュし、別の内部IPアドレスを使用して別のインスタンスを作成する必要がある場合、接続文字列を変更する必要はありません。
このアドレスはAWSの外部から機能するため、VMから機能します。 VMから本番データベースに接続できます。私はそれを認識しており、接続文字列を編集する必要があることを知っています。時々それを忘れて、本番データベースが使用されます。Iデータベース接続が失敗したことを示す大きな太った醜いエラーメッセージをテスト環境から受け取ることを好みます(ローカルネットワーク内の別のクライアントがVM内のmysqlサーバーに接続したい場合、それは実際には問題ではありません。 )
では、どうすればこれを機能させることができますか?ファイアウォールでポート3306をブロックすることでうまくいくのではないかと思いました。
Ubuntuサーバーは外部からAmazonに接続しているため、ポート3306でDENY INを設定しても、外部へのこの接続は停止しません。
少なくとも、ポート3306で送信されるtcpおよびudpパケットを拒否する必要があります。
Sudo ufw deny out 3306
しかし、さらに安全なのは、ポート3306ですべてのtcpおよびudpパケットを拒否することです。
Sudo ufw deny 3306