Jekyll で作ったブログのレポジトリに dependabot から PullRequest が来ていたのでマージしてみました。 今回はついでに他の Gem もアップデートしたので、コマンドラインからマージしました。
来た PullRequest は Bump nokogiri from 1.10.7 to 1.10.8 #1 です。
PR のブランチは dependabot/bundler/nokogiri-1.10.8 に切られていました。 単に git fetch すれば降ってきます。 git merge dependabot/bundler/nokogiri-1.10.8 すれば手元でのマージができるので、 git push origin master して PullRequest のマージが完了します。 PR のブランチは push 時に自動で削除されました。
git fetch -p すればリモートトラッキングブランチが削除されて、全て完了します。
CVE などを購読して使っているソフトウェアのバージョンを管理するのは大変なので、 (GitHub 上の OSS に限りますが)セキュリティの問題を監視してもらえるのは助かります。 (今回は static なページだったのであまり影響はないと思いますが……。)
クライアント側もドメイン側も、設定するだけで DNSSEC が使える状態になっていたので、両方とも設定して DNSSEC を有効にしてみました。
クライアント設定 DNS リゾルバは systemd-resolved を使っているので、 DNSSEC 対応の DNS サーバーが使われていれば DNSSEC が有効になります。 1.1.1.1 や 8.8.8.8 は DNSSEC に対応しています。 しかし、ルーターなどが提供するリゾルバは対応していないことが多いので、それをデフォルトで使っていて無効になっていました。 1.1.1.1 を直接使うように設定するには、 /etc/systemd/resolved.conf に以下の行を追加します。
DNS=1.1.1.1
あとは sudo systemctl restart systemd-resolve を実行して、 systemd-resolved サービスを再起動すれば有効になります。
有効になっていれば、 resolvectl query sigfail.verteiltesysteme.net を実行すると invalid とエラーが出るはずです。
ドメインの設定 DNSSEC対応の独自ドメインを年額$0.88で運用できるよという話 を見ると、海外のレジストラは DNSSEC に対応しているところが多いようです。 私の使っている nyaw.dev は Gandi で取得したため、ボタン1つで有効化することができました。
nyaw.dev - dnsviz を確認すると、正常に設定されていることが確認できます。
といっても、リダイレクトさせているのであんまり嬉しくはないんですが……。
ブログだけではなくポートフォリオも含めてページを充実させていって、ドメイン設定もきちんとしていこうと思っています。
Linux デスクトップで、他のデバイスを VNC などを使って仮想的にワイアレスディスプレイとして使うために、 仮想ディスプレイを追加する方法を調べました。
余っているディスプレイ出力を使う [SOLVED] Creating a Virtual Display/monitor - Arch Forum を見ると、余っている(ディスプレイを接続していない)ディスプレイ出力を使用して仮想ディスプレイを作成することができるようです。 ディスプレイを接続して表示している状態で切断した状態と同じだと思います。
ただ、前回これを使って VNC で接続した場合、リフレッシュレートがかなり下がってしまっていた記憶があるため、 他の方法を探してみました。
VIRTUAL1を作成する Add VIRTUAL output to Xorg - Stack Exchange を見てみると、 intel ドライバを使って VirtualHeads を作成することができるようです。
sudo pacman -S xf86-video-intel cat <<EOH | sudo tee /etc/X11/xorg.conf.d/20-intel-virtual-heads.conf Section "Device" Identifier "intelgpu0" Driver "intel" Option "VirtualHeads" "2" EndSection EOH Xorg を再起動すると、output として VIRTUAL1 が追加されています。
ただ、 Intel Graphics - Arch Wiki に書かれていますが、 xf86-video-intel は非推奨扱いになっていて、標準の modesetting ドライバが推奨されているようです。...
AWS のキーペアは RSA しか対応していないと思いますが、最近は RSA を使うこともかなり減っていて、新しくセットアップした PC などでは ECDSA/Ed25519 のキーしか作っていないこともあります。 そこで、 UserData を使って普段使いの SSH キーを取得して SSH できるようにしました。
UserData AmazonLinux2 を使っているので、ログインユーザーは ec2-user です。
UserData を以下のようにします。
#!/bin/bash set -eu curl https://github.com/ny-a.keys >> /home/ec2-user/.ssh/authorized_keys AmazonLinux に入っている OpenSSH のバージョンが古くて RSA にしか対応していないわけではないので、 authorized_keys に入れてあげさえすれば使うことができます。
AWS のキーペアで管理しないため、本番環境などでは何か問題があるかも……とは思いますが、普段使いのキーを使える上に、 普段使いのキーを更新したあとに起動したインスタンスは新しいキーを使えるようになるので、利便性は高いんじゃないかなと 思います。
とりあえず、開発中などはこのようにすると便利そうだと思いました。
AWS のアカウントを CLI から操作することが多いので credentials を保存しているのですが、 権限を多く持ったユーザーの認証情報を持っておくのは少し不安になったので、 AssumeRole を使って普段はあまり権限を 持たないユーザーの認証情報を持っておくことにしました。
方法 方法は How do I assume an IAM role using the AWS CLI? に書いてある通りです。
AssumeRole 時に MFA を要求するように設定することもできます。
また、 Using an IAM Role in the AWS CLI に記載のあるように、 AWS CLI では --profile オプションで指定することにより、自動で簡単に AssumeRole を 使用することができます。
MFA を併用することで、 TOTP をパスワードとした sudo のような操作も可能になります。 また、検証環境と本番環境のロールを分けるといったことも考えられます。 誤操作を防ぎ、安全性を高められると思うので、このような機能は積極的に使っていこうと思いました。
ArchLinux をインストールしているノート PC に rng-tools をインストールして、 初期設定の状態で rngd.service を起動していたのですが、乱数生成が遅く感じたので調べてみました。
乱数生成の速度計測 乱数生成の速度の計測は以下のコマンドで行いました。
sudo dd if=/dev/random of=/dev/null bs=1 count=1000000 iflag=fullblock status=progress この結果が、前から使っているノート PC では 400kB/s 程度出ていて、 Rng-tools - ArchWiki では 50kB/s 程度出ていれば問題ないと書かれていますが、 新しい方のノート PC では 4kB/s 程度でした。
/dev を確認してみると、 /dev/hwrng は存在して、 rngd もそれを認識して正常に使用しているようでした。 搭載している tpm は 2.0 で、特に tpm 関連のエラーも出ていません。 また、 lscpu で確認すると、 rdrand rdseed 両方のフラグが立っています。
rngd のソースの優先順位 rngd(8) の Entropy_Source を見ると、
hwrng tpm rdrand darn nist jitter pkcs11 の順で使用するようです。...
Linux 3.13 から利用可能な、 iptables を置き換える(ことを目的とした)パケット分類フレームワークの(ファイアーウォール?) nftables を、 docker を使っている環境で使ってみました。
インストール・有効化 Docker から使うには、 iptables の互換フロントエンドをインストールする必要があります。 nftables と一緒にインストールするには、以下を実行します。 (iptables-nft は iptables を置き換えます。)
sudo pacman -S nftables iptables-nft nftables.service を起動すると、 /etc/nftables.conf から設定を読み込みます。 起動・自動的に起動するようにするには、以下を実行します。
sudo systemctl enbale --now nftables ArchLinux の nftables パッケージの etc/nftables.conf には、 シンプルでセキュアなファイアーウォールが設定されています。 1:0.9.3-1 時点での設定内容は以下の通りです。
#!/usr/bin/nft -f # ipv4/ipv6 Simple & Safe Firewall # you can find examples in /usr/share/nftables/ table inet filter { chain input { type filter hook input priority 0; # allow established/related connections ct state {established, related} accept # early drop of invalid connections ct state invalid drop # allow from loopback iifname lo accept # allow icmp ip protocol icmp accept ip6 nexthdr icmpv6 accept # allow ssh tcp dport ssh accept # everything else reject with icmpx type port-unreachable } chain forward { type filter hook forward priority 0; drop } chain output { type filter hook output priority 0; } } # vim:set ts=2 sw=2 et: Docker を使用するための設定 標準のままだと、 Docker コンテナとの通信は forward チェインのルールにより drop されてしまいます。 docker エンジンによって作成される DOCKER-USER チェインのパケットを accept するには、以下のコマンドを実行します。...
Linux でマルチモニタ環境で使用する場合、モニタの設定は xrandr などを使って行いますが、 解像度の高い設定にしている状態でケーブルを抜き、解像度の低いモニタに接続した場合、 前は割とひどいことになったような気がしていたのですが、今試したところ最適な感じで縮小されて 表示されたので、動作を調べてみました。
既にタイトルに書いてある通りこれは勘違いで、 xrandr は設定してある解像度で出力しているだけで、 モニタ側が自動で縮小してくれていたようでした。 モニタで縮小していても、 xrandr --output DP-1 --scale-from 1920x1080 のように xrandr で縮小しても、 見た目は変わらないので……。
全部 FullHD のモニタで統一すれば何も問題はないですが、現状そうなってはいないので…… まあモニタの接続を変更することは基本的にないので、出先等で何かする場合以外は特に問題になることもなさそうではあります。
DNSSEC の Root KSK Ceremony が、金庫が開かなくなったため延期されていたようです。
Rescheduling Root KSK Ceremony 40 で告知されていますが、 @joao_damas さんのツイート で写真を見ると分かりやすいですね。
IANA のサイト では、延期されたセレモニーの動画を見ることができます。 HSM を使っていたり、かなり厳重なセキュリティを確保しているのが分かりました。
ターミナルエミュレータは rxvt-unicode を使っていて、デフォルトの白背景で使っているのですが、 黄色の文字がどうにも見えなくて困っていました。
ターミナルの基本的な ANSI escape sequence に対応する色は ANSI_escape_code - Wikipedia に一覧があります。 rxvt-unicode は xterm のものとほぼ同じようです。
白背景で見やすい色の組み合わせを探してみたところ、 jeffkreeftmeijer/appsignal.terminal が白背景でも黒背景でも見やすく感じたため、試してみました。
itermcolors は XML で RGB それぞれ 0-1 の実数値で表現されているようなので、きっと先人が hex に変換するスクリプトを 公開しているはずです。 Gist にありましたが、 Color Space が入っているものに対応していないようだったので、少し修正して Gist に公開しておきました。
さて、基本は上記スクリプトで変換して Xresources に設定するだけですが、赤だったところが青になったり、少し違和感を 感じました。そこで、色の対応を似ているものに変更してみました。
URxvt.color0: #463f31 URxvt.color4: #3316c3 URxvt.color2: #50af4c URxvt.color6: #04aaef URxvt.color5: #c46109 URxvt.color1: #8f0c8a URxvt.color3: #8a7d06 URxvt.color7: #c5beb0 URxvt.color8: #5f584a URxvt.color12: #7255ff URxvt.color10: #8fee8b URxvt.color14: #43e9ff URxvt.color13: #ffa048 URxvt.color9: #ce4bc9 URxvt....