フォト
2018年11月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
無料ブログはココログ

DiskStation DS216j

2018年8月 7日 (火)

DiskStation DS216jにgcc等のパッケージを導入する

自宅のNAS、DiskStation DS216jにgcc等のパッケージを導入した際のメモです。

Jasminさんの「雑記帳 - JasminInfo - Synology DS216j Entware-ng 導入」を参考に
させて頂きました。有益な情報の公開、ありがとうございます。

具体的に何をしたのかというと、
DiskStation DS216jEntware-ngというパッケージ管理ツールをインストールし、
任意のソフトウェアコンポーネントをインストール出来るようにしました。
これにより、gcc等が利用できる開発環境をDiskStation DS216jに構築することが出来ました。

Entware-ngに関する情報

  ・公式サイト Entware/Entware-ng   https://github.com/Entware/Entware-ng
    - ドキュメント https://github.com/Entware/Entware-ng/wiki
       - Install on Synology NAS
          https://github.com/Entware/Entware-ng/wiki/Install-on-Synology-NAS
       - Using gcc (native compilation)
          https://github.com/Entware/Entware-ng/wiki/Using-gcc-(native-compilation) 

  ・パッケージの内容
    http://pkg.entware.net/binaries/armv7/Packages.html

   ※ コマンド  $sudo opkg list でも確認出来ます。


  ・関連情報
    - Synology Forum - Optware replacement - 1700+ packages (arm & x86)
       https://forum.synology.com/enu/viewtopic.php?f=40&t=95346


Entware-ng導入後、さっそくgccをインストールしてみます。
Entware-ngではopkgコマンドを利用してパッケージの管理を行います。
  $sudo -i
  #opkg update
  #opkg install gcc

gccをインストール後、確認のためFDcloneのソースをコンパイルしてみました。

  参考にした情報
   ・CentOS7 で FDclone https://qiita.com/conan_hdk/items/b3349bd150d6a86f42ab

   $mkdir -p ~/src/FDclone
   $cd ~/src/FDclone/
   $wget http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.01g.tar.gz
   $tar -xzf FD-3.01g.tar.gz
   $cd ~/src/FDclone/

   $vi Makefile
   CCの指定をccからgccに変更します。

   インストール
   $sudo make install

   動作確認
   $fd

     FDclone


Entware-ng導入の問題点


  DiskStation DS216jのセキュリティ アドバイザーがこの導入に関して警告を通知します。

  02

  システムの項目に2件ほど警告として通知されます。
  ※高リスクは別のネットワークのSSHのポート開放が原因です。無視して下さい。

  03

  1つは、/etc/rc.localを追加したための警告です。

  04

  もう一つは、Entware-ng を/opt に インストールしたための警告です。
  05

  まあ、この警告は内容を理解した上で無視することにします。

導入後、opkgのupgradeコマンドにて gccを5.3.0 から6.3.0に更新すると、
    $ gcc

だでけを実行すると次の警告が表示されるようになってしまいました。

/volume1/@entware-ng/opt/bin/../lib/gcc/arm-openwrt-linux-gnueabi/6.3.0/crt1.o: In function `_start':
(.text+0x34): undefined reference to `main'
collect2: error: ld returned 1 exit status

取りあえず、ソースのコンパイルは問題なく行えるのですが、原因不明で調査中です。


   

2016年8月 4日 (木)

Synology のNAS(DS216j)でインターネットラジオを楽しむ

最近、購入したSynology社製のNAS、DS216jを色々といじっているのですが、
NAS以意外の機能がかなり使えます。

オーディオソフト 「Audio Sation」はなかなかの優れものです。
NAS(DS216j)にUSBスピーカーを繋げて、音を出すことが出来ます。

Dscn5500

写真はELECOMのUSBスピーカー MS-P05UBKをDS216j(後ろの白いやつ)に接続して
インターネットラジオ「SmoothJazz」を流しています。

ちなみにMS-P05UBKは、安い割には良い音が出ます。ただしNAS接続においては
ボタン ミュート・音量調整は動作しませんでした。NASから制御出来るので問題はないですが..

オーディオソフト 「Audio Sation」ですが、NAS上の音楽ファイルの他に
インターネットラジオにも対応しています。
(※radiko、らじる らじるには対応していません)

インターネットラジオは、SHOUTcastというストリーミング配信のラジオです。
下記のサイトからも直接聞くことが出来ます。
  SHOUTcast https://www.shoutcast.com

