SoftEther VPNを導入
iOS10,macOS Sierraを導入すると、PPTP-VPNが使えなくなるようで、 Buffalo のVPN機能が使えなくなる。 ということで、Mac環境に macOS Sierra の導入ができなかった。
そこで、strongswan VPN サーバを導入しようと、色々試していたけど、失敗。 であればということで、SoftEther VPN(オープンソース版)を入れてみた。 色々試行錯誤のなか、ようやく動くようになった。
さあ、今から macOS Sierraをインストールするぞ。
職場のメインマシンには、ScanSnap のスキャナがあるけど、 macOS Sierraでトラブル報告があるので、 まずは、MacBook Air で試してみよう。
systemd.networkの設定
職場から自宅サーバを触っていて、reboot が必要そうなので、 再起動をかけたら、サーバが復帰せずびびった。 Debian が systemd に移行したけど、相変わらず /etc/init.d を使って作業をしていたけど、 ネットワークの設定の方法が変わったのね。 /etc/network/interfaces のファイルだけでメンテナンスしてたけど、 /etc/systemd/network/*.network で設定するのね。
これらの設定を移行してなかったので、ネットワークが設定されず、 DHCPが動かない(自宅内のネットワーク機器全滅)。 同じく Web , mail , ….総崩れ。(x_x;;
systemdのネットワーク設定
(( /etc/systemd/network/eth0.network )) [Match] Name=eth0 [Network] Address=192.168.XX.XX/24 Gateway=192.168.XX.YY
設定の有効化
# systemctl enable systemd-networkd
systemsのresolve設定
systemdの設定ファイルを修正
(( /etc/systemd/resolved.conf )) [Resolve] DNS=192.168.XX.YY Domains=example.jp
設定を有効にする。
# mkdir /run/systemd/resolv # cp /etc/resolv.conf /run/systemd/resolv/resolv.conf # ln -sf /run/systemd/resolv/resolv.conf /etc/resolv.conf # systemctl enable systemd-resolved.service # systemctl restart systemd-resolved.service
homebridgeで温湿度も取れる
homebridgeが面白い。plugin 揃ってるので、 部屋の温度湿度をとれるようにしてみた。 データは、サーバに接続している温湿度センサーの usbrh 。
usbrh のデータを、プラグイン homebridge-httptemperaturehumidity で 読み取れるようにしてみた。
<?php
header( "Content-Type: application/json; charset=utf-8" ) ;
$data = shell_exec( "/usr/local/bin/usbrh" ) ;
if ( preg_match( "/^([\d\.]+)\s([\d\.]+)$/" , $data , $match ) ) {
print "{\n\"temperature\": ".$match[1].",\n\"humidity\": ".$match[2]."\n}\n" ;
}
?>
homebridgeで家電制御
iOS 10 で HomeKit のアイコン表示されたし、Siriから家庭内の家電制御ができないかと試してみた。 HomeKit 互換でフリーの実装の homebridge があるみたいなので、 インストールし、設定を行った。
homebridge-cmd を使うと、電源のON/OFFの制御なら、コマンドラインで呼び出せる処理を 起動できる。
{
"bridge": {
"name": "perrine", # ホスト名?
"username": "CC:22:3D:E3:CE:30", # 特になんでもいい。
"port": 51826,
"pin": "031-45-154"
},
"description": "HomeControl by Tira-2",
"accessories": [
{
"accessory": "CMD",
"name": "テレビ",
"on_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\"",
"off_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=regza --transmit=power\""
},
{
"accessory": "CMD",
"name": "チューナー",
"on_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\"",
"off_cmd": "/usr/bin/sg dialout -c \"/usr/local/bin/Tira-2.py --remote=catvstb --transmit=power\""
}
]
}
参考記事だと、制御には insteon+ を使うとの記事が多かったけど、 homebridge を起動して制御させようとするが、機器を認識してくれない。
username とかを色々と試してみたけどダメだったけど、insteon+ を使わずに、 基本の HomeKit アプリを起動したら、あっさり認識。
|
|
|
homebridgeのメモ
iOS 10 に切り替えると、"HomeKit" のアイコンが増える。 家庭内のライトやテレビといった機器のON/OFF制御などが できる機能。
で、調べてみたけど、海外ではそれなりの機器が出ている ようだけど、AmazonやAppleで調べてみても、 電球型のHomeKit対応ライトと言った程度で、便利さを 感じるようなものが出ていない。
我が家では、Tira2 という赤外線リモコンで、家電制御など を使っているので、Siri に「テレビをつけて」をやってみたいと 考えてしまう。
調べてみると、"homebridge"という互換ソフトが出ているみたい。 node.js をベースにしたソフトらしい。
ということで、ひとまず node.js とかを入れてみた。
((node.jsのインストール)) $ sudo aptitude install nodejs npm $ sudo ln -sf /usr/bin/nodejs /usr/bin/node
((homebridgeのインストール)) $ sudo npm install -g homebridge ((コマンドラインベースの命令を呼び出すモジュール)) $ sudo npm install -g homebridge-cmd or $ sudo npm install -g homebridge-cmdswitch2
でも、node.js のことをさっぱり解っていないので、 あとの作業用に、ココまでをメモ。
debianでletsencrypt.shを使ってみた
無料で、SSL鍵を利用できる let's encrypt というソフトが Debian でも使えるようなので、 試してみました。まずは、必要なソフトのインストール。
# aptitude install letsencrypt.sh letsencrypt.sh-apache2
基本は /etc/letsencrypt.sh/config.sh を修正してもいいが、 /etc/letsencrypt.sh/conf.d の中に *.sh の拡張子で設定を保存すると 書いてあるので、 連絡用のメールアドレスなどの登録情報は、この中に保存。
(( /etc/letsencrypt.sh/conf.d/contact_mail.sh )) CONTACT_EMAIL=連絡用メールアドレス
letsencrypt.sh のデータは、/var/lib/letsencrypt.sh/ に保存され、 取得するドメインは、以下のファイルに記載しておく。
(( /var/lib/letsencrypt.sh/domains.txt )) ドメイン
# mkdir /var/lib/letsencrypt.sh/certs # /usr/bin/letsencrypt.sh -c
(出力) # INFO: Using main config file /etc/letsencrypt.sh/config.sh # INFO: Using additional config file /etc/letsencrypt.sh/conf.d/contact_mail.sh + Generating account key... + Registering account key with letsencrypt... Processing ドメイン + Signing domains... + Creating new directory /var/lib/letsencrypt.sh/certs/ドメイン ... + Generating private key... + Generating signing request... :
できあがった、SSL の情報を Apache に設定する。
(( /etc/apache2/sites-available/default-ssl.conf )) SSLCertificateFile /var/lib/letsencrypt.sh/certs/ドメイン/cert.pem SSLCertificateKeyFile /var/lib/letsencrypt.sh/certs/ドメイン/privkey.pem SSLCertificateChainFile /var/lib/letsencrypt.sh/certs/ドメイン/chain.pem # /etc/init.d/apache2 restart
あとは定期的に更新
SSL鍵は、流石に無償だし、有効期限が短い。 定期的に更新が必要。今回は一ヶ月毎に更新。
(( /etc/cron.d/update-letsencrypt )) #m h D M W user command 0 3 1 * * root test -x /usr/bin/letsencrypt.sh && /usr/bin/letsencrypt.sh -c
movabletype-opensourceのCGI制限
自宅のBLOGは、movabletype-opensourceを使っているけど、 一応、サポート切れとなっているため、脆弱性攻撃を受ける可能性もある。 ただ、攻撃といっても、CGI の呼び出し経由だし、コメントやトラックバックも SPAMが多くて使っていないので、記事編集は自宅内のみと割り切って、 アクセス制限を加えてみる。
Alias /mt-static /usr/share/movabletype/static <Directory /usr/lib/cgi-bin/movabletype> # 初期設定の時だけ <Files mt-wizard.cgi> <IfVersion >= 2.3> Require all denied </IfVersion> <IfVersion < 2.3> Deny from all </IfVersion> </Files> # コメントトラックバック <FilesMatch "mt-(comments|tb)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # データ連携 <FilesMatch "mt-(data-api|feed|xmlrpc|atom)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # 検索機能は制限せず #<FilesMatch "mt-(ftsearch|search)\.cgi$"> # ### Require ip 127.0.0.1 192.168.0.0/16 #</FilesMatch> # その他 <FilesMatch "mt-(check|testbg|upgrade)\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> # 基本機能 <FilesMatch "mt\.cgi$"> Require ip 127.0.0.1 192.168.0.0/16 </FilesMatch> </Directory>
HTTP/2の有効化
ネットの記事で、Chrome の SPDY サポート打ち切りなどが 記載されていて、HTTP/2 への移行が進んでいるらしい。
ということで、自宅サーバがどうだっけ?ということで調べると、 HTTP/2 は a2enmod されていないみたい。
(( HTTP/2のモジュールの有効化 )) $ sudo a2enmod http2 $ sudo systemctl restart apache2.service
トップページの reload をかけてみたけど、速くなった気がする。 自宅トップページは、リンク集的によく使うサービスのアイコンを並べてあるけど、 こういう小さいデータは効果がでるはず。
# 気のせいかもしれんけどぉ〜
ifupdown2 のトラブル
ソフトの更新とかかけていて、久々に reboot をかけたら、 パソコンなどが、ネットワークにつながらずトラブル。
確認すると、dhcpd サーバが動いていない。設定ファイルなどを みるけど、特に問題もない。 おかしいおかしいと改めて 確認していると、上流ルータへの ping が通らないことも判明。
理由が分からず、色々動かしていると、eth0 が起動していない(link upしていない)。 ifup eth0 を手作業で実行して、設定をさらに調べていると、 ping 127.0.0.1 さえも通らず、localhost さえ link up していない。
こうなると、/etc/init.d/networking がおかしい…と思うけど、 このご時世は、systemd になっている。なんだかよくわかんないけど、 systemctl -a とかを実行したら、 networking が inactive dead って 表示されている。 そういえば、ひと月ほど前、 ifupdown2 なんていう パッケージに更新した記憶があるし、 どうもこれが原因。
# aptitude install ifupdown
を実行して、再起動したら、すべてがようやく元通り。





