PR

サイト構築 〜自宅サーバー公開に向けて セキュリティ設定 その2〜

セキュリティ

インターネット上にサーバーを公開すると、ローカル環境で使用していた時とは違い、たくさんの人がサーバーにアクセスできるようになります。大切なサーバーを守るためにセキュリティ対策は必ず実施するようにしましょう!!

色んな方のサイトの情報を基に調べたことをまとめておきます。ただし、ここにまとめた設定をすれば絶対にセキュリティを突破されない事を保障するものではありません。あくまで、自己責任でお願いします。

  1. 特権ユーザーに関する設定
  2. sshに関する設定
  3. サービスに関する設定
  4. ポートに関する設定
  5. ファイル改竄の検知
  6. アンチウィルス
  7. rootkit検出

今回は、2.sshに関する設定についてです。

2.sshに関する設定

念のため、設定ファイルのバックアップを実施してから設定作業を実施しましょう。

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2.1.sshのポート番号を変更する

sshの標準ポートは、あまりにも一般的過ぎるため攻撃を受けることがありますので、標準ポート以外に変更してしまうという設定です。

vi /etc/ssh/sshd_config

#What ports, IPs and protocols we listen for
Port 22→9922など

 

2.2.ssh経由での特権ユーザーへのloginを不可にする

特権ユーザーは、特権ユーザーコマンドを実行できるユーザーなので、ssh経由でアクセスできないように変更してしまう設定です。

rootユーザは、どのサーバにも存在するアカウントで、総当り攻撃の危険性もあるので変更しましょう。

vi /etc/ssh/sshd_config

PermitRootLogin yes→no

 

2.3.パスワード認証を無効にする

パスワード認証が有効な場合、辞書攻撃の危険性もあるので認証を無効に変更しましょう。変更する際は、公開鍵認証方式などの手段で認証できたことを確認の上で無効に変更しましょう。

vi /etc/ssh/sshd_config

PasswordAuthentication yes→no
ChallengeResponseAuthentication yes→no

理由が有ってパスワード認証を有効にしておく場合には、空パスワードを許可しない設定にしましょう。

vi /etc/ssh/sshd_config

PermitEmptyPasswords yes→no

 

2.4.ssh可能ユーザーを限定する

sshが可能なユーザーを限定することで、sshできるユーザーを探すという手間が必要になり、攻撃を仕掛ける人にとって面倒なことを増やせば敬遠されるようになったり、セキュリティを突破されるまでの時間稼ぎになります。

vi /etc/ssh/sshd_config

AllowUsers OK_user
DenyUser NG_user

 

2.5.sshdのプロトコルを2に設定する

古いプロトコルは、脆弱性が発見されているので、新しいプロトコルの2を使うように設定しましょう。

vi /etc/ssh/sshd_config

Protocol 2

 

2.6.sshdの認証時間、試行回数を制限する

sshのコネクションを張り認証するまでの時間と試行回数を制限しましょう。

vi /etc/ssh/sshd_config

LoginGraceTime 30
MaxAuthTimes 3

 

2.7.sshguard、fail2banを使用する

sshguardやfail2banというのは、sshへの総当り攻撃を検出し、一定期間アクセスを拒否したりすることができるものです。

念には念を入れるという意味でも、使用することを検討してみましょう。

コメント