09

再生先もブラウザを表示しているパソコンのスピーカーの他、NAS接続のUSBスピーカー、
LAN上に接続しているDLNA対応のAV機器の指定が可能です。
USB-Bluetoothドングルを使えば、Bluetoothスピーカーも利用出来るようです。

04

イコライザもあります。

05

更にスマートフォン向けのアプリ「DS Audio」が無料で利用出来ます。
スマートフォンからも再生したい音楽やインターネット局の選択が出来ます。

Dscn5501

インターネットラジオ、特にJazz系の曲は部屋のBGMに重宝します。

2016年8月 3日 (水)

Synology のNAS(DS216j)上にgitサーバーを構築する

Synology製 のNAS、DiskStation DS216j上にgitサーバーを構築する手順メモです。


下記の情報を参考にして構築しました。

   参考ししたサイト
      Instructions for setting up git server on Synology Diskstation


構築の方針

・gitリポジトリ領域(保存する領域)は /volume1/git とし、シンボリックリンクにて
  /git  にてアクセスできるようにする。
  書込み権限はroot、gitusersグループに付与する。

・gitサーバーの利用権限はgitusersグループに所属するユーザーのみに付与する。
  これにより、権限を持つ複数のユーザーでの利用可能

・プロトコルはssh利用限定として、公開鍵暗号方式にて認証出来るようにする。
  (これはgitクライアント SourceTree の利用を考慮)

構築するもの
  NAS側
   インストールおよび有効化するサービス
     ・gitサーバー
     ・ターミナルサービス (ssh)

   アカウント関連
     ・gitusers グループの作成

   リポジトリ領域(保存領域)作成
     ・/vokume1/git (所有者 admin グループ gitusers)

   利用者の設定
     ・利用者をgitusers、administratorsグループに登録
     ・利用者のホームディレクトリ 下 ~/.ssh の作成と公開鍵の配置

   gitクライアント側
     ・SourceTree(var sion 1.9.5.0)のインストール
     ・ssh接続用 公開鍵と秘密鍵の作成
     ・SourceTreeにリモートレポジトリの登録

構築手順
1.gitサーバーのインストール
   DiskStation Manager(以降、DSMと略)に管理者権限のあるユーザーでログインし、
       「パッケージセンター」にて「Git Server」をインストールします。
   インストールすると、メインメニューに「Git Server」アイコンが登録され、稼働します。

   05

2.ターミナルサービスの有効化
   DSMの「コントロール」を開き、「端末とSNMP」の「ターミナル」の「SSHサービスを有効化する」
   にチェック(☑)を入れて「適用」を押します。

   07

3.gitusersグループの作成
   「コントロール」の「グループ」にてgitusersを作成します。

4. gitリポジトリ 保存領域作成
   ターミナルソフト等でsshにてログインします。
   sudo sh
   midir /volume1/git
   ln -s /volume1/git /git
   cd /git

   git --bare init <repo-name>.git
   chown -R admin:gitusers <repo-name>.git
   chmod -R g+w <repo-name>.git
   cd <repo-name>.git
   git update-server-info

   13

   ここで、<repo-name>はarduinoのスケッチを管理するためにarduino としました。
   必要に応じてgit下に領域を作成していきます。

   git --bare init <repo-name>.git を
   git init --bare --shared <repo-name>.gitとすれば
   git update-server-info の実行は不要のようです。

5.利用者の設定
   ・「コントロール」の「ユーザー」にて利用するユーザーを
     gitusers、administratorsグループに登録します。
   ・ gitサーバーの設定画面にて利用するユーザーの利用権限を付与します。

6.gitクライアントSourceTreeのインストール
  SourceTreeではなく、別のgitクライアントでもよいです。
  インストール作業については省略します。
  入手先 : https://www.sourcetreeapp.com

