2023-07-12 (Wed)

生協食堂が、体組成(タニタ Inner Scan 50V BC622)・握力・血圧などを測って管理栄養士から助言をもらうというイベントをやっていた。

180 cm (その場で測ったわけではない), 55.3 kg, BMI 17.1。体脂肪率 11.1 %・標準、筋肉量 46.6 kg・少ない、推定骨量 2.6 kg、内臓脂肪レベル 1.5 (単位不明)、基礎代謝 1342 kcal/day・多い (どうやって計算してるんだろう)、体内年齢 25 歳、体水分率 58.4 % となった。握力は、握力計が置いてあって勝手にやってくださいという感じだったので、正しいポーズでやれていない気がするが、右左が 43/36 kg となり、かなたその 55 kg がすごいということを実感したw また、カゴメのベジチェックとかいう謎の装置も置いてあり、皮膚の吸光度でカロテノイドの量を測定するらしく、スコア 5.8、推定野菜摂取量 300 g/日 (推奨 350 g)と出た。

rsync 専用サーバを作る

知り合いにファイルを渡す必要が生じた。Google Drive などにアップして共有リンクを送ってもよいが、せっかくなので自宅のコンピュータに rsync でアクセスしてもらうことにした。

SSH のパスワード認証を禁止する

まず、SSH においてパスワードによる認証を禁止した。

/etc/ssh/sshd_config にて PasswordAuthentication no としてから sshd を再起動するだけだと思っていたのだが効果なし。 "SSH - PasswordAuthentication no has no effect" によると、UsePAM yes の場合は KbdInteractiveAuthentication no も必要とのことだった。なお、ChallengeResponseAuthentication を指示しているサイトもあるが、これは KbdInteractiveAuthenticationdeprecated aliasとのこと。

ところが上記の設定を行っても、依然としてパスワード認証ができてしまった。 "PasswordAuthentication no, but I can still login by password" に答えがあった。/etc/ssh/sshd_config.d/ 以下のファイルが include されているが、同じオプションが複数回指定された場合は最後ではなく最初に読んだ値が適用されるとのこと。実際、/etc/ssh/sshd_config.d/50-cloud-init.confPasswordAuthentication yes となっていたので、これを除去する必要があった。

特定フォルダからの rsync のみを許可する

次に、目的ユーザが特定フォルダからの rsync だけできるようにし、ログインや port-forward など他の操作をできないようにした。

ChrootDirectory による chroot jail を用いた方法を考えたのだが、"Rsync with ssh-keygen to ssh user with limited commands and specifc directory' によると rrsync というツールでもっと簡単に実現できるという。

目的ユーザのアカウントを作成し、その .ssh/authorized_keys にて、

command="/usr//bin/rrsync -ro /path/to/restricted/folder",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa ...

とした。... の部分は公開鍵。

これで、/path/to/restricted/folder からの読み取りアクセスしかできなくなる。ユーザ側ではこのフォルダがルートに見えるので、

rsync -avuP username@wan_address:/ /local/destination

のような使い方になる。

NAT-PMP

最後に当該サーバに NAT の外部からアクセスできるようにした。

natpmpc -a 10000 22 tcp 600

のようにすると、localhost の port 22 をルータの WAN 側 port 10000 に map できる。最後の数字は mapping の有効期限であり、ここでは 600 秒とした。Mapping を直ちに解除するには、有効期限 0 秒を指定すればよい。

なお、うちのルータでは NAT-PMP が無効になっていてもこのコマンドで WAN 側 IP アドレスを取得するところまでが動作し、その後で Not authorized というエラーになるという挙動を示した。そのため、NAT-PMP が無効になっているということになかなか気づかず、戸惑った。

読んだ

見た

  • "Goose Visits Man Who Rescued Her Every Day | The Dodo"
    萌える。

  • "Hawk Alarm (for chickens)"
    警戒音を人が真似て、ニワトリの群れが反応しているが、とりさんの知っているニワトリの警戒音はこの「ぅわぁぁぁぁぁぁぁぁぁ」って音じゃなくて、13 秒目あたりで反応して鳴いている「コケーーーーーコッコッコ」のような声である。この「ぅわぁぁぁぁぁぁぁぁぁ」はメンドリがたまに出すけど警戒音ではないと理解している。なお、「くぅわーー、かーー、かーー、かーー」は卵を生んだよという合図。