プログラミング Tips

ITエンジニアの雑記ブログ。
IT関連ニュースの考察や、プログラミングに関するTipsの備忘録として…
育児や日常の雑記帳としても、記事を投稿していきます。

プログラミングと日常生活に関する情報を発信しています。

カテゴリ: 開発

Conoha VPS に Debian OS の初期設定してみた!【公開鍵認証でSSH接続】

WEBアプリケーションのデプロイの前に、VPS の設定を行うが、忘れてしまいそうなので、備忘録も兼ねて残しておく。この記事の目標は「SSH接続を公開鍵認証する」こととする。

はじめに

VPS のサーバーにSSH接続する方法として、「パスワード認証」「公開鍵認証」がある。パスワード認証は、簡単にアクセスできるが、簡単がゆえにセキュリティ強度が低くなるため、第三者にアクセスされる(俗に言う「乗っ取り」)可能性がある。よって、公開鍵認証方式を用いる設定をすることが一般的。

更新 (2018.04.13)

ConoHa VPSに"Debian9"ベースのサーバーを構築して、WEBアプリをリリースする記事を新たに追加した。
そちらでSSH接続の設定に関して、新たにまとめた。

参照先:こちら



環境

  • サーバー側: Debian 9.0 (64bit)
  • クライアント側:Mac OSX High Sierra 10.13.2

Step1. クライアント設定

ここの作業は、クライアント側での作業になる。

鍵ペア(秘密鍵・公開鍵)の生成

公開鍵認証に必要な秘密鍵 (id_rsa) と公開鍵 (id_rsa.pub) のペアを作成する。
鍵ペアはクライアント側で生成し、サーバーへ公開鍵を送信する方法が一般的。サーバー側もしくは別端末で生成することも可能だが、秘密鍵が漏洩する注意をする必要がおきる。
不要な心配をしないために、クライアント内で生成して動かさない!!がいい。

ターミナルを立ち上げて、以下のコマンドを実行する。

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.

ファイル名を指定する場合、以下に入力して"Enter"する。ちなみに、"path"が指定されていない場合には、カレントディレクトリに指定ファイル名で保存される。尚、未入力の場合は、/Users/{user}/.ssh/フォルダに"id_rsa"ファイルとして保存される。

Enter file in which to save the key (/Users/{user}/.ssh/id_rsa):

続いて、以下が表示される。
これは、秘密鍵アクセスのためのパスワードに関するものである。アクセス時にパスワードを求める場合には、パスワードを2度入力する。

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

尚、今回使用するコマンドのオプションに関する説明を以下に記す。"-f"オプションは、保存場所指定になるので、参考までに載せる。

オプション 概要
-t 作成する鍵種類を指定。rsa指定は、SSHプロトコルバージョン2のRSA鍵が生成される。公開鍵暗号方式は、主にRSAが使用される
-b 作成する鍵サイズを指定。2048bit以上なら問題ない強度。より強度にするため、今回は4096bitを指定
-f 鍵ペアの保存先を指定。未指定の場合、デフォルトパス /Users/{user}/.ssh/id_rsa になる。今回は未指定

