www.smiyasaka.com は、 2022 年 11月から Oracle LInux 8.X にOSを変更しました。

● 自宅サーバを作ってみよう ●

アクセス数 昨日 5 今日 3
  累計 24,424   

自宅からのホームページ公開の欲望にかられ、最低の電気代で騒音・発熱も最小にする為に 私が、計画・実行した自宅サーバの作り方について紹介します。
( 計画当初 私は、自宅サーバに関しては、知識ゼロでした。)


これから、Linux (リナックス)で自宅サーバをしてみたい方の参考になればと思います。


私の場合、当初( 平成 23 年 5 月頃から )は、32 bit 版の Vine Linux5.0 から初めて、CentOS 5.9,
Scientific Linux 5.9, CentOS 6.5 に順次移行しましたが、平成 26 年 6 月からは、64 bit 版の CentOS 6.5 にバージョンアップし、現在は、64bit 版の Oracle Linux 8.9 に移行 更に、 SSL 化も挑戦し実現しています。

これらの Linux (リナックス)の OS は、無償で配布されているのでインターネットから ダウンロードし、インストール用の DVD または、USB を作るだけで使用できます。

各 Linux での「自宅サーバの構築方法」を「CentOS X.X インストールとサーバ構築」のヘージで詳しく紹介しています。

※ 注 意 事 項 ※ を見る[ここをクリック]

目    次
[○○○○]のクリックで、その内容が目次の下に表示、再度クリックで非表示になります。

   ※ [ 総てを表示する ] ※ [ 総てを表示する 非表示 ] ※
   1. [ 自宅サーバーの魅力 ] [ 自宅サーバーの魅力 非表示 ]
   2. [ 準備したパソコン ] [ 準備したパソコン 非表示 ]
   3. [ Linux(リナックス)をどのようにして、勉強したか ] [ Linux(リナックス)をどのようにして、勉強したか 非表示 ]
   4. [ サーバのセキュリティ対策 ] [ サーバのセキュリティ対策 非表示 ]
   5. [ ホームページを何で作ったか ] [ ホームページを何で作ったか 非表示 ]
   6 [ ホームページ更新・改造をどのようにしたか ] [ ホームページ更新・改造をどのようにしたか 非表示 ]
   7. [ webサーバをコピペで再現性を考慮して作る ] [ webサーバをコピペで再現性を考慮して作る 非表示 ]
   8. [ 独自ドメインを取得し、ホームページを公開する ] [ 独自ドメインを取得し、ホームページを公開する 非表示 ]
   9. [ ホームページを公開するためのルートを作る( ポート開放 ) ] [ ホームページを公開するためのルートを作る( ポート開放 ) 非表示 ]

   1. 自宅サーバーの魅力

自宅サーバなのでこんな事もできます。

( 下記の各種データの表示は、perl でプログラムを作成して表示させています。)

1. CPUの稼働時間と温度を表示する。


サーバ機連続稼働時間  14 日と 23 時間 58 現在のサーバ機の CPU 利用率 0.31 % です。
現在のサーバ機の CPU 温度 +30 です。

2. SSD の総使用時間と温度を表示する

  現在のサーバ機の SSD の総使用時間と温度は、12,130 時間 ( 505 10 時間 )
です。
( 参考情報 安価な SSD は、温度センサーが付いてない機種がありますとで注意してください。
   現在このサーバ機では、中国製 SPD の安価な SSD を使用しています。 )

3. OS のバージョン・Linux のカーネルのバージョン等を表示する。

  OS のバージョン   : Oracle Linux 8.9 です。
  httpd のバージョン  : httpd-2.4.58 です。

Linux のカーネル : Kernel 5.15.0-204.147.6.2.el8uek.x86_64 ( 2024.03.07 付けで更新 )です。

4. 私の地区の今の天気情報を表示する。

6 時 現在の温度 14.8   風速 3.2 m    天気   曇

5. あなたと私のグローバルIPアドレスを表示する。

