CentOSサーバーにdockerized Java Webアプリケーションをデプロイしました。アプリケーションはポート80に公開され、最初にサーバーはそのポートに対するすべての要求をブロックします。ポート80で通信を有効にしてこの問題を解決しました。これガイド。
しかし、私のアプリケーションは、主にこれらのエンドポイントに対するGET要求を介して他のAPIに要求します。マイコンピュータではDockerイメージは正常に動作しますが、私のアプリケーションはCentOSサーバー内でこれらの外部APIと通信できません。ファイアウォールをオフにしようとしたところ、アプリケーションは外部APIと再通信し始めました。
これらのリクエストを有効にする方法を見つけようとしましたが、うまくいく方法を見つけることができませんでした。私はネットワーキングやセキュリティ上の問題を経験していないため、検索キーワードを効果的に使用できないようです。
アプリケーションから外部APIへのリクエストを有効にするには、ファイアウォールをどのように設定する必要がありますか?
編集:CentOS 8でFirewallDを使用しています。何が起こっているのかよく分からない。アプリのログに要求された宛先に到達できないと表示されます。
答え1
信頼できるファイアウォール領域にDoketインターフェイスを追加する必要があります。
firewall-cmd --zone=trusted --change-interface=docker0
firewall-cmd --zone=trusted --add-masquerade --permanent
firewall-cmd --reload
また、/etc/firewalld/firewalld.confで、ファイアウォールのバックエンドを「nftables」から「iptables」に切り替えるとすぐに機能すると聞きました。
答え2
申し訳ありません。まだコメントを追加できません。しかし、次のようになります。
どのファイアウォールを使用しますか?
ステータスを要求したときに何を印刷しますか?
使用するufw
場合ufw allow out ...