サーバー立てたら, まずやるべき6つのおすすめSSH設定

AWSやGCP, Vultrなど、今では格安でサーバーを使用することができます。
簡単に使用できるようになった一方で、基本的なセキュリティ対策をしていないと
攻撃を受けてひどい目にあいます。

今回はCentOSやUbuntuなどLinuxサーバーを立てた際に
まず真っ先にやるべき6つのSSH設定を書き溜めます。
おすすめってあるけどやっとくべきです。
もちろん、サーバーの要件によって実際は異なりますが、
普通これはやるだろ絶対、ってのだけ書き溜めます。

概要

広告

これだけはやっとけ! SSHデーモン設定

ssh設定をするときには何よりまず下記6つを行うほうが良い。
その後、各要件に合わせるのがいいね。

  • 管理用ユーザー追加
  • 公開鍵設定
  • rootログイン禁止
  • sshポート変更
  • チャレンジ・レスポンス認証認証方式禁止
  • パスワード認証方式禁止

みてわかるかと思いますが,
rootユーザー廃止&公開鍵認証をベースとしたssh設定になっています。

管理用ユーザー追加 useradd

まず何より先に、管理用ユーザーを作成します。
rootユーザーは最初のサーバー構築後は使わないぐらいの感覚でよいかと。

管理用ユーザーの追加方法は
過去軽く書き溜めたのでそちらを読んでください。

Linux Centos7で sudo パスワード無しユーザー追加する方法

公開鍵設定 authorized_keys, PubkeyAuthentication yes

先程追加した管理用ユーザーに公開鍵を設定します。
/home/{ 管理用ユーザー名 }/.ssh/authorized_keysに, ssh-keygenで生成した公開鍵を記述します。
下記のような感じです。

ssh-keygenで公開鍵、秘密鍵を生成する。

これで生成されたtest_rsa.pubの中身を
/home/{ 管理用ユーザー名 }/.ssh/authorized_keysに記述する。

.sshディレクトリ、authorized_keysの権限を変更する。

PubkeyAuthentication yes

公開鍵認証方式を採用するため、
/etc/ssh/sshd_configを編集します。

/etc/ssh/sshd_config内で「PubkeyAuthentication」を検索して
PubkeyAuthentication yesと書き直してください。

公開鍵認証方式を使用することになります。

これで、管理用ユーザーの作成と
そのユーザーへの公開鍵認証の準備が整いました。

rootログイン禁止 PermitRootLogin no

rootユーザーはlinuxでは基本存在するユーザー名のため
総当たり攻撃の標的として利用されます。
うっかりそのままサーバーを公開した場合, /var/log/secureをみると
rootユーザーへのログイン履歴で溢れかえります。
今後は、先程作成した管理用ユーザーでログインするようにして
rootユーザーでのログインを禁止します。
禁止するには/etc/ssh/sshd_configを編集します。

/etc/ssh/sshd_config内で「PermitRootLogin」を検索して
PermitRootLogin noと書き直してください。

これで、rootでのssh認証を禁止しました。

sshポート変更 Port 22

デフォルトで使用されるポート番号は22番です。
これもそのまま公開すると22番ポートにえらい数のログイン履歴があふれます。

/etc/ssh/sshd_configを編集します。

/etc/ssh/sshd_config内で「Port 22」を検索して
54900などに変更してください。

! Firewalldを使用している場合(Centos7)は、ポートを開放する必要があります。
ポートの開放方法は別記事に書いたので簡単なのでそちらをどうぞ。

Centos7 でポートを開放する方法:コマンドとファイル書き込み

これでポートの変更は完了です。
firewalldの変更を忘れると大変 笑

チャレンジ・レスポンス認証認証方式禁止 ChallengeResponseAuthentication no

公開鍵認証方式を採用するため、
チャレンジ・レスポンス認証認証方式は使いません。
禁止するには/etc/ssh/sshd_configを編集します。

/etc/ssh/sshd_config内で「ChallengeResponseAuthentication」を検索して
ChallengeResponseAuthentication noと書き直してください。

これで、チャレンジ・レスポンス認証認証方式を禁止しました。

パスワード認証方式禁止 PasswordAuthentication no

公開鍵認証方式を採用するため、
パスワード認証認証方式は使いません。
禁止するには/etc/ssh/sshd_configを編集します。

/etc/ssh/sshd_config内で「PasswordAuthentication」を検索して
PasswordAuthentication noと書き直してください。

これで、チャレンジ・レスポンス認証認証方式を禁止しました。


必ずsshdを再起動

設定が終了したら
最後に必ずsshdを再起動してくださいね。

これで設定変更が適応されるので
sshでログインできます!


その他、ssh設定について
詳しく知りたい人は公式を見てください。



セキュリティは攻撃とのいたちごっこの面があるから
この記事も適宜更新していきます。


じゃあね〜〜〜〜。