書籍概要

Software Design plus

OpenSSH[実践]入門

著者
発売日
更新日

概要

OpenSSHは,暗号や認証の技術を使って遠隔地のコンピュータと安全に通信するためのソフトウェアです。システムの開発/運用もクラウド上で行うことが多い昨今,SSHはIT技術者に必須の技術です。本書は,OpenSSHクライアント/サーバの基本的な使い方と,TCPポートフォワード,認証エージェント転送,X11転送,多段SSHなどの応用的な使い方を説明します。セキュリティを確保するための注意点についても言及します。OpenSSH-4.2~6.6対応。Red Hat系/Debian系OS両対応。

こんな方におすすめ

  • インフラエンジニア
  • ネットワークエンジニア
  • 運用エンジニア
  • Webアプリケーション開発エンジニア
  • IaaSなどのクラウドサービスを利用している技術者
  • リモートからサーバに接続して作業行う技術者

サンプル

samplesamplesample

目次

第1章 SSHとOpenSSHの概要

  • 1-1 SSHの必要性
  • 1-2 SSHとは
  • 1-3 OpenSSHとは
  • 1-4 プロトコルバージョンについて
  • 1-5 OpenSSHが利用できる認証方式

第2章 OpenSSHの基本的な使い方

  • 2-1 SSHクライアントのインストール,環境の準備
  • 2-2 ログイン,コマンド実行
  • 2-3 ファイルコピー,ファイル転送
  • 2-4 OpenSSHに付属しているコマンド

第3章 一歩進んだOpenSSHの使い方

  • 3-1 TCPポートフォワード
  • 3-2 プロキシと多段SSH
  • 3-3 SSHのセッションをコントロールする
  • 3-4 その他の転送
  • 3-5 簡易VPN
  • 3-6 機能制限された公開鍵を使用する
  • 3-7 ほかのアプリケーションとの連携

第4章 SSHクライアントの設定

  • 4-1 クライアントコンフィグファイルの書き方
  • 4-2 接続と通信に関する設定
  • 4-3 転送に関する設定
  • 4-4 認証に関する設定
  • 4-5 その他の設定

第5章 SSHサーバの設定

  • 5-1 インストール,環境の準備
  • 5-2 サーバコンフィグファイルの書き方と確認のしかた
  • 5-3 認証に関する設定
  • 5-4 起動と動作環境に関する設定
  • 5-5 ログインに関する設定
  • 5-6 通信に関する設定
  • 5-7 転送機能に関する設定
  • 5-8 暗号に関する設定
  • 5-9 Red Hat Enterprise Linux固有の設定

第6章 OpenSSHの落とし穴

  • 6-1 SSHにまつわる脆弱性と攻撃
  • 6-2 運用方法の再考
  • 6-3 プロセス管理

第7章 設定事例集

  • 7-1 公開鍵を使用した認証
  • 7-2 証明書を使用した認証
  • 7-3 ホストベースド認証
  • 7-4 AuthenticationMethodsによる複数要素の認証
  • 7-5 データベースに格納された公開鍵を使用して認証する
  • 7-6 Google認証システムによる2要素認証
  • 7-7 chroot環境にシェルログインできるようにする
  • 7-8 sftp-serverの機能を制限する
  • 7-9 SFTPしかできないアカウントの作成
  • 7-10 鍵失効リスト
  • 7-11 脆弱な公開鍵リスト(ブラックリスト)
  • 7-12 暗号方式によるscpの転送速度の違い
  • 7-13 DNS SSHFPを使用する
  • 7-14 SSHゲートウェイを負荷分散させる
  • 7-15 Windows環境でX11転送を使用する
  • 7-16 SMB over SSH
  • 7-17 TCP Wrappersを使用したアクセス制限
  • 7-18 Netfilter(iptables)を使用したアクセス制限
  • 7-19 必要最低限の設定例――安全な接続のための第一歩

付録

  • 付録1 OpenSSHをコンパイルする
  • 付録2 コマンドラインオプションの一覧表
  • 付録3 ssh_config設定項目一覧
  • 付録4 sshd_config設定項目一覧
  • 付録5 OpenSSH-6p1におけるsshd_configのデフォルト値

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2023年12月27日最終更新)

P.247 7-2-3項の1行目

保存場所はsshd_configの「AuthorizedKeysFile(authorized_keysファイル)」で指定します。リスト7-2-1は証明書認証しか許可しない場合の設定例です。
 通常の公開鍵認証と共存させることもできます。共存させる場合は「AuthorizedKeysFile(authorized_keysファイル)」に、認証局の公開鍵とユーザの公開鍵が格納されているファイルを指定します。
保存場所はsshd_configの「TrustedUserCAKeys(信頼されるユーザCAの鍵)」で指定します。リスト7-2-1は証明書認証しか許可しない場合の設定例です。
※これ以降の段落は削除※

P.248 リスト7-2-1の4行目

AuthorizedKeysFile /etc/ssh/ca-key.pub
TrustedUserCAKeys /etc/ssh/ca-key.pub

P.248 7-2-4項の1行目

ユーザの公開鍵の署名は、ssh-keygenの-sオプションに認証局の秘密鍵を指定して行います(図7-2-3)。
ユーザの公開鍵の署名は、ssh-keygenの-sオプションに認証局の秘密鍵を指定して行います(図7-2-3)。署名の際に-nオプションで利用するプリンシパルを1つ以上指定する必要があります。利用できるプリンシパルはsshd_configの「AuthorizedPrincipalsFile(許可されるプリンシパルファイル)」で指定します。AuthorizedPrincipalsFileの設定がされていない場合、認証しようとしているユーザ名がプリンシパルとして利用されます。

P.248 図7-2-3

$ ssh-keygen -s ca-key -I key-id id_rsa.pub
Signed user key id_rsa-cert.pub: id "key-id" serial 0 valid forever
$ ssh-keygen -s ca-key -I key-id -n username id_rsa.pub
Signed user key id_rsa-cert.pub: id "key-id" serial 0 for username valid forever

P.249 図7-2-4

$ ssh-keygen -L -f id_rsa-cert.pub
id_rsa-cert.pub:
        Type: [email protected] user certificate
        Public key: RSA-CERT xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
        Signing CA: RSA bf:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
        Key ID: "key-id"
        Serial: 0
        Valid: forever
        Principals: (none)
        Critical Options: (none)
$ ssh-keygen -L -f id_rsa-cert.pub
id_rsa-cert.pub:
        Type: [email protected] user certificate
        Public key: RSA-CERT xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
        Signing CA: RSA bf:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
        Key ID: "key-id"
        Serial: 0
        Valid: forever
        Principals:
                username
        Principals: (none)
        Critical Options: (none)

(以下2015年4月8日更新)

P.35 公開鍵の登録の実行例

[localhost]$ cat .ssh/id_rsa | ssh username@remotehost 'cat >> .ssh/authorized_keys; chmod 600 .ssh/authorized_keys'
[localhost]$ cat .ssh/id_rsa.pub | ssh username@remotehost 'cat >> .ssh/authorized_keys; chmod 600 .ssh/authorized_keys'

P.67 図2-4-1

[localhost]$ eval ssh-agent -s
[localhost]$ eval `ssh-agent -s`

P.216

5-7-7 XAuthLocation(xauthyunの位置)
5-7-7 XAuthLocation(xauthの位置)

P.380

XAuthLocation(xauthyunの位置).........216
XAuthLocation(xauthの位置)............150
XAuthLocation(xauthの位置).......150,216

商品一覧