グローバルIPアドレスとは、インターネット社会の住所になる番号です。ネームサーバ
(DynamicDNS)と言われる組織が、ドメイン(たとえば私のドメイン www.siyasaka.com ) をこの IPアドレスに変換してくれるので目的のホームページ(私のサーバ機)へ到達で きるのです。

取得した場所 (コマンド等) グローバル IP アドレス
あなたの IP アドレス
( ホームページのアクセス情報から取得 )
44.200.249.42
ネームサーバ ( VALUE DOMAIN )
( dig コマンドで取得 )
183.176.80.55
モデム ( ルータ )
(プロバイダの STNet が割付)
183.176.80.55

6. 安価な USB カメラでライブカメラを設置し、あなたの家からの風景を発信するこ ともできます。

下記の映像は、私の家からの風景を発信している映像です。


○自宅サーバの魅力は、自分だけのドメインを、年間ドメインの使用料 1,000円位で、ホームページが公開できること。
ドメイン名に、制限がありますが、無料で使用できる管理サイトもあります。


○ホームページの容量・機能等なんの制約もなく、全て自己責任の範囲でホームページを公
開できること。当然、管理・運用も自分自身で行う必要がありますが、通常の管理といっ ても、ホームページが、正常に動作しているかと、アクセス状況の確認・運用は、ホーム ページの更新位です。

○Linuxのシステムは、非常に軽いので、10年位前のパソコン十分動作すること。
( 古いパソコンは、非常に消費電力が多いので注意してください。100W 以上あります。コ ストパフォーマンスを考えた場合、私の様にミニサイズのパソコンを購入して使用するの がベストと思います。 )

○ホームページの言語以外に、perl・javascript・シェルスクリプト(sh)を使って色々な事が実現できること。

○それなりのスキルがないと、自宅サーバは、実現できないので、自宅のパソコンから、世界にホームページを発信しているという満足感が、味わえること。( 自己満足のみですが )

○更に、スキルアップすれば、自宅サーバーで、メールの送受信も、することができ、自分が管理者なので、自由に、メールアドレスを作ることも可能です。

○余談ですが、グーグル・yahooとかの検索サイトで、検索した時に、自分のホームページがトップページに出ること。( 多くの人に、見てもらうには、大事なことです。)

○デメリットも、上げておきます。

1. 24時間365日稼動することから、パソコンの機種によっては、電気代が掛かること。

2. 機種によっては、冷却ファンの騒音・パソコン本体の発熱が大きいのでその対策が必要な事。

参考ですが、私のwindows7 64bit (グラフックボード付き・グラフックボードだけで 100W 以上消費されています。)の core i7 のパソコンはなんと 200w 近くの電力が消費されます。
ノートパソコンでも、40~60w 程の電力が消費されます。
( 電力計で、自分で実測した値です。)

2017年 5月 から、新しいミニデスクトップパソコン( mouse pc LM-mini76S1-S1-MA )に切替えました。

マウスコンピュータのミニデスクトップパソコン( mouse pc LM-mini76S1-S1-MA )が、CentOS 7 の途中から、インストールできない現象が、 発生したため、2020年 12月 にマウスコンピュータのミニデスクトップパソコン( Mouse Pro-M591F-WA Intel i3-7100U 2コア/4スレッド 2.40GHz メモリー 8GB,SSD 128GB)を追加して2台体制で運用しています。
インストール・デバッグ等は、この新規購入したミニデスクトップパソコンで行っています。
( linux の OS は、別の PC に SSD 本体を移設しても動作することが判明したので SSD 本体移設の方法を取っています。)

3. サーバ機の発熱問題に対する対策


私の様な貧乏管理人では、サーバ機の為にだけ、冷却設備を導入することが出来ないこと。
よって、サーバの稼働時間とCPU の温度・SSDの稼働時間・SSDの内部温度をホームページ上に表示し、監視を出来るようにしました。
H26年8月からは、SSD が安価になってきたので 発熱の低下と処理スピードのアップを期待して SSD にしています。

   2. 準備したパソコン

