0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Apache→Tomcatの連携をSELinuxが阻んでいた話

Posted at

結論

SELinuxの有効設定をpermissive(アクセス制御は無効だが警告メッセージを表示する)に変更したらApache→Tomcatで連携できるようになった

はじめに

オンラインアプリ開発経験はあるのですが、サーバ構築経験のほぼない初心者のため、四苦八苦しています。
初心者のただのメモですが、もし同じことで詰まる人のために記事にします。

環境

サーバ:RHEL8.2 AWS AMIから作成
Apache 2.4.37
Tomcat 9.0.39
社内プロキシ経由でネットに接続できる環境のため、下記を設定してyumインストールしています

セキュリティグループのアウトバウンド設定に社内プロキシのポートを設定
/etc/yum.conf にProxy設定を追加
社内Proxyに阻まれていろいろ捗らない人のためのTips 様を参考に設定しています

やりたいこと

Apache → Tomcat は http での接続
image.png

この、http接続で失敗する・・・

実施した内容

① Apache側に下記を設定

/etc/httpd/conf.d/mod_proxy.conf
ProxyRequests Off
ProxyPass /  http://(APサーバのIP):8080/
ProxyPassReverse / http://(APサーバのIP):8080/

② Tomcat側に下記を設定

/opt/tomcat/conf/server.xml
  <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

Permission denied とは・・・?
こちらのエラーで検索してヒットした、こちらのサイト 様に答えがありました。

  • /var/log/audit/audit.log を確認したところ、同じエラーが出ている・・・!!
/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
# getenforce

→ 「Enforcing」が返ってきた・・・!これが原因か・・・!

  • SELinuxの設定変更
setenforce 0

でpermissiveモード(アクセス制御は無効だが警告メッセージを表示する) に設定。
こちらを設定したことで、Apache⇔Tomcat の連携ができるようになりました!!

こちらは一時的な設定のため、「vi /etc/selinux/config」の設定修正も忘れずやりました。

感想

SELinux という単語を初めて知りました。。。
こんなところでアクセス制限をしているんですね。。勉強になりました。
引き続き頑張ります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?