ubuntuにTomcatをインストールして使ってみた。

ubuntu20.04LTSにJavaのアプリケーションサーバーであるTomcatを入れて動かしてみました。学習用に入れただけなのでセキュリティ設定などはしていません。動かすだけであれば、ダウンロードサイトからtarファイルを持ってきて、展開して、任意の場所に置いて終わりです。Tomcatの起動と停止をしています。なお、Javaのインストールは済んでいます。

まず、Apache Tomcat のサイトにアクセスします。

赤枠➀の「Which version?」をクリックします。Tomcatのバージョンにより対応するServletとJSPのバージョンも異なってくるため、どのバージョンのTomcatを使用するかを決めます。Tomcatを動かす際のJavaのバージョンにも気をつけます。

なお、先ほどの赤枠③の記述によるとTomcat10以降では仕様が変わっているようです。赤枠③のgoogleでの翻訳です。

JakartaEEプラットフォームは、JavaEEプラットフォームが進化したものです。Tomcat10以降は、JakartaEEの一部として開発された仕様を実装しています。Tomcat9以前は、JavaEEの一部として開発された仕様を実装しています。

JavaEEをもとに作成されたソースコードを試したいので、Tomcat9にします。

Tomcat9
Version: 9.0.65
Servlet: 4.0対応
JSP: 2.3対応
Java: Java8以降であること

赤枠②の「Tomcat9」をクリックします。ダウンロードの画面が出るので「tar.gz」をクリックしてダウンロードします。

ダウンロードされたファイル名は「apache-tomcat-9.0.65.tar.gz」でした。ダウンロードされたファイルのハッシュ値を確認してみます。

$ sha512sum apache-tomcat-9.0.65.tar.gz

ダウンロードの画面の「sha512」のところをクリックして同じ出力結果となっていれば大丈夫です。

tarファイルを展開します。

$ tar xvf apache-tomcat-9.0.65.tar.gz

「apache-tomcat-9.0.65」というフォルダができました。これを任意の場所に配置します。

apache-tomcat-9.0.65フォルダの下にはbinフォルダがあるので、その中にある「startup.sh」を実行するとTomcatが起動します。

ブラウザで「http://localhost:8080/」にアクセスしてみます。Tomcatの画面が表示されます。

Tomcatの停止は「shutdown.sh」を実行します。

Tomcatの画面の「Manager App」をクリックするとManager画面を表示するのですが、デフォルトのままだとユーザ名とパスワードの設定がないため表示しません。表示させるにはconfフォルダにある「tomcat-users.xml」を修正します。confフォルダはapache-tomcat-9.0.65フォルダの下にあります。


<tomcat-users>
  :
<user username="user" password="pass" roles="manager-gui"/> ←追加(ユーザ名とパスワードを任意に設定)
  :
</tomcat-users>

Manager画面はwarファイルをTomcatにデプロイする際に使用する画面です。

Tomcatの起動と停止のログはlogsフォルダに出力されます。logsフォルダはapache-tomcat-9.0.65フォルダの下にあります。catalina.outファイルを見ると良いでしょう。

ServletをjavacコマンドでコンパイルするときにはCLASSPATHの設定が必要になるので、libフォルダの下にある「servlet-api.jar」にCLASSPATHを通しておきます。


$ export CLASSPATH="/Tomcatを配置したディレクトリ/apache-tomcat-9.0.65/lib/servlet-api.jar"

javacコマンドでコンパイルしたクラスファイルを /apache-tomcat-9.0.65/webapps/コンテキスト名/WEB-INF/classes に配置します。ブラウザからTomcatにアクセスすればServletの動きを確認できます。

TORブラウザとVPN接続でインターネットを匿名で利用する。

インターネットを匿名で利用する方法として、TORブラウザの使用とVPN接続があります。

まず、TORブラウザです。

TORブラウザはWEBを閲覧するブラウザですが、TORブラウザを使うと通信元を隠蔽できます。途中でTORネットワークを経由するからです。WEBサイトの管理者は誰がアクセスしてきたのかわかりません。「誰が」というのは通信元のIPアドレスです。TORブラウザを使ったときの場合です。

WEBサイトから見ると、アクセス元はTORネットワークのEXITノードのIPアドレスとなります。TORブラウザを使っている人のPCのIPアドレスではありません。WEBサイトのアクセスログにはEXITノードのIPアドレスが残ります。

EXITノードのIPアドレスは公開されているため、WEBサイトの管理者はTORネットワークからのアクセスであることは判断できます。これによりTORネットワークからのアクセスを遮断することもできます。サイトによってはTORネットワークからのアクセスを遮断しているサイトもあります。

一方、ISP(インターネットサービスプロバイダ)はTORブラウザを使っている人がどこのWEBサイトにアクセスしているのかはわからないものの、TORネットワークを利用しているということはわかります。ISPはTORネットワークのENTRYノードへのアクセスがわかるからです。

次に、VPN接続です。

VPNは Virtual Private Network の略です。VPN接続を使うことにより、WEBサイト閲覧の規制の厳しい国(中国やロシアなど)に住む人が、他の国や地域のWEBサイトを閲覧するのに利用したりします。

例えば、中国に住む人がアメリカの中国批判のWEBサイトを見ようとしても、中国のISP事業者がそのサイトに規制をかけているため見ることはできません。ですが、VPNを利用すると(VPNサーバーは世界中にあり、そのどこかを経由させると)目的のWEBサイトを見ることができます。中国のISP事業者がVPNサーバーを規制の対象外にしているためです。VPNサーバーについても規制をかけられると思いますが、かけてしまうと、中国にある企業の事業運営にも影響がでてしまうため穴となっているのでしょう。

WEBサイトから見たときの通信元のIPアドレスですが、通信元はVPNサーバー(もしくはVPN事業者が提供するIPアドレス)となります。WEBサイトのアクセスログには、そのIPアドレスが残ります。VPNサーバーにもアクセスログがありますから、VPNサーバーのアクセスログとWEBサイトのアクセスログを突き合わせることでブラウザを使っている人のPCのIPアドレスをつきとめることはできます。法的な要請を受ければ、事業者はログを提供するでしょう。ですので、VPN接続すれば匿名のインターネットができるわけではありません。

ただVPN事業者の中には利用者のプライバシー保護のために、ノーログポリシーをとっているところもあります。ノーログポリシーとはログを残さないということです。ノーログポリシーには正確な定義はなく、事業者ごとに解釈や技術的な実施方法が多少異なるようです。

TORブラウザとVPN接続を見てきましたが、この2つを併用した場合です。

VPN接続を利用することでISPに対してTORネットワークへの接続を隠すことができます。TORブラウザを使用してノーログポリシーのVPN事業者を利用することで、匿名性が格段に高くなります。