この記事は CentOS 6 を前提にした古いサーバー構築・保守手順の記録です。CentOS 6 は既にサポートが終了しているため、新規構築では現行の Linux ディストリビューションを利用してください。ここでは、当時の環境を保守・確認するための資料として整理しています。
参考書籍
ストーリーで覚える Linux CLI 入門
Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
概要
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
EOFPermitRootLogin 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 共通設定 – サーバー初期設定の基本
- CentOS 6 ネットワーク設定 – ifcfg と network サービスの基本
- CentOS 6 BOOTPROTO とは – ifcfg の DHCP / static 指定を確認する
- CentOS 6 Yum EPEL リポジトリ設定 – 追加パッケージを利用する
- CentOS 6 NTP 時刻同期設定 – ntpd クライアントの基本
- CentOS 6 rsyslog ログサーバー構築 – ログ受信と転送の基本
CentOS 6 SSH 設定 – OpenSSH サーバーの基本確認



