手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 SSH 設定 – OpenSSH サーバーの基本確認

この記事は CentOS 6 を前提にした古いサーバー構築・保守手順の記録です。CentOS 6 は既にサポートが終了しているため、新規構築では現行の Linux ディストリビューションを利用してください。ここでは、当時の環境を保守・確認するための資料として整理しています。

CentOS 6 サーバー構築・保守ガイドへ戻る

概要

SSH の設定を変更します。一般的な SSH のセキュリティとして、root ログインの禁止とパスワード認証の禁止を設定することが望ましいですが、万が一、公開鍵を紛失した場合のアクセス手段を確保するため、特定のネットワークからのみ root ログインとパスワード認証を許可します。

/etc/ssh/sshd_config

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

cat > /etc/ssh/sshd_config <<'EOF'
PermitRootLogin no
PasswordAuthentication no
UseDNS no
AllowUsers root myadmin
Match Address 10.0.0.0/24
PermitRootLogin yes
PasswordAuthentication yes
EOF
  • PermitRootLogin no: root ユーザーが SSH 経由でログインすることを禁止します。これにより、セキュリティが向上します。root アカウントは特権が高く、攻撃者にとって魅力的なターゲットとなるためです。
  • PasswordAuthentication no: パスワード認証を無効にします。つまり、ユーザーは公開鍵認証など他の方法で認証する必要があります。これもセキュリティを向上させるための措置です。
  • UseDNS no: SSH 接続時にクライアントの DNS 解決を行わないようにします。これにより、接続速度が向上する場合があります。DNS 解決には時間がかかることがあり、接続遅延の原因となることがあります。DNS 解決の必要性としては、ホスト名がログに記録されることによるデバッグ時の視認性の向上と、ホスト名を使用したアクセス制御が可能になることです。
  • AllowUsers root myadmin: root と myadmin というユーザーのみが SSH でサーバーにログインできることを指定します。他のすべてのユーザーのログインは禁止されます。
  • Match Address 10.0.0.0/24: ここから始まる設定は、10.0.0.0/24 という IP アドレス範囲からの接続に特有の規則を設定します。
  • PermitRootLogin yes: 上記の Match ブロック内でのみ適用され、10.0.0.0/24 からの接続に対しては root ユーザーのログインを許可します。これは特定の信頼できるネットワークからのみ管理者アクセスを許可したい場合に有用です。
  • PasswordAuthentication yes: Match ブロック内でのみ適用され、10.0.0.0/24 からの接続に対してパスワード認証を有効にします。これにより、特定の範囲からのユーザーに対してはパスワード認証を使うことができます。

設定の有効化

sshd を再起動し、設定を有効化します。

service sshd restart

公開鍵の設定

公開鍵を設置します。以下の例では、Windows の PuTTYgen で生成した公開鍵を id_rsa.pub として配置しています。

su - myadmin
mkdir .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen -i -f id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
rm -f id_rsa.pub
exit

関連記事

CentOS 6 SSH 設定 – OpenSSH サーバーの基本確認

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る