この結果、`/Users/{user}/.ssh/ディレクトリ内に、秘密鍵と公開鍵が生成される。

  • 秘密鍵:id_rsa
  • 公開鍵:id_rsa.pub

公開鍵のアップロード

公開鍵 (.pubファイル) をサーバーへアップロードする。
サーバー内に登録したら不要になるため、一時ディレクトリへの保存で問題ない。このディレクトリの中身は、サーバー再起動で全てクリアされる。

$ scp ~/.ssh/id_rsa.pub {user}@{サーバーIPアドレス}:/tmp


Step2. サーバー設定

この作業はサーバー側での作業になる。
Macのターミナル画面から、サーバーに"SSH"接続する。もしくは、ConoHa VPS サイトのWEB画面上のコンソールからサーバーにアクセスする。

公開鍵の登録

クライアントからアップロードした公開鍵を登録する。
具体的には、~/.ssh/authorized_keysファイルに公開鍵の内容を追記することになる。このファイルには、複数の公開鍵を登録することが可能で、この結果、複数アクセスが可能となる。

# `~/.ssh` フォルダが存在しない場合、作成
$ mkdir ~/.ssh

# `~/.ssh/authorized_keys` に公開鍵の内容を追記
$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

# 所有者(今ログインしているユーザー)以外のアクセスを許可しない
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys

# 登録済の公開鍵は削除 (*サーバー再起動でクリアされるが、念のため…)
$ rm /tmp/id_rsa.pub

SSHの設定(パスワード認証の無効化)

SSH の設定ファイルを編集して、下記設定を変更する。この結果、セキュリティ強度が高まる。

項目 変更前 変更後
rootユーザのログイン無効化 PermitRootLogin yes PermitRootLogin no
パスワード認証の無効化 PasswordAutentication yes PermitAuthentication no
パスワードなしの接続無効化 PermitEmptyPasswords yes PermitEmptyPasswords no

変更前(初期状態)は、先頭に"#"が付与されて設定自体が向こうになっている場合がある。この場合は、"#"を外してほしい。

ちなみに…この変更の実施+SSHサービスの再起動の後では、下記方法でのMacのターミナルからSSH接続できなくなる。もし接続できる場合には、設定変更が完了していないことが考えられるので、内容を確認してほしい。スペルミスなども要注意。

SSHサービスの再起動

下記コマンドを実行して、SSHサービス (sshd) を再起動する。この結果、sshの設定変更が反映される。

$ sudo /etc/init.d/ssh restart

今回のサーバーOSは、Debianになるため上記になる。CentOSでは$ sudo systemctl start sshd.service になる。

Step3. SSH接続方法

接続

Macのターミナルアプリから以下を実行して、公開鍵を用いてSSH接続を確立する。

$ ssh -i ~/.ssh/id_rsa {User}@{サーバーIPアドレス}

"-i"オプションで秘密鍵をパスから指定する。これによって、サーバー側に登録した公開鍵とペアになって接続が確立される。もし秘密鍵の参照にパスワードを設定した場合には、下記のようなパスの入力を求められるので、入力して"Enter"を押下する。

Enter passphrase for key '/c/Users/{User}/.ssh/id_rsa':

切断

以下のコマンドを入力して、ssh通信を切断する

$ exit


中古 iPhone の相場を調べてみた!!【2017年12月版】

iPhone X が発売開始されて1ケ月以上が経過した。
iPhone6, 7などから機種変の流れによって、中古車市場の価格にも変化が見られるので、相場の変化をまとめてみる。

過去の記事9月の相場調査10月の相場調査からの変動も含めてまとめて見る。



iPhone7 の相場変動

32Gバイトモデルをベースに過去2回を含めた比較表を以下に記す。
iPhone8発売から比べて、未使用品の相場は 5,000円程度下落している。一方で、多少の傷があるB級品はそれほど価格に変動が見られない。傷の程度によっても価格が左右されるので、現時点と過去時点での統一化は難しいが、お得感を感じたいのであれば未使用品、価格を抑えたいのであればB級品を選ぶことがベタといえる。
未使用品からB級品の間に関しては、予算に応じて選択すればいいと思う。

未使用品 ほぼ新品 良品 多少の傷
12/15時点 61,000 59,800 52,780 49,800
10/ 3時点 63,800 58,800 56,800 55,800
9/11時点 66,700 60,800 58,300 49,900

iPhone6S の相場変動

こちらは16Gモデルをベースに過去2回を含めた比較表を以下に記す。
iPhone8発売から比べて、未使用品の相場は何と 10,000円も下落している!!その他のほぼ新品、良品、B級品も同様に 10,000円程度の値下げが見られることがわかる。9月時点の相場は、未使用品以外は64Gモデルであったため一概に下落幅を表すことは難しいが…未使用品ほどではないにしても、それに近い下落が見られると考察できる。

単純にiPhone8から2モデル前になるので、相場崩れが起きやすいものと考えられる。

未使用品 ほぼ新品 良品 多少の傷
12/15時点 45,800 43,800 33,780 34,000
10/ 3時点 44,500 42,600 38,800 36,800
9/11時点 55,000 54,800* 47,800* 45,800*

*…64Gモデル

相場感のまとめ

今回もiPhone6, 7に焦点を絞って比較を実施したが、前回はiPhone8発売後の比較。
今回はiPhoneXの発売後の比較を実施した。iPhoneXの販売開始からしばらく経過していた現時点で、機種変更によって中古モデルを転売するユーザが増えてきていて、供給が需要を上回っていることが価格下落の一員であると考える。

今後も折に触れて柊子市場の動向調査は続けていく予定。



【STMicro社製開発キット"STM32 LoRa"で LoRaWAN 開発】環境構築編

更新

開発環境の期限切れに対するエラーへの対処方法をまとめてみた



Io機器で重要視されている「省電力」「長距離通信」のいずれも実現するLPWA通信企画の1つ『LoRaWAN』。
今もっとも採用されていて、運用実績のある通信企画の1つでもある。国内の有力インフラベンダdocomo, au, softbankのいずれもが運用を開始している。

一方、開発に関する情報がまだ多くない状態であるため、備忘録も兼ねて、情報の共有を行う。



LoRaWAN開発環境 概要

  • 開発PCの要求スペック

    • Windows 7/8/8.1/10(Linux, Mac不可。但し、仮想環境上のWindowsなら動くかも…)
    • CPU: Pentium互換
    • メモリ: 1Gバイト以上
    • 記憶容量: 2Gバイト以上
    • インターネット環境必須(外部から必須ソフトウェアをダウンロードする為)
  • LoRaWAN機材

LoRaWAN開発環境セットアップ

Step 1. ST-Link Utilityのインストール
Step 2. Keil社MDK-ARMのインストール
Step 3. MDK-ARMデバイスパックのインストール
Step 4. TeraTermのインストール

  1. 下記リンクからページ下部の"Get Software"を選択
    http://www.st.com/en/development-tools/stsw-link004.html
    ST-Link Utilityのインストール_01

  2. "ACCEPT"を選択

  3. 必要事項を記入したら、"Download"を選択
    ST-Link Utilityのインストール_02
    すると、下記メッセージが表示される。
    ST-Link Utilityのインストール_03

  4. 登録したメールアドレスにメールが届く。そこにあるリンクを選択
    ST-Link Utilityのインストール_04

  5. ダウンロードのために、ポップアップが表示されるので、"保存"を選択
    ST-Link Utilityのインストール_05

  6. ダウンロードが終わったら、インストールのために"開く"を選択
    ST-Link Utilityのインストール_06

  7. インストーラーが起動したら、"Next"選択
    ST-Link Utilityのインストール_08

  8. "Yes"選択
    ST-Link Utilityのインストール_09

  9. "Next"選択
    ST-Link Utilityのインストール_10

  10. "Finish"選択
    ST-Link Utilityのインストール_11

  11. USBドライバのインストーラーが起動したら、"次へ"を選択
    ST-Link Utilityのインストール_12

  12. "インストールする"を選択
    ST-Link Utilityのインストール_13

  13. "完了"を選択
    ST-Link Utilityのインストール_14

  14. 「Windowsのスタートメニュー > すべてのプログラム > STMicroelectronics > STM32 ST-LINK Utility > STM32 ST-LINKUtility」を選択し、起動確認できたらインストール完了
    ST-Link Utilityのインストール_15



Step 2. Keil社MDK-ARMのインストール

  1. 下記リンクから"Download MDK Core"を選択
    http://www2.keil.com/stmicroelectronics-stm32/mdk
    Keil社MDK-ARMのインストール_1-1

  2. 必要事項を記入して、"Submit"を選択
    Keil社MDK-ARMのインストール_1-2-0

  3. 登録したメールアドレスにメールが届く。そこにあるリンクを選択
    Keil社MDK-ARMのインストール_1-2-1

  4. 表示されたページの"MDK524A.EXE"を選択
    Keil社MDK-ARMのインストール_1-3

  5. "保存"を選択
    Keil社MDK-ARMのインストール_1-4

  6. "実行"を選択
    Keil社MDK-ARMのインストール_1-5

  7. インストーラーが起動したら、"Next"選択
    Keil社MDK-ARMのインストール_1-6

  8. "Next"を選択
    Keil社MDK-ARMのインストール_1-7

  9. "Next"を選択
    Keil社MDK-ARMのインストール_1-8

  10. 必要情報を記入して、"Next"選択
    Keil社MDK-ARMのインストール_1-9

  11. USBドライバのインストーラーが起動したら、"インストール"を選択
    Keil社MDK-ARMのインストール_1-10

  12. "Finish"を選択
    Keil社MDK-ARMのインストール_1-11

  13. "OK"を選択
    Keil社MDK-ARMのインストール_1-12

  14. インストールした"MDK-ARM"を管理者として実行(右クリックして「管理者として実行」選択)

  15. "File"メニュー > "License Management"を選択

  16. "Get LIC via Internet..."を選択
    Keil社MDK-ARMのインストール_1-13-0

  17. "OK"を選択
    Keil社MDK-ARMのインストール_1-13

  18. 必要事項を記入し、"Submit"を選択
    Keil社MDK-ARMのインストール_1-14
    Keil社MDK-ARMのインストール_1-15
    Keil社MDK-ARMのインストール_1-16

  19. 登録完了画面が表示され、しばらくすると登録したメールアドレスに"License ID Code(LIC)"が届く
    Keil社MDK-ARMのインストール_1-18

  20. 再び、"License Management"を開き、"New License Code(LIC)"欄へ送られてきたコードを入力し、"Add LIC"を選択
    Keil社MDK-ARMのインストール_1-19

  21. 中段の空欄に入力されれば、ライセンス認証完了
    Keil社MDK-ARMのインストール_1-20

Step 3. MDK-ARMデバイスパックのインストール

  1. "MDK-ARM"インストール後、"Package Installer"の実行ポップアップが表示される
    もし表示されない場合、アイコンを選択すると表示される
    Keil社MDK-ARMのインストール_1-12

  2. 右下のバーが100%になるまで待つ
    MDK-ARMデバイスパックのインストール_2-2

  3. 下記3つのデバイスパックをインストール
    • ARM.CMSIS
    • Keil.STM32F0xx_DFP
    • Keil.STM32L0xx_DFP
    1. "ARM.CMSIS"の"Update"もしくは"Install"を選択
      MDK-ARMデバイスパックのインストール_2-3

    2. 左欄[STMicroelectronics]を選択し、"Keil.STM32F0xx_DFP"の"Install"を選択
      MDK-ARMデバイスパックのインストール_2-6

    3. 左欄[STMicroelectronics]を選択し、"Keil.STM32L0xx_DFP"の"Install"を選択
      MDK-ARMデバイスパックのインストール_2-7

  4. 3つ全てに"Up to date"と表示されれば、必要デバイスパッケージのインストール完了

Step4. TeraTermのインストール

  1. 下記リンクから最新版の"Tera Term"ソフトをダウンロード
    https://ja.osdn.net/projects/ttssh2/releases/
    TeraTermのインストール_3-1

  2. "保存"を選択
    TeraTermのインストール_3-2

  3. "実行"を選択
    TeraTermのインストール_3-3

  4. "日本語"を確認し、"OK"を選択
    TeraTermのインストール_3-4

  5. "次へ"を選択
    TeraTermのインストール_3-5

  6. "次へ"を選択
    TeraTermのインストール_3-6

  7. "次へ"を選択
    TeraTermのインストール_3-7

  8. "次へ"を選択
    TeraTermのインストール_3-8

  9. "次へ"を選択
    TeraTermのインストール_3-9

  10. "次へ"を選択
    TeraTermのインストール_3-10

  11. "インストール"を選択
    TeraTermのインストール_3-11

  12. "完了"を選択
    TeraTermのインストール_3-12



Mac OSX High Sierra の重大な脆弱性対策を施したはずなのに…復活したことを調べてみた!!

すでに報告していあるが、3回にわたってMac OSX の重大な脆弱性「ユーザー名"root"&パスワードなしで権限付きでログインできてしまう」についてレポートしてきたが、今回はこの問題が再発した件をまとめる。

11/28に最初にこの脆弱性が発見されてから、翌日にはAppleから公式な修正パッチがリリースされた。この結果、脆弱性の対応は施されたが…

とある方法で、脆弱性が復活してしまうことが新たに発見された!

ネタ元は以下より


Appleが提供している"root"セキュリティが出てきた?3人から、"High Sierra 10.13.1"へ更新すると、再び修正箇所が破壊されていると教えられました。
パッチを適応しただけでの場合、まだその問題は残存していて、再起動するまで継続されます。

脆弱性の復活は OS アップデートで「再発」する!!

Max OSX High Sierraは、以下の2バージョン存在している。

  1. 10.13.0 : リリース当初
  2. 10.13.1 : 現時点の最新

今回の再現は、上記の 1. から 2. へOSバージョンを更新した際に発生する!!
当初の問題は上記いずれのバージョンにあっても影響するため、10.13.0へも修正ソフトウェアの適応が必須になる。この修正ソフトを適応することで、脆弱性は塞ぐことができるが…"AppStore" では引きつづき、「10.13.1」への更新が促される。

"10.13.1"へアップデートしてしまうと、脆弱性の穴が再び空いてしまい、修正ソフトを適応しさらに再起動が必要となる!! OSのアップデートによって、再起動が促されないため脆弱性の修正ソフトを適応しても、適応が不十分となってしまうのである。

ユーザーによっては、再起動が促されない限り、長期間再起動を実施しない場合もあるため、この点は非常に危険であると言える。対策したつもりで、過ごしてしまうのである。

このレポートを読んで、気になる人は一旦PCの再起動をオススメする。

問題発生から一週間。

そろそろこの問題も集結することを希望したい…



Mac OSX High Sierra の脆弱性対策したら、新たなバグが埋め込まれた!を調べてみた!!

2日前に報告された、最新版OS "Mac OSX High Sierra 10.13.1" の深刻な脆弱性レポートから3日連続の同じネタになるが…

脆弱性の報告と暫定対策に関するレポートが1本目、Appleの公式修正ソフトに関するレポートが2本目。3本目の今夜は…

「バグ対策したら新たなバグ埋め込まれた!!」

件についてです。具体的には、

「ファイル共有機能が動作しなくなる!!場合がある…」

という曖昧なネタです。笑



修正ソフトウェア "Security Update 2017-001" を適応すると発現する

不具合の内容は、

ファイル要求機能の認証や接続ができなくなる

という問題で、外部PCとファイル共有機能を行なっていた場合に、その機能が影響を受ける(機能しなくなる)というものです。

ファイル共有のバグの影響を受けた人の数は不明だが、この問題に影響を受けるユーザーと関係ないユーザーがいるようです。その理由は不明…システムライブラリのエラーが原因になっていて、認証エラーが影響していると考えられています。

しかし問題はそれほど深刻ではなく、Appleサポートからの情報によれば、影響を受けたユーザーは、"ターミナル"を用いてすぐに解決することができる。

修正手順を以下に記載するので、問題が出ているユーザーは試してほしい。

  1. "ターミナル"アプリを開く
    Mac OSX High Sierra の脆弱性対策したら、新たなバグが埋め込まれた

  2. 以下のコマンドを入力し、"Return"入力

    sudo /usr/libexec/configureLocalKDC
  3. 管理者用パスワードの入力を求められるので入力
  4. "ターミナル"アプリを閉じる

以上!!
これで終わりである。

元々の原因であった「rootアクセスの脆弱性不具合」の修正ソフトウェアの中に、この2番目のバグを混入させたことは残念だが…当初の問題の大きさに比べたら軽微であるということができ、落ち着いて修正を施せば、これ以上大きな問題になることはないと考える。

まとめ:最新版OSの適応は「計画的」に!!!

今回改めて実感したが…最新版のOSリリース直後のインストールは慎重に検討すべきであると痛感した。

もちろん仕事の都合止むない場合には検討の余地はないが…今回の"High Sierra 10.13"は、9月26日から正式に無料アップデートとしての配信が始まったが、それから約2ヶ月でのこの不具合発生…焦る必要がない場合には、半年程度の期間様子を見てもいいかもしれない。

↑このページのトップヘ