ConoHa を使っていて友達はいないが

注目

CohoHa には「このとも」という友達紹介制度が存在します。

ですが、私には紹介するような友達が居ません。

と言うわけで、以下に「このとも」経由で ConoHa に申し込めるリンクを張っております。上記「このとも」の内容に問題が無くて、ConoHa を始めるような方がいらっしゃれば、クリック頂ければ嬉しいです。

「このとも」経由で ConoHa サイトへ

eo 光ネットの IPv6 接続を専用ルータ無しに利用する

eo 光ネットの「IPv6インターネット接続の標準提供開始のお知らせ」の通り、2018/08/30 より、PPPoE による IPv6 接続サービスが実施されています。

専用ルーターが必要との表記はありますが、市販されていた手持ちの YAMAHA RTX810 で IPv6 接続できたので、設定方法を備忘録代わりに記載します。

なお、当然ながら、非公式であり、完全に自己責任での内容となりますので、ご注意下さい。また、ルーターのログを見ている限り、プロバイダ側での着信方向フィルタリングは存在しないようですので、ルーター側の設定を間違えると、うっかり自 LAN 内の端末がグローバルからアクセス可能となることもあり得ます。十分注意が必要です。

前提としては、eo 光ネットに IPv4 での PPPoE 接続設定が LAN2 を利用して PP 1 として出来ている状態です。
VLAN を切っているため、IPv6 が当たるインタフェースは vlan3 にしていますが、適宜読み替えて下さい。

以下、追加するコマンドです。

pp select 1 
 ppp ipv6cp use on
 ipv6 pp rip send off
 ipv6 pp secure filter in 300011 300012 300013 300014 300015 300016 310011 310012 310013 319998 319999
 ipv6 pp secure filter out 300011 300012 300013 300014 300015 300016 329998 329999 dynamic 320011 320012 320013 320014 320015 329998 329999
 ipv6 pp dhcp service client
pp enable 1
ipv6 filter 300011 reject-nolog * * udp,tcp 135 *
ipv6 filter 300012 reject-nolog * * udp,tcp * 135
ipv6 filter 300013 reject-nolog * * udp,tcp netbios_ns-netbios_ssn *
ipv6 filter 300014 reject-nolog * * udp,tcp * netbios_ns-netbios_ssn
ipv6 filter 300015 reject-nolog * * udp,tcp 445 *
ipv6 filter 300016 reject-nolog * * udp,tcp * 445
ipv6 filter 310011 pass * * icmp6
ipv6 filter 310012 pass fe80::/10 * udp 546 547
ipv6 filter 310013 pass fe80::/10 * udp 547 546
ipv6 filter 319998 pass * * established
ipv6 filter 319999 reject-nolog * * * * *
ipv6 filter 329998 pass * * * * *
ipv6 filter 329999 reject-nolog * * * * *
ipv6 filter dynamic 320011 * * ftp
ipv6 filter dynamic 320012 * * domain
ipv6 filter dynamic 320013 * * www
ipv6 filter dynamic 320014 * * smtp
ipv6 filter dynamic 320015 * * pop3
ipv6 filter dynamic 329998 * * tcp
ipv6 filter dynamic 329999 * * udp
ipv6 prefix 3 dhcp-prefix@pp1::/64
ipv6 vlan3 address dhcp-prefix@pp1::1/64
ipv6 vlan3 dhcp service server
ipv6 vlan3 rtadv send 3 o_flag=on
ipv6 route default gateway pp 1

と言うわけで、専用ルータでなくとも、YAMAHA のルータでも IPv6 で接続できました。

なお、うちのルータですが、vlan1 に既に固定 IPv6 アドレスが当たっているので、恒常的には設定していません。
IPv6 でも、フィルタ型ルーティングの様なことが出来れば良いのですけれど。

・追記

IPv6 での外へのアクセスを eo 光の IPv6 にしてみました。IPv6 はインタフェースに複数の IPv6 アドレスを付けられるので、この部分は凄く便利ですね。

Echo Spot を買ってしまった

正直言って、スマートスピーカーって事実上、合意を持ってサービス提供者からの盗聴を許している様なものなので、全く興味が無かったのだけれど、スクリーンが付いただけでなぜか抵抗感がなくなって買ってしまった。

おそらく、ディスプレイが付くことで端末の動作が視覚化されるので、Echo Spot にはカメラも付いているにもかかわらず抵抗感が減るのではと思う。

