シリアル/RS-232CをLANにつなげる機器 Hi-Link HLK-RM04を入手した

先日メーカであるHi-Link社に直接発注したHLK-RM04 startkitですが、無事に到着しました。
参考記事:「シリアル機器をTCP/IPでアクセスする

ちなみに、ものは、以下のとほぼ同等のようです。

Keynice RS-232C端子搭載 Wi-Fi 802.11n/g/b対応 無線LAN親機 Wifi接続ルーター – シリアルポートRS232 to Wi-Fi 150M

aliexpressではいくつか似たようなものがありますが、今回買ったのは送料込みで$21.68となる「serial/uart Embeded wifi module HLK-RMO4 startkit with 8M flash 32M ram + free shipping」です。
メモリ8MB、FLASH 32MBのモデルです。(メモリ 4MB/FLASH 16MBモデルもある)

届いたもの
IMG_3866s
・ボード
・WiFiアンテナ
・ACアダプタ
マニュアルは一切無し。

メーカページを探すと「DOWNLOAD → WIFI」に資料を発見。
「HLK-RM04 user manual」があれば、とりあえずなんとかなります。

「HLK-RM04 config tools」の中には「HLK-RM04 discover」と設定変更ツールが含まれていましたが、製品として一括設定するような場合に必要になるソフトで、通常はいらないような感じです。

電源を繋いでHLK-RM04のLANポートと、パソコンとをLANケーブルで接続!
IMG_3869s

パソコンには、DHCPで、192.168.16.0/24のIPアドレスが割り当てられました。
HLK-RM04の設定画面のアドレスは「http://192.168.16.254」です。
ユーザ名「admin」、パスワード「admin」でログイン完了。

設定画面は以下の様な感じでした。


「Serial2Net Setting」にて設定できる項目

上半分の設定項目は「Network Mode」の選択で大きく変わります。
「Default」LAN経由接続とWiFi AP機能両方使用。DHCPサーバが動作するが、細かい設定はできない
「ETH-SERIAL」LAN経由接続のみ使用。IPアドレスをDHCP/Staticで指定し、アクセスする
「WIFI(CLIENT)-SERIAL」WiFi経由で他のAPに接続。
「WIFI(AP)-SERIAL」WiFi AP機能を使用。こちらだとIPアドレス指定も可能

下半分はシリアル接続に関する設定です。

Serial Configurationなどは、シリアル接続に関する項目なのは分かると思います。
わかりにくいと思うのは、下側にある「Network Mode」の意味だと思います。
標準設定の「Network Mode: server」というのは、「Local/Remote Port Number」で指定したポートに対して、Tera Termなどで接続すると、シリアル機器にアクセスできるようになる、という設定です。

「Network Mode: client」になると、「Remote Server Domain/IP」が入力できるようになります。これと、「Local/Remote Port Number」を組み合わせ、指定したIPアドレスのportに、アクセスしにいく、というものになります。

Network Mode:「Default」LAN経由接続とWiFi AP機能両方使用
001

Network Mode:「ETH-SERIAL」LAN経由接続のみ使用
010

Network Mode:「WIFI(CLIENT)-SERIAL」WiFi経由で他のAPに接続
011

Network Mode:「WIFI(AP)-SERIAL」WiFi AP機能を使用。こちらだとIPアドレス指定も可能
012


次は「Special Settings」です。
こちらは、拡張設定なので、通常、設定しなくても問題ないです。
状況に応じて「WiFi Channel」や「SERIAL RTS」「SERIAL XON/XOFF」の使用状況を変更します。

002


「Serial2Net Settings: UART2」は、システム的には存在しているが、標準の開発用ボードではコネクタが実装されていない2つめのシリアルポートに対する設定です。
自分で開発したボードを使う場合は設定しましょう。

003


「System Management」は、管理者名、パスワードの変更で使います。
004


「Settings Management」は、設定の保存、投入、リセットが行えます。
005


「Upload Firmware」では、firmwareの更新が行えます。
こちらに届いたものだと「V1.78(Jul 23 2013)」というバージョンでした。
006


「Status」は、現状の動作状況を確認できます。

007


「Station List」と「Station Link Status」はWiFi接続時のステータス表示です。

008

009


