2018年12月21日金曜日

openssl-1.1.1a TLS 1.3サポート / SMAIL TLS 1.3サポート予定

2018/09/11にOpenSSL 1.1.1がリリースされTLS v1.3がサポートされました。
最新バージョンは、2018/11/20 OpenSSL 1.1.1aで、1.02系はOpenSSL 1.0.2qとなります。

SMAIL v4.20は、OpenSSL 1.0.2系を使っていますので、TLSはv1.2までで、今回
OpenSSL 1.1.1aを使って、TLS v1.3でメール通信できるか試しました。(安定動作確認後、v4.21をリリースする予定です。)

1.OpenSSL 1.1.1aのコンパイル
  1) https://www.openssl.org/source/ より、openssl-1.1.1a.tar.gzをダウンロード
  2) コンパイル環境の実行(Visual Studio 10.0)
     C:\work\vc\free\openssl-1.1.1a>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
     Setting environment for using Microsoft Visual Studio 2010 x86 tools.
  3) Configureの実行
     C:\work\vc\free\openssl-1.1.1a>perl Configure VC-WIN32 no-asm enable-tls1_3 --prefix=C:\work\vc\free\openssl-1.1.1a

     ※・64BITの時は、VC-WIN32の代わりにVC-WIN64A
    ・asemblerでコンパイル出来るときは、no-asmは外して下さい。SHA等の計算はが早くなる。
    ・tls1.3を使うので、enable-tls1_3

   Configuring OpenSSL version 1.1.1a (0x1010101fL) for VC-WIN32
   Using os-specific seed configuration
   Set up gcc environment - 3.4.5 (mingw-vista special r3)
   Creating configdata.pm
   Creating makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
   C:\work\vc\free\openssl-1.1.1a>

    ※OpenSSL 1.0.2系の時は、msディレクトリーが生成されてその配下に
   nt.makとかntdll.makが作られていましたが、必要なくなりました。
 
 4) makefileの書き換え
     smailは、マルチスレッド バージョンの静的なランタイムライブラリを使用するため
    コンパイルオプションを変更します。

   CNF_CFLAGS=/Gs0 /GF /Gy /MD
   =>
   CNF_CFLAGS=/Gs0 /GF /Gy /MT
   に変更

 5) コンパイル
     C:\work\vc\free\openssl-1.1.1a>nmake
     libcrypto.def
     libssl.def
     libcrypto.lib
     libssl.lib
     libcrypto_static.lib
     libssl_static.lib
     が生成される。必要なのはlibcrypto.def,libssl.def,libcrypto_static.lib,libssl_static.lib


2.smailのコンパイル(ソースコードは非公開です。)変更点のみメモ

  1)リンクライブラリーの変更
   libeay32.lib;ssleay32.lib
   =>
   libcrypto_static.lib;libssl_static.lib

    2)追加で必要なライブラリー
   ws2_32.lib
 
     ※これをリンクしないと、
   __imp__freeaddrinfo
   __imp__getnameinfo
   __imp__getaddrinfo
   がunresolved external symbolとなります。

  これだけで、OK。


3.tls 1.3対応のメールサーバを用意

  tls 1.3対応のメールサーバがないと、tls 1.3で通信できるかどうか
  わからないので、tls 1.3対応のメールサーバを準備。
  https://qiita.com/ma3ki/items/3e40775e74bad58a06f3
  を参考に、www.picolix.jpにセットアップ。(他からは利用できません。)
  再記しておきます。
  
  1) openssl-1.1.1 のインストール
   # curl -O -L https://www.openssl.org/source/openssl-1.1.1.tar.gz
   # tar xvzf openssl-1.1.1.tar.gz
   # cd openssl-1.1.1
   # ./config --prefix=/usr/local/openssl-1.1.1 shared zlib
   # make
   # make install

   # echo /usr/local/openssl-1.1.1/lib >> /etc/ld.so.conf.d/openssl.conf
   # ldconfig

   2) postfix-3.3.1 のインストール
    # cp -p /usr/lib/systemd/system/postfix.service /var/tmp
    # yum remove -y postfix
    # curl -O http://www.ftp.saix.net/MTA/postfix/official/postfix-3.3.1.tar.gz
    # tar xvzf postfix-3.3.1.tar.gz
    # cd postfix-3.3.1
    # CCARGS="-Wmissing-prototypes -Wformat -Wno-comment -fPIC \
