laotourの離れ2

RaspberryPiサーバー製作5


5.Raspbian-Server製作3
5-1検討経過
 主に下記のような検討をしてきたが、いろいろな所で問題が発生し、解決できずに行き詰った。
問題点の主な点は、

@RaspberryPi 3B + USB-HDD(3TB) CentOS7(armhfp用) 再起動時にHDDからの起動ができない。
ARaspberryPi 3B + USB-HDD化した内蔵HDD(40GB) HDDからの起動に変更できない。
BRaspberryPi 3B + USB-HDD(3TB) Raspbian(Stretch) WordPressを導入・仕様。外部公開で画像がうまく表示しない。
 SSLリダイレクトが正しく機能しない。
CRaspberryPi 3B + USB-HDD(3TB) Raspbian(Jessie) Bと同様。従来のhttml文でのWebページの公開を実施。

 現状成功している部分に関して整理しておく。

6.目標(まとめ)
・サーバーの種類:WebServer、FileServer、DatabaseServerを共存させる。
・USB-HDD:上記のサーバーを共存させ、HDDは当面三分割して使う。
 ・Database用 ・FileServer用(NAS) ・予備

       *********************************************************************

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 (/etc/dhcpcd.conf、/etc/wpa_supplicant/wpa_supplicant.conf)
   user,password:pi  tako3212
                   root  3212tako7653
                   takasan  7653taka
   以上の後、sudo reboot

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

4.microSDcardのメモリ域の拡張確認(2019.8.19最終現状の状況)…メモリ領域が全て使用可能になっているか?
pi@web1:~ $ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G  4.6G  9.0G   34% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M   13M  451M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1    42M   23M   19M   55% /boot
tmpfs             93M     0   93M    0% /run/user/1000
/dev/sda2        916G   77M  870G    1% /mnt/HD-LCU3-2
/dev/sda1        1.4T  7.3G  1.3T    1% /mnt/HD-LCU3-1
tmpfs             93M     0   93M    0% /run/user/1001

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

5-2Apache2の動作確認
 ブラウザでRaspberryPiのIPアドレスにアクセス。…"Apache2 Debian Default Page"を表示 
 スマホ4Gモードのブラウザで、http://tfujiwara.workにアクセス。…"Apache2 Debian Default Page"を表示

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

6.WebSerberのセキュリティ…WebページのSSL化
6-1WebページのSSL化…Let's Encryptの利用 
6-1-1 証明書取得クライアントのインストール
  pi@web1:~ $ sudo apt-get install git
  pi@web1:~ $ cd /usr/share
  pi@web1:/usr/share $ sudo git clone https://github.com/certbot/certbot
  pi@web1:/usr/share $ cd certbot
  pi@web1:/usr/share/certbot $ ./certbot-auto

   *python絡みのパッケージが色々インストールされるようだ。
    以下この端末にSSL対策のためのクライアントを導入する過程。

Installing Python packages...    ここで結構時間かかる
Installation succeeded.
/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
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): tfujiwara@zeus.eonet.ne.jp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

           (以下省略)

IMPORTANT NOTES:         下記のような文が表示され、SSL証明用のファイルができる
- Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/tfujiwara.work/fullchain.pem
  Your key file has been saved at:

           (以下省略)

6-1-2 証明書の取得
  pi@web1:~ $ sudo service apache2 stop
  pi@web1:/usr/share/certbot $ ./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-2Apacheの設定
6-2-1Apacheのvirsion確認 pi@web1:~ $ apache2 -v
  Server version: Apache/2.4.10 (Raspbian)
6-2-2default-ssl.confに追記
  pi@web1:~ $ sudo nano /etc/apache2/sites-available/default-ssl.conf

    SSLEngine on

  (隠す)      #SSLCertificateFile     /etc/ssl/certs/ssl-cert-snakeoil.pem
  (隠す)      #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
  (追記)      SSLCertificateFile    /etc/letsencrypt/live/tfujiwara.work/fullchain.pem
  (追記)      SSLCertificateKeyFile /etc/letsencrypt/live/tfujiwara.work/privkey.pem

6-2-3Apache2でSSLの有効設定の反映
  pi@web1:~ $ sudo a2ensite default-ssl
  pi@web1:~ $ sudo a2enmod ssl
  pi@web1:~ $ systemctl restart apache2
  pi@web1:~ $ sudo reboot

6-3証明書の確認
 ブラウザでサイトにhttpsでアクセスし、証明書を確認する。
  ・ローカルネット内 https://(ローカルIPアドレス)
  ・インターネット空間(無料WiFiスポットなど) https://tfujiwara.work
    ローカルからネット空間同等を実行するならスマホを4G回線にしてテストするのが早い。
  
7.WebSerberのセキュリティ…WebページのSSL化、リダイレクト
 http://tfujiwara.workへのアクセスをhttps://tfujiwara.workへ変更させる。

7-1/var/www/html/.htacessを作成し、下記を記入
  
  <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  </IfModule>

 *リダイレクトの検討で、正しく動作しなかったのは、.htacessの記載内容・ファイルの存在場所、
  port443が開放されてなかった、などが原因と思われる。

7-2Webページデータの配置
 ホームページV4を使用し、以前公開していた"laotourの離れ"を再編集した"laotourの離れ2"を作成し、
 データを/var/www/html/に送信し、公開する。

8.アプリケーションの追加インストール
 当面は使用しないが、Database関連で、下記をインストールしておく。
  pi@web1:~ $ sudo apt-get install php5
  pi@web1:~ $ sudo apt-get install mysql-server phpmyadmin

