slide1
Download
Skip this Video
Download Presentation
サルでもできる実用 SSH 入門

Loading in 2 Seconds...

play fullscreen
1 / 23

サルでもできる実用 SSH 入門 - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

サルでもできる実用 SSH 入門. Echigo BSD Users Group 7 th meeting at Toyama prefectural civic center. 12 th , July, 2003 INOUE Mikio <[email protected]>. おしながき. 扱う内容は、 FreeBSD 上で運用する OpenSSH で Protocol 2 の DSA 認証 今時の比較的一般的な設定 基本的な機能と仕組み 実際の設定 運用 その他の話題. ssh (Secure Shell) の機能. セッションの暗号化

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' サルでもできる実用 SSH 入門' - aizza


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

サルでもできる実用SSH入門

Echigo BSD Users Group 7th meeting

at Toyama prefectural civic center.

12th, July, 2003

INOUE Mikio <[email protected]>

slide2
おしながき
  • 扱う内容は、FreeBSD 上で運用する OpenSSH で Protocol 2 の DSA 認証
    • 今時の比較的一般的な設定
  • 基本的な機能と仕組み
  • 実際の設定
  • 運用
  • その他の話題
ssh secure shell
ssh (Secure Shell) の機能
  • セッションの暗号化
    • 通信の盗聴や改竄を予防
  • 安全な認証方式
    • ホストの認証と個人の認証
    • IP アドレスや DNS の詐称 (なりすまし) を予防
  • port forwarding
    • 各 TCP/IP アプリケーションへの応用
slide4
公開鍵暗号
  • 組になったふたつの鍵
  • 暗号化するための鍵 (公開鍵)
    • みんなに配っていい鍵。
    • この鍵で暗号を作って送ってもらえる。
  • 復号化するための鍵 (秘密鍵)
    • 絶対内緒の鍵。
    • この鍵でのみ暗号を元に戻せる。
  • 公開鍵から秘密鍵を作れない
    • あくまでも今の所。新しい解読技術で崩壊するかも。
    • 秘密鍵からは公開鍵を生成できる。
slide5
セッションの暗号化 1/2
  • クライアントがサーバに接続を要求する。
  • サーバはクライアントに、サーバ側の公開鍵*1を提示する。
  • クライアントは、セッション鍵 (実際の通信に使用する暗号用の鍵) を生成し、サーバ側の公開鍵*1で暗号化し、 サーバに送る。
  • サーバは送られたセッション鍵をサーバ側の秘密鍵*1で復号する。
slide6
セッションの暗号化 2/2

5. ここから後のすべての通信は、このセッション鍵で暗号化される。サーバは、確認のメッセージ (暗号化されている) をクライアントに送る。

6. クライアントは、サーバからのメッセージが確認できると、次の認証の段階に 移る。鍵が正しく渡されていなければ、サーバからのメッセージが確認できない。 このときは、接続を中断する。

*1 ここでいう「サーバ側の公開鍵・秘密鍵」は、実際にはサーバが固有に持つ「ホスト鍵」とサーバのメモリ上だけにある 「サーバ鍵」から成ります。「サーバ鍵」は、一時間毎に作り変えられます。

slide7
認証手順の例 1/2
  • サーバが内緒の言葉 (challenge) を作り、認証したいユーザの公開鍵で challenge を暗号化してクライアントに送る。
  • クライアントは、送られてきた暗号を自身の秘密鍵で復号化する。復号した結果 (response) をサーバに送り返す。
  • サーバは、送り返されてきた response が、暗号化前のものと一致するかどうかを調べる。
slide8
認証手順の例 2/2

4. 一致してれば認証成功。やったね!

  • 以上は、Protocol 1 の例で「内緒の言葉」は、乱数に基づくビット列 が用いられます。
  • また、Protocol 2 では離散対数を元に計算した署名 が用いられ、署名の SHA (Secure Hash Algorithm) をとって双方で比較します。
slide9
ホスト鍵を作ろう
  • FreeBSD の場合、ホストの鍵はインストール後の最初のブート時に /etc/rc.network (RELENG_4) とか /etc/rc.d/sshd (HEAD) とかが、勝手に作ってくれます。

たとえば# /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key