-DHAS_LDAP -DLDAP_DEPRECATED=1 -DHAS_PCRE -I/usr/include/pcre \
-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-I/usr/include/sasl -DUSE_TLS -I/usr/local/openssl-1.1.1/include \
-DDEF_CONFIG_DIR=\\\"/etc/postfix\\\""
# AUXLIBS="-lldap -llber -lpcre -L/usr/lib64/mysql -lmysqlclient \
-lm -L/usr/lib64/sasl2 -lsasl2 -L/usr/local/openssl-1.1.1/lib -lssl \
-lcrypto  -pie -Wl,-z,relro,-z,now"
# make -f Makefile.init makefiles CCARGS="${CCARGS}" AUXLIBS="${AUXLIBS}"
# make
# make install
* インストール先は全てデフォルト

  3) SSL証明書の取得
     www.picolix.jp letsencryptで自動取得しているので割愛

 4) postfix に SSL/TLS関連設定を追加して起動

# cat <<_EOL_>> /etc/postfix/main.cf
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_cert_file = /opt/dehydrated/certs/www.picolix.jp/fullchain.pem
smtp_tls_key_file  = /opt/dehydrated/certs/www.picolix.jp/privkey.pem
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtp_use_tls =yes
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_cert_file = /opt/dehydrated/certs/www.picolix.jp/fullchain.pem
smtpd_tls_ciphers = high
smtpd_tls_key_file  = /opt/dehydrated/certs/www.picolix.jp/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_high_cipherlist  = EECDH+AESGCM
tls_preempt_cipherlist = yes
_EOL_

   Postfixは、中間証明書を設定する項目がないので、証明書と中間証明書の両方が含まれるfullchain.pem を指定します。

# cp -p /var/tmp/postfix.service /usr/lib/systemd/system/
# systemctl enable postfix
# systemctl start postfix
# postconf -e "alias_maps = hash:/etc/aliases"

4.smail動作確認
 SSL暗号化は、設定上SSLv2/v3を選択。(自動でsslv2,v3,tls 1,1.1,1.2,1.3が適応されます。TLSを選択した場合はtls1.0固定 このあたりは文言修正予定)


 サーバ側のログ
 ==
Dec 21 20:16:27 www postfix/smtpd[11397]: Anonymous TLS connection established from xx.xxx.xx[xx.xx.xx.xx]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 ==

  TLS 1.3で通信できていることを確認。
  当初tls 1.3用のclient_methodの関数がなくconnectionの方法を変えないといけないのかと思いましたが、勝手に tls 1.3が必要な時は、tls 1.3で通信できました。
(smail 近日バージョンアップ予定です。)



2018年9月2日日曜日

フリーテルのスマフォ freetel FTJ161B-REI-PG 購入


https://www.freetel.jp/product/smartphone/rei/
旧機種ですが、安いのでPayPalを使える、ヤマダ電機で税込11,664円で購入。
もうすぐ、アップルiPhoneの新機種、Google Pixel 3の発表がしますが、Pixel 3が日本でも購入できれば、Pixel 3を購入予定です。

FREETEL REIですが、発売当初から不具合がいろいろあったらしく、発熱問題もあるらしい。また個体差もあって当たり外れがあるとのことです。
今回、使ってみて自分の使う範囲では不具合なく使えてます。

ゲーム:パズドラをやってみるとスマフォの上部が少し発熱します。
熱いというほどでもないです。
アップデートしてビルド番号 FREETEL_FTJ161B_20171122に。

・LINE通知、GMAIL通知とか問題なく使用。
・GPS (INGRESS) ・コンパス問題なし。(但し屋内では未確認)。
・電波4Gの掴み問題なし。
・ランチャーは、FREETELのは使わず普通のランチャーに。
 また、スワップアップランチャーも使わない。
 ナビゲーションバーを表示させて、 フリーテルボタンは使わない設定に。

以上です、まあ十分使えるのでメイン機が壊れた時の予備とします。

その他、電池バッテリー残量をチェックしてみたのですが、アプリの名前で、「10100」というなんとなくゾンビ風のアプリが2%使用されています。調べてみましたがこんなアプリはありません。
これは、インストールしていたアプリが電池を消費した後アンインストールした場合に「10100」で表示されます。充電100%で、スマフォ再起動で統計情報がクリアーされなくなります。

