www.smiyasaka.com は、 2019 年2月から SSL 化し 通信を暗号化した方式で発信をしています。

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

アクセス数 昨日 5 今日 5
  累計 18,083   

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

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

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

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

各 Linux での「自宅サーバの構築方法」を「CentOS X.X インストールとサーバ構築」の
ヘージで詳しく紹介しています。
=================================================================================
	目	次
[○○○○]のクリックで、その項目の内容が目次の下に表示、再度クリックで非表示になります。
  本文を総て先読み非表示(折り畳み方式)し、目次のクリックで表紙する方式を採用しています。
                
---------------------------------------------------------------------------------
     ※ [ 総てを表示する ] ※ [ 総てを表示する 非表示 ] ※
      1. [ 自宅サーバーの魅力 ] [ 自宅サーバーの魅力 非表示 ]
      2. [ 準備したパソコン ] [ 準備したパソコン 非表示 ]
      3. [ Linux(リナックス)をどのようにして、勉強したか ] [ Linux(リナックス)をどのようにして、勉強したか 非表示 ]
      4. [ サーバのセキュリティ対策 ] [ サーバのセキュリティ対策 非表示 ]
      5. [ ホームページを何で作ったか ] [ ホームページを何で作ったか 非表示 ]
      6 [ ホームページ更新・改造をどのようにしたか ] [ ホームページ更新・改造をどのようにしたか 非表示 ]
      7. [ webサーバをコピペで再現性を考慮して作る ] [ webサーバをコピペで再現性を考慮して作る 非表示 ]
      8. [ 独自ドメインを取得し、ホームページを公開する ] [ 独自ドメインを取得し、ホームページを公開する 非表示 ]
      9. [ ホームページを公開するためのルートを作る( ポート開放 ) ] [ ホームページを公開するためのルートを作る( ポート開放 ) 非表示 ]
---------------------------------------------------------------------------------
=================================================================================
	1. 自宅サーバーの魅力
=================================================================================
     自宅サーバなのでこんな事もできます。

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

1. CPUの稼働時間と温度を表示する
    サーバ機連続稼働時間  42 日と 1 時間 50
   現在のサーバ機の      CPU 利用率 8.80 % です。
   現在のサーバ機の      CPU 温度 +34 です。

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

   現在のサーバ機の SSDの総使用時間と温度は、7,589 時間 ( 316  5 時間 ) です。
   ( 参考情報  2018.09.04 追加 安価な SSD は、温度センサーが付いてない機種があり
     ますとで注意してください。
     現在このサーバ機では、MARSHAL の安価な SSD を使用しています。 )

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

   OS のバージョン  : CentOS 7.7.1908 です。
   Linux のカーネル : Kernel 3.10.0-1062.9.1.el7.x86_64 ( 2019.12.06 現在 )です。

4. 私の地区の今の天気情報を表示する。
14 時現在の温度 11.7   風速 1.7 m    天気    晴
5. あなたと私のグローバルIPアドレスを表示する。

   グローバルIPアドレスとは、インターネット社会の住所になる番号です。ネームサーバ
   (DynamicDNS)と言われる組織が、ドメイン(たとえば私のドメイン www.siyasaka.com )
   をこの IPアドレスに変換してくれるので目的のホームページ(私のサーバ機)へ到達で
   きるのです。
取得した場所 (コマンド等) グローバル IP アドレス
あなたの IP アドレス
( ホームページの    
アクセス情報から取得 )
18.207.240.35
ネームサーバ ( VALUE DOMAIN )
( dig コマンドで取得 )
133.123.117.180
モデム ( ルータ )
(プロバイダの STNet が割付)
133.123.117.180
6. 安価な USB カメラでライブカメラを設置し、あなたの家からの風景を発信するこ
   ともできます。
   下記の映像は、私の家からの風景を発信している映像です。
   映像の中には、天気の情報を埋め込んでいます。
   [ fswebcam の映像(120万画素) ]の映像は、 1 分更新で表示。
   [ ネットワークカメラの映像(70万画素) ] の映像は、10 秒更新で表示。
                   ボタンをクリックして見てください。映像が切替わります。
