脈拍検出のテスト

以前書いたようにPSoCで脈拍検出にトライしてみたいと思い、まずこちらの「電気電子工作の部屋」さんの「電池ボックス電子工作(その15)」を参考(っつーかそのままに)に、まずはOPAMPを使ってブレッドボードで組み立ててみました。ただし、検出可否を見てみるのが狙いなので、音を発生する回路は追加していません。

回路は「電池ボックス電子工作(その15)」そのままです。OPAMPは手持ちのものから単電源動作可能である程度動作電圧範囲の広いLMC662Aを使いました。センサとなるフォトリフレクタには秋月電子で遥か昔に購入したものを使いました。

動作確認結果は・・・なかなか厳しいですね。センサへの指のあて具合でかなり変わります。

次にセンサを秋月でちょっと前に売っていたGP2S05に変えてみましたが、そのままではまったく動作しません。フォトトランジスタ側の負荷抵抗を22kΩから100kΩに変更すると容易に検出するようになりました。もとのセンサでも負荷抵抗を変えればもっと容易に検出できたのかもしれません。

それでも、指を動かしたりすると、表示が乱れます。

基本的にはセンサの出力をローパスフィルタ/ハイパスフィルタを通して受けた後、1000倍に増幅してトランジスタを駆動しています。鼓動の周波数成分は0.5Hz(30bpm)~4Hz(240bpm)といったところでしょうから、これを指を動かしたりしたら誤検出するのはしかたないところです。

M1.5の地震

なにげに地震情報を見ていたら、今朝5時44分に起きたマグニチュードM1.5という規模の小さな地震が地震情報に載っていました。

震源は神奈川県西部、深さは10kmだそうです。こんな小さな地震が地震情報に載ったり、その上最大震度2とか複数地点で観測って珍しいと思うのですが・・・。

さくらのVPS(6) ~FreeNXを試す その2~

FreeNXが動作するようになって、非常に高速なリモートデスクトップ環境ができたのですが、SSHのログイン認証をパスワード認証に戻さざるを得なくなってしまいました。

が、それはなるべく避けたいもの。

そこでいろいろしらべていくと、いくつかのことがわかってきました。

  • NX Clientの設定で秘密鍵が登録されているのはなぜ?
  • 秘密鍵があるということは、組になる公開鍵があるはずです。しかし、そんなものをサーバ側に置いた記憶はありません。
  • どうやらデフォルトの秘密鍵/公開鍵ペアをもっていて、NX Serverと共有しているみたい。これは置き換え可能なようです。

ということで、鍵を作り直して、設定しなおします。

  1. ログイン用鍵ペアを作り直します。
  2. $ ssh-keygen -d -N “パスフレーズ” -f id_dsa
    $ ssh-keygen -d -N “” -f nx_dsa

    として、鍵ペアを生成します。

  3. 「id_dsa.pub」の中身をサーバ側の ~/.ssh/authorized_keys に追加します。
  4. 「nx_dsa.pub」の中身で /var/lib/nxserver/home/.ssh/authorized_keys のキーの部分を置き換えます。冒頭に port/agent forward の禁止に関する記述があったので、そこはそのままにしておきました。(もとのファイルはリネームして取っておきます)
  5. NX Client の Configure設定で、General/Serverの部分の「Key…」を押して、秘密鍵「nx_dsa」の内容を登録します。
  6. ここで一旦 NX Client で接続してみましたが、問題ありませんでした。これでデフォルトの鍵ペアではなく自分専用の鍵ペアでFreeNXが動いているはずです。
  7. ログイン認証時のパスワード認証を禁止します。
    /etc/ssh/sshd_config の「PasswordAuthentication」の行を「no」に変更する。さらに、ローカルホストからのSSHログインではパスワード認証が必要なため、以下の内容を最終行に追加する。
  8. Match Address 127.0.*.*
    PasswordAuthentication yes
    Match Host localhost
    PasswordAuthentication yes

  9. 再起動してNX Clientからログインしてみて問題ないことを確認する。
  10. Teratermからもログインしてみる。SSHではプレインテキストではログインできず、RSA/DSA鍵を使用したログインは成功することを確認する。

ということで、無事に軽量なリモートUbuntu環境ができました。

参考にしたサイト:
NXリモートログインのセキュリティ強化 : 参考っつーか、ほとんどそのまま。実際に作業される方はこちらをご覧になったほうがいいかと思います。

さくらのVPS(5) ~FreeNXを試す その1~

デスクトップ環境をインストールしたことで、VNCベースで「さくらのVPS」上の仮想マシンでデスクトップ環境が使えるようになったわけですが、正直遅いです。

で、WindowsのRDPくらい高速なものはないだろうか、と探していたらFreeNXというのがあることを知りました。

参考にしたのは(いつもの?)技術評論社のUbuntu Weekly Recipeの『第98回 FreeNXでリモート・デスクトップ環境を実現する』です。

