【PC活用】UbuntuServerでWebServerを構築する その7 外部(インターネット)への公開とダイナミックDNSの設置

投稿日: 作成者: ussy

【最終目標】
最終的な目的は自宅サーバーを立ち上げて公開する。

【目的】
ホスティングサービスは費用がかかり、さらにPHPのバージョンが低い場合がある。またデータベースも限られていて、試験的なことがやりにくい。最近のCMSを試したい為、環境を構築する。

【今回(その7)の目標】
今回は自宅サーバーを外部に公開するため、NO-IP様でダイナミックDNSの登録と自宅ルーターの設定を行います。(DMZ設定)

【導入記録】

  1. NO-IPでダイナミックDNSを登録
    1. https://www.noip.com/へアクセス
      右上「サインアップ」をクリック
    2. ※余談 私は英語弱いので日本語に翻訳してもらって閲覧します。
    3. メールアドレスとパスワードを入力します。
      ※ホスト名はここで登録してもいいのですが、今回は後で登録します。
      「後でホスト名を作成する」にチェックを入れる
    4. 無料で使いたいので「無料登録」をクリック
    5. メールで本登録となりますので、メールを確認します。
    6. メールで下記をクリックし本登録へ進みます。
    7. この辺の設定は好みですが、とりあえずここでは「キャンセル」をクリック
    8. ホスト名とドメインを選んでクリック

      例u-style.ddns.netを登録する場合は下記のように設定「ホストを追加」ボタンをクリックして進みます。
    9. 「今すぐ管理してください」をクリック
    10. 赤枠部分に自分の自宅のIPアドレスが表示されます。「ホスト名を更新する」をクリックするとこのIPアドレスとホスト名(u-style.ddns.net)が紐付けられます。
      ※ブラウザにhttp://u-style.ddns.netと入力すると自宅サーバーが表示されますが、まだ自宅サーバーを外部に公開していないのでエラーとなります。(後で説明します)
      そして、もう一つ自宅サーバーは自宅内のPC等からはアクセス出来ません。なので自宅サーバーにアクセスする場合はスマホのWiFi切ってモバイル通信からアクセスする、プロキシサーバーを経由してアクセスするなどの方法をとって下さい。
    11. 久しぶりにNO-IPを使ったのですがどうも、ドメインが30日で切れるようなので、都度登録が必要なようです。面倒な仕組みになったんだな。ここまで設定された方がいたら申し訳ございませんが、訪問が面倒な方はどこも同じようなものなので「ダイナミックDNS 無料」で検索してみて自分にあったサービスもしくは有料サービスを選択して下さい。
      ※ひとまず終了 ^^;
  2. 自宅サーバーを外部に公開するためのルーター設定
    通常外部からの侵入を防ぐためにルーターが外部(インターネット)からのアクセスをある程度制限しています。しかし自宅サーバーの場合外部から自分のPCからにアクセスすることになるので制限を解除して通路を開けてあげなくてはなりません。ここから行う作業は

    1. 通路を開け接続できるPCを構築(今まで作ってきた自宅サーバーです)
      ※これは外部からの危険にさらされるサーバーなのでファイアーウォールをしっかり設置して外部からの攻撃に備えたサーバーでなくてはなりません。

      1. UbuntuではUfwコマンドを使って設定します。
      2. アップデートはこまめにかけてセキュリティホールができないようにする
      3. 極力サーバーには不必要なアプリを入れない
        などの対策が必要です
    2. ローカル環境からルータのIPアドレスにアクセス
      例192.168.1.1
    3. DMZ(自宅サーバーにするPCの場所)をクリック
    4. DMZの有効化とサーバーアドレスを入力して「設定を保存する」をクリック
    5. 再起動したら設定が有効になります。
  3. 最後に自宅IPアドレスは番号が変更される可能性があるので、時折確認と変更情報をNO-IPサイトで更新しなくてはなりません。最初に登録した
    ここでの更新した作業ですが、毎回ここを訪れて登録するのは大変な作業ですので自動的にIPアドレスを更新するソフトを組込みます。

    1. 更新するソフト(クライアントソフト)のインストール
      ※いつもの通りコマンドラインからスーパーユーザーで行う。

      1. ファイルをダウンロード ※自分のディレクトリ等支障がないところにダウンロード
        wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
      2. ファイルを解凍
        tar zxvf noip-duc-linux.tar.gz
      3. ディレクトリ移動
        cd noip-2.1.9-1/
      4. make
        ※但しコンパイルする環境がない場合はmake、gccを入れておく
        apt-get install make
        apt-get install gcc
      5. make install
        色々きかれるので適切に回答

        1. 先程NO-IPで登録したメールアドレス
        2. パスワードを入力
        3. インターバル(更新間隔)はデフォルトで30分なのでそのままエンターキーを押す
        4. その他についてもデフォルトの設定でいいと思います。「N」を押してエンターキーを押す
      6. 自動起動の設定。
        ※2020/11/01追記
         再起動後動作を確認してみると自動起動はしていませんでした。
         とりあえず再起動後はnoip2コマンドを手動で行うことで対応。
         chkconfigわかりやすかったのになんで変更になってしまったか・・・

        ※自動起動を設定しようとしてchkconfigコマンド使ったら「無い」といわれた。ぐぐると今は「ubunt-rc.d」コマンドを使うらしい。

        1. 起動スクリプトの名前を変えて配置
          root@ubuntu:/home/ubuntu/noip-2.1.9-1# cp debian.noip2.sh /etc/init.d/noip2
          root@ubuntu:/home/ubuntu/noip-2.1.9-1# chmod 755 /etc/init.d/noip2
        2. 自動起動の登録
          root@ubuntu:/home/ubuntu/noip-2.1.9-1# update-rc.d noip2 defaults
        3. これで完了なはず。。。大丈夫かな。(後日確認します。)
          スクリプトを起動しておきます。
          root@ubuntu:/home/ubuntu/noip-2.1.9-1# /etc/init.d/noip2 start
          ※次回再起動時に動いているかどうか確認することにしよう・・・

【まとめ】
クライアントの自動起動の設定がちょっと怪しいですが(後日確認します^^;)、ひとまず外部から自宅サーバーにアクセスされるようになりました。サーバーが外部に公開されるのでくれぐれも運用には注意して下さい。
これであとは自分のすきなCMSを入れればいよいよ自宅サーバーの運用開始です。