実際にシリアル機器をつなごうとしたら・・・ケーブルが手元になく今日は断念。

CVE-2015-0235はRHEL4/CentOS4に影響する&修正版提供開始(2015/01/30 20:40版)

CVE-2015-0235 というglibcに大きめのバグが見つかった模様。

RedHat Enterprise Linux 4 / CentOS 4に対して影響があるのかどうかを調べてみた。

まずは、RedHat公式情報系

・RedHat Bugzilla:Bug 1183461 – (CVE-2015-0235) CVE-2015-0235 glibc: __nss_hostname_digits_dots() heap-based buffer overflow
 ・RHEL Knowledgebase Articles:GHOST: glibc vulnerability (CVE-2015-0235) / GHOST: glibc 脆弱性 (CVE-2015-0235)
 ・RHEL CVEデータベース:CVE-2015-0235
 ・RHEL4向け:RHSA-2015:0101:Critical: glibc security update
 ・RHEL5向け:RHSA-2015:0090:Critical: glibc security update
 ・RHEL6,RHEL7向け:RHSA-2015:0092:Critical: glibc security update

はい、RHEL4も対象になっています。

実際に確認してみるため、openwallにあるCVE-2015-0235についての詳細報告書「Qualys Security Advisory CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow」の「4 – Case studies」の記述を試してみる。

実行した際に「vulnerable」と出たら、問題あり。
「not vulnerable」だったら問題なし、というもの。