○ 10年程前のwindows xpのパソコン( HDDは、80GB位でOK 勉強中は、動くパソコンならな んでも使用出来ると思います。)と、現用のwindowsパソコン( xpでも 7でもOKです。
64bit 対応 PC がベストです。)

初期の windows XP の PC では、32bit の Linux しかインストールが出来ない機種もありますので注意してください。
インストールは、テキストモード( GNOME システム )だけで動作する設定でインストールしています。
サブシステム側の操作は、 windows 側からのリモートアクセスで、すべてが出来るようにシステムを作るので問題は、ありません。
稼動してしまえば、ディスプレイもキーボード・マウスも不要になり、本体に LANケーブルをつなぐだけの状態になります。


○ 独自ドメインは、システムが完全に動くことが、確認できてからで遅くありません。
 ただし、あなたの希望するドメインが、今あるかは、分かりませんが ?。
 一時的に、するなら無料ドメインという手もあります。


○ 2020年 12月現在、私が使用しているサーバ機は、mouse pc LM-mini76S1-S1-MA ・ Mouse Pro-M591F-WA という手のひらサイズのディスクトップの機種です。
( 毎日、パソコンの耐久試験をしているようなものです。)


○ 2019年 2月現在、http では、危険なホームページとして扱われるようになったので、 私のサーバ機も https を対応させました。当面は、http (ポート 80)と https (ポート 443)共用で公開します。
ただし、http (ポート 80)でのアクセスに対しては、https (ポート 443)へ転送しています。

   3. Linux(リナックス)をどのようにして、勉強したか

○ まず、勉強するためには、Linux関係の専門書を購入することを考えると思いますが、専 門書は、なかなか高価なので手が出ないし、読んでもさっぱりと分からないのが現状だと思います。

○ 私は、サイトで見つけた、
Linuxマスター.jpというサイトから、まずは、無料の資料を ダウンロードし、試しに書いてある通りにしてみました。
思ったより、簡単だったので、次は、有料のウエブ上の講習の申込( 月あたり、雑誌二冊分位の費用 )を行い、一年近く、気の向いたときに、勉強しました。
何度もLinuxのシステムをインストールした結果、だんだん意味・必要性等の事が分るようになりました。
このサイトは、分からないことがあれば、管理者宛に、メールをすると、疑問に答えてくれるというシステムと受講者同士の書き込みコラムがあり、そこを見ると、自分がつまづいたと同じような書込みがあり、かなり参考になりました。
このサイトは、ホームページを公開するまでの、システム構築と公開した後の運用というより、管理維持についても指導がされ、理屈は、後回し、まずは、どの様に動作するのかを体験し、後から、だんだん行った事の意味が分かって来るような指導方法です。
自宅サーバー自体の構築は、専門書・専門雑誌を購入するより、Linuxマスター.jpで、勉強した方が、近道では、ないかと私は、思います。( 宣伝でなく、実感です。)
 興味のある方は、
Linuxマスター.jpで検索できます。クリックしてみてください。

○ Linuxマスター.jpで、学べることの概要を紹介しておきます。


1. Linuxのカスタムインストール
(ホームページをするための機能のみのインストール)
2. Linuxのコマンドの使い方。
3. windowsからリモート操作するためのLinux側の設定と
Tera Termのインストールと設定
4. ファイアウォールの設定
5. 自動実行(cron)の設定
6. FTPサーバのインストールと設定
7. webサーバ(apache)のインストールと設定
8. 独自ドメインの取得方法
9. DDNS(グローバルIPアドレスとドメインの関連付け)の仕方
10. ポートの開放方法(ルータの設定)
11. サーバの監視システムの構築方法
12. ホームページデータのバックアップと復旧の仕方
13. apacheのログ解析の設定
14. その他(ブログ)

   4. サーバのセキュリティ対策