早速、インストールしてみます。

FreeNXのPPAページをみると、「Technical details about this PPA」というリンクがあり、そこのプルダウンメニューで「Lucid(10.04)」を選択すると、必要なコマンド

deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/freenx-team/ppa/ubuntu lucid main

が表示されます。これをさくらのVPS側で動いているUbuntu上のSynaptic パッケージマネージャでリポジトリに追加します。追加した後、指示に従って、パッケージマネージャで「再読込」をして、クイック検索で「FreeNX」と入力すると、関連するパッケージが表示されますので、「freenx」にチェックを入れると依存関係にある多数のパッケージのインストール確認が行われますので、それらを受け入れた後、インストールを行います。インストールは短時間で終わります。

次にクライアント側のインストールです。
クライアント側はNoMachine社のDOWNLOADページにある「NX Client for Linux」、その中の「NX Client DEB for Linux – i386」を使います。ローカルのUbuntuマシンでダウンロードしたファイルを「開く」とすると、パッケージインストーラが起動しますので、「パッケージのインストール」を押します。

インストールが完了すると、「アプリケーション」→「インターネット」の下に「NX Client for Linux」が追加されます。その中の「NX Client for Linux」を起動すると、「NX Connection Wizard」を起動しますので、接続先、SSHのポート、デスクトップの種類(これはUnixとGNOMEを選択する)などを設定します。

完了するとログインユーザー名とパスワードを入力する画面になりますが、パスワードを入力しても認証に失敗します・・・。

よく考えると、SSHの秘密鍵の位置もNX Clientは知らないはずだし・・・。
ということで、/etc/ssh/sshd_config を書き換えて、パスワード認証を許可してみると・・・ログインできました。VNCベースのものとくらべて非常に高速です。この速度なら完全にリモートデスクトップベースで使えます!

・・・が、やはりパスワード認証は閉じておきたいもの。もう少し調べてみます。

さくらのVPS(4) ~デスクトップ環境のインストール~

セキュリティの設定ができたので、デスクトップ環境をインストールします。VNCコンソール上でログインを行い、

$ sudo tasksel

として、タスク選択画面を表示させます。パッケージメニューから「Ubuntu desktop」を選択して「Ok」のところでEnterを押すと、インストールが始まります。インストールが完了したら、再起動させます。このとき、再起動後に表示されたグラフィカルログインではキー入力ができませんでしたが、VNCコンソールを再起動させたら入力できました。

表示がすべて英語なので、ロケールの変更をしていなかったのを思い出し、

sudo locale-gen ja_JP.UTF-8
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8

としてロケール変更しました。その後、再起動、ログインするとフォルダ名を日本語に変更するか聞いてきますので、変更させました。

「Administration」→「Language Support」とすると、「言語サポートがインストールされていないのでインストールするか?」と聞かれるので、インストールします。
インストール後、タブ2つ(言語とテキスト)についてそれぞれ日本語を選択します。IMEシステムはibusのままとします。

これで一旦ログアウトしてログインすると見慣れた日本語環境になっています。

さくらのVPS(3) ~入れ替え&セキュリティ設定~

今度は本命のUbuntuに入れ替えます。

カスタムOSインストールガイドに詳しく書いてあるので、作業自体は簡単です。こちらは多少時間がかかりますが、それでもCDROMから古いスペックのローカルマシンにインストールするより早いかもしれません。

で、カスタムインストールが終わったあと、再起動するだけではCUIモードになっています。ここにいろいろとやっていきます。

が、まずは何はともあれ、セキュリティです。まず、ログイン用にOpenSSH Serverをインストールします。

$ sudo tasksel

で「OpenSSH server」にチェックを入れて、「OK」でEnterを押します。インストールはあっという間に終わります。

早速、/etc/sshd/sshd_config を編集して、ポート番号をデフォルトの22からxxxx(もちろん内緒です)に変更します。最初の方にある「Port 22」の部分を修正します。修正後、再読み込みをさせたかったのですが、わからなかったのでリブートしました。(「$ sudo /etc/init.d/ssh reload」でできるみたい・・・)

sshでログインしなおして、ufwで他のポートを塞ぎます。

$ sudo ufw allow xxxx(sshのポート)
$ sudo ufw default deny
$ sudo ufw enable

とします。最後に「実行するとsshでログインできなくなるかも」みたいなメッセージが出ますが実行します。その後すぐに、別のターミナルからsshでログインできることを確認します。(この状態でもVPSコントロールパネルや仮想シリアルコンソールは使えるようなので大丈夫ですけどね)

次に、公開鍵認証の設定をします。鍵の生成にはTeraTerm Proを使いました。「設定」→「SSH鍵生成」で、RSA/DSAの公開鍵ペアを生成します。作成したら、id_dsa.pub と id_rsa.pub の公開鍵を連結してサーバ側(さくらのVPS側のUbuntu)の ~/.ssh/authorized_keys に転送し、

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

