プログラミング Tips

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

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

2017年12月

ConoHa VPS にroot以外のユーザを追加してみた!

WEBアプリケーションのデプロイ前に、VPS の設定を行う。その際、セキュリティを高めておくことは重要になるが、作業は忘れがちで毎回同じ内容を調べながらの作業になるため、備忘録も兼ねて残しておく。

はじめに

クライアントからVPSサーバーへの接続はSSH接続することが一般的である。その際に初期のユーザー"root"を用いることは多いが、LinuxOSにおけるrootユーザーは一般的に知られているため、このユーザーからの SSH接続を許可することはセキュリティの観点から賢明とは言えない。

よってセキュリティを高める場合には、下記を実施する。

  1. rootユーザー相当の権限をもった別ユーザーの追加
  2. rootユーザーからのアクセス禁止

更新 (2018.04.13)

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

参照先:こちら


環境

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


Step.1 rootユーザー相当の権限をもった別ユーザーの追加

  1. クライアント側のMacのターミナルを起動し、以下のコマンドを入力

    $ ssh root@@{サーバーIPアドレス}
  2. 以下のメッセージが表示される。"yes"と入力

    Are you sure you want to continue connecting (yes/no)?
  3. rootパスワードを要求されるので、"ConoHa VPS"生成時にWEBコンソール上に設定したパスワードを入力。コンソールの表示が以下に切り替わると接続成功

    [root@サーバーIPアドレス ~]#
  4. 以下コマンドを入力してユーザを新規追加

    adduser [User名]
  5. 以下コマンドを入力して、パスワードの入力を求める画面が表示されるため、新規パスワードと確認のためのパスワードを再入力

    passwd [User名]
  6. 以下のコマンドを使って、rootユーザーと同じ"sudo"グループに追加する。これによって、"sudo"コマンドが利用可能になる

    usermod -G sudo [User名]
  7. 以下コマンドを入力して、パスワードの入力画面が表示される。パスワード入力後、「test」が表示されれば設定完了

    sudo echo "test"

Step2. rootユーザーからのアクセス禁止

SSH の設定ファイルを編集して、下記設定を変更する。この結果、rootユーザーがssh接続でアクセスできなくなり、セキュリティ強度が高まる。

項目 変更前 変更後
rootユーザのログイン無効化 PermitRootLogin yes PermitRootLogin no

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

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

SSHサービスの再起動

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

$ sudo /etc/init.d/ssh restart

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



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の販売開始からしばらく経過していた現時点で、機種変更によって中古モデルを転売するユーザが増えてきていて、供給が需要を上回っていることが価格下落の一員であると考える。

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



Amazon AdSense の申請をしてみた!!

Google AdSense の審査に1発合格したので、次は Amazon アソシエイト・プログラムに申請してみる。

まず Amazon アソシエイト・プログラムは以下の通りに規定されている。

本プログラムの目的は、乙が乙のサイトにて「商品」を紹介し、(第7条に定義される)「適格販売」について紹介料を受け取ることができるようにすることです。「商品」とは、アマゾン・サイトにて販売される一切の商品であり、(a) こちらに記載された製品(以下「除外商品」と総称します。)や、(b)こちらに記載されたマーチャント(以下「除外マーチャント」と総称します。)により販売される製品を除きます。商品には、アソシエイト・プログラム紹介料率表に明記されている一定のサービスも含まれます。乙による商品の宣伝の便宜のため、甲は、本プログラムに関連して、データ、イメージ、テキスト、リンクフォーマット、ウィジェット、リンクおよびその他のリンク用ツールならびにその他の情報(以下「アソシエイト・プログラム・コンテンツ」といいます。)を乙に提供することがあります。アソシエイト・プログラム・コンテンツからは、アマゾン・サイト以外のサイトで提供される製品に関するいかなるデータ、イメージ、テキストまたはその他の情報やコンテンツは明確に除外されるものとします。

アソシエイト・プログラムが、Google AdSenseと異なる点はこのプログラムを経由してた場合、その購入アイテムの費用の一部が支払われるということである。支払い金額の割合は、こちらに掲載されている。

このプログラムに参加するために、プログラム参加の為の審査を受けてパスしなければならない。

【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



↑このページのトップヘ

-->