セットアップ自体は簡単で、Echo Spot 本体でできる。しかし、ディスプレイのない Echo の場合は、スマートフォンのアプリから設定するのだが、Echo Spot の場合はこれが出来ない。Echo Spot でも同様に出来ると楽なのにと感じた。

単にネットに繋ぐだけなら非常に簡単でよく考えられているとは思うけれど、MAC アドレスフィルタしている Wi-Fi AP に接続する場合はちょっと面倒くさい。

と言うのも、自分が確認した範囲では、Echo Spot の設定が完了していないと、自身の MAC アドレスを知る方法がなかったためである。

と言うことで、一旦 MAC アドレスフィルタのかかっていない AP を設定して、そこに設定してからセットアップし、スマートフォンのアプリから Echo Spot の MAC アドレスを確認し、こちらを AP に登録という手順を踏んで接続という若干面倒な設定となった。これは初期画面に MAC アドレスを表示しても良いのではとは思う。

セットアップ後の動作は問題なく、音声もかなりの精度で認識してくれる。初めてスマートスピーカーを使ってみたのだけれど、音声で指示が出来るのは、ちょっとスター・トレック感があって面白い。

機能の拡張も、スキルを導入することで可能で、これがクラウド側で完結しているのもよく出来ていると思った。色々なスキルを試してみて、ちょっと遊んでみようと思う。

Soundflower で音声を出力しつつ録音する

Soundflower のページに記載されているが、macOS High Sierra において、Soundflower でシステム音声を録音する際に、通常の音声出力にも出力する方法の備忘録。

  1. 「Audio MIDI 設定」を起動して、「オーディオ装置」ウィンドウより、「+」ボタンをクリックし、「複数出力装置を作成をクリック」。
  2. 「複数出力装置」を選択し、右ペインより「内蔵出力」と「Soundflower (2ch)」の「使用」と「音ずれ補正」をチェックする。
  3. 「システム環境設定」を起動し、「サウンド」を選択。
  4. 「出力」を選択し、「サウンドを出力する装置を選択:」より「複数出力装置」を選択する。
  5. 録音するソフトウェア側で「Soundflower (2ch)」を選択する。

Linux: dbus の部分で起動に目茶苦茶時間がかかって、止まったかと思った件

私、sysvinit で Linux を運用していたのだけど、パッケージシステムでうっかり systemd が入ってしまい、再起動したところ dbus のところで起動しなくなった。(ように見えた)

目茶苦茶焦ったのだが、しばらく考え込んでいたところ、どうやらタイムアウトして起動してくれた。(ホッ)

ログを見てみたら、

dbus-daemon[xxxx]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)

とのことで、/etc/nsswitch.conf の

passwd: compat systemd
group: compat systemd

passwd: compat
group: compat

に修正し、再起動で対応完了。

国道 157 号線で、岐阜県から福井県へ

岐阜県と福井県を結ぶ道路と言えば、国道 158 号線が最も使いやすいのではとは思うのですが、それとは別に、

があります。

今回、6 月 20 日頃に、福井県側の通行止めが解除されたので、国道 157 号線を用いて、岐阜県から福井県へ抜けてみました。

岐阜県側のゲートです。写真には写ってはいませんが、この場所にあの「落ちたら死ぬ」の看板もあります。

続きを読む

Let’s Encrypt でワイルドカード 証明書を得る (nsd4 利用)

Let’s Encrypt でワイルドカード証明書を得るためには DNS-01 で認証を得る必要があります。

nsd4 と dehydrated の組み合わせで一応出来たので、備忘録として記載します。なお、マスターサーバ上で実装、bind9 付属の named-checkzone を利用しているので注意して下さい。

・/etc/nsd/zones/example.com (ゾーンファイルの修正)

nsd4 では、動的にゾーンのレコードを追加したり削除したり出来ないので、実際のゾーンファイルを直接書き換えます。

関係ないところを書き換えないためにも、シリアル値を「;SERIAL_START」から「;SERIAL_END」の範囲で、DNS-01 で使う「_acme-challenge」については「;LE_DNS-01_START」から「;LE_DNS-01_END」の範囲でくくります。

$TTL 86400
example.com.		IN	SOA	ns.example.com. root.ns.example.com. (
;SERIAL_START
				2018051301	; Serial
;SERIAL_END
				86400		; Refresh 24 Hours
				7200		; Retry 2 Hours
				1209600		; Expire 2 Weeks
				7200		; Negative cache TTL 2 Hours
			)

					IN	NS	ns.example.com.

