CentOS7でtomcat 8080ポートをこじ開ける話
まだ、enforce系の調査を終えていませんので悪しからず
今回はCentOS7ではtomcatポート(8080)ポートにアクセス出来ないのでこじ開ける方法をまとめました
正直、80ポートからajpすれば?と思われるでしょう、運用ではそうなので空いていないのです。今回ターゲットとした環境は開発環境…しかも別パッケージサービスが80ポートを占有しておりajpも仕込めませんでしたので8080を直接触ってもらう運用にしました
今回は検証用という事でVagrant環境で作りました。
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.network "forwarded_port", guest: 8080, host: 8888
end
今回は8080もろだしではなく8888ポートをサービス口としてみました
次にお約束とtomcatのインストール
vagrant up
vagrant provision
vagrant ssh
$ sudo yum -y update
$ sudo yum -y upgrade
$ sudo yum -y install tomcat
インストール内容のチェック…
$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
$ tomcat version
Server version: Apache Tomcat/7.0.76
Server built: Nov 16 2020 16:51:26 UTC
Server number: 7.0.76.0
OS Name: Linux
OS Version: 3.10.0-1127.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_272-b10
JVM Vendor: Red Hat, Inc.
ちょい古いですが、今回は無視!
あと、、CATALINA系のデフォルト状態
INFO: CATALINA_BASE: /usr/share/tomcat
INFO: CATALINA_HOME: /usr/share/tomcat
ここまで来ると動きます
$ sudo service tomcat start
Redirecting to /bin/systemctl start tomcat.service
大人気8080ポートなのでケンカなどしますが、その場合は
$ cat /etc/tomcat/server.xml ら辺で修正してください。
Parmission と言われましたら
setenforce 0
で、SELinuxを無効にしてください
実はVagrantはこのままだと、疎通可能なのですが、サーバの場合NGになります。
本番と同じ状態、firewallを有効にします。
$ sudo service firewalld restart
Redirecting to /bin/systemctl start firewalld.service
この状態だと疎通できなくなりました。
Firewallの状態を確認すると
$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
servicesがdhcpv6-clientとsshとなっており、疎通できませんね。
ここにtomcatを追加します
まずは定義ファイルを作成します
/etc/firewalld/services/tomcat.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Tomcat</short>
<description>Tomcat HTTP Server</description>
<port protocol="tcp" port="8080"/>
</service>
ファイルを読み取り、とりあえずfirewallを再起動させます
再起動は要らないかも…
# firewall-cmd --permanent --add-service=tomcat
# systemctl restart firewalld.service
firewallの状態を確認します
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh tomcat
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
無事にservicesにtomcatが追加されましたね。
疎通を確認すると無事サービス開始!! … 404ならOKですwデフォルトページないのでw
最後にtomcatを起動時有効にすれば、終了です
$ sudo systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
今回はCentOS7のFirewall勉強用にしましたが… apacheとかnginxとかで一度受けてから内部で投げる方が良いですねw