laotourの離れ2

RaspberryPiサーバー製作4


4.Raspbian-Server製作2
4-1検討経過 
 下記のように、各種サーバーの動作を確認できたので、1台のシステムでまとめることにした。

@RaspberryPi 2B + USB-HDD(3TB)  NASとして使用。HDDは、exFATフォーマット。
ARaspberryPi 3B + USB-HDD(40GB) WebServerを動作。SSL対策として、Let's Encrypt証明書。
 Raspbian-Strechではうまくいかず、Raspbian-jessie環境で。
?RaspberryPi 3B + USB-HDD(40GB) LAMP環境

       *********************************************************************
RaspberryPi 3B + USB-HDD(3TB)--Raspbian--のサーバー化

 *参考記事
  Raspberry Pi3のApacheにSSL環境を導入する
   http://itemy.net/?p=1052
  RaspberryPiで快適コンピュータライフ(NAS構築偏)  (Qiita @3no3_twの投稿)
  §  Raspberry Pi 3 Model Bに「Raspbian Stretch」をインストールしてみた
   X. LAMPのインストール(Raspberry Pi3 + Raspbian Stretch編) 
    http://marchan.e5.valueserver.jp/cabin/comp/jbox/arc112/doc11205.html

1.システム構成
 RaspberryPi 3B OS:2017-07-05-raspbian-jessie-img
 USB-HDD HD-LDU3(3TB)

2.RaspberryPiの準備
 ・上記OS・ssh(txtファイル)を書き込んだmicroSDCard 32GBをRaspberryPiにセット。
 ・下記の設定を実行
   Network HostName,WiFi …web1,logitec52                    
   Localization  言語,TimeZone
   Interface  SSH,VNC
   IP固定化 eth0:192.168.0.80  wan0:192.168.0.81

3.パッケージのアップデート、ファームウェアのアップデート
  pi@web1:~ $ sudo apt-get update
  pi@web1:~ $ sudo apt-get upgrade
  pi@web1:~ $ sudo rpi-update   
   以上の後、sudo reboot

4.Webサーバーの作成
*Webページを公開するためのネットワーク関連の準備は、下記の点を完了済み
  ・ドメイン取得 tfujiwara.work  お名前.comで取得
  ・DDNS設定 お名前.comのサーバーで設定
  ・ポート開放 80
4-1Apache2インストール
  pi@web1:~ $ sudo apt-get install apache2

4-2Apache2の動作確認
 ブラウザでRaspberryPiのIPアドレスにアクセス。…"Apache2 Debian Default Page"を表示 OK!

4-3/var/www/htmlのパーミッション変更
 root以外のユーザーでも書き込み可能にする。 755→777
  pi@web1:/var/www $ sudo chmod 777 html/  

4-4WebページのSSL化…Let's Encryptの利用 
4-4-1 証明書取得クライアントのインストール
  pi@web1:~ $ sudo apt-get install git
  pi@web1:~ $ cd /usr/share
  pi@web1:~ $ sudo git clone https://github.com/certbot/certbot
  pi@web1:~ $ sudo ./certbot-auto
   *他のOS(Stretch)でテスト時は、インストール方法を色々実行した後、certbot-auto実行時に、
 いずれも"Python Package……" という箇所でエラーが発生した。
4-4-2 証明書の取得
  pi@web1:~ $ sudo service apache2 stop
  pi@web1:~ $ sudo ./certbot-auto certonly --standalone -d web1.tfujiwara.work -m tfujiwara@zeus.eonet.ne.jp --agree-tos
   *IMPORTANT NOTESの表示が出たので、証明書は発行されたと思える。
     /etc/letsencrypt/live/web1.tfujiwara.work/fullchain.pem
     /etc/letsencrypt/live/web1.tfujiwara.work/privkey.pem
4-5Apacheの設定
4-5-1Apacheのvirsion確認 pi@web1:~ $ apache2 -v
  Server version: Apache/2.4.10 (Raspbian)
4-5-2default-ssl.confに追記
  pi@web1:~ $ sudo nano /etc/apache2/sites-available/default-ssl.conf
   SSLEngine on

   SSLCertificateFile /etc/letsencrypt/live/web1.tfujiwara.work/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/web1.tfujiwara.work/privkey.pem