○ Linux専用のセキュリティソフトが、無償であり、それをインストールして、行います。

〇 Webサイトを SSL 化して暗号化した通信方式にして安全性を向上しています。

SELinux = 有効( enforcing )・SSL 認証鍵の証明書 = Let's Encrypt を使用・SSL プロトコル HTTP/2 に対応

○ 更に、ホームページ公開に不要なサービスは、全て停止・サーバへの入り口である、ポートも、必要なポートだけを開放し、セキュリティを図ります。
( この事については、上記の講習を受講すると、詳しく勉強できます。)


参考データ [ 私のサーバ機の起動しているサービスと許可しているポートの一覧 ]

起動しているサービスの一覧 ( CentOS 5.X の場合の例 )


1. anacron  ( タスクスケジューラー・cronの補助的役割 )
2. autofs   ( ファイルシステムの自動マウント )
3. clamd   ( アンチウィルスソフト )
4. crond    ( タスクスケジューラー )
5. iptables   ( ルーティング&ファイヤーウォール )
6. network  ( 起動時のネットワークインターフェイスの初期化を行う )
7. proftpd   ( FTPサーバ・ffftp等を使用するときに必要 )
8. sshd    ( リモート管理サービス )
9. syslog   ( システムのログを記録する )
10. udev-post  ( ハードウェアの自動認識 )

許可(開放)しているネットワークポートの一覧
( ファイアウォール iptables で下記のポート番号だけ、許可しています。 )


1. 21     ( ftp ファイル転送 SMTP )
2. 2222    ( ssh )
3. 80     ( Webアクセス http )
4. 123     ( NTP サーバの時刻合わせ )
5. 443     ( Webアクセス https )

○私の場合は、ホームページ公開用のwebサーバの機能だけにして、セキュリティの強化 とサーバの負荷軽減をしています。

   5. ホームページを何で作ったか

○ 私は、当初市販のソフトを使用して、作りましたが、ある程度決まったものしか作れない 為、骨格は、市販ソフトで作成し、web 上に公開されている先人の知恵を検索し、少しづつホームページを改良して、今の状態にしました。
web上には、ホームページの作成に関するサイトが、沢山あり、グーグル等から、"HTML で○○する方法"等の検 索で、専門書の購入することなく、ほとんど対応できます。

○ 訪問者カウンター設置・ライブカメラ稼動・自分と相手のIPアドレスの自動取得等は、 perl(SSI・CGI)・シェルスクリプト・javascriptのプログラミング言語を勉強する必要があります。
プログラミング言語は、記述の仕方とその結果がどの様になるかを体験し、体で覚えないと私がしているような簡単なことでもできませんので、勉強する価値は、あります。 私のホームページでも、作り方を公開しています。

○ プログラミング言語について、web 上に、沢山の方が分かりやすく記述し、ホームページとして公開されていますので、グーグル等から、言語名を指定し、"perlで○○する方法" 等の検索で、専門書を購入することなく、ほとんど対応できます。
私自身も、web上の先人の知恵のサイトを、大いに活用し、失敗や読んでも理解できないことが沢山ありましたが、なんとか計画したことを実現できました。

○ 先人のホームページを日々チェックし、自分のホームページへの改良や新規機能のへの挑戦をしています。
 ホームページのプログラミング言語( HTML,javascripts 等 )は、奥が深かくやればやるほ どはまり込んで新機能を発見しています。

   6. ホームページ更新・改造をどのようにしたか

○ ホームページの更新・改造は、公開用のサーバとは、別のローカル接続のサーバ機で行い 確認してから本番用にアップするようにしています。

○ ホームページの更新・改造用のサーバー機は、・予備機としても使用しています。

○ ホームページの更新・改造用のサーバー機は、本番用と同じシステムをインストールし、 IPアドレスだけ変えれだけで、簡単につくれます。もちろん、古いパソコンで十分です。