として他のユーザー(といっても正常なら誰もいませんが・・・)がアクセスできないようにしておきます。

※まだよくわかっていないので、調べなければならないのですが、鍵はDSAだけで良さそうな感じがします。

で、TeraTermで ホスト名とポートを指定してSSH2で接続した際に、「RSA/DSA鍵を使う」で鍵ファイルを指定し、ユーザー名/パスフレーズ(秘密鍵のパスフレーズ)を入力するとログインすることができました。Windowsの適当な場所に秘密鍵をコピーし、TeraTermで「設定」→「SSH認証」でユーザ名と秘密鍵を指定しておきます。

ここまで確認できたら、/etc/ssh/ssh_config を改めて編集して、

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
PasswordAuthentication no

として、パスワード認証を禁止します。

Ubuntuからもログインできるように、

$ ssh-keygen -t dsa

でパスフレーズを入力して鍵ペアを生成します。生成された ~/.ssh/id_dsa.pub をホスト側の /.ssh/authorized_keys に追加してやると、

$ ssh -p ポート番号 ホスト名

でアクセスできるようになりました。

さくらのVPS(2) ~サインアップ~

VPSの契約は非常に簡単で、あっという間に終わります。

が、問題はその後です。

まず、契約が完了した後にどうしていいかわからない。Webの「契約サービス一覧・表示」をみても、「状態」は「申込中」としか表示されておらず、VPSの準備が完了したのかどうかわかりません。

恐る恐る「サーバ設定」の手続きボタンを押してみたら、「VPSコントロールパネル」が表示されました。ブラウザ上の仮想シリアルコンソールに起動画面(コンソール出力)が表示されていって、最後にloginプロンプトが出ました。で、困った(いや、実際には困ってないのだけど)のが、最初にインストールされているCentOS5.5のrootの初期パスワードがわからないことでした。

・・・・・・・わからん。

悩んでも仕方ないので、早速VPSコントロールパネルから「OS再インストール」を選んで、さくっとCentOSを再インストールしてしまいました。再インストールはあっという間に終わります。今度は再インストールの前に聞かれたrootのパスワードで無事にログインできました。

さくらのVPS(1) ~プロローグ~

以前、Debian+Freenet6で外部から古いノートPCにIPv6でアクセスできるようにしたのですが、昨今の地震によるトラブルが嫌(心配)なのと所詮は古いPCなので遅くて耐え難いので「さくらのVPS」をお試ししてみました。

契約内容は(もちろん?)一番安価な「さくらのVPS 512」で初期費用なし、月額980円です。HDDは20GB、メモリは512MBで、完全に仮想化されているのでOSの入れ替えすら可能です。IPアドレスはIPv4のアドレスが固定で1つ付いてきます。IPv4アドレスは枯渇してしまっていますが、まだ付与してくれるようです。いずれはIPv6で本格運用できるようになるのでしょうが、当面はIPv4 reachableな環境を確保しておきたい(そして、自宅はクラスBプライベートアドレスしか配布してくれない)というのも今回のきっかけだったりします。

このblog自体はDomainKingのレンタルサーバ+WordPress(とblogger.com)で今のレベルではまったく問題ないので、手間をかけて変更するつもりもありません。

まずはいろいろと試してみたいと思っていますので、OSはデフォルトのCentOS5.5ではなく、手馴れているUbuntu10.04に入れ替えて使ってみようと思っています。

アジア地区IPv4枯渇まであと1日

ページの右下につけている『IPv4枯渇時計』ですが、ふと見てみたらいよいよ明日(4月15日)がX-Day(アジア地区の地域インターネットレジストリ・・・APNICにアドレスがなくなる日)になっています。
/8ブロックの最終配布が今年の2月3日で、その際には「夏頃になくなるかも・・・」なんて言っていたような気がするのですが、どんどん早まってとうとう明日になってしまいました。(ここ一週間で一気に縮まった気がします)

このあとJPNICの在庫がなくなって、ISPの所有分だけになって・・・・そして本当になくなる日ももう間もなくなのでしょうが、その後がどうなるのか、非常に興味深いところです。

余震の多い日でした・・・

昨日の夜から余震が続いています。

昨日(4月11日)の17時16分の福島県浜通りM7.1、最大震度6弱

昨日(4月11日)の20時42分の茨城県北部M5.9、最大震度5弱

今日(4月12日)の7時26分長野県北部のM5.5、最大震度5弱

今日(4月12日)の8時8分千葉県東方沖のM6.3、最大震度5弱

今日(4月12日)の14時7分福島県浜通りのM6.3、最大震度6弱

ということで、緊急地震速報が鳴り響く余震の多い一日でした。

残念ながら、昨日は体調を崩して寝ていたせいか、地鳴りのようなものは感じませんでした。

・・・・が、ちょっと前(12日23:30~23:45くらい)になんとなく感じたんですよねぇ・・・・。ま、気のせいだと思いますが。