中古のノートパソコンにLinux(Ubuntu)をインストール

ubuntuのデスクトップ画面 ホームオートメーション
スポンサーリンク

この記事では、古いノートパソコンをフォーマットし、UbuntuをインストールしてApacheサーバーとして利用する手順を紹介します。

はじめに

不要になったノートパソコンをフォーマットし、UbuntuをインストールしてApacheサーバーとして再活用する方法を解説します。本記事では、Ubuntuのインストール手順、Apacheのセットアップ、ファイアウォール設定、さらにセキュリティ対策まで、簡単に説明します。

ubuntuのデスクトップ画面

準備するもの

この記事では以下のものを使います。

●不要になった古いノートパソコン

昔使っていた古いノートパソコンなどがあれば、それを使用します。
私は2012年に購入したノートパソコンを使用しています。
昔のものなのでスペックは低いですがUbuntuを動かすには十分で、サクサク動作します。

そのうち、ハードディスクあたりがぶっ壊れるかも…

●ミニPC(できれば)

古いノートパソコンがない方にはミニPCがおすすめです。
手のひらに乗るコンパクトさで、最近はスペックの高いものが安価でそろっています。

安いミニPCのレビューを見ていると、インストールされているWindowsがボリュームライセンスのものであったりして、ライセンス違反になる可能性などあるようですが、OSをUbuntuに書き換えてしまうのであれば問題ありません。
(ですが、やはり信頼できるところからの購入をオススメします。)

minisforumは台湾のメーカーで日本法人もある信頼できるメーカーだと思います。
上記のミニPCは性能を抑えたモデルですが、Windowsでも軽い作業であれば問題なく使えるほどのスペックで、Ubuntuであればさらに快適に使用できるのでオススメです。

●Ubuntuの本

Ubuntuに慣れていない人は1冊本を買っておくと体系的に勉強ができ、全体像が把握しやすいです。
本で体系的に勉強し、ネットで最新の情報を取り入れる勉強法がオススメです。

Windowsで慣れていると

Viエディタやファイルの権限でいきなり躓くよね

Ubuntuのインストール

作業内容

チェック
  • UbuntuのISOファイルをダウンロード
  • Rufusなどのツールを使ってISOファイルをUSBメモリに書き込む
  • ノートパソコンにUSBメモリを挿し、BIOS画面でUSBからブート
  • Ubuntuをインストール

UbuntuのISOファイルをダウンロード

Ubuntu Japanese Teamの提供するUbuntuをダウンロードします。
日本語対応が行われており、日本語のインターフェースやドキュメントが提供されているため、日本人が使いやすい環境が整っています。

  1. Ubuntu Japanese Teamのホームページへアクセス
    以下のリンクからUbuntu Japanese Teamのホームページにアクセスします。
    https://www.ubuntulinux.jp/
  2. Ubuntuをダウンロード
    「Ubuntuのダウンロード」→「日本語Remixイメージのダウンロード」→任意のミラーサイトから「ubuntu-ja-22.04-desktop-amd64.iso」をダウンロードします。

Rufusなどのツールを使ってISOファイルをUSBメモリに書き込む

  1. Refusのサイトにアクセスし、ソフトをダウンロード
    以下のリンクからRefusをダウンロードします。
    https://rufus.ie/ja/
  2. 起動可能なUSBメモリの作成
    パソコンにUSBメモリを挿して、refusを起動します。
    「デバイス」に挿したUSBメモリを指定、「ブートの種類」にダウンロードしたUbuntuのISOファイルを指定し、他の項目が自動で埋められたことを確認したら、「スタート」を押下します。
    その後出てくるダイアログはそのまま「OK」で進めばUSBメモリの作成が完了します。
USBメモリとisoファイルを選択して、「スタート」

ノートパソコンにUSBメモリを挿し、BIOS画面でUSBからブート

  1. USBメモリをPCに挿し、BIOSモードで起動
    PCの電源が切れた状態でUSBメモリをPCに挿し、PCを起動します。
    PCを起動後すぐに、BIOSを起動するためのキーを押します。
    BIOSを起動するためのキーはパソコンによって異なるので、お使いのパソコンの起動方法を調べてください。
  2. USBからブート
    BIOSが起動したら、メニューの中にUSBメモリからブートする項目があるはずなので、それを選択するとUSBメモリから起動が始まります。

Ubuntuをインストール

Ubuntuのインストーラーが起動したら、画面の指示に従ってインストールします。
この時に「ディスクを削除してUbuntuをインストール」を選択することで、古いノートパソコンのデータが完全に削除されて、サラの状態にUbuntuがインストールされます。