2018年7月15日日曜日

テニスラケットのグリップのエンドテープで補強

ケーブルの外被の割けの補修にビニールテープよりもテニスのグリップのエンドテープ(YAMAHA)が強力で長持ちします。また、カバーの割れとか補強に重宝します


2018年5月3日木曜日

母、入院中です。見舞い。

現在、母は腰の圧迫骨折で動けず入院中です。
母は認知症もあるのでボーっとしてても良くないと思って、若いころに定期購読していたミセス 5月号を買って持って行った。
気に入って読んでる。(というか字はもうほぼわからない)

自分も高校生のころはそのミセス見てたっけ。デザインの良い指輪とかネックレス、服とか眺めてたのを思い出した。

先月に作った名前入りのブレスレットは直ぐに無くなってしまうだろうなと思っていましたが、今もしっかりと腕に巻いています。

2018年4月2日月曜日

名前入りのブレスレット作成

認知症の母で外に出歩いて、戻って来れなくなった時の
為に名前入りのプレートを付けたブレスレットを作成しました。


組み立てて、UVクラフトレジン液を片面ずつ流し込み、日光で固める。
その他の部品でブレスレットを作製。


作製した後、ネットで調べたら、介護の為の認知症対策のブレスレットって色々売ってるんですね。





2018年3月28日水曜日

介護用見守りカメラにPECHAM ネットワークカメラ 設置

認知症の母(要介護3)は、2月の寒いころは、玄関でうずくまって動けなくなっていたことおありましたが、最近は暖かくなってきて、それに伴って家の外に出て、歩く距離も伸びてきた。
本日も外に出たらしく、いつもの家の周りだろうと思ったが、探しても見当たらない。。
ずっと遠くで話し込んでいるのが見えた。(会話は成立していませんが。。)
しかも足腰は弱い。交通量も多いので心配です。

そこで、前々からカメラ設置しようと思って、本日介護用に見守りカメラを玄関に向けて設置した。

一般ユーザの方なら、このPECHAM ネットワークカメラで、スマホ パソコン対応で十分なのですが、自分としてはもっとネットワークのアクセスに自由度が欲しくて満足度低です。

※介護用見守りカメラとしては十分働きますのでこれはこれでいいのですが。
http://www.pecham.com/JP/Product/CCTV-Camera_62_5.html

1.誰でも簡単にインターネットから参照できるようにクラウド型になっていて、
 専用ツールをスマホまたはパソコンにインストールして使う。
 クラウドサーバを通して画像を参照する方式です。
 ※赤外線LEDライト付きで夜間監視カメラとしても使える。

 デメリット:サービスが終了したら使えなくなるので、このタイプは
 私は好みません。マイナーなところは5年も持たないと思います。


2.PC WEBからもアクセス可能で、ocx,DLLがプラグインとしてインストールされます。

 chrome 動作しない。
 Edge 動作しない。
 IE11  動作するが、いまいち。動画が全画面表示しないと見れない。
 safari 一番安定しているが、いまいち。動画が全画面表示しないと見れない。

 インターネットからのアクセスで問題はここから。(結論から先に言うと使えない)
 やっぱりPanasonicがいいのか。。

 1)外部からアクセスできるように、専用サーバで、実家のグローバルIPを
   定期的(*1)に拾い、DDNSに自動登録する。(以前別のシステムで構築しているので流用)
   ※1:無線ルータの動作ログをsyslogサーバに送る設定にしてsyslogのログから
      目的のIPを抽出。

 2)カメラをNAT設定
   TCP:80
   UDP:7030 (※2)
   でポートマッピングする。
   ※2:メーカはポート番号は非開示です。パケットモニターにて確認

 3)外部からアクセスし、ログイン後動画確認しましたが動画は動作せず。
   パケットモニターにて確認すると、ログイン後にカメラにアクセスするUDP
   データが、グローバルIPではなくてローカルIP(カメラのIP)に送出する
   ようになっていた。

   ※そういえば、6年ほど前、業務用のパナソニックのカメラを設置したことが
    ありますが、ローカルIPではなくてグローバルIPをわざわざ返す
    設定があり、NATでもうまくいったのを思い出しました。

 海外の無名メーカだと詳細なマニュアルがないので推測できず、次回はおとなしく日本メーカーのパナソニックにします。ただ、パナソニックも最近はクラウド型になっているようです。