sshその3(sshdの設定)

sshdをインターネットからアクセスできるマシンで起動する
=世界中(⊃悪意を持った集団)からもアクセスを受け付けること。

特にsshdは
  • みんな使っている
  • ログインに成功すれば普通にマシンにログインしたのと同等の権限を持つことが多い
ので標的にされやすい。

(実習4.1) sshdの設定ファイルをいじる

設定ファイルは /etc/ssh/sshd_config にある。編集のためには管理者権限が必要なので、メニューから起動するのではなく端末から

$ sudo editor /etc/ssh/sshd_config

とする。

特に注意すべき以下の2点について項目を見つけ設定を変更する。

SSHプロトコル2のみを許可する(SSHプロトコル1は古く、セキュリティを十分に確保できないので)。


Protocol 2,1


Protocol 2

に変更。

root(管理者)でのログインを許可しない。


PermitRootLogin yes


PermitRootLogin no

に変更。

Ubuntuでは特にこの設定をしなくとも、デフォルトの状態ではrootログイン自体できない(なぜか?)

以下二点はインターネットからアクセス出来るサーバで使う上では望ましい設定である。実習中に変更する場合は相手が公開鍵でログインできるようになってから行うこと。

パスワードを使ったログインを許可しない(公開鍵認証でのみログインを許可する)

#PasswordAuthentication yes


PasswordAuthentication no

に変更。

Xウィンドウ転送を許可しない

X11Forwarding yes


X11Forwarding no

に変更。

他、必要に応じて
  • ssh接続可能ホスト/ユーザの制限
  • ポート番号の変更
等の設定も行える。

設定が終了したら、Ctrl+o, Enterで上書き保存。Ctrl+xでエディタから抜け出す。

以上設定を終えたら、sshdに新しい設定を読み込ませる

$ service ssh reload

相手側のsshdの設定が終了したら、一度認証エージェントを停止させる。

$ ssh-agent -k

その上で、秘密鍵の名前を変更しておく。

$ mv .ssh/id_rsa .ssh/id_rsa.enshutmp

この状態で相手マシンにログインしようとしても失敗することを確認する。確認後、鍵の名前を元に戻しておこう。

$ mv .ssh/id_rsa.enshutmp .ssh/id_rsa

こういった設定は当然ながら制限を課すので不便を強いる結果になるし、
逆に場合によっては必要に応じて上記の設定を緩めなければならないので
どういう目的で使用するのか
をきちんと決めた上で運用を行いたい。


sshの設定だけでなく
  • パッケージのセキュリティアップデート
  • 弱いパスワードを設定しない
  • 不要なアカウントを放置しない
などの対策も怠らないこと。

(実習4.2) ログの確認

存在しないユーザでログインしてみる(当然失敗する)

$ ssh nosuchuser@eduxxa

ログインに失敗すると、相手のマシンのログにその形跡が残っている

相手にも侵入を試みてもらって自分のマシンのログにその形跡が残っていることを確認しよう

$ sudo tail -20 /var/log/auth.log

異常な点があればログに記録されるので、サーバを運用する場合でログのチェックは「必ず」行うこと(直接チェックするのは大変なので自動化するツールを用いるとよい)。

Comments