VPN+WIFIアクセスポイントをバージョンアップしました

Raspberry pi 3 用のソフトウエア(イメージファイル) VPN+WIFIアクセスポイントに重大なバグがあり、起動後にアクセスポイントが動作しない問題が見つかりましたので急ぎ修正をいたしました。

本日2月25日現在、Googleドライブから最新版(v2.0.1)をダウンロードしていただけますので、これまで動作しなかった方もぜひ今一度お試しください。

これまでに同ソフトウエアをダウンロードしてお試し頂きました方々には正常に動作せずご迷惑をおかけいたしましたことをお詫びいたします。

また、今回のバグにつきましてご報告ならびに解決にご協力いただきました方に深く感謝いたします。

本製品の詳細につきましては過去の記事にてご紹介しておりますが、VPN+WIFIアクセスポイントとは、SoftEther VPNクライアントが内蔵されているWIFIアクセスポイントで、ルータ機能(NAT機能)は有しないため、このアクセスポイントに接続したPCやスマホには、VPNサーバーが設置されている側のDHCPサーバーからIPアドレスが直接割り当てられるのが特長です。 そのため、たとえば海外でNTTのひかり電話を使用するといった用途にもご利用が可能です。

DOS攻撃でダウンしてしまいました

今朝、ブラウザで自分のブログを開こうとしたら”データベース接続確立エラー”という大きな文字の画面が表示されました。 LAN内からサーバーにSSHで接続することは出来たのですが、しばらくするとSSH接続も応答がなくなってしまいました。

このブログのサーバーは Raspberry Pi 3 にWordpressをインストールしたものですが、データベースが破損してしまったのかと思い、昨年末にバックアップを取ったSDカードイメージに書き直したのですが改善しません。

SDカードが物理的に破損したのか、と思い別のSDカードに交換してみましたが同じ、さらにRaspberry pi 3の基板を別のものにしてみましたが相変わらずです。

参ったな~と思いながら、とりあえずアクセスしていただいた方に”故障中”の表示をする仮のサーバーでも用意しようかと思い、ルータの管理画面を開いてみましたら、Wordpressサーバーの接続数が異常に大きな数字になっていて、見る間にどんどん数字が増えていくのを見つけました。

 

上の画像がルータ(dd-wrt)のステータス画面LAN側ですが、wordpressの行の接続数が748になっているのがわかるかと思います。

もしかして力ずくのパスワード破り攻撃かも、と思い、テスト用にVMWareでWindows 7の仮想マシンを作成し、インターネットインフォメーションサービスを起動後、WireSharkをインストールしてキャプチャフィルタ tcp port 80 で起動してからルータのポート転送先のIPアドレスをその仮想マシンあてに変更してみました。

結果は上記画像ですが、IPアドレス 191.96.249.54 から接続開始のパケット [SYN] が連続して送りつけられているのがわかります。

午後3時を過ぎても一向に解消しないのでどうしようかと思ったのですが、この攻撃が blog.starstonesoft.com あてではなく、IPアドレスあて(49.149.134.220あて)であれば、ルータのグローバルIPアドレスを変えればいいのではと思いつき、ルータの機能でWAN側MACアドレスを変更してから接続しなおしましたところ、グローバルIPアドレスが変化しまして、攻撃も届かなくなりました。(幸い動的IPアドレスのインターネット接続なのでよかったです。 固定IPだったら逃げられません。)

また同じようなことがあるかもしれませんが、今後はもう対策がわかったのですぐ対応できそうです。

しかし、なんでこんな上り0.7MbpsしかないADSL回線の、Raspberry piをサーバーにしているようなブログに攻撃をかけるんでしょうか。 弱くてすぐ勝てそうだから?

JoySoundCafe Playerをバージョンアップしました

オンラインカラオケサービスの ジョイサウンドカフェ に音程コントロールなどの機能を提供する専用プレーヤー JoySoundCafe Player の v2.2.3 を本日2月2日に公開しました。