○ データのバックアップは、SDカードへ行い、予備機での再現も、SDカードを差し替えて開 発したプログラムを起動するだけで、簡単にできるようにしています。  ( バックアップは、ホームページのプログラム・毎日記録している定点カメラのデータ・ apacheのログデータ・その他のシステム運用のために作成した各種プログラムを対象としています。)

○ 私の場合、予備機は、必要なときだけ、稼動し、普段は停止させています。
現在の予備機は、普段 LAN カメラ として動作させ、本番用のサーバ機のホームページデータのバックアップ用としての機能も追加しています。
本番機が、ダウンしても前日の状態に復旧ができる状態にしています。

○ ホームページの改造として、各ページ共通な箇所や、日付などで内容の変わるような箇所は perl(SSI、CGI) で HTML・javascript のプログラムを自動で組み、設定値などが、自動的に変わるように改造しています。

○ 外部からのデータ等の取得解析は、シェルスクリプト + perl でプログラミングし、実現しています。

7. webサーバをコピペ(コピーとペースト)で再現性を考慮して作る。
( Tera Term を使ったプログラムファイルのサーバへの転送方法の紹介 )

●私は、再現性と正確さから、Linuxをインストール後のwebサーバを作りを、事前に作成したテキストファイルからのコピペですべてをしています。
特に細かな編集が必要な箇所は、sed コマンドで一括編集を出来るようにコマンドを作り、コピペで簡単に編集設定できるようにしています。

更に、インストールするファイルは、window の PC から、転送することで 90% 以上は、ダウンロードせずに済ませています。

 
この方法ですると、2 ~ 3 時間でwebサーバーを再構築することができます。
ただし、事前にする作業が、かなりありますが。しかし、この作業は、理屈上一度だけすれば良いのです。

別ページで CentOS 6.X (32bit, 64bit), CentOS 7.X (64bit), CentOS 8.X (64bit) の サーバ構築方法を紹介しています。
興味があれば、参考にしてみてください。

このテキストファイルは、私にとってwebサーバ構築のための亡備録にもなっています。

① コピペで構築するwebサーバーシステムの環境

[ Linux用のPC ] <------> [ windowのPC ]

○ LinuxPCは、ユーザーの設定・SSHを起動した後は、キーボード・ディスプレィは、不要になります。
○ windowのPCには、Tera Termとffftpをインストールし、Linuxをリモート操作できるように設定しておきます。
Linuxの操作は、Tera Term で行い、プログラムの転送は、ffftpを使用して行います。

② テキストファイルに、webサーバを構築するための、コマンドとか、各種シェルスクリ プトのプログラム・perlのプログラムのソースを作業のストーリー順に、書き込んでおき、入力は、総てコピペでおこないます。
これは、日本語を含んだソースファイルを直接転送すると、文字化け等が発生するからです。

③ webサーバー構築に必要なインストールプログラムを事前に、windowsのPCで、ダウンロードしておきます。
プログラムによっては、Linuxでapt-get , yum , dnf で取得しないといけない物ありますがほとんどは、windowsのPCで、取得できると思います。
( Linuxのシステムで悩むより、事前に、windows側でダウンロードした方が、私は、楽だと思います。 結構ダウンロードがうまくできないサイトがあります。 )

④ vsftpd( FTPサーバ )をインストールするまでは、ffftp が、使用できないので Tera Term の転送機能で、 vsftpd( FTPサーバ )を Linux のホームディレクトリへ転送し、インストールします。

操作方法は、次の通りです。
[ 操作方法 ]
  1. [ファイル] ---> SSH SCP...をクリック。
  2. 上段のFromの欄に、転送したいファイルのパスを設定する。
  3. [Send]をクリック。
  4. ユーザのホームデレクトリィにファイルが転送される。
  5. cp または、mv コマンドで /usr/local/src/ 当のディレクトリに移動し、 インストールを行う。

⑤ windows側にある各種インストールするためのプログラムは、ffftpで一度ホームデレク トリィに転送し、コマンドで所定デレクトリィに移動なり、コピーしてから、インストールします。

