karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

net-dns/https_dns_proxyのserviceファイルを書いた

[Unit]
Description=A lightweight DNS-over-HTTPS proxy. 
Documentation=https://github.com/aarond10/https_dns_proxy
After=network.target
Before=nss-lookup.target
Wants=nss-lookup.target

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/https_dns_proxy -d -b 1.1.1.1,1.0.0.1 -r "https://1.1.1.1/dns-query?ct=application/dns-json&" -p 5353
LimitNOFILE=1048576
Restart=always
RestartSec=3
Type=forking
User=nobody
Group=nobody

[Install]
WantedBy=multi-user.target

/etc/systemd/system/あたりに置いて起動してね
待ち受けるポートが5353になっているのでdnsmasqとかを使わない人は53に戻さないのウンともスンとも言わないと思う
dnsmasqとの併用は前に書いた記事を参照してね
DNS over https + dnsmasqする - karubabuの日記

大体はここから拝借しています…
GitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPS
AmbientCapabilitiesめちゃ便利ですごい

gentoo ebuildでzipをソースとする時は解凍ディレクトリに注意して

tar.xzとかと違うのか、ファイル群をworkディレクトリ直下に散乱させるので${S}の指定を間違えない様にしてねということです

なにがあった

適当にebuildを書いたぞ!と実行してみると、ファイルを解凍直後に
/var/tmp/portage/package_name/work/dirname が見付からなかった
的なメッセージと共に失敗する
'S=${WORKDIR}/${P}'
${S}は合っていそうに見える

どうした

SRC_URIで取得してくるファイルがzipだった場合unpack関数はunzipを使用する
通常のtar.xzやなんやらと違うせいなのか、冒頭の通りworkディレクトリ直下にファイル群がばらまかれる
なので'S=${WORKDIR}`に変更する必要がある

おわりに

ログも消えちゃったしねむいしでめちゃ適当になった
後で自分が困らなければ良いのでこれくらい書けば察してくれるでしょう

書ける!ebuild
☝️(´・ω・`)おまさのりさんの無限にえらい記事です 読んでね

gentoo overlayの準備が出来たはずなのに何もひっかかって来ない

laymanの準備とか万全だと思うんだけれどなー!なんでやー!みたいなのを4時間くらいやってしまった
もっと高いバージョンのパッケージが欲しいのだけれど!とかもこれだった

なにがあった

overlay を使用するためにレポジトリ回りの設定やlaymanの設定を終えてもemerge -s の検索に代わり映えがない
めっちゃ古いバージョン(stable)しかひっかかってこない

どうした

ACCEPT_KEYWORDSを変更していないため見えなくなっている
ACCEPT_KEYWORDS - Gentoo Wiki
ここの通りに/etc/portage/make.confを適当に弄る

おわりに

こんなん書いてないやん!ジャッジー!と思っていたら、
Project:Overlays/Old User Guide - Gentoo Wiki

If Portage isn't picking up the package from the overlay, that's normally because the package is marked ~arch, where "arch" is the architecture of your computer. You'll need to keyword the package as explained in the Gentoo Handbook.

と2行くらいでさらっと書いてあった

py3status iw: command failed

use_sudoが効かない人だった

なにがあった

py3status にあるwifi moduleを使ったらタイトルの様な文字列が赤字で出た
use_sudoを使っても上手いこといかない

どうした

py3status/wifi.py at master · ultrabug/py3status · GitHub
ここの部分の通り、/sbin/iwを踏みにくるので適当にシンボリックリンクを張る ln -s /usr/sbin/iw /sbin/iw
私の場合はこんな感じだったと思う

おあいに

lnの引数の順番無限に間違えているきがする

mkinitcpioするとERROR: file not found: `fsck.btrfs' が出るけれど特に問題なく終了する

タイトルの通りで別に放置していても困っていなかった
でも気になるね

なにがあった

mkinitcpioすると(pacmanlinuxパッケージが落ちてきたりsystemd回りが更新されたりするとこれが始まる)

==> ERROR: file not found: `fsck.btrfs'  
==> WARNING: No fsck helpers found. fsck will not be run on boot.  

なんてログが流れてくる
でも特に困らないし普通にコマンドも正常終了する

どうした

root パーテションはfsckフックによって起動時にfsckが実行される(このフックは重要で、実行されていないと困った時に泣きを見るらしい archwikiがいってた)
ファイルシステムにbtrfsを使っているだけだとbtrfsに関するゆーてれてコマンドが導入されないので

# pacman -S btrfs-progs

することで解決される

おわりに

困る前に気がついてよかったね

参考: mkinitcpio - ArchWiki

DNS over https + dnsmasqする

トレンドなのでやった
特にこれといった目的はないです

なにをした

私の環境はarchなのでpacaurでdnsmasqと、
AURからGitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPSを引っぱってくる

pacaur -S dns-over-https dnsmasq

素の状態で両方systemd経由で起動すると、bind「Address already in use」
と大激怒してくるのでこんな感じで適当に設定する

/etc/dnsmasq.conf

# stops dnsmasq from reading resolv.conf
no-resolv

# add your secureoperator server as the upstream dns server
server=127.0.0.1#5353

ポート番号は何でもよいと思うけれど、#5353をコメントだと思って消すとひどい目にあう(1敗)

/etc/dns-over-https/doh-client.conf

listen = "127.0.0.1:5353"
#以下をCloudFlareを使う用に変更した

ここのポート番号はdnsmasqと同じものを使う

おわりに

wiresharkで確認すると、まず普通にDNSdns.cloudflare.comを名前解決しに行きそこで手に入れたアドレスに対してDNS over HTTPSを叩いているのが見える
最初ip.addr == 1.1.1.1してフィルタを書けてもそれっぽい通信が無くてめっちゃ焦りました(1敗)
使用感は別に変わらないのでdoh-client.confでverbose = trueにしてsystemd経由で眺めたりdigを叩いて確認するときれいでよかった

20180417追記:
AURのパッケージにもアップデートが来た(元々ブログを書いた時にはout of date flagが付いていた)
その結果upstream_googleに"https:/1.1.1.1/dns-query"の様にアドレスを直に書けば初動のdns.cloudflare.comへ名前解決もしなくてよくなったみたい(今までも出来たものなの?)
でもここに"https://[2606:4700:4700::1111]/dns-query"とipv6を書くと403が返ってくる
私が何か間違っているのか対応していないのかわからん…(ジャガー)
20180418追記:
なんか適当なことを言っていたと気が付いたのを直した

openvpnがERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

無いじゃなく君が作るの!!!!!!つくって!

なにがあった

vpngateのopenvpn用コンフィグファイルを使って接続しようとしたら出た

どうした

此れをやる前にpacaur -Syuしてカーネルの更新が入ったのが原因そう?
https://bbs.archlinux.org/viewtopic.php?id=163377
ここでも同じような雰囲気で解決したものがあった

アップデートが入ったら再起動しようね