;LE_DNS-01_START
;_acme-challenge.example.com.	60	IN	TXT	"NOTHING"
;LE_DNS-01_END

NS					IN	A	192.168.1.1

・hook.sh

dehydrated 同梱の hook スクリプトを以下の様にします。

#!/usr/bin/env bash

deploy_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
    local REGEXDOMAINNAME=`echo ${DOMAIN} | sed -e 's/\./\\\./'`
    local NOWUMASK="`umask`"
    local serial1=`named-checkzone "${DOMAIN}" "/etc/nsd/zones/${DOMAIN}" | awk '/serial/ {print $5}'`
    local serial2=`expr $serial1 + 1`
    
    umask 022
    
    sed -i -e "/;SERIAL_START/,/;SERIAL_END/ s/$serial1/$serial2/" "/etc/nsd/zones/${DOMAIN}"
    sed -i -e "/;LE_DNS-01_START/,/;LE_DNS-01_END/ s/^;_acme-challenge\.${REGEXDOMAINNAME}\..*/_acme-challenge.${DOMAIN}.\t60\tIN\tTXT\t\"${TOKENVALUE}\"/" /etc/nsd/zones/${DOMAIN}
    nsd-control reload
    
    sleep 5
    
    umask ${NOWUMASK}
}

clean_challenge() {
    local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}"
    local REGEXDOMAINNAME=`echo ${DOMAIN} | sed -e 's/\./\\\./'`
    local NOWUMASK="`umask`"
    local serial1=`named-checkzone "${DOMAIN}" "/etc/nsd/zones/${DOMAIN}" | awk '/serial/ {print $5}'`
    local serial2=`expr $serial1 + 1`
    
    umask 022
    
    sed -i -e "/;SERIAL_START/,/;SERIAL_END/ s/$serial1/$serial2/" "/etc/nsd/zones/${DOMAIN}"
    sed -i -e "/;LE_DNS-01_START/,/;LE_DNS-01_END/ s/^_acme-challenge\.${REGEXDOMAINNAME}\..*/;_acme-challenge.${DOMAIN}.\t60\tIN\tTXT\t\"NOTHING\"/" /etc/nsd/zones/${DOMAIN}
    nsd-control reload
    
    sleep 5
    
    umask ${NOWUMASK}
}

deploy_cert() {
}
deploy_ocsp() {
}
unchanged_cert() {
}
invalid_challenge() {
}
request_failure() {
}
generate_csr() {
}
startup_hook() {
}
exit_hook() {
}

HANDLER="$1"; shift
if [[ "${HANDLER}" =~ ^(deploy_challenge|clean_challenge|deploy_cert|deploy_ocsp|unchanged_cert|invalid_challenge|request_failure|generate_csr|startup_hook|exit_hook)$ ]]; then
  "$HANDLER" "$@"
fi

dehydrated の config ファイルの修正

DNS-01 と hook.sh を使う様に指定します。その他は適切に設定して下さい。

CHALLENGETYPE="dns-01"
HOOK=./hook.sh

dehydrated の domains.txt ファイルの修正

以下の様な書式で記載します。

*.example.com > wildcard.exaple.com

証明書発行

後は、いつもどおり証明書を要求すると、DNS-01 で認証され、発行されます。

その他

domains.txt で「example.com *.example.com」の様にすると、example.com に 2 回 DNS-01 認証が発生し、上手くいきませんでした。

iTunes が不安定だったので、再インストール (macOS High Sierra)

macOS High Sierra のソフトウェアアップデートで提供された、「iTunes 12.7.4.76」だが、うちの環境ではアップデート後から iTunes がフリーズする現象が多発したため、再インストールをした。

/Applications/iTunes.app を Finder 上から削除しようとしたところ、アクセス権がないためか、削除できない。

アクセス権を与えようにも、どうも macOS の必須コンポーネントになっているものはアプリケーションを与えられないどころか、ターミナルから root 権限で削除しようとしても削除できない。

ああ、そういえば、rootless という機能の影響かなと思い、Mac を Command + R で起動後、「ユーティリティ」メニューから「ターミナル」を起動し、

cd /Volumes/Macintosh\ HD/Applications
rm -rf iTunes.app

でサクッと削除できた。

あとは、Apple のサイトから、iTunes をダウンロードし、ソフトウェアアップデートを行って、最新版の iTunes にアップデートしたところ、問題が解決した。