以下省略!

タイダルウ(ry ほぼ毎日1記事執筆運動実施中。 ※記事に広告(アフィリエイト)リンクを掲載している場合があります。

【重要】エイプリルフール中止のお知らせ(2019年版)【毎年恒例】

f:id:abyssluke:20201207203540j:plain:w200:left以下省略!から大切なお知らせです

例によってネタが思いつかない、というかネタを作る気がないので、いつものように去年に引き続き今年のエイプリルフールも中止とさせていただきます。あらかじめご了承ください。記事画像は2018/12/08のFGO冬祭りにおいて第2部開発ディレクター、カノウヨシキ氏からもらったステッカー(北海道会場限定)です。

なお明日の記事については、この記事を仕込んでいる時点で全く未定です。あと、まーた去年の記事ほぼコピペだろ、とか言わない。

2019年3月31日 12時00分 @abyssluke

Karnoに届いたspam#137,138 : Reem Al-Hashimy(詐欺) その51,52(Karno)

https://rita.xyz/blog/pixabay/can-297384-svg-w240-fs8-zf.pngspam収集実験用アドレス(Season 5) karno@rita-ch.com(よい子はメール送っちゃダメ)に137,138通目のspamが来たので晒しあげ(#137)晒しあげ(#138)。同じことしか繰り返さないいつもの詐欺師。#137のSubjectにある"/."の意味とは。#138は短いバージョン。 メールカテゴライズ: #137,138: 英語/詐欺

NetworkManager+dnsmasq+Stubbyを使ったDNS over TLSで名前解決する環境を作ったメモ

f:id:abyssluke:20190118175106p:plain:w200:left以前紹介した、Stubbyを使ったDNS over TLS(DoT)での名前解決環境の作り方的なメモ。書いておいて公開していなかったので。
※参考URLは忘れた。
※もしかしたら誤りとかあるかも。

前提

  • systemd環境(Ubuntu 18.04)。
  • NetworkManagerで接続を管理している。
  • IPv4/v6デュアルスタック環境(v4のみであっても適用できるが)。
  • dnsmasqはすでにインストールされているようなのでインストール手順は省略。

Stubbyのインストール

$ sudo apt install stubby

Stubbyの設定

Stubbyの設定ファイルを編集し、ポート53000でリッスン、問い合わせ先サーバーとしてCloudflare DNSを使うように設定する。また原則最上位のサーバーのみ使うように設定(エラー時は次のサーバーに切り替わる)。念の為Cloudflare DNS以外のサーバー(GoogleやQuad9など)も設定しておいたほうがいいかもしれない(ここでは省略する)。

$ sudo vi /etc/stubby/stubby.yml
$ echo /etc/stubby/stubby.yml
〜
listen_addresses:
  - 127.0.0.1@53000
  -  0::1@53000
〜
round_robin_upstreams: 0
〜
tls_connection_retries: 5
〜
tls_backoff_time: 300
〜
upstream_recursive_servers:
  - address_data: 1.1.1.1
    tls_auth_name: "cloudflare-dns.com"
  - address_data: 1.0.0.1
    tls_auth_name: "cloudflare-dns.com"
  - address_data: 2606:4700:4700::1111
    tls_auth_name: "cloudflare-dns.com"
  - address_data: 2606:4700:4700::1001
    tls_auth_name: "cloudflare-dns.com"
〜
$ sudo systemctl restart stubby

NetworkManager/dnsmasqの設定

NetworkManagerの設定ファイルをいじり、dnsmasqをNetworkManager経由で起動させるようにする。
その後、dnsmasqの設定ファイルを作り、Stubbyから引くようにする。cache-sizeも忘れずに(デフォルトが0なため)。

$ sudo vi /etc/NetworkManager/NetworkManager.conf
$ cat /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
〜
$ sudo vi /etc/NetworkManager/dnsmasq.d/default.conf
$ cat /etc/NetworkManager/dnsmasq.d/default.conf
no-resolv
proxy-dnssec
server=127.0.0.1#53000
listen-address=127.0.0.1,::1
cache-size=2000

systemd-resolvedのDNSサーバーを止める

127.0.0.53で動作しているsystemd-resolvedのDNSサーバーを止める。
そしてsystemd-resolvedによって生成されたresolv.confのシンボリックリンクを削除する(NetworkManagerに生成させる)。

$ sudo vi /etc/systemd/resolved.conf
$ cat /etc/systemd/resolved.conf
〜
DNSStubListener=no
$ sudo systemctl restart systemd-resolved
$ sudo unlink /etc/resolv.conf

NetworkManagerにDNSを設定する

nmcliでローカルのDNSを使うように強制する。nmcli con*1で適用する接続のUUIDを確認し設定する。

$ sudo nmcli con
NAME        UUID                                  TYPE      DEVICE  
docker0     12345678-9abc-def0-1234-567890abcdef  bridge    docker0 
有線接続 1  09876543-21fe-dcba-0987-654321fedcba  ethernet  enp4s4 
$ sudo nmcli con mod 09876543-21fe-dcba-0987-654321fedcba ipv4.ignore-auto-dns yes
$ sudo nmcli con mod 09876543-21fe-dcba-0987-654321fedcba ipv4.dns 127.0.0.1
$ sudo nmcli con mod 09876543-21fe-dcba-0987-654321fedcba ipv6.ignore-auto-dns yes
$ sudo nmcli con mod 09876543-21fe-dcba-0987-654321fedcba ipv6.dns ::1
$ sudo nmcli con up 09876543-21fe-dcba-0987-654321fedcba
(もしかしたらNetworkManagerごと再起動するか(↓)、PC再起動したほうがいいかも)
$ sudo systemctl restart NetworkManager

確認

Wiresharkで"port 53 or port 853"のルール*2でパケットキャプチャを開始し、1.1.1.1:853*3への暗号化通信のみがあれば大丈夫。
またCloudflare DNSが使われているかどうかはhttps://1.1.1.1/helpを確認すればよい。

キャッシュの確認はdigコマンドを2回連続で実行してみる。

$ dig example.com

; <<>> DiG 9.11.3-1ubuntu1.5-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46218
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
; PAD: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ("....................................................................")
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		10457	IN	A	93.184.216.34

;; Query time: 145 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Fri Mar 29 17:36:21 JST 2019
;; MSG SIZE  rcvd: 139

$ dig example.com

; <<>> DiG 9.11.3-1ubuntu1.5-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 686
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.			IN	A

;; ANSWER SECTION:
example.com.		10455	IN	A	93.184.216.34

;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Fri Mar 29 17:36:23 JST 2019
;; MSG SIZE  rcvd: 56

dnsmasqの使用状況・キャッシュ状況(ヒット数など)の確認はdnsmasqに対してSIGUSR1を送り、syslog等を確認する。

$ sudo pkill -USR1 dnsmasq
$ tail /var/log/syslog
〜
Mar 29 17:34:39 hogehoge dnsmasq[1309]: time 1553848479
Mar 29 17:34:39 hogehoge dnsmasq[1309]: cache size 2000, 0/2505 cache insertions re-used unexpired cache entries.
Mar 29 17:34:39 hogehoge dnsmasq[1309]: queries forwarded 1027, queries answered locally 454
Mar 29 17:34:39 hogehoge dnsmasq[1309]: queries for authoritative zones 0
Mar 29 17:34:39 hogehoge dnsmasq[1309]: server 127.0.0.1#53000: queries sent 1027, retried or failed 0
〜

*1:connectionの略。cでも可

*2:すでにキャプチャを開始していた場合はフィルタで「tcp.port == 53 || tcp.port == 853」を適用すればよい

*3:サーバーの状況によってはIPアドレスが異なるかも

Karnoに届いたspam#136 : Reem Al-Hashimy(詐欺) その50(Karno)

https://rita.xyz/blog/pixabay/can-297384-svg-w240-fs8-zf.pngspam収集実験用アドレス(Season 5) karno@rita-ch.com(よい子はメール送っちゃダメ)に136通目のspamが来たので晒しあげ。同じことしか繰り返さないいつもの詐欺師。ついに50通目突破。Karno時代より前も含めると70通以上か。 メールカテゴライズ: #136: 英語/詐欺

年度末恒例のアレはもう仕掛けてあります

https://rita.xyz/blog/irasutoya/job_supermarket_tencho_sorry-w150-zf.pngどうでもいい記事です。年度末恒例、例のアレはすでに仕掛けてあります。どうぞご期待しないでください。また、gudako.netのWebサイトをNetlifyを使って構築するテストを始めたようです。静的サイトジェネレーターで作ってみたいですね?

Karnoに届いたspam #133-135: 監視カメラアクセサリー販売 その14 / ほか2通

https://rita.xyz/blog/pixabay/can-297384-svg-w240-fs8-zf.pngspam収集実験用アドレス(Season 5) karno@rita-ch.com(よい子はメール送っちゃダメ)に133-135通目のspamが来たので晒しあげ。

#133: 監視カメラアクセサリー販売 その14先日の#131と同一。個人に営業しても無駄なんですけどねぇ。

#134: Reem Al-Hashimy(詐欺) その49。同じことしか繰り返さないいつもの詐欺師につき以下略。

#135: Sandra Sangunsky(詐欺)。詐欺師が演じているキャラが病気(重病)持ちで、亡くなった夫の遺産(投資金)の何割かを慈善事業とかに回して残りの金は自分に〜な典型的詐欺メールパターン。なんでフッターが"Mrs. Nicole"なのか……複数キャラ演じている関係で変えるのを忘れていたとか?あとSubjectの3月30日やFromのEmail Supportの意味とは。

メールカテゴライズ: #133: 英語/販売系 / #134,135: 英語/詐欺

Ubuntu 14.04→18.04へアップグレード後のHTTPサーバー復旧の裏側

https://rita.xyz/blog/irasutoya/koushin-w200-zf.png先日実施したVPSのUbuntu 18.04へのアップグレードにおいて、16.04に上げて再起動した後、nginxが正常に立ち上がらずHTTPサーバーが1時間15分ほどにわたって停止していた。これは恐らくUpstartからSystemdになったことに伴うものと思われる。そのため18.04にアップグレード後、(念の為)nginxを再ビルド・インストールした上で、/etc/init.dからnginxを削除、/dev/nullに向いていた/etc/systemd/system/nginx.serviceも削除、このGistにあったやつを若干弄って(PIDFile絡み)、/lib/systemd/system/nginx.serviceに配置、再起動*1で正常に起動するようになった。その後、ownCloudのアップデート*2PHPのアップデート(7.0系→7.2系に切り替え)を行ったのは秘密。なお、MariaDB, RedisなどのHTTPサーバー以外のサービスはアップグレード後も正常に動作していた。

*1:systemctlでどうにかなると思うけど……

*2:アップデート後、何故か暗号化モジュールが無効化されていて少し苦戦した…… そして仕様変更で一部アプリの挙動がおかしくなった……