4.Raspbian-Server製作2
4-1検討経過
下記のように、各種サーバーの動作を確認できたので、1台のシステムでまとめることにした。
①RaspberryPi 2B + USB-HDD(3TB) NASとして使用。HDDは、exFATフォーマット。
②RaspberryPi 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」をインストールしてみた
Ⅴ. 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]
②/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