- Ubuntuのインストール
- Raspberry Piの準備
- キーボード・ユーザー設定
- プライベートIPアドレス固定化
- SSH公開鍵認証
- サーバー側ファイアウォール
- swap領域の作成
- タイムゾーン・ホスト名設定など
第3回 現在のページ
- SSDマウント
- ドメイン取得・DDNS設定
- Nextcloudインストール
- サーバー・ルーターのポート開放
- SSL証明書取得
- Nextcloudへの外付けSSD認識
- 2要素認証
- 通知メール設定
- 主な参考元
#1. SSDのマウント
今回は2TB以下のメディアをマウントするのでfdiskで行っていますが、それ以上のサイズのメディアをマウントする際はpartedを使用してください。
USB3.0ポートにSSDを差し込む。
$ sudo fdisk -l
でデバイスが認識されていることを確認。
Disk
項目にデバイス名(/dev/sda
など)が表示されるので控えておきます(mmc
はSDカードなので間違えないように)。
$ sudo fdisk [ デバイス名 ]
で対話形式のパーティション操作に移ります。
以後の操作で内部のデータは削除されるので、もし必要なデータが内部に残ったままなら必ず先に別のストレージ機器に移しておいて下さい
d
(パーティション削除) → n
(パーティション新規作成) → w
(設定の保存)で既存のパーティションを削除して新規のパーティションを作成します。
$ sudo fdisk -l
新規パーティションのデバイス名を確認。
$ sudo mkfs -t ext4 [ パーティションのデバイス名 ]
ext4形式でファイルシステムを作成。
以下のコマンドでパーティションのマウント先ディレクトリを作成した後、マウント。
$ sudo mkdir /media/ssd
$ sudo mount [ パーティションのデバイス名 ] /media/ssd
更に、fstabに記述を加えることで次回以降も自動でマウントされるように設定。
まずはデバイスのUUIDを確認。
$ sudo blkid [デバイス名]
/etc/fstab
をテキストエディタで開き、
以下の様に記述(各項目間はスペースやtabなどで区切る)。
UUID=[デバイスのUUID] /media/ssd ext4 defaults,noatime 0 0
noatimeと記述することでアクセス時間の書き込みを無効化しています。
再起動後も$ cd /media/ssd
でマウント先ディレクトリに移動出来れば成功です。
#2. ドメイン取得・DDNS設定
サーバーに設定するドメインおよびDDNSの設定を行います。
DDNSを利用することで、グローバルIPアドレスを固定せずともDNSによる名前解決で外部からのアクセスが可能。
** [PC側の操作]**
今回はMyDNS(https://www.mydns.jp/?MENU=030) を利用してドメイン名の取得とDDNS設定を行います。
MyDNS のJOIN US からアカウントを作成し、メールで届いたMasterID/ Passwordを使用してログイン。
DOMAIN INFO をクリックし、
Domain Name
に任意のドメイン名を入力。MX
は入力なし。
Hostname*, Type*, Content, Delegateid
の項目は、1行目を左から*
, A
、2行目を左から*
, AAAA
と入力でひとまずは大丈夫です。
** [サーバー側の操作]**
DDNSを有効化させるためには定期的に現在のIPアドレスをDDNSサーバー側に送る必要があります。
ひとまず、以下のコマンドでMyDNSに通知が届くか確認。
$ curl -u [ MyDNSのMasterID:password ] https://www.mydns.jp/login.html
PC側のMyDNSにログインし、LOG INFOで確認できれば次へ。
以下のコマンドでcrontabをエディタで開く。
$ crontab -e
使用するエディタを聞かれるので、いずれかを選択(私はvim basic
を使用しました)。
以下の様に入力して、10分おきにMyDNSへipアドレスの通知を行うよう設定。
#HTTPs request for My DNS
*/10 * * * * curl -u [ MyDNSのMasterID:password ] https://www.mydns.jp/login.html
これで定期的に現在のグローバルIPアドレスが通知され、ドメイン名との紐づけがされるようになります。
#3. Nextcloudのインストール
まずはnextcloudのスナップパッケージをダウンロード。
$ sudo snap install nextcloud
管理者用アカウントを作成してnextcloudをインストール。
$ sudo nextcloud.manual-install [ 管理ユーザー名 ] [ パスワード ]
Nextcloud was successfully installed
と表示されれば完了です。
続いて取得したドメインを登録
$ sudo nextcloud.occ config:system:set trusted_domains 1 --value=[ ドメイン名 ]
以下のコマンドで確認すると、localhostに加えてドメイン名が追加されているのが分かります。
$ sudo nextcloud.occ config:system:get trusted_domains
#4. ポート開放・SSL証明書取得
###ⅰ. サーバー・ルーターのポート開放
UFWのTCP80,443番ポートの開放
sudo ufw allow 80,443/tcp
ルータにアクセスしてポート転送(フォワード)設定を開き、TCPのWAN側・LAN側のポート80
番、ポート443
番をサーバーのプライベートIPアドレス宛に転送するように設定します。
###ⅱ. SSL証明書取得
以下のコマンドでSSLサーバー証明書を取得
sudo nextcloud.enable-https lets-encrypt
証明書取得のための必要条件(ポート開放など)について聞かれるのでy
で進みます。
復元用メールアドレスやドメイン名を聞かれるのでそちらも入力し、以下が表示されれば成功です。
Attempting to obtain certificates... done
Restarting apache... done