7.公開鍵と秘密鍵の作成
   SourceTreeでは、SSHクライアントの設定に「OpenSSH」と「PuTTY/Plink」の指定
   が出来ます。「PuTTY/Plink」は秘密鍵のファイル形式が特殊なようなので、
   他のアプリ(TeraTermやgit shell)でも利用できる「OpenSSH」に設定しました。

   「OpenSSH」と「PuTTY/Plink」では鍵の作成方法が異なります。
   「OpenSSH」では、TeraTermやssh-keyhenコマンドで作成した鍵が利用出来ます。

   ここでは、SourceTreeの「ターミナル」にて作成します。
   ターミナルを起動し、下記のコマンドを実行します。
    $ ssh-keygen -t rsa

   あとは、指示に従って入力して公開鍵と秘密鍵を作成します。
   作成先のパスはデフォルトのままとします。
   ターミナル上ででgitコマンドを使って鍵認証を行う場合は、ホームディレクトリの
   .sshに鍵がある必要があります。
  (下図では既存ファイルへの上書き防止のため別の場所に作成しています)

   passphraseは秘密鍵につけるパスワードです。各自の判断で任意に設定します。
   デフォルトのファイル名は秘密鍵がid_rsa、公開鍵がid_rsa.pubとなります。

   08

8.公開鍵をNASに登録する
  ここでは、NAS上のユーザー tamakichi のアカウントを使ってgitサーバーを利用する
  ものとします。公開鍵の登録は利用するアカウントごとに行います。

  7.のターミナル上で作成した公開鍵をNAS上のユーザー tamakichiの
  ホームディレクトリに転送します。

   $ scp id_rsa.pub tamakichi@192.168.0.25:
    09

  同ターミナル上でNASにログインします。
   $ ssh tamakichi@192.168.0.25
   10

  公開鍵を配置します。ディレクトリ(.sshが既にある場合はディレクトリ作成不要)
     $ mkdir .ssh
     $ chmod 700 .ssh
     $ cat id_sra.pub >> .ssh/authorized_keys
     $ chmod 600  .ssh/authorized_keys
    $ chmod 755 ~          <= この設定をしかなったため、私は数日ハマりました

   11

   NASからログアウトして今度は秘密鍵を使ってログイン出来ることを確認します。 
     $ exit
     $ssh -i id_rsa.ppk tamakichi@192.168.0.25

     -iにて秘密鍵のファイルパスを指定します。
    ホームディレクトリの~/.sshに鍵を作成した場合(デフォルトのまま作成)は省略可能です。
     $ssh tamakichi@192.168.0.25

   passphraseを聞いてくるので、鍵作成時に設定したpassphrase を入力します。

  12

  ここで、passphraseを入力した後にさらにパスワード入力を要求された場合は、
  公開鍵を使った認証に失敗していることを意味します。  設定を見直して下さい。

9.ターミナル上でのpushを行う
  あらかじめローカル環境にてローカルのリポジトリが作成されていているものとします。
  私の環境ではArduinoのスケッチを保存しているE:\arduino\srcにて
    git cd /e/arduino/src
    git init
    git add .
    git commit -m '最初のバックアップ'
なんかをやった状態です。

リモートへのpush
  $ git push ssh://tamakichi@192.168.0.25/git/arduino.git

  15

  passphrese(パスフレーズ)を聞いてくるので入力します。
  問題なくpush(プッシュ)出来ました。

10. SourceTreeからpushを行う
  ・事前にローカルの作業領域を追加してあるものとします。
    (ここでは、説明を省略します)

  ・リモートのリポジトリを追加します。
    追加したいのは "ssh://tamakichi@192.168.0.25/git/arduino.git"  です。

   メニュー [リポジトリ] - [リモートを追加]にて「リポジトリ設定」画面を開きます。
   [追加]ボタンにて 追加します。

  16

  ・秘密鍵の登録
   メニュー [ツール] - [オプション] から「オプション」画面を開きます。
   [全般]タブの「SSHクライアント設定」の「SSHキー」に作成した秘密鍵を指定します。
   「SSHクライアント」の設定を「OpenSSH」にします。

   18

   次にメニュー [ツール] - [SSHキーを追加]にて作成した秘密鍵(id_rsa)を選択します。

   

19

  選択するとpassphrase(パスフレーズ)を聞かれるので入力します。

   20

   これで設定完了です。

  ・push
   画面上部のプッシュボタンを押します。「プッシュ」画面が表示されるので
   プッシュ先を確認の上、   ローカルブランチ、リモートブランチの設定します。

   21

   設定後、[プッシュ]ボタンを押します。

   22

   NASへのプッシュが実際されます。

11.NAS上のgitレポジトリの確認
NAS上にログインして、ログを見てみます。

23

ちゃんとPushされているようです。

なんとなく、ちゃんと動作している感じですが、
gitに関しては、まだまだ利用し始めたばかりなので問題があるまもしれませんね。
ですので、記事の内容を実施して被害を講じても責任は持てません。


 

