実行中のプロセスへの接続をブロックする

実行中のプロセスへの接続をブロックする

私が開発しているJavaアプリケーションがあります。私は制御できない外部データベースサーバーを使用します。接続エラーをシミュレートしたいのですが、できません。この状況を作成するためにiptablesとtcを試しましたが、Javaプログラムが実行された後にデータベースに対するクエリを作成できます。アプリケーションを再起動すると、ブロックは成功します。私が理解していないものはありますか?

ベストアンサー1

最初に理解していないのは、iptablesルールを表示しないとデバッグできないことです。

つまり、潜在的な落とし穴があると考えています。しかし、もちろん、それがあなたの問題かどうかはわかりません。

Javaアプリケーションは、起動時にデータベースへのTCP接続を一度確立する可能性が高いです。ファイアウォールが接続確立パケットのみをブロックし、確立されたTCPセッション(iptables -A -p tcp -m state --state ESTABLISHED,RELATED -j ALLOW)の一部であるパケットを許可している場合、アプリケーションはデータベースと通信し続けることができます。通信をブロックするには、アプリケーションを起動する前にファイアウォールを設定するか、データベースポートに向かうすべてのTCPパケットをブロックする必要があります。

おすすめ記事