ユーザーの方のご指摘により、ジョイサウンドカフェに加入する際のお支払い方法で、OCNとWebMoneyを選択しているときには、ログインが完了しているのに楽曲の演奏が出来ない現象が発生していることが発覚し、ご協力のもと解決することができました。

これまでに JoySoundCafe Playerをダウンロード、試用していただいたのに、上記の問題で楽曲演奏ができずご利用を断念された方々にお詫びいたします。

今回のバージョンアップでもう大丈夫だと思いますので、またぜひお試しください。 (本日現在はまだVectorのアップデートは完了しておりませんので、こちらからダウンロードしてください)

 

JoySoundCafe Player の詳細は本ブログの こちら の記事でも紹介しておりますので御覧ください。

Wake On LAN リピータをバージョンアップしました

インターネット側からLAN内のPCなどをWake On LAN 出来るようにする機器、Wake On LAN リピータのハードウエア版シェアウエア版(Raspberry pi用)をv5.0にアップデートしました。

変更点は以下の通りです。

  • MagicPacketの転送機能が稀に落ちることがあったので、プロセスを監視して停止しているときには再起動する機能を追加。(Wake On LAN リピータの最も基本的な機能は、インターネット側から送信されたMagicPacketを、ルータのポート転送設定でWake On LAN リピータに転送すると、Wake On LAN リピータがそのパケットをLAN内全部のPCにブロードキャスト転送する機能です。)
  • IPアドレスを固定する設定をした場合に、これまではDNSサーバーのアドレスの設定項目がなかったため、正しくDNSサーバーに問い合わせをすることができなくなり、NTPサーバーに接続できなくなって時刻合わせができなくなる問題があったため、DNSサーバーを指定できるようにした
  • USB連動タップ操作機能で、これまでは手動でオン、オフを切り替えるのみだったが、新バージョンではアドレスを指定してping監視し、応答がなくなったら自動的にオフ→オンする機能を追加した。 また、毎日定時にオフ、オンが出来る機能を追加した。

設定、操作はすべてブラウザで行います(MagicPacketの転送機能は操作不要)が、最新バージョンの操作画面は以下のような構成です。 画像を見ていただくとどのような機器なのかすぐにおわかりいただけると思います。

rep1
メインメニュー
rep2
設定:ダイナミックDNSの設定。no-ip、mydns.jp, dyn.comに対応しています。
rep3
設定:ネットワーク設定。DHCP有効と、スタティックが選択可能です。
rep4
設定:日時設定
rep5
操作:手動でMagicPacketを送信
rep6
操作:日時指定で単発でMagicPacket送信予約。この機能はGETでデータを渡しているので、ほかのプログラムからWake On LAN リピータにMagicPacket送信予約を入れることが簡単に実現できます。(たとえば録画サーバーの電源を自動で入れるなど)
rep7
操作:日時、曜日指定で繰り返しMagicPacket送信予約。 毎朝事務所のPCの電源を自動で入れるような場合を想定しています。
rep8
操作:USB連動タップの操作。フリーズしたPCの電源を強制的に入れ直したり、ping監視を使って不調のルータ、モデムの電源を入れ直すことも可能です。

最後の画像のUSB連動タップ操作機能ですが、ハードウエア版はRaspberry pi の基板に改造がしてあり、USBポートの5V電源がオン、オフできるようになっていますので、USB連動タップを直接USBポートに挿し込めば使用可能です。

tap
サンワサプライ TAP-RE7U

シェアウエア版で連動タップ機能を使用するには、同様の改造をRaspberry pi基板に施さねばなりませんが、かなり難しいです。(USBコネクタを2個とも取り外し、下段側のGNDパターンに細いドリルで穴を空けて絶縁した上で新しいUSBコネクタを取り付け、GND足とGNDパターン間にPower MOS-FETをスイッチとして取り付け、ゲートの足をGPIOピンに配線します)

改造に代わり、リレーモジュールをつかえばUSB連動タップを購入しなくても直接AC100Vのオンオフも可能になりますのでそのほうが簡単ですが、ACを扱うため正しく配線しないと感電や火災の原因になりますので自己責任でのみお試しください。