4-5-3Apache2でSSLの有効設定の反映
  pi@web1:~ $ sudo a2ensite default-ssl
  pi@web1:~ $ sudo a2enmod ssl
  pi@web1:~ $ systemctl restart apache2
  pi@web1:~ $ sudo reboot

4-6証明書の確認
 ブラウザでサイトにhttpsでアクセスし、証明書を確認する。
  ・ローカルネット内 https://(ローカルIPアドレス)
  ・インターネット空間(無料WiFiスポットなど) https://web1.tfujiwara.work
    ローカルからネット空間同等を実行するならスマホを4G回線にしてテストするのが早い。
  
  *現在、ローカルネット内からは確認できているが、ネット空間からの確認が完璧ではない。
   証明書の再発行など、さらに作業・テストが必要。
   さらにhttp://からのリダイレクトができていない。
  *ドメインの名前解決までには少し時間がかかることもある。インターネット空間からの確認は、少し時間をおいてから実行する必要があることもある。

5.NASとしての使用
5-1RaspberryPiの設定
 USB-HDD(3TB、exFATフォーマット)をファイルの保存ストレージとする。
 ・ドライバ・ユーティリティのインストール
  pi@web1:~ $ sudo apt-get install exfat-fuse exfat-utils
 ・OSの最新化、ファームウェアのアップデート
  pi@web1:~ $ sudo apt-get update
  pi@web1:~ $ sudo apt-get upgrade
  pi@web1:~ $ rpi-update
   以上の後、reboot
5-2USB-HDDの接続・マウント
5-2-1マウントポインタ作成
  pi@web1:~ $ mkdir /media/hdd1
 *exFATフォーマットHDDの場合、fstabに上記マウントポインタが記載されてないとマウントできない。
5-2-2HDDのUUID確認
  pi@web1:~ $ sudo blkid /dev/sda1
  /dev/sda1: LABEL="NAS2" UUID="2E79-41CE" TYPE="exfat" PARTUUID="f8ece451-fe7d-45e9-8b13-66d418a77607"
5-2-3fstabの変更
  pi@web1:~ $ sudo cp /etc/fstab /etc/fstab.org
  pi@web1:~ $ sudo nano /etc/fstab

   proc            /proc           proc    defaults          0       0
   PARTUUID=6ad1e7eb-01  /boot           vfat    defaults          0       2
   PARTUUID=6ad1e7eb-02  /               ext4    defaults,noatime  0       1
   # a swapfile is not a swap partition, no line here
   #   use  dphys-swapfile swap[on|off]  for that
   UUID=2E79-41CE  /media/hdd1  exfat-fuse  defaults,nofail  0  0      ……この行を追記
5-2-4HDDのマウント・確認
  pi@web1:~ $ sudo mount -t exfat-fuse /dev/sda1
  FUSE exfat 1.1.0

  pi@web1:~ $ df -h
  ファイルシス   サイズ  使用  残り 使用% マウント位置
  /dev/root         30G  4.2G   24G   15% /
  devtmpfs         458M     0  458M    0% /dev
  tmpfs            462M     0  462M    0% /dev/shm
  tmpfs            462M  6.3M  456M    2% /run
  tmpfs            5.0M  4.0K  5.0M    1% /run/lock
  tmpfs            462M     0  462M    0% /sys/fs/cgroup
  /dev/mmcblk0p1    42M   21M   21M   51% /boot
  tmpfs             93M     0   93M    0% /run/user/1000
  /dev/sda1        2.8T  7.8G  2.8T    1% /media/hdd1
5-3HDDの自動マウント・確認
 システムを再起動し、5-2-4と同じく、HDDがマウントされていることを確認する。

 *HDDのマウントが成功したので、後はSambaを導入すれば、NASとしてWindowsシステムからもアクセス可能となる。

5-4Sambaのインストールと設定
5-4-1Sambaインストール
  pi@web1:~ $ sudo apt-get install samba
5-4-2Sambaの設定…変更前のconfファイルは保存
  pi@web1:~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.org
  pi@web1:~ $ sudo nano /etc/samba/smb.conf 最後尾に追記
