おうちサーバのubuntuをクリーンインストールしてからやったこと その2

7月24日編

dnsmasqのインストール

 wifi接続のAndroidからもローカルサーバを名前で見に行けるように。aptして、/etc/dnsmasq.confをコピー。
 ところがエラーが出る。

kazz@lance ~# systemctl status dnsmasq.service |cat 
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2020-07-24 08:57:01 JST; 10min ago
    Process: 100337 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
    Process: 100348 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=2)

 7月 24 08:57:01 lance systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
 7月 24 08:57:01 lance dnsmasq[100337]: dnsmasq: syntax check OK.
 7月 24 08:57:01 lance dnsmasq[100348]: dnsmasq: failed to create listening socket for port 53: アドレスは既に使用中です
 7月 24 08:57:01 lance dnsmasq[100348]: failed to create listening socket for port 53: アドレスは既に使用中です
 7月 24 08:57:01 lance dnsmasq[100348]: FAILED to start up
 7月 24 08:57:01 lance systemd[1]: dnsmasq.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
 7月 24 08:57:01 lance systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
 7月 24 08:57:01 lance systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
kazz@lance ~# sudo systemctl disable systemd-resolved
Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service.
Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service.

 53番ポートが使用されているとな。検索。
hikalium.hatenablog.jp
 systemd-resolvedというデーモンが動いているのか。停止&削除。
 service statusの出力が改行されないのでメッセージが見られず、途方に暮れたが、catにパイプしたら表示された。

 ところが、なんかおかしい。DNSが機能していないもよう。いろいろ検索して試してみたけど、どうしてもうまくいかず、いったんdnsmasqをアンインストール。
 resolvedにローカルサーバを追記できたりはせんのかな。さっと探したところではわからんかった。

 あちこちで「NetworkManagerを再起動したら/etc/resolv.conf(シンボリックリンク)が自動生成される」と書いてあるけど、netplan generateじゃないと生成されなかった。

postfixのtlsの設定

 gmailからメールを受けられていない状態が解消できていない。いわく「454 4.7.0 TLS not available due to local problem」。ということで、TLS関連ということはわかった。main.cfには

smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key

 とあるので該当ファイルを新旧比較してみる。certsの方は違っているのでバックアップを取って旧ファイルをコピー。privateの方はタイムスタンプ、サイズ、所有者とも同じなのでそのまま。postfixをリスタートしたら受信できるようになった。

7月25日編

dnsmasq再挑戦

 どうやってもうまくいかなかったが、よう考えたらおうちサーバはローカルネットワークのドメインをhostsから読んでいるのでdnsmasqを使う必要はない。/etc/NetworkManager/NetworkManager.conf には「dns=dnsmasq」を記入しない(コメントアウト)ようにして、 /etc/systemd/resolved.conf は23番ポートを明け渡すように「DNSStubListener=no」を記入し、リスタート。おうちサーバ内で名前を引けていたし、クライアントPCから @192.168.1.22 を付けてdigしてもローカル、グローバルとも引けていた。
 一件落着。

7月26日編

apt-cacher-ngのインストール

 クライアントPCからaptできない。

アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
1,477 kB のアーカイブを取得する必要があります。
この操作後に追加で 7,005 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
エラー:1 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 libx86emu2 amd64 2.4-1
  192.168.1.22:3142 (192.168.1.22) へ接続できませんでした。 - connect (111: 接続を拒否されました)
エラー:2 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 libhd21 amd64 21.68-1
  192.168.1.22:3142 へ接続できません:
エラー:3 http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 hwinfo amd64 21.68-1

 ローカルネットワーク内のサーバを見に行こうとしている。DNSがおかしいのか?でもchromeは普通に使えてるぞ。

kazz@oscar ~# ping jp.archive.ubuntu.com
PING ubuntutym3.u-toyama.ac.jp (160.26.2.187) 56(84) バイトのデータ
64 バイト応答 送信元 ubuntutym3.u-toyama.ac.jp (160.26.2.187): icmp_seq=1 ttl=56 時間=15.7ミリ秒
64 バイト応答 送信元 ubuntutym3.u-toyama.ac.jp (160.26.2.187): icmp_seq=2 ttl=56 時間=16.7ミリ秒
64 バイト応答 送信元 ubuntutym3.u-toyama.ac.jp (160.26.2.187): icmp_seq=3 ttl=56 時間=16.0ミリ秒
64 バイト応答 送信元 ubuntutym3.u-toyama.ac.jp (160.26.2.187): icmp_seq=4 ttl=56 時間=15.9ミリ秒

--- ubuntutym3.u-toyama.ac.jp ping 統計 ---
送信パケット数 4, 受信パケット数 4, パケット損失 0%, 時間 3004ミリ秒
rtt 最小/平均/最大/mdev = 15.702/16.067/16.650/0.352ミリ秒
kazz@oscar ~# nslookup jp.archive.ubuntu.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
jp.archive.ubuntu.com	canonical name = ubuntutym.u-toyama.ac.jp.
ubuntutym.u-toyama.ac.jp	canonical name = ubuntutym3.u-toyama.ac.jp.
Name:	ubuntutym3.u-toyama.ac.jp
Address: 160.26.2.187

kazz@oscar ~# dig jp.archive.ubuntu.com

; <<>> DiG 9.16.1-Ubuntu <<>> jp.archive.ubuntu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60897
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;jp.archive.ubuntu.com.		IN	A

;; ANSWER SECTION:
jp.archive.ubuntu.com.	34	IN	CNAME	ubuntutym.u-toyama.ac.jp.
ubuntutym.u-toyama.ac.jp. 21034	IN	CNAME	ubuntutym3.u-toyama.ac.jp.
ubuntutym3.u-toyama.ac.jp. 21034 IN	A	160.26.2.187

;; Query time: 14 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 日  7月 26 09:05:32 JST 2020
;; MSG SIZE  rcvd: 129

kazz@oscar ~# 

 DNS的には問題なく、ドメイン名を引けている。apt内部の問題っぽい。「apt dns」で検索してもそれらしき事例は見当たらない。
 あれこれ設定を変えたりしても変化なし。proxy的な話かなと思って「apt proxy」で検索してリザルトを見てやっとで思い出した。3台のPCでaptするのでプロキシサーバを立てたんだった。apt-cacher-ngをインストール。お家サーバ自体もaptが自身のプロキシサーバを利用するように設定。

cron-aptをインストール

 aptして、 /etc/cron-apt/config をコピーして、cronをリスタート。

apt-cacher-ngの設定

 おうちサーバも自身のapt-cacher-ngを見に行くようにしたらsyncthingのリポジトリを見に行く時にエラーが出ている。/etc/apt-cacher-ng/acng.conf を覗いてみて、Dntcacheあたりに設定したらいいのかと思って

DontCache: *.syncthing.com

 としてみたけど、変化なし。
 検索したら1年前の自分のエントリー発見。すっかり忘れていた。
doroyamada.hatenablog.jp
 httpsをまるごとパスすればいいのか。ここはあえてその時のソリューションではなく、Dontcasheでやってみた。

DontCache: https://.*

 とりあえずエラーは出なくなった。

PassThroughPattern: https://.*

 でもいけるかも。