たとえばこちら たった171円です。 (ここで紹介する基板が安全かどうかについてはご自身でご判断ください。 AC100Vはショートすると火柱が上がるほど強力です。)

relay

GND、VCCにはRaspberry piのGPIOのGND(6ピン)、5V(2ピン)を接続し、IN1、IN2にはそれぞれGPIOの3ピン5ピンを接続します。 必要なものはこの基板とジャンパーケーブル4本、そして安いテーブルタップを途中で切断してリレーの端子にネジ止めすれば完了です。

 

3.2インチLCDでデジタル時計作りました(追記)

長年愛用していた、7セグLEDのデジタル時計(インド製)が故障して、時刻が止まったままになってしまった。 夜中でも時間が見やすいので重宝していたので、代わりを探していたが安くていいのが見つからない。

そんな折、以前の記事「ラズベリーパイ 役に立たないもの」で書いた、小さすぎて使いみちがない、ラズベリーパイ用3.2インチカラーLCDで時計を作ろうと思い立った。

使ったものは、以下の部品です。

  • 古いRaspberry Pi B
  • 3.2インチLCD (現在売り切れ中)
  • 余っていた4GBのSDカード

液晶は waveshare の 3.2インチLCDのコピー商品のようで、ドライバも互換性があり、waveshare のホームページからドライバ入りのイメージファイルをダウンロードすればそのまま使用可能なのだが、解凍して書き込もうとしたら、4GBのSDカードでは容量が足りず、新しいSDカードを買うのももったいない(というか、それならデジタル時計を買ったほうが楽)ので、Raspbian Wheezy の2015-05-05バージョンにドライバを入れて使用した。

すごく詳細な設定方法がこちらのサイトに解説されていたので参考にさせていただきました。

液晶が使えるようになったら、

