リモート・ログインの認証方式は、どれがいい?

【連載】

にわか管理者のためのLinux運用入門

【第3回】リモート・ログインの認証方式は、どれがいい?

[2016/01/01 08:00]後藤大地 ブックマーク ブックマーク

リモート通信プロトコル「SSH」

前回までは、コンソールから一般ユーザーでログインして作業することを前提に、必要に応じてsuコマンドやsudoコマンドを使って操作権限を拡張する方法を紹介してきた。

しかし実際には、Linuxサーバや*BSD(BSD系統のOS群)サーバに物理的にアクセスしてコンソールから操作するというのはまれである。ほとんどの場合、データセンターやサーバ・ルームに設置されたサーバに、遠隔操作でログインして作業することになる。そしてその場合、SSHというプロトコルを利用するのが一般的だ。

SSHを実装したソフトウェアはいくつか存在するが、もっとも高いシェアを確保しているのが「OpenSSH」だと言われている。サーバ管理者でOpenSSHを使わないというのは、ほぼありえないと言ってよいだろう。OpenSSHはOpenBSDプロジェクトの下で開発が進められており、*BSDのほかMac OS X、LinuxなどありとあらゆるOSに移植されて使われている。

OpenSSHは最初から使用できる状態に設定されていることが多いので気軽に使いがちだが、デフォルトでは利便性が優先されており、セキュリティ面が弱い設定になっているケースが多い。今回は、このセキュリティを強化してくれるログイン認証方式を紹介しよう。

認証方式アレコレ

SSHでは、クライアントがサーバにリモート・ログインする際の認証方式として、以下のように複数の方法が用意されている。

  • パスワード認証:サーバに用意されているアカウント・データをそのままSSHのログイン・ユーザーとして使用する方式。デフォルトで有効になっていることが多い。
  • チャレンジ・レスポンス認証:アカウント・データとしてはパスワード認証と同じものを使うことが多いが、そのままやりとりするのではなく、まずクライアントからの認証要求を受けたサーバ側が「チャレンジ」と呼ばれるランダムな数値列を返信し、受けたクライアント側でパスワードとチャレンジを合成した「レスポンス」をサーバに返信するという特徴がある。
  • 公開鍵認証:あらかじめ生成しておいたペアの公開鍵/秘密鍵を使った認証方式。公開鍵をサーバに、秘密鍵をクライアントに保存しておき、このペアの鍵が存在しているホスト間のみアクセスを許可するというやり方だ。パスワード認証と同じく、この方法もデフォルトで有効になっていることが多い。利用するには、公開鍵/秘密鍵を生成し、それぞれデプロイしておく必要がある。
  • ホスト・ベース認証:サーバとクライアントの接続をホスト・レベルで実施するため、サーバに登録されているクライアントからアクセスがあった場合、ユーザー・レベルでの認証は行われずにアクセスが許可される。

これらのうち、ホスト・ベース認証は、物理的に信頼できる状況にある2ホスト間で設定して利用することが多い。そのため、インターネット経由で利用するようなケースではあまり使われない印象だ。

基本は公開鍵認証!

まずはどの認証方式を使うのか選ぶ必要があるわけだが、基本的には公開鍵認証を使うものだと思っておいてほしい。公開鍵認証以外の認証方式については機能を無効にして、利用できないようにしてしまおう。もちろん、rootでのログインなどもってのほかである。詳細な設定方法については今後の連載で説明するとして、「SSHを利用したログインには、公開鍵認証だけを使う」と覚えておこう。

先述のとおり、公開鍵認証ではクライアントで公開鍵と秘密鍵を生成して、秘密鍵はクライアントで保存し、公開鍵をサーバに登録する。この公開鍵/秘密鍵の運用方法については、いくつかやり方があるのだが、基本的には「1台の物理PCにつき、1つの公開鍵/秘密鍵を生成して利用する」と考えてほしい。こうしておくと、次のような利点がある。

  • クライアントとして利用していたノートPCを紛失した場合、そのノートPCの秘密鍵と対応する公開鍵をサーバ側から削除するだけで不正アクセスを防止できる
  • サーバに覚えのない不正アクセスがあった場合、どのPCの鍵が盗まれたのかが容易に特定できる

公開鍵認証は、サーバを管理するにあたり、複数のデスクトップPCやノートPCを利用する場合に特に有効だ。大量のホストの相互接続を設定するとなると管理方法を考える必要があるが、基本はこれだと覚えておいてほしい。

今回のおさらい

今回はおさらいは、次のようになる。

  • リモート・ログインにはSSHを使う
  • 認証方式には、公開鍵認証を使う
  • 公開鍵認証以外の認証方式は、無効にする
  • rootでリモート・ログインしない
  • 1台のPCにつき、1つの公開鍵/秘密鍵を利用する

公開鍵/秘密鍵による公開鍵認証は、リモート・ログインの基本中の基本だ。鍵の管理を徹底化して、問題発生時にも責任の所在を明確にする。用意周到な運用が、我が身を守るのである。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【特別企画】管理者にお馴染みの

【特別企画】管理者にお馴染みの"バックアップ問題"、Win/Linux混在環境の担当者が出した答えとは?

地味ながらも面倒なうえ、ミスが許されないために精神的苦痛も伴うシステム管理作業。それがバックアップではないだろうか。コスト抑制のためLinuxを使って自力で構築したが、運用に関してもお金をかけられず、シェルスクリプトを組んでバックアップを行う。しかし、細かい作業にそれなりの人足をとられるため結果的にコストが嵩むうえ、実のところ正常にリストアできるかも怪しい。…

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る