UbuntuServer20.04.4 LTSをさくらのクラウドにインストールして、FileMaker Serverとして使用しようと考えて構築してみましたが、どうもUbuntuServerのファイアウォールの動作が怪しいのです。
今回は、VitualBox(仮想マシン)上に構築した
ココがポイント
UbuntuServerを使ってデフォルトからのファイアウォール設定
をして実験をしてみたいと思います。
ファイアウォール状態を確認
今現状UbuntuServerのファイアウォール状態はどうなっているのか?
確認する事は、コマンドプロンプトから確認する事はできる!
ココに注意
しかし、なぜかFileMaker Serverをインストールした時の挙動が怪しい
つまり、コマンドプロンプトからファイアウォールを起動しようが、終了しようが、すべてのポートを閉じようが、開けようが、想定する動作にならないのです。
【以下参考コマンド】
ココに注意
UbuntuServerはデフォルト状態でファイアウォール停止しているようです
【ファイアウォール状態確認】
sudo ufw status
【ファイアウォールの起動停止】
sudo ufw enable (起動) sudo ufw disable (停止)
VirtualBox上のUbuntuServerにアクセス
過去にやった作業で既に、VirtualBox上には、UbuntuServerが構築されておりGUIでも起動できるようにした状態になっていました。
まだファイアウォールは何も設定してない所からの実験開始となります。
ローカルでブラウザを起動して、localhost(もしくは、127.0.0.1)と打ち込めば、Apacheの画面が確認できました。
でも、外部からのアクセスの動作も確認したいので、VirtualBoxを動かしているWindows11からも確認できるようにしました。
ネットワークの設定から、割り当てを、ブリッジアダプターにするだけで、VirtualBoxに割り当てられたIPアドレスを、Windows11のブラウザに打ち込めば、apacheの画面を確認することができました。
【UbuntuServerのコマンドプロンプトからIPの確認コマンド】
ip a
これで、80ポートだけでも実際に開いているのか閉じているのかが確認できるようになりました。
ポートスキャンZenmapで調査
UbuntuServer(IP192.168.1.75)に向けて、Windows11のZenmapという外部サーバーのポートをスキャンしてくれるソフトを使って調査をしてみました。
とりあえず、ファイアウォールを有効にした段階からやってみたいと思います。
しっかりとファイアウォールが効いている様に見えます。
では、実際にApacheが確認できるように80ポートを開いてみたいと思います。
【ポートを開く】
sudo ufw allow 80
【ポートを閉じる】
sudo ufw deny 80
もちろん、80ポートを開いたと同時に、Apacheの画面が確認できるようになり、閉じると同時に、接続できなくなりました。
この状態から、ステータスを見て見ると、ルールが初めて設定されるようでした。
【ルールの確認】
sudo ufw status numbered
【ルール削除】
sudo ufw delete 1 (番号はルールで確認した番号)
更に詳細が知りたい場合は下記のサイトが参考になります。
80ポートを開けて、Apache画面が確認できた状態にて、ポートスキャンをしてみました。
Zenmapでやっても何も表示されません。なのでWindows11のコマンドプロンプトから実行してみると、
ココがダメ
ホストがダウンしている!?そんな馬鹿な!!
その後VitualBox上のUbuntuServerの為、何が原因でホストが認識されないのか?自分のスキルでは調査することができませんでした。
さくらのクラウド上で構築したUbuntuServerでも同じ事をやってみましたが、開いているポートなどは確認できたものの・・・どうしても挙動がおかしい。
なんかスッキリしませんが、別の方法を考えてみようと思います。
【色々やったコマンド】
sudo ufw default allow (全通信許可) sudo ufw default deny (全通信遮断) sudo ufw reload (設定再読み込み)
UbuntuServer上でのポート確認
サーバーからポート状態を調べる方法をやってみました。
ss -atnu (TCP、UDP両方表示) ss -t (通信が確立しているポートだけ表示)
netstat -atnu (TCP、UDP接続待ちしているポート確認) netstat -t (通信が確立しているポート確認)
もう心が折れそうになっていますが、ポートの確認してみました。
ちゃんとVNC Serverも起動して、ポートも開けてあるのに、ポートで待ちが無いのです。
もう、VirtualBoxがダメなのか?UbuntuServerがダメなのか分かりません。更に、さくらのクラウドでも同じことをやってみましたが、こちらでは、プロセスも動いてポートも待ち状態でしたが、VNCクライアントから接続できませんでした。もうお手上げです。
lsof -i (プロセスが試用しているポート確認) lsof -i:5900 (特定ポートから使用プロセスを確認)
リセットしてufw再設定
いろいろといじってしまったので、再設定する場合は、deleteなどでやるよりもリセットしてしまった方が簡単なようです。
sudo ufw reset
すべてのファイアウォール設定を初期化するコマンドですが、実行後は、inactive(ファイアウォール無効状態)になるようです。
リセット後は、必要ポートを許可して行けば良い訳ですね。
許可の方法は、ポート番号で許可する方法と、「sudo ufw allow 80/tcp」番号ではなく「http」「https」「domain」といったキーワードで指定する方法「sudo ufw allow http」がありますが、どっちでも同じです。
あと確認方法コマンドで確認しながら作業したらよいかと思います。
sudo ufw status #登録されているルールの一覧を表示 sudo ufw status verbose #登録されている設定の一覧を詳細表示 sudo ufw status numbered #登録されている設定の一覧を通し番号付で表示
参考サイト
なんか信用できない挙動
最終的には、クラウド上の、UbuntuServerに、FileMakerServerを構築して、ドメインとSSL証明書をインストールした状態にしたいというのが目的になります。
構築とは、重要なデータを扱う事もあるのでセキュリティ問題もあるので、余計なポートは開けておきたくありません。
今回、その為に、いろいろと検証をしてみた訳ですが、挙動がおかしくて納得いくような設定が出来てないのが現状です。
UbuntuServerをGUIモードにしないと自信がないので、VNCの設定などもやってみましたが、相性の問題もあるのか?はっきりしていません。
もう少し時間をかけてやってみたいと思います。