Comments
Description
Transcript
ネットワークとセキュリティ
ネットワークとセキュリティ 島川 和久 最終更新日:平成 15 年 2 月 10 日 注意 このテキストは随時更新されます.以下の URL で最新版を公開しています. http://www.math.okayama-u.ac.jp/~kazu/classes/2002/network.pdf 授業の概要 授業の目標 情報通信ネットワークの構築や運用管理,活用に関する知識・技術の習得.具体的 には,UNIX ネットワークにおける • ユーザ管理 • DNS および NIS の設定・管理 • 電子メールの設定・管理 等に関し,ネットワーク管理者として最低限必要な知識を身につけることを目指す. 授業予定 1. インターネットの歴史と概要 2. リモートログインとファイル転送 3. 電子メールの仕組み 4. 電子メール活用法 5. WWW とその関連アプリケーション 6. セキュリティと暗号化 7. 共通鍵暗号方式 8. 公開鍵暗号方式 9. SSH と SSL 1 10. 電子署名と電子メールの暗号化 11. UNIX におけるユーザ管理 12. ネームサービスの設定− BIND と DHCP − 13. メールサーバの設定と運用 14. WWW サーバの設定と運用 15. ネットワーク管理とセキュリティポリシー 参考文献 1. 2. 3. http://www12.u-page.so-net.ne.jp/qc4/survive/network/menu.htm http://isweb5.infoseek.co.jp/diary/sanaki/tcpip/ 高町健一郎,UNIX ネットワークセキュリティ導入・運用ガイド,秀和システム 2 1 インターネットの歴史と概要 1.1 1.1.1 LAN の形態 イーサネット方式 • 10BASE5/10BASE2 – バス型の配線形態 – 同軸ケーブル(イエローケーブル,シンケーブル)+ ターミネータ – トランシーバ – トランシーバケーブル • 10BASE-T/100BASE-TX – スター型の配線形態 – ツイストペアケーブル – (スイッチング)ハブ • ネットワークインターフェースと MAC アドレス MAC アドレスの例: 00:40:ca:27:a1:cc(6bytes) 1.1.2 その他の方式 • トークンリング(Token Ring) 1.2 1.2.1 イーサネット(Ethernet ver2)の概要 イーサネットの歴史 • 1968 年.Aloha ネットワーク(ハワイ) ...イーサネットの原型. • 1973 年.Xerox PARC 研究所で Ethernet 誕生. • 1980 年.DIX (DEC, Intel, Xerox) Ethernet 規格. • 1983 年.IEE802.3 (10BASE5) 規格. 1.2.2 フレーム • フレームの形式は以下のとおり. Ethernet ヘッダー 3 送信データ トレーラ • ヘッダーの前に,プリアンブル(同期信号 7bytes とフレーム開始符号 1byte), トレーラの後にフレームの混信を防ぐための隙間 12bytes が付く. • ヘッダー部(6bytes + 6bytes + 2bytes = 14bytes)は 送信先 MAC アドレス 送信元 MAC アドレス フレームタイプ によって構成される. • データ部の長さは 46bytes ∼ 1500bytes • トレーラ部(FCS, 4bytes)は,エラーチェックに使用. 1.2.3 受信の仕組み • 送信データ(フレーム)はすべてのノードに届く • 自分宛でないフレームは無視する. (ブロードキャストは受信) 1.2.4 送信の仕組み ある瞬間に LAN セグメント上を流れるフレームは唯一つでなければならない.した がって,フレームの衝突(コリジョン)を防ぐ仕組みが必要となる.このため,以下 のような方式(CSMA/CD 方式)を用いる. 1. LAN 上にキャリア(信号)が流れていないかどうか確認. (キャリア・センス) 2. キャリアを検出したら,送信を取り止め. 3. キャリアがなくなったら,一瞬待ってから送信開始. 4. コリジョンにより破壊されたキャリアを検出した場合は,一定時間ジャム信号 (ノイズ)を送信し,送信をキャンセルする. 5. ランダムな時間(乱数で決定した時間)だけ待機し,再送信を試みる. 実際には,10BASE5/2 の場合と 10BASE-T の場合とでは,多少,動作に違いがある. 詳細については,こちらを参照のこと. 1.2.5 セグメントの中継と分割 • リピータ,ハブ • ブリッジ,スイッチングハブ 1.2.6 LAN 同士の接続 • ルータ(ゲートウェイ) 4 1.3 1.3.1 ネットワークプロトコル TCP/IP • IP アドレスと ARP テーブル – ホスト(ノード)の識別は IP アドレスで行なう. – IP アドレスは 32 ビットの数値で,通常 150.46.179.1 のような形式で表 される.127.0.0.1 は localhost(自分自身)を表す. – IP アドレスから MAC アドレスへの変換は ARP プロトコルによって行なわ れる. • ネットワークアドレスとサブネットマスク – ネットワークの範囲(ブロードキャストが配信される範囲)を表す値をネッ トワークアドレスという. – IP アドレスはネットワーク部とホスト部に分けられ,ネットワーク部は IP アドレスとサブネットマスクの論理積として求められる. (下図参照) – ネットワークアドレスがことなるホスト同士は直接通信できない.必ずゲー トウェイ(ルータ)を通す必要がある. 種 類 クラス A クラス B クラス C クラスレス ネットワークアドレス 10.0.0.0/8 192.168.0.0/16 150.46.179.0/24 192.168.1.32/28 サブネットマスク 255.0.0.0 255.255.0.0 255.255.255.0 255.255.255.240 ホストアドレスの範囲 10.0.0.1 ∼ 10.255.255.254 192.168.0.1 ∼ 192.168.255.254 150.46.179.1 ∼ 150.46.179.254 192.168.1.33 ∼ 192.168.1.47 • TCP/IP パケット(正式には,TCP/IP データグラム) 1.3.2 その他の方式 • NetBEUI • AppleTalk 1.4 1.4.1 インターネット(The Internet)の仕組み インターネットの歴史 • 1970 年.ARPANET(アメリカ国防総省の支援による研究目的のネットワーク,軍 事目的の部分は後に MILNET として別れる. ) • 1980 年代半ば.USENET, BITNET, CSNET, NSFNET 等の別々のネットワーク が ARPANET を通じて,相互接続される. (ARPANET はその後,NSFNET に統合) ...ザ・インターネットの始まり. • 1995 年.NSFNET が民間プロバイダに移管される ...商用利用の全面解禁. 5 1.4.2 グローバル IP アドレスとプライベート IP アドレス • グローバルアドレスの管理は,IANA (Internet Assigned Numbers Authority) を頂点とする階層構造によるアドレスブロックの割り振り・割り当てを通して 行なわれる. – IANA – RIR(地域インターネットレジストリ) – NIR(国別インターネットレジストリ) – LIR(ローカルインターネットレジストリ) • アジアの RIR は APNIC,日本の NIR は JPNIC. • プライベートアドレスとして使用可能なアドレスは限定されている. 1.4.3 例 ドメインとサブドメイン math.okayama.ac.jp ドメインは okayama.ac.jp ドメインのサブドメイン. • ドメインは階層構造をなし,その管理も階層的に行なわれる. – ルートドメイン – トップドメイン:com,net,org,gov,edu,mil,int,us,jp,fr,uk,tw,... – jp のサブドメイン:ac.jp,co.jp,go,jp,... • ドメイン名の登録. – ドメイン名の登録管理の総元締めは ICANN という非営利組織. – 日本における登録管理業務は株式会社日本レジストリサービスが行なう. • FQDN(例.cosmos.math.okayama-u.ac.jp)により,インターネット上のホス トを識別することができる. • FQDN ↔ IP アドレス の変換は DNS サーバが受け持つ.したがって,各ドメイ ンは必ず,DNS サーバを設置しなければならない. (代行でも良い. ) • サブドメインは必ずしも物理的なサブネットワークを意味しない. 6 2 リモートログインとファイル転送 2.1 telnet 2.1.1 使用例 2.1.2 問題点 • 通信内容が暗号化されていない.とくに,パスワードが盗まれる危険性が大. 2.2 rlogin および rsh 2.2.1 使用例 2.2.2 問題点 • 通信内容が暗号化されていない. • 2.3 /.rhosts による認証は,ホスト名/ IP アドレスの詐称に対しては無防備. ftp および rcp 2.3.1 使用例 2.3.2 問題点 • パスワードに関し,telnet と同様の問題点がある. • ftp のプロトコルは悪意のあるハッカーに対して格好の攻撃手段を与える. 注意 • 重要なサーバ上では,以上のサービスはすべて無効にするのが常識である. • telnet, rlogin, rsh, ftp に代わるより安全なアプリケーションである ssh, scp および scp については,後の章で解説を行なう. 7 3 電子メールの仕組み 3.1 メールサーバとメーラー • MTA (Mail Transfer Agent).いわゆるメールサーバのこと. sendmail, postfix, qmail 等. • MUA (Mail User Agent).電子メールソフト,メールリーダ,あるいはメーラー. 3.2 メールの配送 発信ホストの MUA −→ MTA =⇒ MTA −→ 受信ホストの MUA 3.2.1 メールの発信 • (設定例) smtp-server:smtp.my.domain 3.2.2 メールの受信 • メールスプールからの直接取り込み – (SMTP サーバの)メールスプールに保管してある到着メールを MUA が直接 取り込む形式. (Windows, Mac 等では普通用いない. ) • POP3 サーバ経由の受信 – ユーザー名とパスワードを提示して,POP3 サーバから到着メールをダウン ロードし,MUA で読む. – 通常,ダウンロード後のメールはスプールから削除するが,削除せずにス プールに残しておくことも可能. – (設定例) pop-server:pop.my.domain • IMAP サーバ経由の受信 – ユーザー名とパスワードを提示して,IMAP サーバから到着メールを MUA に 読込む. – メールはローカルホストにダウンロードせず,常にサーバに置いたまま管 理する. – (設定例) imap-server:imap.my.domain • POP3 と IMAP の比較 POP3 IMAP 安全性 柔軟性 対応 MUA ○ △ ◎ ◎ ◎ △ 8 4 4.1 WWW とその関連アプリケーション URL (Universal Resource Locater) とそのフォーマット この文書(http://www.big.or.jp/~mio/ga/ht/htetc/ht_etc_url.htm)を参照 のこと. 4.2 4.3 サーバ上のデーモン スキーム サーバ上のデーモン file http https ftp telnet apache, Microsoft IIS 他 上記+ SSL (Secure Sockets Layer) ftpd, ProFTPD, WU-FTPD 他 telnetd HTML 文書の例 9 5 セキュリティと暗号化 5.1 暗号化の必要性 • LAN セグメント上のホストは物理的制約を受けずにネットワークを流れる通信 を傍受することが可能である. • 盗聴を行なっても物理的痕跡は残らない. • データを改竄されてもそれを見破ることが難しい. 5.2 5.2.1 暗号方式 共通鍵暗号システム • データの暗号化とその復号に同一の共通鍵を用いる. • 主要な方式: 方 式 DES Triple DES IDEA Rijndael 鍵の長さ 56bit (40bit) 128bit 128bit, 192bit, 256bit 主な用途 備 考 UNIX パスワード ssh ssh (1) (2) (1) 二つの鍵を用いて DES を 3 回繰り返す.暗号強度は 112bit (80bit) 相当. (2) 米国標準技術局(NIST)により次世代標準暗号アルゴリズム(AES: Advanced Encryption Standard)に選定. 5.2.2 公開鍵暗号システム • 公開鍵と秘密鍵の用意し,公開鍵を一般に公開する. • 利用方には以下のような形態がある. – 受信者の公開鍵を用いて暗号化したデータを受信者が秘密鍵を用いて復号 する. – 送信者の秘密鍵を用いて暗号化してデータを受信者が送信者の公開鍵を用 いて復号する. – 公開鍵を用いて暗号化したデータは対になる秘密鍵を用いてしか復号でき ず,また秘密鍵を用いて暗号化したデータは公開鍵を用いてしか復号する ことができない. – 安全性の根拠として−方向性関数を用いる. • 主要な方式: 10 方 式 主な用途 RSA 暗号 ElGamal (DSA) 暗号 楕円曲線暗号 利用する一方向性関数 1024bit(可変長) ssh ssh, PGP 研究対象 (1) (2) (3) (1) 二つの素数の積から元の素数を計算することは難しい.参照, (2) 離散対数問題.p を充分大きい素数,α を原始元とする.β = αa mod p である とき,p, α, β (を公開しても,それら)から a を求めることは難しい.参照 (3) 楕円曲線(y 2 = x3 + ax + b)上の演算規則を用いる. 5.2.3 5.2.4 共通鍵方式と公開鍵方式の比較 暗号化に要する計算時間 鍵の受け渡しの安全性 共通鍵暗号 ○ × 公開鍵暗号 × ○ Hash 関数 • 不特定の長さのデータから決められた長さのデータを生成する. • 異なる入力データに対する出力データが一致する可能性が非常に少ない.した がってデータの同一性の検証に有効. • 主要な方式: 方 式 出力データ長 主な用途 MD5 SHA-1 128bit 160bit UNIX パスワード,ファイルの改ざん検証 PGP, S/MIME 11 6 SSH と SCP 6.1 利用目的 telnet, rlogin, rsh および rcp の機能の暗号化.より具体的には,以下のよ うなセキュリティアタックに対する防衛手段. • パスワードを含む通信データの盗聴 • 通信データの改竄 • IP アドレスあるいは DNS 情報の偽装 6.2 6.2.1 動作の概要 SSH1 の場合 1. クライアント・サーバ間でネゴシエーションおよびセッション鍵の交換を行なう. (a) サーバからクライアントにホスト公開鍵とサーバ公開鍵を送信する. • ホスト鍵はホストの認証に用いられる.したがって,バックアップを とっておくことが望ましい. • サーバ鍵は sshd デーモンの起動時に生成され,一定時間(標準は 1 時間)毎に生成し直される.安全のため,サーバ鍵はメモリー内に保 持され,決してディスクには保存されない. (b) クライアントは受信した公開鍵に対して以下の処理を行なう. • データベースに同じホストのホスト公開鍵が保存されている場合はそ れと比較し,違いがあればセッションを続行するか否かユーザに確認 を求める. • 初めてのホスト公開鍵であれば,それをデータベースに保存するか否 かユーザに確認を求める. (c) クライアントが 256 ビットのランダムな数からなる共通鍵(セッション鍵) を生成する. (d) クライアントはセッション鍵をサーバのホスト公開鍵とサーバ公開鍵で暗 号化し,サーバに送信する. (e) サーバはホスト秘密鍵とサーバ秘密鍵を用いてセッション鍵を復号する. (f) 以後の通信は共通セッション鍵を用いて暗号化される. (暗号アルゴリズム は 3DES または Blowfish) (g) サーバは確認のメッセージをクライアントに送信し,クライアントはサー バからの確認メッセージを確認する. 2. ユーザの認証を行なう. 3. ユーザの認証に成功すればデータの送受信を行なう. 12 6.2.2 SSH2 の場合 全体の流れは SSH1 の場合とほぼ同様であるが,主な違いは以下のとおり. • サーバ鍵はもはや使用せず,共通セッション鍵の作成には『Diffie-Hellman 鍵 合意』方式を用いる. • セッションの暗号化方式は 128 bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES, or 256 bit AES が使用可能であり,サーバの用意した方式の 中から,クライアントが使用するものを選択する. • セッションの整合性チェックのために,SHA-1 または MD5 に基づくメッセージ ダイジェストを併用する(らしい). 6.3 ユーザの認証方式 SSH1 SSH2 rhost 認証 rhost + RSA ホスト認証 RSA Challenge-Response 認証 パスワード認証 ユーザ公開鍵認証 ホスト公開鍵認証 Challenge-Response 認証 パスワード認証 6.4 ssh-agent とパスワードの自動入力 6.5 SCP によるファイル転送 6.6 X11 フォワーディングおよびポートフォワーディング 6.6.1 ポートフォワーディング 一般形は以下の通り: ssh -L|-R forwarding-port:targethost:application-port ssh-server-host 例 メールの送受信を暗号化する: ssh -L 10025:smtphost:25 ssh-server-host ssh -L 10110:pop3host:110 ssh-server-host 6.7 Windows 環境での SSH Windows 環境で利用できる主要な SSH 対応アプリケーションは以下のとおり. 13 ソフトの名称 Tera Term Pro 2.3 + TTSSH Putty + 日本語化パッチ OpenSSH SSH WinSCP + 日本語化パッチ SSH1 ○ ○ ○ ○ ○ SSH2 × ○ ○ ○ ○ 鍵の生成 フォワーディング × ○ ○ ○ ○ ○ ○ ○ × × (1) 鍵は独自形式で保存される.OpenSSH が稼働するホストに公開鍵をコピー する際には注意が必要. (参照) (2) CLI(コマンドプロンプト等)からのみ使用可能.とくに UNIX ホストにロ グインする際に日本語の表示に難あり. (3) SSH 社製の商用ソフト. 14 備考 (1) (2) (3) 7 メッセージの暗号化と電子署名 7.1 電子署名の仕組み • hash 関数を使ってメッセージダイジェストを作成し,それを差出人の秘密鍵を 用いて暗号化する.これを電子署名と呼ぶ. • メッセージの受取人は添付された電子署名を差出人の公開鍵を使って復号し,そ れがメッセージ本文のメッセージダイジェストと一致することを確認する. 7.2 メッセージの暗号化 • ランダムな情報を用いて共通鍵を作成し,それを使ってメッセージ本文を暗号 化する. • 受取人の公開鍵を使って共通鍵を暗号化し,暗号化された本文に添付する. • 受取人は自分の秘密鍵を用いて共通鍵を復号し,さらにそれを使ってメッセー ジ本文を復号する. 7.3 PGP による電子署名と暗号化 メッセージダイジェスト 共通鍵暗号系 公開鍵暗号系 MD5 SHA-1 IDEA 3DES RSA ElGamal/DSS PGP 2.x PGP 5.x, 6.x 7.3.1 PGP における主要なコマンド: PGP 5.x pgpk pgpk pgpk pgpk pgpk pgpk pgpe pgpe pgpv pgpv 7.4 -g -a -s -r -x -l -r -c -m PGP 6.x <file> <userid> <userid> <userid> [-sat] [-at] pgp pgp pgp pgp pgp pgp pgp pgp pgp pgp 実 行 内 容 -kg -ka <file> -ks <userid> -kr <userid> -kx <userid> -kv[v] -e[sa] [-sat] -c 公開鍵/秘密鍵の対の作成 ファイル内の鍵のコピー <userid> の鍵への署名 <userid> の鍵の削除 <userid> の鍵の抽出 登録されている鍵の表示 メッセージの暗号化 [と署名] 共通鍵方式による暗号化 メッセージの復号と署名の確認 復号したメッセージの表示 -m 電子メールの暗号化と署名 例として,Mew2 での PGP を利用の仕方を取り上げる.以下は info ページから の抜粋である. 15 PGP を利用する ============== ここでは、テキストである本文を PGP で署名したり暗号化したりする方法に ついて説明します。紹介するコマンドは以下の通りです。 ‘C-cC-s’ 草稿全体を ‘C-cC-e’ 草稿全体を ‘C-cC-b’ 草稿全体を ‘C-cC-r’ 草稿全体を PGP で署名する。パスフレーズを入力すること。 PGP で暗号化する。 PGP で署名後暗号化する。パスフレーズを入力すること。 PGP で暗号化後署名する。パスフレーズを入力すること。 メッセージを暗号化するには受信者の公開鍵を使用します。逆に署名するには 自分の秘密鍵を使います。よって、署名するためにはパスフレーズを入力する 必要があります。ただし、パスフレーズの保存機能を使っており、パスフレー ズが保存されている場合は、パスフレーズを入力する必要はありません (*Note pgp-viewing::)。 これらは、次節で説明するマークを使った PGP/MIME の作成方法の省略方法に 当たります。 Mew で PGP を使うためには、PGP の userid としてアドレスを選ぶ必要があ ります (例 "Kazuhiko Yamamoto <[email protected]>")。 メッセージに署名を施すには、‘C-cC-s’ と入力します。署名の際には、自分 の秘密鍵を復号化する必要がありますので、パスフレーズがキャッシュされて いなければ、入力を促されます。署名が施されたメッセージは、+queue に格 納されます。 自分の秘密鍵は、From: にあるアドレスを元に特定されます。From: がない場 合は、PGP が自動的にデフォルトの秘密鍵を選択します。From: にあるアドレ スとは違うアドレスで秘密鍵を指定したい場合は、‘C-uC-cC-s’ と入力して下 さい。 メッセージを暗号化するには、‘C-cC-e’ とタイプして下さい。To: や Cc: か らアドレスを切り出して、その受信者が復号化できるよう暗号化します。暗号 化するだけのなので、パスフレーズを訊かれることはありません。作成された メッセージは、+queue に格納されます。 このメッセージは、受信者の公開鍵に加えて、自分の公開鍵でも暗号化されて います。ですから、作成したメッセージを復号化できます。たとえば、‘g’ で +queue に移動し、念のため復号化して確認することが可能です。 署名後暗号化するには、‘C-cC-b’ と入力します。暗号化後署名するには、 ‘C-cC-r’ とタイプします。どちらの場合も作成されたメッセージは、+queue に蓄えられます。 PGP で署名を施したり、暗号化したりしてメッセージを送ろうと思っていても、 うっかり忘れることがあります。そのため、メッセージを作成するコマンド ‘C-cC-m’ や ‘C-cC-c’ に対し、必要に応じて PGP を起動させる機能がありま す。 16 作成するすべてのメッセージのプライバシを保護したいなら、 ‘mew-protect-privacy-always’ を ‘t’ にして、 ‘mew-protect-privacy-always-type’ に利用したいサービスを設定します。 暗号化されたメッセージに対する返答メッセージのプライバシを保護したいな ら、‘mew-protect-privacy-encrypted’ を ‘t’ にして、 ‘mew-protect-privacy-encrypted-type’ に利用したいサービスを設定します。 この設定は、暗号化されたメッセージへの返答する場合、上記のすべてのメー ルに対する設定よりも優先されます。 以下に利用できるサービスを示します。かっこ内はそれぞれのサービスを表す シンボルです。‘C-cC-m’ や ‘C-cC-c’ と入力する際に利用されるサービスは、 モードラインに表示されます。 pgp-signature (PS) 署名 pgp-encryption (PE) 暗号化 pgp-signature-encryption (PSPE) 署名後暗号化 pgp-encryption-signature (PEPS) 暗号化後署名 以下の例は、すべてのメッセージに対し署名する設定です。 (setq mew-protect-privacy-always t) (setq mew-protect-privacy-always-type ’pgp-signature) 以下の例は、暗号化されたメッセージへの返答メッセージに対し、暗号化する 設定です。 (setq mew-protect-privacy-encrypted t) (setq mew-protect-privacy-encrypted-type ’pgp-encryption) Draft モードでは、‘C-cC-pC-a’ で ‘mew-protect-privacy-always’、 ‘C-cC-pC-e’ で ‘mew-protect-privacy-encrypted’ の値を反転できます。 Draft モードにおいて現在書いている草稿対してのみあらかじめサービスを指 定しておき、送信時にサービスを施すことを忘れないようにできます。現在の 草稿に対し ‘C-cC-m’ や ‘C-cC-c’ で施されるサービスを指定するには、 ‘C-cC-pC-d’ に続いて上記のサービスの 1 つを入力して下さい。現在のサー ビスをキャンセルするには、サービス名の代りに単に ‘RET’ を押して下さい。 ‘C-cC-c’ や ‘C-cC-m’ でメッセージを作成する際、署名や暗号化に失敗した ら、草稿に戻ります。このとき指定していたサービスはキャンセルされます。 続けて ‘C-cC-c’ や ‘C-cC-m’ でメッセージを作成すると、普通のメッセージ が作成されるので気をつけて下さい。問題を取り除いた後、同じサービスを望 むなら、明示的に ‘C-cC-pC-d’ でサービスを指定するか、‘C-cC-s’、 ‘C-cC-e’ などを用いて下さい。 17 8 SSL/TLS と IPSEC 8.1 SSL の機能と特徴 • 以下の機能を実現する. – 通信内容の暗号化 – サーバ(およびクライアント)の認証 – 完全性(改竄の防止) • アプリケーション層と TCP/IP 層の間(セッション層)に介在し,アプリケー ション層から透過的であるため,エンドユーザは特別の操作を行なう必要がない. 8.2 SSL の動作の概要 1. 暗号仕様の交換 2. サーバ認証と鍵交換(認証局発行の証明書を確認する) 3. クライアント認証と鍵交換(サーバから提示要求がある場合) 4. 暗号仕様変更とハンドシェークプロトコルの終了メッセージ 5. アプリケーションデータの交換(必要に応じて暗号化される) 8.3 OpenSSL による認証局(CA)の運営 鍵ペアの作成 証明書要求の作成 証明書の発行 証明書の無効化 8.4 > > > > openssl openssl openssl openssl genrsa [gendsa] ... req ... ca ... crl ... SSL 対応サーバアプリケーションとその設定例 8.4.1 Apache 8.4.2 Qpopper Ver. 4 • SSL 対応 POP3 サーバ qpopper (ver. 4.0.4) で使用する証明書ファイルの作 成手順は以下のとおり. 1. > mkdir /etc/mail/certs 2. > chown root:mail /etc/mail/certs 3. > chmod 660 /etc/mail/certs 4. > cd /etc/mail/certs 5. > openssl req -x509 -new -days 365 -out cert.pem 6. > openssl rsa -in privkey.pem -out nopass.pem 18 7. > cat cert.pem nopass.pem > popper.pem 8. > chmod 600 *.pem 9. > vi /etc/mail/pop/qpopper.config • qpopper.config に設定する内容は以下のとおり. set set set set 8.4.3 clear-text-password = ssl tls-support = alternate-port tls-version = default tls-server-cert-file = /etc/mail/certs/popper.pem Postfix + SSL 対応パッチ 19 9 UNIX/BSD におけるユーザ管理(FreeBSD 編) 9.1 9.1.1 ローカルユーザの管理 ユーザ管理のための設定ファイル群 ファイル名 備 考 /etc/master.passwd /etc/passwd /etc/{pwd.db,spwd.db} /etc/group pwd mkdb により,master.passwd から自動生成される ハッシュされたパスワード・データベース 例 root@portege1:~[11] ls -l /etc/{*passwd,*pwd*,group} -rw-r--r-- 1 root wheel 517 Jan 18 21:48 /etc/group -rw------- 1 root wheel 1790 Jan 18 21:48 /etc/master.passwd -rw-r--r-- 1 root wheel 1519 Jan 18 21:48 /etc/passwd -rw-r--r-- 1 root wheel 40960 Jan 18 21:48 /etc/pwd.db -rw------- 1 root wheel 40960 Jan 18 21:48 /etc/spwd.db root@portege1:~[12] root@portege1:~[12] cat /etc/master.passwd # $FreeBSD: src/etc/master.passwd,v 1.25.2.6 2002/06/30 17:57:17 des Exp $ # root:$1$mHF---(line deleted)---g.5R6Qx/:0:0::0:0:Charlie &:/root:/bin/csh toor:*:0:0::0:0:Bourne-again Superuser:/root: daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/sbin/nologin .......... postfix:*:1002:1002::0:0:Postfix Mail System:/var/spool/postfix:/sbin/nologin qqq:$1$O4z---(line deleted)---fKls0nH.:2028:2028::0:0:Mr. Qqq:/local/home/qqq:\ /bin/tcsh root@portege1:~[13] 9.1.2 ユーザ・アカウントの作成手順 1. パスワードおよびグループ・エントリーを作成する. • /etc/master.passwd, /etc/group を直接編集し, # pwd_mkdb -p /etc/master.passwd コマンドを使用して,/etc/passwd のおよび対応するデータベースを生成 する.注意:マルチユーザ環境ではこの方法は用いるべきではない. 20 • vipw コマンドを使用する. • adduser スクリプトを使用する. • pw コマンドを使用する. 2. ホームディレクトリを作成する. 9.1.3 ユーザ・アカウントの削除手順 1. 削除の適否の確認 2. ホームディレクトリの削除(保存) 3. 未読メールの削除(保存) 4. cron タブファイル および at ジョブファイルの削除 5. パスワードおよびグループ・エントリーの削除 9.1.4 パスワードの変更 パスワードの変更には passwd コマンドを用いる.スーパーユーザは任意のユーザ のパスワードを変更することができる. 9.2 NIS によるユーザおよびネットワーク管理 9.2.1 NIS ドメイン 9.2.2 マスターサーバの設定と起動 1. /var/yp/Makefile の修正:ソースファイルの保存場所($YPSRCDIR)等の設 定を確認し,必要に応じて変更を加える. 2. $YPSRCDIR/{master.passwd,group,hosts, netgroup} 等を作成し,/var/yp ディレクトリで make を実行する. 3. ypinit による初期設定と ypserv のブート時起動設定を行なう. # ypinit -m # cat > /etc/rc.conf nis_client_enable="YES" # ypbind の起動設定 nisdomainname="somedomain" # NIS ドメインネームの設定 nis_server_enable="YES" nis_yppasswdd_enable="NO" nis_yppasswdd_flags="-t /var/yp/src/master.passwd -i -v" ^D 21 9.2.3 スレーブサーバの設定と起動 1. ypinit による初期設定と ypserv のブート時起動設定を行なう. # ypinit -s "master-server-name" # cat > /etc/rc.conf nis_client_enable="YES" # ypbind の起動設定 nisdomainname="somedomain" # NIS ドメインネームの設定 nis_server_enable="YES" ^D 9.2.4 クライアントの設定 1. ypbind のブート時起動設定を行なう. # cat > /etc/rc.conf nis_client_enable="YES" nisdomainname="somedomain" ^D # ypbind の起動設定 # NIS ドメインネームの設定 2. /etc/master.passwd および /etc/group に NIS 情報の追加登録を行なう. # echo "+:::" >>/etc/group # echo "+:::::::::" >>/etc/master.passwd && pwd_mkdb -p /etc/master.passwd 3. /etc/host.conf の修正: # cat /etc/host.conf # $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $ # First try the /etc/hosts file hosts # Now try the nameserver next. bind # If you have YP/NIS configured, uncomment the next line # nis 最後の行のコメントを解除する. (’# nis’ -> ’nis’) 9.2.5 NIS 環境でのユーザアカウントの追加/削除 • マスターサーバでソースファイルを変更し, # ( cd /var/yp ; make ) を実行すれば良い, (スレーブサーバ上のドメイン情報も自動的に更新される. ) 22 • ‘pw -V $YPSRCDIR ... -Y’ コマンドを用いることにより,NIS 環境でも手作 業によるソースの編集を経ずにユーザの管理を行なうことができる. 9.3 9.3.1 NFS によるユーザディレクトリの共有 NFS サーバの設定 1. /etc/exports の編集: # vi /etc/exports # cat /etc/exports /export/home clients 2. mountd の起動あるいは再起動: # mountd -u -t -n 4 (または) # kill -HUP ‘cat /var/run/mountd.pid‘ 3. mountd のブート時起動設定: # echo "nfs_server_enable=\"YES\"" >>/etc/rc.conf 9.3.2 NFS クライアントの設定 • 固定的にマウントする場合./etc/fstab を編集する. # See the fstab(5) manual page for important information on automatic mounts # of network filesystems before modifying this file. # # Device Mountpoint FStype Options Dump Pass# /dev/ad0s2b none swap sw 0 0 /dev/ad0s2a / ufs rw 1 1 /dev/ad0s2e /var ufs rw 2 2 /dev/acd0c /cdrom cd9660 ro,noauto 0 0 proc /proc procfs rw 0 0 nfs_server /home/users nfs rw 0 0 • amd 等のオートマウント・デーモンを利用する場合./etc/amd.conf 等を編集 し,/etc/rc.conf に amd 関連の設定を追加する. 9.4 NIS あるいは NFS 環境におけるセキュリティ対策 • NIS の netgroup を用いたアクセス制限 • TCP Wrappers(設定ファイル:/etc/hosts.allow)によるアクセス制限 23 10 ネットワークの構築と運営 10.1 インターネット接続の形態 • ネットワーク・トポロジー • ファイヤーウォールの設置 • NAT の設定 10.2 ドメイン構築の概要 10.3 ネームサーバの設定:BIND 10.3.1 クライアントの設定 OS 設定ファイル Windows MacOS UNIX 10.3.2 Control Panel から設定 /etc/host.conf (or /etc/nsswitch.conf) + /etc/resolv.conf サーバの設定と保守 1. 設定ファイルおよびゾーンファイルの作成: # vi /etc/namedb/named.conf # vi [zone_file] 2. ブート時起動設定: # echo "named_enable=\"YES\"" >>/etc/rc.conf (optionally) # echo "named_flags=\"-u bind -g bind\"" >>/etc/rc.conf 通常,正引きおよび逆引きドメインの双方についてゾーンファイルを作成する 必要がある. 3. ゾーンファイルの更新: # vi [zone_file] # kill -HUP ‘cat /var/run/named.pid‘ 必ず Serial の値をインクリメントすること. 24 10.4 DHCP サーバの設定:ISC-DHCP 1. dhcpd のインストール: # cd /usr/ports/isc-dhcp3 ; make install clean 2. 設定ファイルの作成: # vi /usr/local/etc/dhcpd.conf 3. dhcpd の起動およびブート時起動設定:ports からインストールした場合,起 動スクリプトが /usr/local/etc/rc.d に作成される. 25 11 メールサーバおよび WEB サーバの設定と運用 11.1 11.1.1 メールサーバの設定:Postfix 設定ファイル • 通常は /usr/local/etc/postfix/main.cf の編集だけで十分. • /etc/mail/mailer.conf (FreeBSD specific) 11.1.2 留意点 • キューディレクトリ(/var/spool/postfix)等のオーナーおよびグループ設定 に注意. 11.2 POP3 サーバの設定:Qpopper 11.3 WEB サーバの設定:Apache 26 12 サーバのセキュリティ対策 12.1 インターネットスーパーサーバ:inetd • 設定ファイル:/etc/inetd.conf 12.2 TCP Wrappers によるアクセス制御 • デーモン:/usr/libexec/tcpd (システムによっては /usr/sbin/tcpd) • 設定ファイル:/etc/hosts.allow, /etc/hosts.deny • 注意点:ホストの認証を伴わないので,アドレス詐称に対しては有効でない. 12.3 サーバの役割分担とセキュリティ対策 • ネームサーバ・DHCP サーバ • NIS サーバ • メールサーバ • WEB サーバ • ファイルサーバ 12.4 監視ツールの利用 トラフィック監視 パスワードチェック システムログの監視 侵入監視 セキュリティチェック MRTG Crack, Checkpassword Audit Snort Cops, SATAN, SAINT 27 13 暗号に関する補遺 13.1 因数分解問題 13.2 RSA 暗号化方式 13.3 離散対数問題 13.4 Diffie-Hellman 鍵交換 13.5 ElGamal 暗号化方式 28