データは完全に削除され、Windowsも起動することができなくなります。
それでも問題のないノートパソコンを使用してください。

Ubuntuが正常に起動すればインストールは成功です。

Ubuntuの初期設定

Ubuntuは日々、機能やセキュリティが向上したアップデートが更新されています。
最新のバージョンで保つようにしておきましょう。

端末を開いて、以下のコマンドを入力します。

sudo apt update
sudo apt upgrade

SSHでリモートログイン

別のPCからTeraTerm等を使ってリモート接続できるようにSSHを設定します。

1.SSHサーバーのインストール

sudo apt install openssh-server

2.SSHサーバーの起動
SSHサーバーをインストールしたら、「systemctl enable」コマンドで自動起動設定を行い、次に「systemctl start」でSSHサーバーを起動します。
最後に、「systemctl status」でsshサーバーの状態を確認し、「active」になっていれば完了です。

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh

3.IPアドレスの確認

他のPCからリモート接続するために、UbuntuPCのIPアドレスを調べます。

ip a

Wifiルーターがローカルネットワーク内に自動でIPアドレスを割り振っていると思いますので、そのアドレスを確認します。
DHCPを使用していると、次回PCを起動したときに違うIPアドレスが振られてしまう可能性もあるので、固定のIPアドレスを割り振るとなお良いですね。

4.他のPCからSSHで接続

メインで使っているWindows等のPCでTeraTermをインストールし、「TCP/IP」を選択
ホストに手順3で調べたIPアドレスを入力して、サービスは「SSH」を選択。最後に「OK」を押下します。
Ubuntuで作成したユーザーの「ユーザー名」「パスフレーズ」を入力して、ログインに成功すれば完了です。

メカつば
メカつば

ここからは、LinuxのCUI操作に慣れるために、
WindowsなどのメインPCから操作することを前提にします。

Apacheをインストールしてウェブサーバーを構築

UbuntuでWebサイトを公開するために、Apacheをインストールします。

1.Apacheのインストール

sudo apt install apache2

2.Apacheの動作確認

インストール後に、ブラウザで「http://”UbuntuPCのIPアドレス”」にアクセスし、Apacheのデフォルトページが開けばインストールは完了です。

チェック

同じローカルネットワーク内のメインPCからアクセスできない場合は、以下の原因が考えられます。

  • ファイアウォール
  • ファイルの権限設定

以降の章で設定内容を確認していきます。

3.Apacheのドキュメントルートを変更

デフォルトのドキュメントルートを変更して、任意のディレクトリでウェブファイルを管理できるように設定します。
通常、ブラウザからサーバーに対してHttpでポート80にアクセスすると、デフォルトパスに設定されたディレクトリに保存されたhtmlファイルが応答されますが、
この設定を行うことで任意のディレクトリに置いたhtmlファイルが応答されるようになります。

ここではユーザーのホームディレクトリに変更したいと思います。
以下のディレクトリを作成します。

sudo mkdir -p /home/username/www/html

次にApache設定ファイルを編集します。
以下のコマンドで設定ファイルをnanoエディタで開きます。

cd /etc/apache2
sudo nano apache2.conf

以下のように修正します。
ドキュメントルートを変更するので設定も変更先に対して行われるようにする必要があります。

【修正前】
<Directory /var/www/html/>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

【修正後】
<Directory /home/username/www/html/>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

次に「sites-available」の中にあるファイル設定をしていきます。
「000-default.conf」の設定を書き変える必要がありますが、apacheを破壊しないようにコピーを作成して編集します。
ファイル名はなんでも結構です。

sudo cp 000-default.conf hoge.conf

コピーしたファイルのDocumentRootを編集します。

【修正前】
DocumentRoot /var/www/html

【修正後】
DocumentRoot /home/username/www/html

次に編集した「hoge.conf」を有効にします。

sudo a2dissite 000-default.conf
sudo a2ensite hoge.conf

000-default.confを無効にして、hoge.confを有効にします。
これで、ドキュメントルートがユーザーの下にある/home/username/www/html/に変更されました。

Apacheは「apache2.conf」の中で、「sites-enabled」の中にあるconfファイルを読み込むようにで設定されています。
「sites-enabled」の中に入っているファイルは、「sites-available」のシンボリックリンクになっています。
「sites-available」でいろんな設定ファイルを作っておき、状況に応じて有効にしたい設定ファイルのシンボリックリンクを「sites-enabled」の中に作ればいいです。
シンボリックリンクを作成、削除するコマンドが「a2dissite」「a2ensite」です。

