Apache→Tomcatの連携をSELinuxが阻んでいた話
結論
SELinuxの有効設定をpermissive(アクセス制御は無効だが警告メッセージを表示する)に変更したらApache→Tomcatで連携できるようになった
はじめに
オンラインアプリ開発経験はあるのですが、サーバ構築経験のほぼない初心者のため、四苦八苦しています。
初心者のただのメモですが、もし同じことで詰まる人のために記事にします。
環境
サーバ:RHEL8.2 AWS AMIから作成
Apache 2.4.37
Tomcat 9.0.39
社内プロキシ経由でネットに接続できる環境のため、下記を設定してyumインストールしています
セキュリティグループのアウトバウンド設定に社内プロキシのポートを設定
/etc/yum.conf にProxy設定を追加
社内Proxyに阻まれていろいろ捗らない人のためのTips 様を参考に設定しています
やりたいこと
この、http接続で失敗する・・・
実施した内容
① Apache側に下記を設定
ProxyRequests Off
ProxyPass / http://(APサーバのIP):8080/
ProxyPassReverse / http://(APサーバのIP):8080/
② Tomcat側に下記を設定
<Service name="Catalina">
<Connector port="8080"
maxThreads="4002"
minSpareThreads="200"
connectionTimeout="30000"
keepAliveTimeout="500000"
processorCache="200"
secure="false"
protocol="HTTP/1.1"
enableLookups="false"
useBodyEncodingForURI="false"
address="0.0.0.0" />
これでApacheにアクセスしたらTomcatデフォルト画面が開かれるはずなのに、503エラーとなる。。。
調査
- /var/log/httpd/error_log を確認
[proxy:error] [pid 17063:tid 140642893367040] (13)Permission denied: AH00957: HTTP: attempt to connect to (APサーバのIP):8080 ((APサーバのIP)) failed
[proxy:error] [pid 17063:tid 140642893367040] (13)Permission denied: AH00957: HTTP: attempt to connect to (APサーバのIP):8080 ((APサーバのIP)) failed
Permission denied とは・・・?
こちらのエラーで検索してヒットした、こちらのサイト 様に答えがありました。
- /var/log/audit/audit.log を確認したところ、同じエラーが出ている・・・!!
type=AVC msg=audit(1628573323.280:1221): avc: denied { name_connect } for pid=17063 comm="httpd" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket permissive=0
- SELinuxの設定確認 【ざっくりと理解する】SELinuxとは? 様を参考に、ステータスを確認
# getenforce
→ 「Enforcing」が返ってきた・・・!これが原因か・・・!
- SELinuxの設定変更
setenforce 0
でpermissiveモード(アクセス制御は無効だが警告メッセージを表示する) に設定。
こちらを設定したことで、Apache⇔Tomcat の連携ができるようになりました!!
こちらは一時的な設定のため、「vi /etc/selinux/config」の設定修正も忘れずやりました。
感想
SELinux という単語を初めて知りました。。。
こんなところでアクセス制限をしているんですね。。勉強になりました。
引き続き頑張ります。
Author And Source
この問題について(Apache→Tomcatの連携をSELinuxが阻んでいた話), 我々は、より多くの情報をここで見つけました https://qiita.com/nakabirth/items/9a9a92e1c0f6b03f8ae2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .