QNAP TS-228A (OpenVPN設定)
外出先から QNAP に VPN 接続したい場合、PPTP・OpenVPN・L2TP/IPSec を使用することができます。今回は OpenVPN で接続する方法についてまとめてみました
設定環境は以下の構成を例に記述しています。
QVPN Service のインストール
App Center を開き QVPN Service をインストールします
QVPN Service で OpenVPN の設定
- 「OpenVPN サーバを有効にする」にチェックを入れます
- 「VPN クライアント IP プール」に トンネルで使用する IP アドレスを入力します (今回の環境の場合は 10.8.0.2 - 10.8.0.254)
- 「サーバーポート」に OpenVPN で使用するポートを設定します(通常は1194ですが、変更するとより安全です)
- 「暗号化」は「高」を設定
- 「ネットワークインターフェース」は「自動検出」
- 「 DNS サーバ」は「NASデフォルト」を選択
- 「この接続をリモートデバイスの規定のゲートウェイとして使用します」にチェックを入れるとクライアントから接続の際、全ての通信が OpenVPN 側に流れます。今回、必要な通信のみ VPN 経由としたいので、チェックを外します
- 「圧縮 VPN リンクを有効にする」にチェックを入れます
- 「証明書のダウンロード」をクリックして iPhone や外出先で利用するパソコンからアクセス可能な場所に保存します
- 最後に適用をクリックします
権限設定
権限設定をクリックし「VPN ユーザーの追加」で VPN 用のユーザを作成しておくとより安全です。その際、admin の VPN も外しておくのがよいかと思います。
クライアント側に設定ファイルの準備
以下を参考にしながら、iPhone 側の設定を行います
iPhoneやiPad (iOS) でOpenVPNを使ってみよう! | OpenVPN.JP
内部ネットワークへルーティング
構成例の 192.168.0.0/24 のネットワークに接続させるために以下の設定を変更します。(公開されている内容ではないため動作の保障はできませんのでご注意ください)
# vi /etc/init.d/vpn_openvpn.sh server ${VPN_IP_POOL} 255.255.255.0 push "route 192.168.0.0 255.255.255.0" <- ここを追加 ${VPN_MANUAL_DNS}
- ファイルを保存後、サービスを再起動します
/etc/init.d/vpn_openvpn.sh restart
QNAP TS-228A (初期設定編)
前回、開梱と設置についてまとめましたが、今回は初期設定編となります。初回の接続方法や RAID のセットアップなどを記載していきます。
QNAP TS-228A (開梱から設置)
Qfinder のインストール
LAN ケーブルをルータに接続して DHCP で IP アドレスが取得出来ている場合、ルータのログなどからIP アドレスを確認する方法もありますが、面倒な場合は Qfinder というツールをインストールすると QNAP を見つけてくれます。
DHCP サーバが動いていない環境の場合は、169.254.100.100 に設定されるようですので、直接接続する作業端末側の IP を同じネットワークに設定してブラウザでアクセスすれば設定を変更することができます。
DHCP サーバーがない場合はどのように Turbo NAS にアクセスすればよいですか? - QNAP
スマートインストールガイドを「いいえ」
設定する QNAP をクリックして「ログイン」をクリックします
ファームウェアのアップデートを実行します
ファームウェアのアップデートが実行された場合は最後に再起動されます。「このページは閉じないでください」と表示されるのでそのまま待ちます
スマートインストールガイドをクリックします
NAS の名前、パスワードを入力して「次へ」
タイムゾーンと NTP サーバを選択し「次へ」
スタティック IP アドレスを使用する場合はチェックを入れて設定後「次へ」
ファイル転送サービスの簡易選択を必要に応じて行い「次へ」
ディスクのボリュームタイプを選択します
ボリュームタイプ
・静的ボリューム :一番パフォーマンスが出る(スナップショット機能は使えなくなる)
・シックボリューム:ボリュームサイズを後から変更できるなどの柔軟性を持つ。ボリュームも事前に割り当てられているので性能もそこそこ、スナップショットも取得できる
・シンボリューム:ボリュームの領域を割り当てずに使用するため利用効率が高まるボリューム。ただし事前割当をしていないため性能に影響する設定を確認して「適用」
確認をクリック
設定が終わるまで待ちます
設定が終われば初期設定は完了です
QNAP TS-228A (開梱から設置)
自宅の NAS を買い換えようと調べると、QNAP に新しいモデルが出ていたので、買ってみました。
TS-228A とディスクはケチって、SEAGATE の IronWolf NAS 4TB x2本を購入しました。
保証書関連
今回、本体もディスクも Amazon で購入したので、保証書関連の整理をしました。
ディスク
SEAGATE IronWolf NAS (3年保証) 4TB x2
以下のサイトで保証期限を確認できます。確認に必要な情報はシリアルナンバー(SN:)とパート番号(PN:)でどちらもディスクに直接書いてあります。
SEAGATE 保証および交換QNAP TS-228A 箱にテックウインドの保証書がついています。保証期間は2年間でシリアルナンバーも記載されています。
修理・交換 ご相談お問い合わせフォーム|テックウインド株式会社
開梱
TS-228A の箱をあけると、本体のほかに RJ-45 ケーブル(1.5m位)・電源ケーブル・AC アダプター・ハードディスクインストールキット・インストールガイドが入っていました。
ディスクの搭載
詳細は添付のマニュアルに書いていますが、簡単に記載すると本体の底に手で回せるネジがついていますので、それを外します。
ネジを外して本体をスライドするとディスクが格納できるスペースが現れますので、そこにディスクを搭載します。ディスクを搭載後、付属のディスクインストールキットをサイドにとりつけます。(取り付けイメージは以下となります)
最後に、本体を取り付けて、ネジを締めて完成です。
ケーブルの接続と設置
電源ケーブルや LAN ケーブルを接続し設置後に電源ボタンを押して電源をいれます。
Raspberry Pi インストール後の作業を自動化する(Ansible 準備編)
Raspberry Pi を色々触っていくうちに設定を変更した設定ファイルが分からなくなったり、管理できなくなっていることありませんか?
もしくは、再インストールの際に過去のメモを参照したり Web で検索しながらインストール後のセットアップすることに辟易としていませんか?
インストール関連やファイルの管理は Ansible で管理して Git にアップしておけばファイル管理できて楽ちんかも!ということでスタートです。
本ページで使用している機器の情報は 環境情報 を参考にしてください。
ssh 公開鍵認証
Ansible でパスワードを省略させるため ssh 公開鍵認証を使います。
公開鍵認証の設定がされていない場合は以下を参考に設定をしてください。
Homebrew のインストール確認
Mac で Ansible をインストールするために Homebrew を使用してサクッとインストールしますので、インストールされていない場合には以下を参考にインストールしておきます。
$ brew -v Homebrew >1.2.0 (shallow or no git repository) Homebrew/homebrew-core (no git repository)
Ansible のインストール実行
以下のコマンドでインストールします。
$ brew install ansible
2018/3月時点で実行すると以下のバージョンがインストールされました。
$ ansible --version ansible 2.4.3.0
Ansible を使用した疎通確認
Ansible hosts ファイルの作成
Raspberry Pi にAnsible を使用して疎通確認を実行します。
~/.ssh/config
や /etc/ssh/ssh_config
を使用して ssh の接続先 HOST を別途定義している場合は定義している名前を登録します。
実行例 $ mkdir -p ~/ansible/raspberrypi && cd $_ 記述例 $ vi production-hosts [raspberry] # グループ名を定義 rasp1 # 接続先ホスト名を定義(/etc/ssh/ssh_config や ~/.ssh/configと記述を合わせる)
確認
以下のコマンドで ping による疎通確認を行います。
$ ansible -i production-hosts raspberry -m ping rasp1 | SUCCESS => { "changed": false, "ping": "pong"
以上で Ansible で Raspberry Pi を操作可能な状況になります。 次回以降で Raspberry Pi の設定変更を実施していきます。
ssh パスワードなしで Raspberry Pi にログインする
Raspberry Pi に ssh でログインする際に毎回パスワードを入力するのは面倒なので、ssh 公開鍵認証するようにしたいと思います。
本ページで使用している機器の情報は 環境情報 を参考にしてください。
ssh 公開鍵認証
ssh 鍵の作成
ssh の接続元で以下のコマンドを実行して鍵を作成します。
公開鍵は接続先によって鍵を使い分けることが良しとされているので、コメント
の箇所に接続先のヒントとなるような情報を記載しておくと管理しやすいです。(当然、鍵作成の際にファイル名も変更する必要がありますが)
また、今回は暗号強度とパフォーマンスが良いと言われている暗号化方式 ed25519
を使用しています。
$ ssh-keygen -t ed25519 -C "コメント" Generating public/private ed25519 key pair. Enter file in which to save the key (/Users/user/.ssh/raspberrypi/id_ed25519): [鍵の格納場所やファイル名] Enter passphrase (empty for no passphrase): [パスフレーズ] Enter same passphrase again: [パスフレーズ] Your identification has been saved in /Users/user/.ssh/raspberrypi/id_ed25519. Your public key has been saved in /Users/user/.ssh/raspberrypi/id_ed25519.pub. The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx コメント The key's randomart image is: +--[ED25519 256]--+ | ........... | | ........... | | ........... | | ............ | +----[SHA256]-----+
ssh 公開鍵のコピー
作成した ssh 公開鍵を Raspberry Pi にコピーします。
ssh-copy-id が使える場合は楽にコピーすることができます。
$ ssh-copy-id -i [公開鍵のファイルパス] [ユーザ名]@[raspberry pi の IP アドレス or ホスト名] 実行例 $ ssh-copy-id -i ~/.ssh/raspberrypi/id_ed25519.pub pi@raspberrypi.local /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ed25519_raspberrypi.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys pi@raspberrypi.local's password: [パスワード(デフォルトは raspberry)] Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'pi@raspberrypi.local'" and check to make sure that only the key(s) you wanted were added.
ためしに、Raspberry Pi に ssh でログインし確認すると .ssh ディレクトリの作成と authorized_keys の作成、パーミションの変更(600)を自動で実行できていることが確認できます。
$ ls -l ~/.ssh total 4 -rw------- 1 pi pi 149 Mar 10 15:22 authorized_keys
疎通確認
ssh 接続時にパスワード無しでログインできるかを確認します。
$ ssh -i [秘密鍵のファイルパス] [ユーザ名]@[raspberry pi の IP アドレス or ホスト名] 実行例 $ ssh -i ~/.ssh/raspberrypi/id_ed25519 pi@raspberrypi.local
ssh 接続設定
鍵の名前を変更した場合、ssh で -i
オプションを付与するのが面倒なのでコンフィグファイルに記載します。
システム全体の設定ファイル(/etc/ssh/ssh_config
) と ユーザ設定ファイル(~/.ssh/config
) で設定可能で、ユーザ設定が優先されます。
記入例 Host rasp1 HostName raspberrypi.local User pi IdentityFile ~/.ssh/raspberrypi/id_ed25519 Port 22 TCPKeepAlive yes IdentitiesOnly yes
上記のように記載しておくと以下のコマンドで ssh 接続できます。
$ ssh rasp1
Mac OS X で Raspberry Pi Zero WH の初期セットアップ(モニター,キーボード不要)
2018年1月に「Raspberry Pi Zero WH」が発売されたので購入しました。スイッチサイエンスで2/2に注文して4日後には届いたので現状はそれほど入手困難ではないです。
「Raspberry Pi Zero W」との違いはGPIOピンがはんだ付けされているという点なので、セットアップなどは先人方の情報がそのまま役に立ちます。が、自分のメモも兼ねて流れを残しています。
今回の内容は Mac OS X で Raspberry Pi Zero の OS 書き込み時に無線 LAN の設定+ ssh を有効化しモニターやキーボードが無い環境で Raspberry Pi を操作する方法です。
環境情報
セットアップするためにラズパイ本体以外に準備したものは以下です。
項目 | 内容 | 備考 |
---|---|---|
作業端末 | Mac Book Pro (OS:High Sierra 10.13.3) | |
MicroSD | 16GB | 必要に応じてUSB変換アダプター |
無線LAN | ラズパイを接続する無線LAN環境 | |
ラズパイOS | RASPBIAN STRETCH LITE November 2017 | ダウンロードサイト Download Raspbian for Raspberry Pi |
OSのダウンロード
ダウンロードサイトからOSをダウンロードします。今回は CLI で利用するので「RASPBIAN STRETCH LITE」をダウンロードしました(zipは時間がかかるので、 µTorrent などでダウンロードすると速いです)
ダウンロードしたファイルのハッシュ値を確認することで正しくダウンロードが行えたか確認できます(ここでは Downloads ディレクトリにダウンロードしています)
$ cd ~/Downloads $ shasum -a 256 ~/Downloads/2017-11-29-raspbian-stretch-lite.zip e942b70072f2e83c446b9de6f202eb8f9692c06e7d92c343361340cc016e0c9f - $ unzip 2017-11-29-raspbian-stretch-lite.zip Archive: 2017-11-29-raspbian-stretch-lite.zip inflating: 2017-11-29-raspbian-stretch-lite.img
MicroSD へ OS イメージの書き込み
MicroSD の接続
MicroSD を USB 変換アダプターに接続し、それを Mac Book へ接続します
認識確認
ターミナルを起動して MicroSD カードが認識しているか確認します(ここでは、 /dev/disk2 が SD カードです)
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *121.3 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk1 121.1 GB disk0s2 /dev/disk1 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +121.1 GB disk1 Physical Store disk0s2 1: APFS Volume Macintosh HD 80.4 GB disk1s1 2: APFS Volume Preboot 25.0 MB disk1s2 3: APFS Volume Recovery 509.8 MB disk1s3 4: APFS Volume VM 2.1 GB disk1s4 /dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.5 GB disk2 1: Windows_FAT_32 NO NAME 15.5 GB disk2s1
フォーマット
MicroSD を MS-DOS(FAT32) でフォーマットします。
以降の作業は誤ると OS 領域が破損しますので対象ディスクを誤らないように注意して実行します。
$ diskutil eraseDisk MS-DOS RASPBERRYPI /dev/disk2 Started erase on disk2 Unmounting disk Creating the partition map Waiting for partitions to activate Formatting disk2s2 as MS-DOS (FAT) with name RASPBERRYPI 512 bytes per physical sector /dev/rdisk2s2: 29806112 sectors in 1862882 FAT32 clusters (8192 bytes/cluster) bps=512 spc=16 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=29835264 bspf=14554 rdcl=2 infs=1 bkbs=6 Mounting disk Finished erase on disk2
MicroSD のアンマウント
OSイメージ書き込み前に MicroSD をアンマウントします。(disk2 のマウントされている領域をアンマウントします。ここでは /dev/disk2s2 がマウントされているのでアンマウントします)
$ df -h |grep /dev/disk2 /dev/disk2s2 14Gi 1.1Mi 14Gi 1% 0 0 100% /Volumes/RASPBERRYPI $ diskutil umount /dev/disk2s2 Volume RASPBERRYPI on disk2s2 unmounted $ df -h |grep /dev/disk2 -> 表示されないことを確認する
OSイメージの書き込み
フォーマットしたディスクにOSイメージを書き込みします。
$ sudo dd if=2017-11-29-raspbian-stretch-lite.img of=/dev/disk2 bs=1m Password: 1772+0 records in 1772+0 records out 1858076672 bytes transferred in 216.856192 secs (8568244 bytes/sec) 216.89 real 0.00 user 14.00 sys
ssh ファイルの作成
raspbian 起動時に ssh サービスが起動するようにファイルを作成します。
$ cd /Volumes/boot $ touch ssh
無線 LAN 設定ファイル作成
raspbian 起動時に無線 LAN が起動するように設定ファイルを作成します。psk をハッシュ値で記載する場合は MacOS の場合以下のようなサイトでハッシュ値を出すのがお手軽です。
Wireshark · WPA PSK Generator
$ vi wpa_supplicant.conf country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="SSIDを入力" psk=ハッシュ値(平文の場合は「"(ダブルクォート)」で囲む) }
OS起動
MicroSD カードをアンマウントしてRaspberry Pi 本体にカードを挿入後、電源ケーブルを接続しブートさせます
$ cd / $ diskutil umount /dev/disk2s1
疎通確認 & ssh 接続
ping で名前解決が行えているか確認し疎通が行えていることを確認後、ssh で接続する
$ ping raspberrypi.local $ ssh pi@raspberrypi.local -> pi ユーザの初期パスワードは raspberry でログインできます
以上で初期セットアップが完了です。次回以降で固定IPアドレスの設定を行います。