を実行してブラウザ`chromiumとマウスポインタを非表示にする unclutter を入れます。

そして、

/etc/xdg/lxsession/LXDE-pi/autostart ファイルを以下のように書き換えます。

一番下の行の https://time.is/ja/just は現在時刻をブラウザ上で表示してくれるサイトのアドレスです。 このアドレスを変更すれば、ブラウザで表示できるサイトは起動時に自動的に全画面表示されます。 (たとえば自宅内の監視カメラのアドレスにするとか)

このデジタル時計のイメージファイルをGoogleドライブに入れましたので、よかったらこちらからダウンロードしてお試しください。 waveshare 3.2インチLCD互換品をもっていて使いみちがない方におすすめです。 Raspberry piはB、B+、2Bで起動します。 (保証なしですので、もし動かなくてもご勘弁ください。)

12月3日追記:12月2日から https://time.is/ に障害が発生しているようで接続することができなくなりました。 代わりに、 http://www.starstonesoft.com/testclock.htm に320x240ピクセルでちょうど表示できるデジタル時計を用意しましたので、上記 /etc/xdg/lxsession/LXDE-pi/autostart 内のアドレスを書き換えてください。 また、testclock.htm はOSで設定されているタイムゾーンの時刻を表示するため、そのままではUTCの時刻を表示します。 sudo raspi-config でタイムゾーンをお住まいの地域に修正してください。 SSHで接続するためのユーザー名、パスワードは raspbian のオリジナルと同じ pi, raspberry です。

時計のスクリプトは http://Clock.Bralla.com のものを参考にさせていただきました。

VPN+WIFIアクセスポイントにUSB WIFIドングルを追加する場合

先日 v2.0.0にアップデートし、WIFI-WIFI接続が可能になったVPN+WIFIアクセスポイントですが、このバージョンでWAN側もWIFI接続を使用する場合には、もともとWIFI機能をもっているRaspberry Pi 3に、さらにUSB WIFIドングルを追加して使用することになります。

OS上では WIFIアダプタが複数存在する場合、それぞれwlan0, wlan1…と通し番号をつけた名称が自動的につけられますが、OSを再起動するたびに通し番号が入れ替わってしまうことがあるため、VPN+WIFIアクセスポイントでは、起動したときに最初に付与された番号で固定するように設定されています。

そのため、はじめて起動するときにすでにUSB WIFIドングルが挿し込まれている状態だと、USB WIFIドングル側にwlan0が割り当てられたまま固定されてしまう可能性があり、その状態に一度なってしまうと回復させる方法がありません。

本製品では、アクセスポイントとなる側にはRaspberry pi 3内蔵のWIFIアダプタを「wlan0」として使用することを想定してプログラムされていますので、はじめて起動するときにはUSBのWIFIドングルや、その他のUSB接続のネットワークアダプタ、Bluetoothアダプタ等のものは接続せず、有線LANケーブルとイヤフォンだけを接続した状態で起動してください。 もしすでにUSB接続のWIFIドングルその他のデバイスを接続した状態で起動してしまった場合は、SDカードを書き直して設定をやり直してください。

その他の情報として、初回設定時にVPNサーバー名の設定を行い、接続に成功したことを確認後に再起動した際、イヤフォン端子から聞こえる音声が”起動しました”、”IPアドレスは...”、”VPN接続しました”、の段階で止まってしまい、そのあとに聞こえるはずの”ルーティングテーブルを書き換えました”がいつまでたっても聞こえないという現象が発生することがあるようです。 接続環境に関連するようなのですが、詳細がつかめておりませんので、もし同じ現象を経験した方がいらっしゃいましたらお手数ですが contact@starstonesoft.com (全部半角小文字です)までご連絡ください。

何卒ご協力をお願い致します。

ホームラジオとラジオサーバーをアップデートしました

長らくお待たせいたしました。複数のユーザーの方からご要望がありました、日時指定予約機能を追加し、ホームラジオ、ラジオサーバーの新バージョンを公開しました。

これまでのキーワード登録予約に加え、日時指定、毎日、毎週の予約が出来るようになりましたのでより便利にお使いいだけると思います。

nichijishitei

その他、ラジオサーバーでは録音ファイルの保存場所にUSBメモリを選択できるように致しました。

すでにご利用の方は、システム設定ページ下部の”アップデート”ボタンからオンラインアップデートを行ってください。

VPN+WIFIアクセスポイントに WIFI-WIFI接続機能を追加

Raspberry pi 3 用のソフトウエア(イメージファイル) VPN+WIFIアクセスポイントに、WAN側をWIFI接続にできる機能を追加しました。

詳細については過去の記事にてご紹介しておりますが、VPN+WIFIアクセスポイントとは、SoftEther VPNクライアントが内蔵されているWIFIアクセスポイントで、ルータ機能(NAT機能)は有しないため、このアクセスポイントに接続したPCやスマホには、VPNサーバーが設置されている側のDHCPサーバーからIPアドレスが直接割り当てられるのが特長です。

そのため、たとえば日本の自宅のNTTひかり電話ルータのLAN側にSoftEther VPNサーバー(あるいはVPNサーバーBOX2)を設置し、海外ではVPN+WIFIアクセスポイントを使用してVPNサーバーに接続を行えば、海外のスマホには直接NTTのひかり電話ルータがIPアドレスを割り当ててくれるため、海外にいるときであってもスマホをひかり電話子機として発着信が可能となります。 (スマホ自体がもつVPNクライアント機能を設定して使用することも可能なのですが、私のAndroidスマホの場合、L2TP/IPSecで接続していても数時間たつとVPN接続が切断する現象が多発し、安定した着信を行うことは無理でした)

下の動画は設定完了後に電源を投入後、起動するときの様子です。

構成は、Raspberry Pi 3 model B, 外付けのスピーカー(設定時のみスピーカーかイヤフォンが必要ですが、通常使用時は不要)、5V1AのACアダプタ+マイクロUSBケーブル、そして今回WAN側もWIFI化するために、USBのWIFIドングルを接続しています。

こちらの動画では、すでにWAN側をWIFIに設定し、WIFIルータのSSIDとパスワードを入力した状態のものを起動していまして、スピーカーからは順に

  • 起動しました
  • IPアドレスは192.168.11.49 (3回繰り返し)
  • VPN接続しました
  • ルーティングテーブルを書き換えました
  • WIFIアクセスポイントを起動しました
  • ブリッジ接続を完了しました

という音声が流れています。 WAN側がWIFI接続の場合、電源投入後に音声が出始めるまで20秒ほどかかりますが、これはWIFI接続設定にしてあってもLANケーブルを挿し込んだときには自動的に有線LAN接続を優先させるための起動時の待ち時間が追加されているためで、有線LAN接続の場合は数秒で音声が出始めます。 起動が完了したら、スマホなどでVPN+WIFIアクセスポイントの設定画面で指定したアクセスポイントのSSID、パスワードで接続できます。

はじめて起動するときは、有線LANケーブルで接続した状態で電源を入れると

  • 起動しました
  • IPアドレスは ...
  • VPN接続の設定を行ってください

と音声が流れますので、聞き取ったIPアドレスでLAN内のPCやスマートフォンのブラウザで設定画面を開いてください。

設定箇所は「接続するVPNサーバーの設定」と、「WAN側設定」の二箇所です。

vpnsetting

Screenshot_2016-11-16-15-32-09

 

 

こちらは、AndroidスマホでVPN+WIFIアクセスポイントに接続したところです。 IP アドレス が192.168.5.5、デフォルトゲートウェイが192.168.5.1となっており、日本の自宅のひかり電話ルータからIPアドレスが付与されていることがわかります。

 

Screenshot_2016-11-16-15-32-24

 

AndroidスマホにインストールしたSIPクライアント Chiffon です。 この状態で、日本のひかり電話の電話番号での着信、発信が可能です。

 

 

 

 

上記動画のテストで使用しているUSB WIFIドングルは Tenda の W311MI で、RalinkのRT5370を使用したものですが、日本国内であればバッファローのWLI-UC-GMN(Ralink RT8070V使用)でも動作可能と思います。

もちろんこれまで同様に、USB WIFIドングルを刺さない状態で使用すれば、WAN側を有線LANとするVPNアクセスポイントとして使用可能です。

VPN+WIFIアクセスポイントはこちらからダウンロード可能ですのでぜひお試しください。 Vectorは最新版登録に数日の遅れがありますので、11月20日くらいまではGoogle Driveからダウンロードをお願い致します。

最後に、上記動画の中にうつっている電流計ですが、WAN側用のUSB WIFIドングルを追加した状態で、起動時の消費電流の変動を記録するためのものです。 ほぼ0.4Aのあたりで針が少しだけ上下しているのがわかるかと思いますが、下の画像はVPN接続済み、アクセスポイント機能にはAndroidスマートフォンを接続した状態でのメーターの画像です。

Exif_JPEG_420

最大10Aのメーターですが、針はやはり0.4Aのあたりです。 Raspbvery Pi 3 はメーカー推奨が2.5Aの電源アダプタとなっていますが、VPN+WIFIアクセスポイントにUSBドングルを追加した状態でアクセス中であってもわずか0.4Aしか流れませんので、いらなくなったスマホの充電アダプタのような、1A程度のものでも問題なく動作することを付け加えておきます。

最後の最後に技術的なお話ですが、今回のWIFI-WIFI対応は当初はRaspberry Pi 3 に内蔵の無線LANアダプタを、クライアントモードとアクセスポイントモードを同時に動作させることにより、USB WIFIドングルを追加せずに可能にしたかったのですが、

iw dev wlan0 interface wlan1 type __ap

で wlan1を作成することは可能でしたが、どうしても安定して動作させることができず断念しました。 いつか機会があればまた挑戦したいと思います。

TVサーバーx2完成機の販売を終了しました

2006年の販売開始から10年に渡り、ご好評いただいてきました TVサーバーx2機の完成品販売を、本日2016年10月29日をもって終了いたしました。 長らくご高配を賜りまして誠にありがとうございました。 今後もご利用者の方々へのサポートは変わりなく継続してまいりますので、ご用の際はお気軽にご連絡ください。

販売終了の理由は、Windows 7 プレインストールPCの販売が10月末で終了するためです。 以降は入手できるPCはすべてWindows 10だけになりますが、TVサーバーx2の動作に必須のマイクロソフト製 Windows Media Encoder 9がWindows 10にはインストールできません。 また、Windows 8.1以前のOSでWindows Media Encoder 9をインストールしたあと、Windows 10にアップグレードしたPCではこれまでTVサーバーx2は動作しておりましたが、最近のWindowsアップデート後にWindows Media Encoder がエラーを返すようになって動作しなくなった事例も出ておりますため、OSの機能の信頼性(下位互換の継続性)にも疑問があり、販売終了を決定いたしました。

ビル・ゲイツさんが主席ソフトウエア設計者を務めていた2008年まで、Windowsは素晴らしいOSでした。 その後はWindows 8, 8.1 と迷走したわけですが、Windows 10で軌道修正されることを期待したものの、私の感触ではWindows 8.1よりも更に悪化したように思います。 根拠は、過去のOSで普通にできていたことができなくなっていること、Windows Media Encoder 9の動作もそうですが、VPN越しに255.255.255.255あてのブロードキャストパケットが送信できなくなっていた点など、実際に問題に遭遇し、解析をしなければわからない隠れた変更点が多くあります。

デフォルトのブラウザや動画プレーヤーなど、作りかけ感が否めないアプリケーションや、Windowsアップデートを行うと使えなくなるデバイスやソフトがあることなど、安心して使い続けているWindows 7 と比べると、品質の低下を感じざるを得ません。

 

OBDアナライザをバージョンアップしました

ELM327を使用したスキャナで車のECUと通信を行い、DTCコードの読み出しやエンジンチェックランプの消灯、各センサのライブデータの表示と保存ができるシェアウエアの OBDアナライザ をバージョンアップしました。

先日、OBDアナライザを試用していただいている方からご連絡があり、1996年製で、OBDのプロトコルがSAE J1850VPWの車両で、OBDアナライザとスキャナ間の通信は成功しているが、車両のECUからのデータ受信に失敗するとのことでしたので、ELM327の仕様書を再度読み直したところ、AT SP x というコマンドでプロトコルの設定ができるようになっていることがわかりました。

0 – Automatic
1 – SAE J1850 PWM
2 – SAE J1850 VPW
3 – ISO 9141-2
4 – ISO 14230-4 KWP
以下、5~9,A,B,Cまで省略

これまで、起動時は常にプロトコル自動判定で動作するものと思い込み、OBDアナライザのソフト側では起動時にELM327の初期化を行っていませんでしたが、仕様書を読むと、0以外の選択肢を一度選択すると(AT SP 1などを送信すると)、その値がEEPROMに書き込まれ、以降はそのプロトコル固定で起動するようになるようで、その状態になっていると車種が変わったときに動作しないことが考えられます。

そこで今回のバージョンアップでは、通信開始時に AT SP 0を送信し、ELM327をECUのプロトコル自動判定モードに設定できるオプションを追加しました。 オプションはデフォルトでオンになっていますので、これまでより幅広い車種で動作するようになっているかと思います。

自分の車の話ですが、1999年のボルボS70で、走行距離は178400kmの老体です。 気に入ってまして、故障しても出来るだけ自分で修理しながら乗っています。

普段使っているのはこちらのハンディスキャナ

Exif_JPEG_420

ライブデータを見ているところ(カメラのピントがあってません)

Exif_JPEG_420

外出中にエンジンチェックランプが点灯してしまった場合は常備しているハンディスキャナでDTCを読み出して緊急性が高いかどうか判断しているが、画像のようにライブデータは合計で5行しか同時に表示できないのでどのような状況でエラーになっているのかが判断しづらい。

そういうときに、OBDアナライザでデータのログを取るとあとからEXCELなどの表計算ソフトにデータを読み込むこともできるので、時系列での変化がわかりやすいのです。

EXCELでグラフ化PlotSample

古い車を大切に乗っている方、ぜひお試しください