9.USB-HDDの準備
 NASとして利用、将来Databaseサーバとしても利用するため、USB-HDDは当面3分割して使用する。
 ・Database用 約1.0TB ・FileServer用(NAS) 約1.5TB ・予備 約0.5TB

9-1現状のストレージ構成
 pi@web1:~ $ sudo fdisk -l

 Device         Boot Start      End  Sectors  Size Id Type
 /dev/mmcblk0p1       8192    93596    85405 41.7M  c W95 FAT32 (LBA)
 /dev/mmcblk0p2      94208 30375935 30281728 14.5G 83 Linux

 Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
 Units: sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 4096 bytes
 I/O size (minimum/optimal): 4096 bytes / 4096 bytes
 Disklabel type: gpt
 Disk identifier: 1ACFB32A-79C3-435E-9235-D2B2AE3D320A

 Device     Start        End    Sectors  Size Type
 /dev/sda1   2048 5860533134 5860531087  2.7T Linux filesystem

 *HDDに関しては、パーティションを切らずにext4フォーマットの様である。

9-2パーティション作成
 pi@web1:~ $ sudo fdisk /dev/sda
 最終結果として
 Device          Start        End    Sectors   Size Type
 /dev/sda1        2048 2930266112 2930264065   1.4T Linux filesystem  …NAS用
 /dev/sda2  2930268160 4883776853 1953508694 931.5G Linux filesystem  …Database用
 /dev/sda3  4883777536 5860533134  976755599 465.8G Linux swap     …予備

9-3ディスクフォーマット(sda1、sda2)…共にext4フォーマット
 pi@web1:~ $ sudo mkfs -t ext4 /dev/sda1
 pi@web1:~ $ sudo mkfs -t ext4 /dev/sda2

9-4UUID確認
 pi@web1:~ $ sudo blkid
 /dev/mmcblk0p1: LABEL="boot" UUID="3AFB-2896" TYPE="vfat" PARTUUID="097c5dfa-01"
 /dev/mmcblk0p2: UUID="62ca0b6d-6291-4c40-b1fd-11bc291e4a38" TYPE="ext4" PARTUUID="097c5dfa-02"
 /dev/sda1: UUID="68f1b1a7-855f-474d-825d-1beebf52aa2a" TYPE="ext4" PARTUUID="36795981-c17c-4b31-93f3-13661ef73b81"
 /dev/sda2: UUID="978ba2ff-6c6b-4e3f-b5da-51c1585eb239" TYPE="ext4" PARTUUID="49c48feb-4ac6-45a7-9545-24eec3b38007"
 /dev/mmcblk0: PTUUID="097c5dfa" PTTYPE="dos"
 /dev/sda3: PARTUUID="b1f2f313-03fe-4d90-aaa1-af9d45b635a3"

10.ファイルサーバー(NAS)の作成

10-1HDD接続とマウント確認
10-1-1マウントポイント作成、ポインタは、誰でも読み書き可能とする。
  pi@web1:~ $ sudo mkdir /mnt/HD-LCU3-1
  pi@web1:~ $ sudo chmod 777 /mnt/HD-LCU3-1
  pi@web1:~ $ sudo mkdir /mnt/HD-LCU3-2
  pi@web1:~ $ sudo chmod 777 /mnt/HD-LCU3-1

10-1-2fstabへ追記
  pi@web1:~ $ sudo nano /etc/fstab

  proc            /proc           proc    defaults          0       0
  PARTUUID=fade97a8-01  /boot           vfat    defaults          0       2
  PARTUUID=fade97a8-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=68f1b1a7-855f-474d-825d-1beebf52aa2a  /mnt/HD-LCU3-1  ext4  defaults,nofail  0  0  …追記
  UUID=978ba2ff-6c6b-4e3f-b5da-51c1585eb239  /mnt/HD-LCU3-2  ext4  defaults,nofail  0  0  …追記

10-1-3HDDのマウント
  pi@web1:~ $ sudo mount -t ext4 /dev/sda1
  pi@web1:~ $ sudo mount -t ext4 /dev/sda2

10-1-4マウントの確認…OKの場合、システム再起動
  pi@web1:~ $ sudo mount -a
  pi@web1:~ $ sudo umount /dev/sda1
  pi@web1:~ $ sudo umount /dev/sda2
  pi@web1:~ $ sudo reboot

10-1-5システム再起動後の自動マウント確認
  pi@web1:~ $ df -h
  ファイルシス   サイズ  使用  残り 使用% マウント位置
  /dev/root         15G  4.6G  9.0G   34% /
  devtmpfs         459M     0  459M    0% /dev
  tmpfs            464M     0  464M    0% /dev/shm
  tmpfs            464M  6.4M  457M    2% /run
  tmpfs            5.0M  4.0K  5.0M    1% /run/lock
  tmpfs            464M     0  464M    0% /sys/fs/cgroup
  /dev/mmcblk0p1    42M   23M   19M   55% /boot
  /dev/sda2        916G   77M  870G    1% /mnt/HD-LCU3-2
  /dev/sda1        1.4T   77M  1.3T    1% /mnt/HD-LCU3-1
  tmpfs             93M     0   93M    0% /run/user/1000

10-1-6Sambaインストール
  pi@web1:~ $ sudo apt-get install samba

10-1-7Sambaの設定…変更前の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 = /mnt/HD-LCU3-1
       public = yes
       read only = no
       browsable = yes
       force user = takasan

10-1-8Sambaの起動
  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.

10-1-9Windows10のExplolorからアクセステスト
 ネットワークで\\192.168.0.80にアクセス
 テキストファイルの双方向コピーに成功(Winndows⇔NAS)