Synology のNAS(DS216j)に公開鍵暗号方式を使ってsshログイン

ちょっとハマッたのでメモ "φ(・ェ・o)~メモメモ

Synology製 のNAS、DiskStation DS216j上にgitサーバーを構築して、
作成したプログラムや文書ファイルをバージョン管理しつつ、一元管理しようと思っています。
利用するgitクライアントとしてはWindows上にて、SourceTreeを使っていこうと思っています。

このSourceTreeにてgitサーバーにプログラムソース等をpush(アップロード)する場合、
プロトコルでsshを使うのですが、SourceTreeでは公開鍵暗号方式にて接続の認証を
行う必要があります(通常のプレインパスワードでもやればできるのかも?)

  参考: SSHで公開鍵認証を使った認証手順

sshにて公開鍵を使って、認証を行うには公開鍵と秘密鍵をセットで作成し、
接続先(サーバー)に片方の公開鍵を登録しておく必要があります。
sshにて接続時にその秘密鍵を指定することで接続先との認証を行います。

この設定において何故か上手く認証出来ず、ここ数日ハマっていました。
何回やっても、パスワード認証方式に切り替わってしまいます。
(公開鍵認証が上手く行かないと、プレインパスワード認証に切り替わります)

他のLinuxマシンで同じ手順で登録したところ、問題なく行えたことから、
NASのsshd環境に問題があると思い、色々調べ原因を特定出来ました。

原因は、DS216jの個人ホームディレクトリのデフォルトのアクセス権限にありました。
(本質的にはsshの仕様なのですが)

  参考にした情報
     Synologo Community Forrum - SSH RSA-key login

ユーザー tamakichiのホームディレクトリのアクセス権限は次のようになっていました。

他ユーザーでも書込み出来る設定ですね。デフォルトがこれなのはマズイですね。
   drwxrwxrwx /var/services/homes/tamakichi

これを本人以外は書き込み出来ないようにします。
  sudo chmod 755 /var/services/homes/tamakichi

変更後のアクセス権限
   drwxr-xr-x /var/services/homes/tamakichi

この設定変更で、sshにて公開暗号方式による認証が出来るようになりました。
(あっけない対処による解決。こんなんで数日ハマっていたのか.. 泣きたい)

sshは設定ファイル等のアクセス権限の設定に厳しいんですよね。

ホームディレクトリ自体もアクセス権限をしっかりと設定する必要があるみたいです。

sshの公開鍵はホームディレクトリ下の.ssh/ に登録するのですが第三者に内容を
読まれないよう、アクセス権限をしっかりと設定する必要があります。
このあたりの設定方法は手順書に書かれているのですが、ホームディレクトリ自体の
アクセス権限の設定に関しては記載は無く盲点でした。

なんとか、SourceTree にてPush出来ました。

04

この当たりの構築作業についても、忘れないようまとめます。

2016年7月28日 (木)

NAS 「DiskStation DS216j」を購入しました

Synology社製のNAS、DiskStation DS216j を購入しました。
早速設置しました。週末にでも既存のReadyNAS Duo v2からデータを以降する予定です。

写真はReadyNAS Duo v2(左)、DiskStation DS216j(右)です。

Dscn5489

ReadyNAS Duo v2も良い製品ですが、最近のクラウド環境には全く対応出来ず
インターネット上に分散所有しているデータのバックアップ等がちょっと面倒です。

そこでDiskStation DS216jを導入したわけですが、この製品、NASというよりは
サーバー機です。とにかく高機能です。色々なパッケージが用意されています。

しかも、ほとんどの作業をブラウザ上でWindowsみたいなデスクトップライクの環境で
操作出来ます。インターネット越しで自宅外からも利用出来ます。
自宅にパーソナルクラウド環境を構築出来ます。

こんなすごいNASがあるんですね。GoogleDriveなんかみたいに、ブラウザ上の
Fileマネージャー(File Station)にドラック&ドロップでNAS上のファイルをアップロード
なんかも出来ます。

01

余りにも機能が多くて、使い込むにはちょっと時間がかかりそうです。

NAS単体でウィルスチェック機能があり、セキュリティ対策機能もかなり期待できそうです。

02_2


メーカーがライブデモを公開しています。
Synology DSM 6.0 ライブデモ

デフォルトでは英語環境ですが、起動後画面右上の人型アイコンをクリックして
personalを選択して[accont]タブの[Display language]を設定を[日本語]に変更することで
日本語表示に変更できます。

03