[global]
       workgroup = WORKGROUP
       interfaces = 192.168.0.  127.0.0.0/8 eth0
       bind interfaces only = yes
       hosts allow = 192.168.0.
       max log size = 100
       security = user

[nas2]
       comment = NAS2
       path = /media/hdd1
       public = yes
       read only = no
       browsable = yes
       force user = pi
5-4-3Sambaの起動
  pi@web1:~ $ sudo /etc/init.d/samba restart
  [ ok ] Restarting nmbd (via systemctl): nmbd.service.
  [ ok ] Restarting smbd (via systemctl): smbd.service.
  [ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.
5-4-4Windows10のExplolorからアクセステスト
 OK!!

6."4.Webサーバーの作成" 続き …SSL証明書確認、リダイレクト(未完了)
6-1証明書更新(web1.tfujiwara.work)
  pi@web1:~ $ sudo /usr/share/certbot/certbot-auto renew
  /opt/eff.org/certbot/venv/local/lib/python2.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py:163: CryptographyDeprecationWarning: OpenSSL version 1.0.1 is no longer supported by the OpenSSL project,please upgrade. A future version of cryptography will drop support for it.
   utils.CryptographyDeprecationWarning
  Saving debug log to /var/log/letsencrypt/letsencrypt.log

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  Processing /etc/letsencrypt/renewal/web1.tfujiwara.work.conf
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  Cert not yet due for renewal

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  The following certs are not due for renewal yet:
   /etc/letsencrypt/live/web1.tfujiwara.work/fullchain.pem expires on 2019-09-07 (skipped)
  No renewals were attempted.
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 *証明書の更新は、9月7日なので、それまで更新できない。ということのようだ。

6-2証明書の取得(tfujiwara.work)
  pi@web1:/usr/share/certbot $ sudo ./certbot-auto certonly --standalone -d tfujiwara.work -m tfujiwara@zeus.eonet.ne.jp --agree-tos

 *IMPORTANT NOTES: の文章が表示され、証明書は発行されたようだ。
   /etc/letsencrypt/live/tfujiwara.work/fullchain.pem
     /etc/letsencrypt/live/tfujiwara.work/privkey.pem
6-3Apacheの設定
6-3-1Apacheのvirsion確認 pi@web1:~ $ apache2 -v
  Server version: Apache/2.4.10 (Raspbian)
6-3-2default-ssl.confに追記
  pi@web1:~ $ sudo nano /etc/apache2/sites-available/default-ssl.conf
   SSLEngine on

   SSLCertificateFile /etc/letsencrypt/live/web1.tfujiwara.work/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/web1.tfujiwara.work/privkey.pem
6-3-3Apache2でSSLの有効設定の反映
  pi@web1:~ $ sudo a2ensite default-ssl
  pi@web1:~ $ sudo a2enmod ssl
  pi@web1:~ $ systemctl restart apache2
  pi@web1:~ $ sudo reboot
6-4証明書の確認
 ブラウザでサイトにhttpsでアクセスし、証明書を確認する。
 インターネット空間からの確認が、やはりまだできない。
 下記の点を見直し
  ・お名前.comのDDNS設定…問題なし
  ・各種設定ファイルの内容…追記する必要なし
   /etc/apche2/apache2.conf、/etc/apache2/ports.conf、/etc/apache2/sites-available/000-default.conf
  ・ポート開放…HTTPS用のport443が解放されてなかった。

 *ポート開放の結果、インターネット空間からブラウザで確認できた。
  (自宅内LANからのアクセス・表示については?な面あり)
6-5従来のhttp://でのアクセスをhttps://表示に移動させる。(リダイレクト)
 下記の二通りを試みたが、いずれも成功していない。
  @ドキュメントルートディレクトリ(/var/www/html/)に下記内容の .htaccessを作る。
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
  A/etc/apache2/apache2.confに下記内容を追記
   <ifModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
   </ifModule>

7.LAMP環境の構築

PHP-7系のインストールはいろいろ制約があるようでうまくいかず、最終諦め。
当面は使用しないが、Database関連で、下記をインストールしておく。
  pi@web1:~ $ sudo apt-get install php5
  pi@web1:~ $ sudo apt-get install mysql-server phpmyadmin

RaspberryPiサーバー製作5 に続く