確認

[email protected]% ls -l /etc/ssh/ssh_host*

-rw------- 1 root wheel 668 Jun 12 2001 ssh_host_dsa_key

-rw-r--r-- 1 root wheel 608 Jun 12 2001 ssh_host_dsa_key.pub

-rw------- 1 root wheel 533 Jun 12 2001 ssh_host_key

-rw-r--r-- 1 root wheel 337 Jun 12 2001 ssh_host_key.pub

-rw------- 1 root wheel 883 Aug 3 2002 ssh_host_rsa_key

-rw-r--r-- 1 root wheel 227 Aug 3 2002 ssh_host_rsa_key.pub

slide10
自分の鍵を作ろう 1/2
  • コマンド一発で作れます。どうせ一回しか作りません。

[email protected]% ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/ruri/.ssh/id_dsa):

Enter passphrase (empty for no passphrase): パスフレーズを入力する。

Enter same passphrase again: パスフレーズを入力する。

Your identification has been saved in /home/ruri/.ssh/id_dsa.

Your public key has been saved in /home/ruri/.ssh/id_dsa.pub.

The key fingerprint is: (折り返し)

cf:48:71:f5:32:84:69:e9:2f:4f:b6:f7:4a:16:9e:e2 [email protected]

 できた!!

デフォルトだと、~/.ssh が 755 になってるかも知れない。確認して 700 にしておきましょう。

slide11
パスフレーズ
  • 暗号化された秘密鍵を読み出すための文字列。
    • 4 字以上ということになってるけど、 20 字以上とか長い方が望ましい。
  • 秘密鍵を使う都度入力する必要があるので、ssh-agent (後述) とか使うと便利。
  • パスフレーズ無しの鍵もアリだけど、運用上要注意。
  • もちろん後で変更できます。
slide12
自分の鍵を作ろう 2/2

[email protected]% ls –l ~/.ssh/

total 2

-rw------- 1 ruri ruri 736 Jul 11 00:43 id_dsa

-rw-r--r-- 1 ruri ruri 608 Jul 11 00:43 id_dsa.pub

  • 秘密鍵が id_dsa
    • 暗号化されてます。
    • 絶対に内緒なので、NFS とかでホームディレクトリを共有してると終了。
  • 公開鍵が id_dsa.pub
slide13
サーバ側の設定
  • 自分の公開鍵をサーバに送る
    • メール、フロッピー、口頭、テレパシーなど方法は何でも構いません。でも、改竄の可能性を心配すれば、ネットワークを経由しない方が安全かも。
  • 公開鍵を登録する
    • ~/.sshディレクトリがなければ作る。

[email protected]% mkdir ~/.ssh

[email protected]% chmod 700 ~/.ssh

    • ~/.ssh/authorized_keysにクライアントで生成した公開鍵を追加する。

[email protected]% cat id_dsa.pub >> ~/.ssh/authorized_keys

    • おしまい。
slide14
接続してみる

[email protected]% ssh server.ebug.jp

The authenticity of host ‘server (192.168.0.1)’ can’t be established.

RSA key fingerprint is cf:48:71:f5:32:84:69:e9:2f:4f:b6:f7:4a:16:9e:e2.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘server (192.168.0.1)’ (RSA) to (折り返し)

the list of known hosts.

Enter passphrase for key ‘/home/ruri/.ssh/id_dsa’: パスフレーズを入力する。

Last login: Thu Jul 10 18:11:06 2003 from client.ebug.jp

Welcome to FreeBSD 5.1-RELEASE (GENERIC)

[email protected]% ってな感じでプロンプトがでる。つながった!!

・ パスフレーズを入力する前の 4 行は最初の接続の際だけ確認されます。相手のホストを知らないけど接続しても良い? という意味。フィンガープリントを確認して、接続先の正当性を確認する。接続すると自動的に ~/.ssh/known_hosts に登録される。

slide15
プロトコルと認証の方式
  • プロトコル
    • Protocol 1 - 実装上の互換性が高い
    • Protocol 2 - 厳重、多様
  • 認証方式 (Protocol 2)
    • 公開鍵認証 (DSA 認証または RSA 認証)
    • パスワード認証 - 運用注意!
    • 対話的認証 (S/Key 認証または PAM 認証)
    • ホストベース認証 - 運用注意!