[root@cent4 201501]# mkdir security
[root@cent4 201501]# cd security/
[root@cent4 security]# rpm -qa|grep glibc|sort
警告: only V3 signatures can be verified, skipping V4 signature
glibc-2.3.4-2.57
glibc-2.3.4-2.57
glibc-common-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-headers-2.3.4-2.57
glibc-kernheaders-2.4-9.1.103.EL
[root@cent4 security]# cat > GHOST.c << EOF
> #include <netdb.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <errno.h>
>
> #define CANARY "in_the_coal_mine"
>
> struct {
>   char buffer[1024];
>   char canary[sizeof(CANARY)];
> } temp = { "buffer", CANARY };
>
> int main(void) {
>   struct hostent resbuf;
>   struct hostent *result;
>   int herrno;
>   int retval;
>
>   /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
>   size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
>   char name[sizeof(temp.buffer)];
>   memset(name, '0', len);
>   name[len] = '\0';
>
>   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
>
>   if (strcmp(temp.canary, CANARY) != 0) {
>     puts("vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   if (retval == ERANGE) {
>     puts("not vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   puts("should not happen");
>   exit(EXIT_FAILURE);
> }
> EOF
[root@cent4 security]# ls
GHOST.c
[root@cent4 security]# gcc GHOST.c -o GHOST
[root@cent4 security]# ls
GHOST  GHOST.c
[root@cent4 security]# ./GHOST
vulnerable
[root@cent4 security]#

「vulnerable」なので、「問題あり」確定です。

修正版については、RHEL4の通常サポートは終了。現在はELSと呼ばれる特別な契約者向けに提供されているものだけが更新されています。

前述の「RHSA-2015:0101 Critical: glibc security update」にあるとおり、修正されたglibcのバージョンは「glibc-2.3.4-2.57.el4.2」となります。

ただ、このバージョンは通常の方法ではRHEL4およびCentOS4には提供されません。

しかし、RHEL4のソースを元にOracleで再構成した、Oracle Linux 4は、まだサポートを行っています。
こちらから、ファイルを持ってくることで対応が可能となっています。

Oracle Linux 4向けのSource RPMは、「https://oss.oracle.com/el4/SRPMS-updates/」にて提供されています。
Oracle LinuxではRHEL4とパッケージバージョンが若干異なり「glibc-2.3.4-2.57.0.1.el4.1」となります。
https://oss.oracle.com/el4/SRPMS-updates/glibc-2.3.4-2.57.0.1.el4.1.src.rpm

ただ、今回のことを受けて更新されたコンパイル済みのRPMは、glibc関連だけではなかったりします。
nptl-devel, nscdも更新されています。
このため、今回については、glibcのSource RPMだけを持ってきてコンパイルして適用、というのは、あまりお薦めできないような感じです。

コンパイル済みのRPMファイルについて、Oracle Linuxでは「Oracle Public Yum Server」としてレポジトリを公開しており、適切な設定を行うことで、RHEL4/CentOS4からOracle Linux 4に乗り換え、yumコマンドによるアップデートが行えるようになります。

コンパイル済みRPMファイル自体は「http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/」以下を探せば出てきますので、ページを「2015」で検索し出てくるパッケージが自分のサーバにインストールされているかを確認し、ダウンロードして適用する、ということが可能です。

しかし、依存関係解決とか面倒なので、これを機会にOracle Linux 4に乗り換えてしまう、というのも手かもしれません。

切り替え方法については、「RHEL4/CentOS4をOracle Linux4に!」にて紹介していますので、興味がある方は参照してみてください。
設定は非常に簡単です。

こちらの環境ではOralce Linux 4になっているため「yum update -y」で更新が完了しました。

更新後、再度テストプログラムを実行してみます。

[root@cent4 security]# ./GHOST
not vulnerable
[root@cent4 security]#

「not vulnerable」と出力されるので、脆弱性は修正されている、ということになります。

これで、一安心、といったところです。


<以下は修正版のglibcが出る前に書いたものです。資料として残しておきます>

glibcに大きめのバグが見つかった模様。
CVE-2015-0235

・RedHat Bugzilla:Bug 1183461 – (CVE-2015-0235) CVE-2015-0235 glibc: __nss_hostname_digits_dots() heap-based buffer overflow
 ・RHEL CVEデータベース:CVE-2015-0235
 ・RHEL5向け:RHSA-2015:0090-1:Critical: glibc security update
 ・RHEL6,RHEL7向け:RHSA-2015:0092-1:Critical: glibc security update

RHEL4/CentOS4についての記載が見付からない。

Oracle LinuxのSource RPM置き場 https://oss.oracle.com/el4/SRPMS-updates/ を見ても、2015/01/28 10:35時点では何も無し。

(2015/01/28 23:00 追加)
1時間ぐらい前に「GHOST: glibc vulnerability (CVE-2015-0235)」にRed Hat Enterprise Linux 4 Extended Life Cycle Supportに関する記述が追加された。
いまのところ修正版に関する記述はないが、RHEL4に脆弱性がある、という公式告知になっている。

(2015/01/29 19:30追加)
Red Hat Enterprise Linux ELS (v. 4)に対するSecurity Advisoryが公開された。
RHSA-2015:0101 Critical: glibc security update

ELS契約者向けに glibc-2.3.4-2.57.el4.2 としてリリースされたので、そのうちOracle Linuxにも波及してくるものと想定されるが、現状はまだ公開されていない。

(2015/01/30 14:20追加)
https://oss.oracle.com/el4/SRPMS-updates/ に、glibc-2.3.4-2.57.0.1.el4.1.src.rpmが置かれました。
Oralce Linux 4のpublic yumレポジトリのほう(repo url)にはまだ登録されていないようです。

(2015/01/30 16:30追加)
Oracle Linux 4のpublic yumレポジトリでの配布が始まりました。

以下の16:20ぐらいの段階ではi386(32bit)版のみだったのですが、16:37にはx86_64(64bit)版のディレクトリにもファイルが置かれ始めました。

i386(32bit)版
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-common-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-headers-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-profile-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/glibc-utils-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nptl-devel-2.3.4-2.57.0.1.el4.1.i386.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nptl-devel-2.3.4-2.57.0.1.el4.1.i686.rpm
 http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/latest/i386/getPackage/nscd-2.3.4-2.57.0.1.el4.1.i386.rpm

64bit(x86_64)版
 

(追加部分おわり)

openwallにあるCVE-2015-0235についての詳細報告書「Qualys Security Advisory CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow」の「4 – Case studies」には事象確認方法が記載されている。

下記をコンパイルして、実行した際に「vulnerable」と出たら、問題あり。
「not vulnerable」だったら問題なし、というもの。

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}

さて・・・CentOS4ではどうなっているのか?

[root@cent4 201501]# mkdir security
[root@cent4 201501]# cd security/
[root@cent4 security]# rpm -qa|grep glibc|sort
警告: only V3 signatures can be verified, skipping V4 signature
glibc-2.3.4-2.57
glibc-2.3.4-2.57
glibc-common-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-devel-2.3.4-2.57
glibc-headers-2.3.4-2.57
glibc-kernheaders-2.4-9.1.103.EL
[root@cent4 security]# cat > GHOST.c << EOF
> #include <netdb.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <errno.h>
>
> #define CANARY "in_the_coal_mine"
>
> struct {
>   char buffer[1024];
>   char canary[sizeof(CANARY)];
> } temp = { "buffer", CANARY };
>
> int main(void) {
>   struct hostent resbuf;
>   struct hostent *result;
>   int herrno;
>   int retval;
>
>   /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
>   size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
>   char name[sizeof(temp.buffer)];
>   memset(name, '0', len);
>   name[len] = '\0';
>
>   retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
>
>   if (strcmp(temp.canary, CANARY) != 0) {
>     puts("vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   if (retval == ERANGE) {
>     puts("not vulnerable");
>     exit(EXIT_SUCCESS);
>   }
>   puts("should not happen");
>   exit(EXIT_FAILURE);
> }
> EOF
[root@cent4 security]# ls
GHOST.c
[root@cent4 security]# gcc GHOST.c -o GHOST
[root@cent4 security]# ls
GHOST  GHOST.c
[root@cent4 security]# ./GHOST
vulnerable
[root@cent4 security]#

駄目でした。

とりあえず、続報待ちということで・・・

(2015/01/30 16:50追記)
Oralce public yum repoで提供されたのでアップデートを行い、試験実施。

[root@cent4 security]# ./ghost
not vulnerable
[root@cent4 security]#

問題がなくなったことを確認できました。

なお、Oracle Linux public レポジトリからyumコマンドを使ってファイルを持ってこれるようにするには「RHEL4/CentOS4をOracle Linux4に!」で紹介しているようにOracle Linuxに切り替えてしまう、というのが簡単でいいと思います。

Polaroid piguの本体が捨て値?

NTTレゾナント、3G対応SIMフリースマホが税込4980円、OCNのSIM開通費用込み」というニュースが流れてきた。

プレスリリース:スマホデビューに最適!音声通話も対応! 「goo Simseller」にて、 SIMフリースマホを業界最安値4,980円で販売開始
販売店:NTTコムストア by goo Simseller」「NTTコムストア by goo Simseller 楽天市場店」「NTTコムストア by goo Simseller Yahoo!ショッピング店

何が変わっているかって
・Polaroid pigu本体価格 9601円(税込)
・OCN モバイル ONE 通話対応SIM 3240円(税込)
がセットで「特価 4980円(税込)」といっているあたり。

まぁ、この値段なので、最初、spreadtrumチップ採用のやつなのかな?と思ったのですが、dual-coreでWCDMA対応のやつがSC7727Sしか存在せず、搭載された製品も確認できていないので、恒例のMediaTek MT6572シリーズの中でも、ローコスト版のMT6572M搭載製品かな?というところ。

スペックとしては
・Android 4.4
・デュアルコアプロセッサ 1.0GHz(おそらくMediaTek MT6572M)
・RAM 512MB / ROM 4GB
というのは、JIAYU F1を半年以上使った経験で言えば、まぁ使えるレベル。
ただし、大きなアプリを入れると、あっという間に一杯になります。
そして、RAMが狭いのでアプリの同時起動ができないので、複数アプリを頻繁に切り替えて使いたい場合に遅く感じると思います。

また、画面がHVGA(480×320)というあたりは難所になります。
特にタッチパネル感度がどうなっているか、というあたり。
ここがまずいと、かなり使いにくいです。
特に文字入力がつらいです。

果たしてこの製品はどれくらいの感度であることやら・・・

ちなみに、このサイズの先駆者freetel FT123Aは、タッチパネル感度がアレだったので、使いにくかったです。


あ・・・そうそう
香港のElephoneでは「WCDMA対応の4.5インチ 4コアの格安スマホElephone G1登場!なんと定価$49.99」なんて感じで、こんなんより性能が上の機種が販売中です。

あと・・・・・・・・

個人的には、まともに使いたいんだったら、piguではなく、1万円の機種を買った方がいいです。

MT6572搭載2つ折りAndroid 大显(Daxian)W189

Aliexpressを見ていたら、2つ折りAndroidが$98.57、というセールを見かけた。

Dual Touch Screen Flip Cell Phones For Seniors Old Man People MTK6572 Dual Core 5MP 512MB/4GB Android OTG GPS 3G Mobile Phone
HTB1bLF3HXXXXXbWXpXXq6xXFXXXKHTB17648HXXXXXabXXXXq6xXFXXXH

中国の「大显通讯(Daxian)」というメーカが出している「W189」という端末のようだ。

3.5インチ 480×320という低解像度の液晶ではありますが

・MediaTek MT6572搭載
・RAM 512MB / ROM 4GB (メーカページだとROM 1GBという表記)
・WCDMA 850/900/1900/2100MHz (メーカページだとWCDMAという表記しかない)
・Android 4.2.2
という昨今使用するには最低限のことはクリア

カメラは背面300万画素、前面30万画素

変わっている点として、液晶は両サイドについている、ということが上げられます。
シャープの端末であったような、ぐるっと回転するような仕組みを入れるのはコスト的に駄目だったみたいで、構造的に容易な両面に付ける、という荒技に出てしまったようです。
荒技過ぎて、外側はタッチパネル、開いて使う時はタッチできずキー操作のみ、という仕様です。

内屏参数 屏幕像素:320×480;屏幕尺寸:3.5(英寸),TFT,非触摸屏
外屏参数 屏幕像素:320×480;屏幕尺寸:3.5(英寸),TFT,电阻

また、普通のAndroidの他、らくらくホン的なモードも用意されているようです。

日本語のUIは入ってないようではありますが、aliexpressのfeedback欄を見てみると、「This Device has good Japanese font.」なんて書かれたりしているので、日本語表示をしたときに中華フォントになる、という事態は避けられるみたいです。

大显通讯では、「W2015」という2つ折り機も出していますが、こちらはGSMのみのガラケーでした。

固定電話をVoIPで転送できる電話機 パナソニック VE-GDW54登場

2022/09/05追記

パナソニックのVoIP対応コードレス、このVE-GDW54 / VE-GDW03と、FAX連動ができる KX-PD101/KX-PD102/KX-PD915/PZ910の世代の1回だけで終わっちゃいましたね


固定電話宛にかかってきた通話を、VoIPで転送して、スマートフォンで受け取りたい、という需要に対して、ついにメーカが応えてしまいました。

パナソニックから、VE-GDW54という電話が登場です。
jn150121-1-1

プレスリリース「自宅の着信を外出先のスマートフォンや携帯電話に転送できる デジタルコードレス電話機 VE-GDW54シリーズを発売
製品ページ「VE-GDW54

発売される製品は3種類
・親機のみ(コードレス受話器機能付き) VE-GDW54D
・親機(コードレス受話器機能付き)+子機1台 VE-GDW54DL
・親機(コードレス受話器機能付き)+子機2台 VE-GDW54DW

機能は2つ。
・外出中にかかってきた固定電話をFUSION IP-Phone SMARTを使って転送する
  ユーザがFUSION IP-Phone SMARTの契約を行う必要がある。
  転送先の電話番号については制限はない。
  FUSION IP-Phone SMARTの無料通話先(無料先一覧)であれば、通話料無料で転送できる
  無料通話先以外はFUSION IP-Phone SMARTの通話料金が追加でかかる。

・家庭内のWiFi環境にスマートフォンがある場合に子機になる
  VE-GDW54をWiFi接続する必要あり。
  スマートフォンを4台まで登録可能。スマートフォンには専用アプリ「スマートフォンコネクト」をインストールする必要あり

重要なできないこと
・固定電話にかかってきた電話番号は転送先には通知されない
・外出先から、固定電話の番号で電話をかけることはできない
・VE-GDW54に割り当てたFUSION IP-Phone SMARTの番号にかけても鳴らない(たぶん)

FUSION IP-Phone SMARTの番号にかけても鳴るんだったら、より面白かったんですが、その点はちょっと残念ですね。
あと、FUSION IP-Phone SMART番号に転送する時は、何らかの手段でかかってきた番号も分かる、とかあったら、良かったんですけどね