トニーさんの備忘録

アメバより引越しの為、古い記事も再掲載しています

Rasberry pi(rasbian) に tomcat9 環境を構築してみた

様々なサイトでtomcat9を構築する際に、外部よりtarファイルを落とし込み

最新のtomcatで構築する手法を紹介していますが、今回はaptのみで構築する

際の方法について書きたいと思います。

また、apache2については、通常のaptで構築されている事を前提とします。

(aptでインストールし、環境設定をポリシーに合った設定)

 

2019年8月現在

 

まず、JDKのインストールです。

sudo apt install openjdk-11-jre

 

次に、tomcat9のインストールです。

sudo apt install tomcat9 tomcat9-admin tomcat9-docs tomcat9-examples

 

念のため、再起動

sudo reboot

 

 

ここまでで、クライアントから「サーバーIP:8080」で

「It works!」

のページが表示されれば正常にインストールされています。

 

 

ここから先が「Tomcat Webアプリケーションマネージャ」(以降、管理画面)

の設定に入ります。

まず、設定変更が必要なファイルは2つあります。

 

1./etc/tomcat9/tomcat-users.xml

2./usr/share/tomcat9-admin/manager/META-INF/context.xml

 

1つ目のtomcat-users.xmlは管理画面に入るユーザーの設定になります。

(今回、エディターはviを使っていますが、慣れたエディターで編集して下さい)

sudo vi /etc/tomcat9/tomcat-users.xml

 

編集内容(以下を追加

<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>

 

<user username="manager" password="s3cret" roles="manager-gui,manager-status,manager-script,manager-jmx,admin-gui,admin-script"/>

 

 

この時、オリジナルの設定時点ではコメントとして扱われているので外して下さい。

これ、忘れやすいです!

また、上記の他に3行程、初期の状態で記述があります。これらのパスワードも

同時に変更して下さい。

(オリジナルのままで実行すると401エラーでログインできない場合があります) 

 

これで管理画面に入るユーザーの設定が完了しました。ここから先の編集は

rasberry pi 本体でローカル作業をしている場合は、必要ないと思います。

但し、外部のクライアントからアクセスしている場合、必須となります。

(恥ずかしながら、ここで嵌りました・・・)

 

なぜ、この作業が必要なのかは、セキュリティの都合上で本体以外から管理画面の

編集や操作ができるのは、外部から乗っ取られた場合に公開されているページを

編集されてしまったり、他のサイトやサーバーへの攻撃を仕掛けられる可能性が

あるからだと思います。

外部公開する場合、DMZに設置すると思いますのでローカルIPを特定されない

限りIP縛りで阻止できる可能性は高いと思いますが、念のため、公開する際には

下記の編集は元に戻した方が良いと思います。

 

2つ目のファイル「context.xml」を編集します。

ここで、上記のファイルは、様々な場所に存在し「/etc/tomcat9」の配下にも

存在します。etc配下のファイルを編集しても管理画面は開きません。

なぜなら、当ファイルは、上部フォルダのアクセス制限になるため管理画面の

場合は

 

/usr/share/tomcat9-admin/manager/

 

の制限を行うので、ターゲットは

 

/usr/share/tomcat9-admin/manager/META-INF/context.xml

 

になります。

 

編集内容(赤文字を追加)

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.1\.d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>

 

注意)

赤文字で示している箇所は、ご自身のローカルIPの正規表現になります。

また、「|」パイプは前記のIPとの境になりますので、必須になります。

最後の「d+」は数値を表し、この場合は「192.168.1.1」から「192.168.1.255」

までがアクセス可能となります。

なので、管理するクライアントが1台で1つのIPの場合「d+」を数値にしても

良いと思います。

 

これで終了です。tomcat9のサービスを再起動するか、本体をrebootしクライアント

からブラウザで「サーバーIP:8080/manager/html」にアクセスするとログイン要求

が表示されますので

ログイン名:manager

パス:s3cret

でログインしてください。

 

これで管理画面が表示されたと思います。

 

 

長々と書きましたが、以上で「aptでのインストール+2つのファイルを編集」

で、tomcat9が動作できる状態になったと思います。