Cambly lesson with Ank
久しぶりの Ank とのレッスンだった。カナダワーキングホリデーの説明会に参加したことを話した。参加したのは 2 週間くらい前の話だが、しばらく Ank とはレッスンをしていなかったので初めて話したと思う。
その後はカナダについての話などをした。
ネットワーク制限強化
ようやく重い腰を上げてネットワーク制限をより強化した。5 分ごとの cron の監視を observer ごと毎回無効化しながら結局数時間 YouTube を観続けるということを常習してしまっていた。仕事もプライベートのことも全く手につかずひたすら YouTube に明け暮れ続けていた挙げ句に完全昼夜逆転状態にもなってしまっていて、さすがに人間としてヤバいなと思ったので、ネットワーク制限を強化する必要があると感じた。
強化内容としては、手動で observer を無効化した場合にそれを検知してペナルティを与えるというもの。検知方法としては、cron から定期的に observer を起動する際、もし observer が本来起動しているべき時間帯に起動していなければ手動で不正に無効化したと判断する。
ペナルティは Raspberry Pi をシャットダウンさせるか、SSH デーモンを止めてしまい次なる制限解除をできないようにしてしまう 2 パターンを検討している。ただしシャットダウンしてしまうと、万が一、誤作動などで勝手にシャットダウンしてしまう場合に出勤できなくなってしまい困る可能性があるので、SSH のほうが無難かなとは思う。
ちょっと苦労した点としては、制限が (正当に) 解除されている状態から制限をかける際にもペナルティが発生してしまっては困るので、セーフモードというものを実装し、それを適切なタイミングでのみ cron で実行する必要があるということだ。もちろんセーフモードを実装したスクリプト自体は cron 以外からの実行を受け付けないようにしてあるので、不正に手動でこのセーフモードを使ってペナルティなしで制限を解除してしまう、ということは防げるようになっている。
あとやらなければならないのは、システムを起動したときに observer がすべて自動起動するように enable しておくことかな。現在は cron で定期的に起動するように実行しているけど、それだとセーフモードじゃないタイミングでシステムを起動した際に不正に無効化したと判断されてしまう危険性があるからだ。
とりあえず現段階では試験運用ということで、ペナルティを発生させる代わりにログに内容を書き込むだけにしている。特に誤作動などの不具合がなさそうだとわかったら本格稼働しようと思う。