ミッション サーバーを固める
入口の話を、ひとつの状態にまとめる
この章では4つのことをやりました。専用ユーザーを作り、鍵で入れるようにし、緩い入口を締め、通す番号を絞りました。ばらばらに見えますが、狙いはひとつです。入れる人と入れる経路を、必要な分だけに減らす。
最後に、その状態が本当に成立しているかを一気に確かめます。守りの設定は「やったつもり」がいちばん危ないところです。書いたかどうかではなく、効いているかどうかで見ます。
確かめるべき5つ
- deploy ユーザーが居て、サイトのディレクトリを持っている
- 鍵が登録されていて、権限が正しい
- root での直接ログインとパスワード認証が、実際に無効になっている
- ufw が有効で、22 番と 80 番だけが通っている
- 待ち受けている番号が、通している番号と噛み合っている
3番目に「実際に」と書いたのは、sshd -T で解決後の値を見るという意味です。ファイルに書いた行と、効いている値は別物でした。
点検の結果を1つのファイルに残す
運用では、いまの状態を書き出して残す習慣が効きます。あとで「いつからこうなっていたのか」を追えるからです。
{
echo '--- sshd ---'
sshd -T | grep -iE 'permitrootlogin|passwordauthentication'
echo '--- ufw ---'
ufw status verbose
echo '--- listening ---'
ss -tlnp
} > /root/security-report.txt{ ... } > ファイル は、中括弧で囲んだ範囲の出力をまとめて1つのファイルに送る書き方です。1行ずつ >> で追記していくより間違えにくく、途中で書き忘れることもありません。Linux 入門で書いた backup.sh でも同じ形が使えます。
締めたあとに、必ずサイトを見る
守りを固めたつもりで、配信を止めてしまうのはよくある失敗です。80 番の許可を入れ忘れる、nginx を止めたまま忘れる、といったところです。
最後は必ず curl でトップページを開いて終わります。3章で作った /works/ と自分の 404 も、ついでに見ておきます。設定を変えたら、利用者から見える形で確かめる。この癖が付いていれば、静かに壊れたまま気づかない事態を避けられます。
手を動かす
この章の4つを揃った状態にして、点検の結果を1つのファイルに書き出します。サイトが生きていることも忘れず確かめます。