Pocket

こんにちは、nodaです。

みなさんは自宅に余っているPCはありますか?

今回は古くなったPCを自宅サーバーにして、インターネットに公開するまでのお話です。

用意するものは以下の3点です。

  1. 使わなくなったPC(サーバーとして復活させます。) → 以下、2軍PCと呼びます。
  2. 日常使っているPC(インストールメディアの作成や、ルーターの設定確認などを行います。) → 以下、1軍PCと呼びます。
  3. Linux OS(今回はUbuntu Serverをインストールします。)を書き込むためのCD-R

それでは早速、自宅サーバーを作って行きましょう。

①Ubuntu Serverをインストール

まずは、1軍PC「http://www.ubuntu.com/download/server」にアクセスしてイメージファイルをダウンロードします。
ダウンロード完了後、isoファイルをCD-Rに書き込んだらインストールメディアの完成です。

次に作成したインストールメディアを2軍PCにセットしてインストーラーを実行します。
(インストーラーが起動しない場合、BIOSの設定で起動の優先順位を変更してください。)

あとはインストーラーの指示に従って、インストールを完了させるだけです。
※一番最初の言語の選択を日本語にすれば迷わないでしょう。

②Ubuntuの簡単な初期設定を行う

■画面上の文字化けを回避する設定です。
以下のコマンドを入力し、設定ファイルを編集します。

$ LANG=C nano ~/.bashrc

ファイルの末尾に次の設定を追加します。

  ↑
case $TERM in
linux)LANG=C ;;
*)LANG=ja_JP.utf8 ;;
esac

—————————————-
※nanoエディタの使い方
ファイルの保存…[Ctrl]+[o] → [Enter]
ファイルを閉じる…[Ctrl]+[x]

—————————————-
最後にログアウトして、再度ログインすれば設定完了です。

$exit

■Ubuntuを最新の状態に更新します。
ただし、「upgrade」コマンド実行の前に必ず「update」コマンドを実行します。
(アップデート可能なパッケージの有無を確認するためです。)

$sudo apt-get update

$sudo apt-get upgrade

サーバーの電源を消します。

$sudo shutdown -h now

③いよいよインターネットからアクセスできるようにします。

まずは2軍PCからネットワーク環境を調べます。

$ifconfig

次に1軍PCでブロードバンドルーターの設定を調べます。
ルーターはDHCPの設定を変更し、固定IPアドレスを設定してください。
(ルーターの設定は各ルーターのマニュアルを参照してください。)

そして2軍PCのネットワーク設定ファイルを変更します。

$sudo nano /etc/network/interfaces

ネットワーク情報を下記の通り書き換えます。

address ・・・ 固定IPアドレス
network ・・・ 固定IPアドレスの末尾を「0」に置き換え
netmask ・・・ 255.255.255.0
broadcast ・・・ 固定IPアドレスの末尾を「255」に置き換え
gateway ・・・ ブロードバンドルーターのIPアドレス
dns-nameservers ・・・ ブロードバンドルーターのIPアドレス

設定ファイルを保存して終了します。

1度ネットワークを再起動させます。

$sudo /etc/init.d/networking restart

再接続したネットワーク環境を調べてみます。

設定した固定IPアドレスになっていることを確認します。
IPv6が有効になっていると、トラブルの原因になるので無効化します。

システムの設定ファイルを変更します。

$sudo nano /etc/sysctl.conf

ファイルの末尾に以下を追加します。

設定ファイルを保存して終了します。

サーバーを再起動します。

$sudo reboot

再度ネットワーク環境を調べ、IPv6のIPアドレスが非表示になっていることを確認します。

続いて、ダイナミックDNSの設定を行います。
今回は「MyDNS」を使いますので、1軍PCから「http://www.mydns.jp/」にアクセスしてユーザー登録を済ませてください。

ルーターのWAN側IPアドレスをMyDNSに通知するために「fetchmail」をインストールします。

※インストールの前に必ず更新のチェック。
$sudo apt-get update

$sudo apt-get install fetchmail

fetchmailの設定ファイルを作成します。

$nano ~/.fetchmailrc

(ご自身のID・PASSWORD・アカウントに書き換えてください。)
設定ファイルにはパスワードが含まれているので、他人が参照できないようにする。

$sudo chmod 710 ~/.fetchmailrc

fetchmailの動作確認を行います。

$fetchmail

以下のように表示されれば成功です。

「crontab」を起動して実行スケジュールを追加する。

$crontab -e

「nano」エディタを選択し、ファイルの末尾に以下を追加します。

DNSに反映されていることを確認します。

$nslookup nodalab.server-on.net
(ご自身のホスト名に書き換えてください。)

以下のように表示されれば成功です。

※表示されない場合はしばらく待ってから再実行してください。
「Apache2」をインストールして、動作確認を行います。

※インストールの前に必ず更新のチェック。
$sudo apt-get update

$sudo apt-get install apache2

続いて1軍PCからブロードバンドルーターの設定を変更します。
設定する項目は、「静的IPマスカレード」や「ポートフォワーディング」、「ポート転送」などルーターによって呼び方が異なります。
ルーターのマニュアルを参照の上、「プロトコル」や「ポート」、「IPアドレス」を登録してください。
ここでいよいよインターネットから自宅サーバーにアクセスしてみます。
動作確認方法はブラウザからhttp://nodalab.server-on.net/(ご自身のホスト名に書き換えてください。)にアクセスするだけです。

しかし、サーバーを接続しているLANに接続しての検証は意味がありません。
3G回線のスマートフォンか、マンガ喫茶などに行って試してみましょう。

「It works!」と表示されれば成功です。

最後にファイアウォールを有効にします。

Ubuntu Serverには容易にファイアウォールが設定できる「ufw」というツールがあります。
下記のコマンドでファイアウォールを有効にします。

$sudo ufw enable

しかし、このままの設定だとファイアウォールが、すべてのアクセスを拒否してしまします。
(上記の動作確認を行うとエラーになります。)
以下のコマンドでWebサーバーへのアクセスを許可します。

$sudo ufw allow http

これで再度、Webサーバーにアクセスすると「It works!」と表示されるはずです。

以上で今回のお話は終わりです。

今回はインターネットから自宅サーバーにアクセスするまでのお話だったので、サーバー自体は何の利便性もありません。
次号からは便利なアプリケーションを追加し、最低限のセキュリティを施していきたいと思います。

ではでは。