⑥ この様に、コピペでするとwebサーバの構築が正確・簡単にできます。 興味ある方は、試してみてください。
※※ 参考情報 ※※
FTPサーバは、proftpd より vsftpd の方が、設定項目が少なく簡単に動作します。現在 私もこれを使用しています。

   8. 独自ドメインを取得し、ホームページを公開する

○ ホームページを公開するには、ドメインを取得しなければできません。
 
ドメインには、無料のものありますが、私の場合は、VALUE DOMAINというドメインの管理会社から、有料(一年ごとの契約)で取得しました。

 ドメインの管理会社(ネームサーバー)が行っていることは、プロバイダー(インターネットサービスプロバイダ)が、に割り振ったグローバルIPアドレスと、 ドメインとを関連付けてくれるところ、つまり、www.smiyasaka.com でアクセスしたら、私の グローバルIPアドレス に変換してくれる所です。


 ドメインの管理会社へは、自分の グローバルIPアドレス を変更がある毎に、また、定期的に、知らせる必要が有ります。
 なお、ドメインの管理会社への定期的なアクセスを怠るとホームページが稼働していないと判断されて、ドメイン ---> グローバルIPアドレスへの変換サービスが停止してしまいます。

 私のサーバ機では、毎月 1日と15日に グローバルIPアドレスの更新 をしています。

 この処理は、自前でプログラムを作成して実行させています。
 私の場合、停電時とか・やむなくルータの電源を OFF した時は、直接、VALUE DOMAIN にアクセスして グローバルIPアドレスの書き替え作業しています。
実際にネームサーバーに反映されるのは 10 ~ 20 分かかるようです。

2022年 1 月に直接 VALUE DOMAIN にアクセスして グローバルIPアドレスを変更したら、直ぐに反映されました。

※※ 参考情報 ※※
 ドメイン無しでホームページが公開できるかのチェック方法

 ルータのポート解放後、自分の グローバルIPアドレス で外部から、アクセスしてみてください。
 貴方のサーバ機が正しく動作していればホームページが表示されるはずです。

   9. ホームページを公開するためのルートを作る( ポート開放 )

○ サーバーを作り、独自ドメインを取得しても、ホームページを外部に公開することは、 できません。  外部に公開するには、インターネットに、接続している機器( ルータ : ブロードバンドルータ )内の設定がいります。
 私の場合、NECのAterm WH822Nという 機種なので、この機種での、設定方法を紹介します。


1. IPアドレス(私の場合192.168.0.1)で、ルータにアクセスし、ID・パスワードを入力します。

2. [詳細設定][ポートマッピング設定]をクリック、次に、[追加]をクリックし、サーバー 機のローカルIPアドレス・ポート番号( 80-80 )・anyのチェックを取る・優先度 : 1 を入 力し、[設定]をクリック、最後に[保存]をクリックして終了です。( http のポート 80 だけの開放 )( 下の写真参照 )

 ( LAN 側ホストには、貴方のサーバ機のLAN 内の IP アドレスを設定します。)
 2019年2月から、同様にして、ポート 443 も開放しました。

3. 設定の確認( ポートの開放 )は、ポート開放のキーワードで、検索すると、確認してくれ サイトが沢山ヒットしますので、テストしてみてください。
ただし、自宅サーバが動作していないと確認は、できません。

○ 自分のホームページが、公開できているかの確認は、スマートフォン等を所有している ならば、そこからアクセスすれば、確認できます。
また、下記のサイトでドメインでのアクセス確認もできます。
また、ドメインを取得してなくとも、外部から、グローバルIPアドレスでアクセスすれば 確認ができます。

ポート開放の設定 下記のサイトは、[ ポートの開放 ] [ グローバルIPアドレス ] から [ ホームページが公開 ] されているかまでの確認が出来るサイトです。 クリックしてみてください。
あなたのグロバルIPアドレスを表示するサイトへジャンプします。
ブラウザキャプチャ


戻る