---------------------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

   2. 機種によっては、冷却ファンの騒音・パソコン本体の発熱が大きいのでその対策が必
      要な事。
      参考ですが、私のwindows7 64bit (グラフックボード付き)の core i7 のパソコンは
      なんと 200w 近くの
      電力が消費されます。ノートパソコンでも、40〜60w 程の電力が消費されます。( 電
      力計で、自分で実測した値です。)
      私の場合は、ホームページ内で紹介しているように、onkyoのミニデスクトップパソコ
      ン( 消費電力 10w 程騒音は、ほとんど気になりません。( H25年に廃止機種になりま
          した。)
      ( 同じ様なミニデスクトップパソコンは、マウスコンピューターが発売しています。 )

          
      2017.5.26 から、新しいミニデスクトップパソコン( mouse pc LM-mini76S1-S1-MA )に
      切替えました。
      onkyo の PC と比べるとすべてがサクサク動作しています。最低スペックの PC ですが、
      相当処理が速く成っています。( Intel Celeron 3855U, 2コア/1.60GH  メモリー 8GB,
      SSD 128GB ) onkyo DP315(5年前のPC)と比較すると処理スピードは、3倍以上になってい
      るようです。
      ( 計測方法 : clamscanの処理時間が 66分かかったのが、18分で終了していました。)

   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ケーブル
  をつなぐだけの状態になります。

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

○ホームページが、完全に動かせるようになってから、省電力のパソコンを購入し、自宅サー
  バの運用をしています。

○2017年 5月現在、私が使用しているサーバ機は、mouse pc LM-mini76S1-S1-MA という小
  さなディスクトップの機種です。
 この PC は、サーバ用の機種ではないので、丸五年サーバ機として使用した ONKYO DP315 
  を予備機として用意、定期的に、入れ替えて使用する様にしています。 ( 毎日、パソコンの
  耐久試験をしているようなものです。)

○20197年 2月現在、http では、危険なホームページとして扱われるようになったので、
  私のサーバ機も https を対応させました。当面は、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) のサーバ構築方
  法を紹介しています。
  興味があれば、参考にしてみてください。

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

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

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

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

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

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

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

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

Eこの様に、コピペでするとwebサーバの構築が正確・簡単にできます。 興味ある方は、
  試してみてください。

※※ 参考情報 ※※
  FTPサーバは、proftpd より vsftpd の方が、設定項目が少なく簡単に動作します。現在 
  私もこれを使用しています。
---------------------------------------------------------------------------------
=================================================================================
	8. 独自ドメインを取得し、ホームページを公開する
=================================================================================
○ホームページを公開するには、ドメインを取得しなければできません。

  ドメインには、無料のものありますが、私の場合は、VALUE DOMAINというドメインの管理
  会社から、有料(一年ごとの契約)で取得しました。
  ドメインの管理会社のしてくれることは、プロバイダーが、勝手に割り振ったグローバル
  IPアドレスと、ドメインとを関連付けてくれるところ、つまり、www.smiyasaka.com でア
  クセスしたら、私のグローバルIPアドレスに変換してくれるところです。これを、DDNS
  (Dynamic Domain Name System)といいます。

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

  実際は、自宅サーバ内に、この処理をしてくれるソフトウェアをインストールし、実行さ
  せています。( DiCEというソフトウェアをインストールしています。)
  私の場合、停電・やむなくルータの電源をOFFした時は、直接、VALUE DOMAINにアクセス
  してグローバルIPアドレスを書き替えますが、実際に変更されるのに 20〜30分かかるよ
  うです。

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

  ルータのポート解放後、自分のグローバル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アドレスを表示するサイトへジャンプします。
ブラウザキャプチャ

TOPへ戻る