SSH 基本的なセキュリティ対策

/ Linux/Unix / Comment[0]
ポートを変更しよう
デフォルトの22ポートはブルートフォースアタックに非常に狙われやすいので別のポートに変更しよう。
sshdのポートを変更するには、/etc/ssh/sshd_configに↓を追記する。

 /etc/ssh/sshd_config
Port 37383

sshdを再起動
Phantom0:$ sudo /etc/init.d/ssh restart

sshをオプション無しで実行するとデフォルトでは22ポートへアクセスしようとするので
Phantom1:$ ssh Phantom0.local -p 37383
22以外のポートへアクセスするには-pオプションでポートを指定する。

いちいち-pオプションでポートを指定するのは面倒。
/etc/ssh/ssh_configを編集してsshコマンドのデフォルトポートを指定する。

 /etc/ssh/ssh_config
Port 37383

37383以外のポートへアクセスするときは-pオプションでポートを指定する必要がある。



パスワード認証を無効にして鍵認証にしよう
パスワード認証はパスワードを知っていれば誰でもアクセスできてしまうが、鍵認証は鍵を持っている者のみがアクセスできる。
鍵認証にするだけでブルートフォースアタックの危険性は無くなるというわけ。それにパスワードを入力する手間が省ける。

鍵を作成 将来性を考えて4096bitのRSAに
Phantom0:$ ssh-keygen -t rsa -b 4096

鍵のパスワードは使わないのでパスワード入力要求は無視

デフォルトなら~/.sshにid_rsaとid_rsa.pubができる。

id_rsa.pub公開鍵をauthorized_keysにリネームして、アクセス権を変更する
Phantom0:~$ cd .ssh
Phantom0:$ mv id_rsa.pub authorized_keys
Phantom0:$ chmod 600 authorized_keys


scpを使ってid_rsa秘密鍵をクライアントへコピーしてみる
Phantom1:~$ scp Phantom0.local:~/.ssh/id_rsa ~/.ssh/
これで完了

パスワード無しでログインできるようになった
Phantom1:~$ ssh Phantom0.local
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/

p@Phantom0:~$


鍵認証は有効になったので、次はパスワード認証を無効にする。

 /etc/ssh/sshd_config
#PasswordAuthentication yes
コメントアウトを外し、noに書き換える
PasswordAuthentication no


試しにauthorized_keysをどけてログインしようとしてみる
Phantom0:~$ mv ~/.ssh/authorized_keys .
Phantom1:~$ ssh Phantom0.local

Permission denied (publickey).

アクセス不可を確認。
これでワンタッチかつ、よりセキュアになりました。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可