最後にApacheを再起動します。

sudo systemctl restart apache2

これでApacheのドキュメントルートを変更する作業は完了です。

Apacheのセキュリティ設定

今回、Apacheのウェブサーバーはローカルネットワーク内のみで使用を想定していますが、勉強のため最低限のセキュリティ設定を行います。

1.ディレクトリリスティングを無効にする

ディレクトリリスティングとは、Webサーバーに対してパス名でアクセスしたときに、そのパスに存在するファイルを一覧で表示する機能です。
この機能が有効のままだと、見られてはいけないファイルが見つかってしまったり、ディレクトリの構造が漏れて不正アクセスの足掛かりになるなど、セキュリティ上問題となります。

apache2.confの設定を以下の通り書き換えます。

【変更後】
<Directory /home/tbs/apache2/www/html/>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Indexesに「-」をつけることでオプションを無効にすることができます。

最後にApacheを再起動します。

sudo systemctl restart apache2

ファイアウォールの設定

Ubuntuでは、セキュリティのためにファイアウォールを設定して特定のポートのみ開放することが推奨されます。代表的なファイアウォールとして ufwiptablesfirewalld があります。今回は「fairewalld」でHTTP(ポート80)を開放する手順を説明すると共に、他のファイアウォール設定のステータスを確認します。

チェック
  • ufw
    iptablesを使いやすくするために開発されたフロントエンドツールです。初心者向けにシンプルで分かりやすいコマンドラインインターフェイスを提供します。
  • iptables
    Linuxカーネルのパケットフィルタリング機能を直接制御するツールです。UFWの内部でもiptablesが利用されていますが、iptables自体は非常に強力で、詳細なルール設定が可能です。
  • firewalld
    動的なファイアウォール管理ツールで、iptablesの代わりに利用できる新しいフレームワークです。CentOSやRed Hat系で標準的に採用されていますが、Ubuntuでも利用可能です。UFWよりも柔軟で、iptablesのような高度な設定も可能です。

1.ufwの確認

以下のコマンドでufwのステータスを確認します。

sudo ufw status

「非アクティブ」となっていれば、設定は無効になっています。
もし有効になっているようであれば、以下のコマンドで無効化します。

sudo ufw disable

2.iptablesの確認

以下のコマンドでiptablesのステータスを確認します。

sudo iptables -L

Chain INPUTの欄等にhttpの設定がされていないか確認します。
特に何もなければ設定はされていません。

3.firewalldの設定・確認

以下のコマンドでfirewalldをインストールします。

sudo apt install firewalld

firewalldを有効化します。

sudo systemctl enable firewalld
sudo systemctl start firewalld

httpとsshを有効にします。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

以下のコマンドでfirewalldのステータスを確認します。

sudo firewall-cmd --list-all

以上でファイアウォールの設定は完了です。

PHPのインストール

UbuntuのApacheでPHPを動作させるためには、PHPのインストールとApacheとの連携が必要です。
以下のコマンドを実行します。

sudo apt update
sudo apt install php libapache2-mod-php

最後にApacheを再起動します。

sudo systemctl restart apache2

Gitからのファイルダウンロードと配置方法

Git(タグ1.0.0)で配信している「HTML」以下のプログラムをダウンロードし、Apacheの変更したドキュメントルート「/home/username/www/html/」に全てファイルを配置します。

Tsubablog / SmartHome · GitLab
GitLab.com

ファイルの権限設定

UbuntuのApacheでドキュメントルートを変更して外部からアクセスできるようにするためには、ファイル・ディレクトリの適切な権限設定が必要です。

デフォルトでは、/home/username/ディレクトリは外部からアクセスできない場合が多いです。
アクセスできない権限に設定されている場合、メインPCからアクセスしたときに正常にアクセスすることができません。
そのため、以下のコマンドで最低限の権限を設定します。

sudo chmod -R 755 /home/username/www

まとめ

以上で、全ての設定は完了です。

以下の記事で紹介しているラズパイpico Wのシステムと組み合わせて温湿度のグラフがブラウザで表示されることを確認してください。

ラズパイpicoWで家の温度と湿度を管理してスマートホーム化
はじめに 家の中の温湿度管理は、快適さだけでなく、エネルギー効率の向上にも重要です。 今回は、Raspberry Pi Pico WとGrove温湿度センサー、家にある古いノートパソコンを使って温湿度監視システムを作りました。このシステムは...

コメント

タイトルとURLをコピーしました