ssh agent
ssh-agent で幸せの予感
  • 頻繁に使うと毎回パスフレーズを入力するのがめんどいあなたに代わって、自分専用のエージェントが入力してくれる。

[email protected]% eval `ssh-agent`ちょっと変な起動の仕方

Agent pid 27900

[email protected]% ps axu | grep ssh-agent動いてるかの確認

ruri 27900 0.0 0.9 1956 1156 ?? Is 1:06AM 0:00.00 ssh-agent

[email protected]% env | grep SSH環境変数の確認

SSH_AUTH_SOCK=/tmp/ssh-sCbpye5o/agent.27899

SSH_AGENT_PID=27900

ssh-agent は、起動時に環境変数 SHELL に従って、適切に環境変数を設定してくれます。

ssh add
ssh-add でちょっと幸せ
  • ssh-add を使ってパスフレーズを登録。

[email protected]% ssh-add

Enter passphrase for /home/ruri/.ssh/id_dsa: パスフレーズを入力する。

Identity added: /home/ruri/.ssh/id_dsa (/home/ruri/.ssh/id_dsa)

Identity added: /home/ruri/.ssh/identity ([email protected])

[email protected]% ssh server.ebug.jp 接続してみる

← パスフレーズを訊かれない!

Last login: Thu Jul 12 3:11:06 2003 from client.ebug.jp

Welcome to FreeBSD 5.1-RELEASE (GENERIC)

[email protected]% つながった!!

しあわせ~。

slide18
運用上の注意 1/2
  • 秘密鍵の管理
    • 秘密鍵は他のホストと共有したりして、ネットワークに流さない。他のメディアに複製しない。
  • パスワード認証
    • 暗号化されてるとは言え、パスワードはネットーワークを流れる。
  • ホストベース認証/パスフレーズ無し
    • 誰でもつなげちゃうので、難しいかも。
slide19
運用上の注意 2/2
  • バージョンアップ
    • 一般的なセキュリティホールの他に、暗号そのものが破られる可能性がある。
  • その他の設定
    • SSH 使ってても TELNET とか FTP とか POP とかそんなのが全開になってるとダメダメ。
    • TCP Wrapper とかルータとか防火壁とか駆使してがんばりましょう。
openssh ssh
OpenSSH と商用 SSH
  • 商用版はもちろん今も売ってます。
  • 商用版は SSH1 と SSH2 が別になってます。
  • Protocol 2 では、OpenSSH と商用版では、鍵のフォーマットが異なるので変換が必要。
    • 商用版の鍵を OpenSSH 用に変換する。

ssh-keygen –i 商用版鍵ファイル > OpenSSH鍵ファイル

    • OpenSSH の鍵を商用版用に変換する。

ssh-keygen –e OpenSSH鍵ファイル> 商用版鍵ファイル

パスフレーズが付いた商用版鍵は変換できまへん。事前に商用版の ssh-keygen でパスフレーズを無しにしておいてください。

slide21
クライアントソフトウェア
  • Windows 用クライアント
    • PuTTY*1、Cygwin 版 OpenSSH
    • TTSSH、Telneat*1 (Protocol のみ)
  • Macintosh 用クライアント
    • MacSSH*1
    • Nifty Telnet*1、Better Telnet (Protocol のみ)
  • Unix 用クライアント
    • OpenSSH、商用 SSH2
    • 商用 SSH1

*1 標準の状態だと日本語が使えまへん。

slide22
参考
  • Secure Shell (secsh) Working Group
    • http://www.ietf.org/html.charters/secsh-charter.html
  • OpenSSH
    • http://www.openssh.com/
  • SSH Communications Security
    • http://www.ssh.com/
  • Google
    • http://www.google.com/
slide23
雑談の種
  • ssh には認証局 (Certifying Authority) がない。Kerberos を使う?
  • OTP (S/Key 認証) はおもしろそうだけど、誰か使ったことありますか?
  • 我が家の Apache はどうなるんだっ!
  • 眠いので寝てもいいですか?
    • くわしいことは倉品師匠に訊いてください。
ad