2007年度オープンソースソフトウェア活用基盤整備事業 … ·...

86
2007 情財第 989 号 2007 2007 2007 2007年度 年度 年度 年度オープンソースソフトウェア オープンソースソフトウェア オープンソースソフトウェア オープンソースソフトウェア活用基盤整備事業 活用基盤整備事業 活用基盤整備事業 活用基盤整備事業 自治体等 自治体等 自治体等 自治体等における における における におけるオープンソースソフトウェア オープンソースソフトウェア オープンソースソフトウェア オープンソースソフトウェア活用 活用 活用 活用に向けての けての けての けての導入実証 導入実証 導入実証 導入実証 ~Ruby Ruby Ruby Rubyの普及 普及 普及 普及を目指 目指 目指 目指した した した した自治体基幹業務 自治体基幹業務 自治体基幹業務 自治体基幹業務システム システム システム システム構築 構築 構築 構築~ OS OS OS OS 標準 標準 標準 標準ハーデニングガイドライン ハーデニングガイドライン ハーデニングガイドライン ハーデニングガイドライン 平成 平成 平成 平成20 20 20 20年2月 Ruby City MATSUE Ruby City MATSUE Ruby City MATSUE Ruby City MATSUE コンソーシアム コンソーシアム コンソーシアム コンソーシアム

Upload: others

Post on 05-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

2007 情財第 989 号

2007200720072007年度年度年度年度オープンソースソフトウェアオープンソースソフトウェアオープンソースソフトウェアオープンソースソフトウェア活用基盤整備事業活用基盤整備事業活用基盤整備事業活用基盤整備事業

自治体等自治体等自治体等自治体等におけるにおけるにおけるにおけるオープンソースソフトウェアオープンソースソフトウェアオープンソースソフトウェアオープンソースソフトウェア活用活用活用活用にににに向向向向けてのけてのけてのけての導入実証導入実証導入実証導入実証

~~~~RubyRubyRubyRubyのののの普及普及普及普及をををを目指目指目指目指したしたしたした自治体基幹業務自治体基幹業務自治体基幹業務自治体基幹業務システムシステムシステムシステム構築構築構築構築~~~~

OS OS OS OS 標準標準標準標準ハーデニングガイドラインハーデニングガイドラインハーデニングガイドラインハーデニングガイドライン

平成平成平成平成20202020年年年年2222月月月月

Ruby City MATSUE Ruby City MATSUE Ruby City MATSUE Ruby City MATSUE コンソーシアムコンソーシアムコンソーシアムコンソーシアム

Page 2: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

2/86

1章 ガイドラインの目的..................................................... 8

2章 適用範囲............................................................... 8

2.1 適用 ....................................................................... 8

2.2 対象 ....................................................................... 8

2.3 環境 ....................................................................... 8

2.4 記載範囲 ................................................................... 8

3章 定義................................................................... 9

3.1 用語定義 ................................................................... 9

3.2 設定例 ..................................................................... 9

4章 注意事項............................................................... 9

4.1 適用時の注意事項 ........................................................... 9

4.2 最新情報の入手 ............................................................. 9

4.3 環境 ....................................................................... 9

4.4 免責事項 .................................................................. 10

5章 インストール時のセキュリティ設定...................................... 11

5.1 ブートローダパスワード設定 ................................................ 11

5.2 ホスト名 .................................................................. 12

5.3 Root パスワードの設定 ..................................................... 13

5.4 インストールパッケージの選択 .............................................. 14

5.5 ファーストブート .......................................................... 15

5.5.1 ファイアウォールの設定 .................................................. 15

5.5.2 SELinux の設定 .......................................................... 16

5.5.3 日付と時刻設定 .......................................................... 17

5.5.4 システムユーザ .......................................................... 18

6章 オペレーティングシステム強化.......................................... 19

6.1 ソフトウェアアップデート .................................................. 19

6.1.1 yum によるソフトウェアアップデート ...................................... 19

(1) ソフトウェアアップデートの確認........................................ 19

(2) 手動アップデート...................................................... 20

6.1.2 ソフトウェアの完全性チェック ............................................ 20

(1) AIDE のインストール ................................................... 20

(2) AIDE 設定ファイルの確認 ............................................... 20

(3) AIDE データベースの作成 ............................................... 20

(4) 完全性チェックの手動による実行........................................ 21

(5) 完全性チェックの定期的な実行.......................................... 21

Page 3: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

3/86

6.2 不要なサービスの停止とパッケージの削除 .................................... 21

6.2.1 不要なサービスの停止 .................................................... 22

6.2.2 ブート時の不要なサービスの無効 .......................................... 22

6.2.3 不要なパッケージの削除 .................................................. 22

6.3 ネットワークアクセス制御 .................................................. 22

6.3.1 カーネルチューニング .................................................... 22

(1) IP パケットフォワードの制御 ........................................... 22

(2) ソースルート検証の制御................................................ 23

(3) TCP SYN フラッド攻撃の対策 ............................................ 23

(4) ソースルートパケットの制限............................................ 24

(5) ICMP リダイレクトパケットの制限 ....................................... 24

(6) ICMP 応答の制限 ....................................................... 25

(7) カーネルログへの記録.................................................. 25

6.3.2 ファイアウォール設定 .................................................... 25

(1) ファイアウォールのルール原則.......................................... 25

(2) 現在のルールの確認.................................................... 26

(3) デフォルトルールセットの理解.......................................... 26

(4) ポリシーの構築........................................................ 26

(5) 既存ルールセットの破棄................................................ 26

(6) デフォルトで全てのパケットを拒否する設定.............................. 27

(7) 許可するルールの追加.................................................. 27

(8) 作成したポリシーの確認................................................ 27

(9) ポリシーの保存........................................................ 27

6.4 ファイルアクセス制御 ...................................................... 27

6.4.1 パーティションマウントオプションの禁止.................................. 28

(1) デバイスマウントの制限................................................ 28

(2) リムーバブルメディアの制限............................................ 28

6.4.2 デバイスのアクセス制御 .................................................. 29

(1) コンソールデバイスのアクセス禁止...................................... 29

(2) USB デバイスの無効 .................................................... 30

(3) オートマウントの無効.................................................. 31

6.4.3 重要なファイルのパーミッション設定 ...................................... 32

6.4.4 スティッキービットによる制限 ............................................ 32

6.4.5 ワールドライタブルファイルの検出 ........................................ 33

6.4.6 SUID/SGID システム実行ファイルの設定 .................................... 33

6.5 認証 ...................................................................... 35

Page 4: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

4/86

6.5.1 PAM の設定 .............................................................. 35

(1) パスワード品質の設定.................................................. 36

(2) アカウントロックアウト................................................ 37

(3) サービスアクセス制御.................................................. 37

(4) userhelper 制限 ....................................................... 38

6.5.2 SSL..................................................................... 38

(1) 証明書に署名する CAの作成............................................. 39

(2) サーバの SSL 証明書を作成する.......................................... 40

6.6 アカウント管理 ............................................................ 40

6.6.1 パスワード認証の概要 .................................................... 40

6.6.2 コンソールでのルートログイン制御 ........................................ 40

6.6.3 su コマンドの利用制限 ................................................... 41

(1) wheel グループの確認 .................................................. 41

6.6.4 sudo の設定 ............................................................. 42

6.6.5 システムアカウント制御.................................................. 42

(1) システムアカウントの特定.............................................. 43

(2) アカウントのロック.................................................... 43

(3) シェルの無効化........................................................ 43

6.6.6 uid 0 のアカウント確認 .................................................. 43

6.6.7 パスワード制限 .......................................................... 43

(1) 空のパスワード設定の禁止.............................................. 43

(2) パスワード期限の設定.................................................. 44

(3) パスワード長の設定.................................................... 45

(4) パスワードファイルの”+”記号の確認 .................................... 45

6.6.8 デフォルトグループの推奨 ................................................ 45

6.6.9 ログインアカウントのセッション設定ファイルの保護 ........................ 45

(1) root パスの確認 ....................................................... 46

(2) ユーザホームディレクトリ制限.......................................... 46

(3) ユーザドットファイル制限.............................................. 47

(4) Umask 制限 ............................................................ 47

(5) .netrc ファイルの確認 ................................................. 48

6.6.10 コンソール物理アクセス制御 ............................................. 48

(1) BIOS パスワード設定 ................................................... 48

(2) ブートローダパスワード設定............................................ 49

(3) シングルユーザモード設定.............................................. 49

(4) インタラクティブブートの無効.......................................... 50

Page 5: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

5/86

(5) ログインシェルタイムアウト設定........................................ 50

(6) GUI スクリーンロック設定 .............................................. 51

(7) コンソールスクリーンロック設定........................................ 52

6.6.11 バナー表示設定 ......................................................... 52

(1) システムログイン時のバナー設定........................................ 52

(2) GUI 警告バナー設定 .................................................... 53

6.7 時刻同期 .................................................................. 53

6.7.1 NTP の設定 .............................................................. 54

(1) ntpdate を利用した時刻同期 ............................................ 54

(2) NTP クライアントの設定 ................................................ 54

(3) 時刻同期の確認........................................................ 56

6.8 ログ管理と監査 ............................................................ 56

6.8.1 ロギングと監査のアプローチ .............................................. 56

6.8.2 ログ取得設定 ............................................................ 56

(1) ログ取得の基本設定.................................................... 56

(2) 主要なログの取得...................................................... 58

(3) /var/log/messages の散漫なログ取得の防止 .............................. 58

(4) 不要なログ取得設定の削除.............................................. 58

(5) 利用しないサービスのログ取得.......................................... 58

6.8.3 ログファイルの存在の確認とアクセス制御 .................................. 59

6.8.4 ログのバックアップ ...................................................... 59

6.8.5 リモートメッセージの受付 ................................................ 60

6.8.6 ログローテート .......................................................... 60

(1) ログローテートの設定.................................................. 60

(2) 特定ログのローテート設定.............................................. 60

6.8.7 ログの監視(Logwatch) .................................................. 61

(1) logwatch の設定 ....................................................... 61

(2) logwatch の無効 ....................................................... 61

6.8.8 auditd によるシステムアカウンティング ................................... 62

(1) auditd サービスの有効化 ............................................... 62

(2) aureport を使用した監査ログの管理 ..................................... 62

(3) auditd のデータ保有量を増加する ....................................... 63

(4) 監査機能の優先設定.................................................... 63

(5) ログフル時の設定...................................................... 63

6.9 メンテナンスアクセス ...................................................... 64

6.9.1 Telnet サービス ......................................................... 64

Page 6: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

6/86

6.9.2 SSH サービス ............................................................ 64

(1) SSH サービスの削除 .................................................... 65

(2) SSH サービスの設定 .................................................... 65

6.10 ネットワークサービス ..................................................... 66

6.10.1 必要のない全てのネットワークインターフェースの無効 ..................... 66

6.10.2 Zeroconf ネットワーキングの無効 ........................................ 67

6.11 アプリケーション ......................................................... 67

6.11.1 Web サーバ ............................................................. 67

(1) Apache の無効化 ....................................................... 67

(2) Apache の安全なインストール ........................................... 68

(3) 最小限の組み込みモジュールの確認...................................... 68

(4) Apache のセキュア設定(サーバ情報の漏洩防止) ......................... 68

(5) デフォルトエラーページ設定の削除...................................... 69

(6) icon ファイルの削除 ................................................... 69

(7) ロード可能なモジュールの最小化........................................ 69

(8) Apache コアモジュールの確認 ........................................... 70

(9) mod_rewrite モジュールの無効 .......................................... 70

(10) LDAP サポート設定 .................................................... 71

(11) サーバサイドインクルードの無効....................................... 71

(12) マイムマジックの無効................................................. 71

(13) WebDAV の無効 ........................................................ 71

(14) サーバ動作ステータス表示の制限....................................... 72

(15) Web サーバの設定表示の制限 ........................................... 72

(16) mod_speling の無効 ................................................... 72

(17) ユーザに特化したディレクトリの無効................................... 73

(18) キャッシュサポートの無効............................................. 73

(19) CGI サポートの制限 ................................................... 74

(20) オプションコンポーネンツの制限....................................... 74

(21) 組み込み設定ファイルの最小化......................................... 75

(22) ルートディレクトリ制限............................................... 75

(23) Web ディレクトリ制限 ................................................. 75

(24) その他のディレクトリ制限............................................. 76

(25) 認証の設定........................................................... 76

(26) メソッドの制限....................................................... 78

(27) Trace メソッドの無効 ................................................. 79

(28) SSL(SecureSocketLayer)認証設定..................................... 79

Page 7: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

7/86

(29) mod_security の構築 .................................................. 81

(30) Web サービスの為の OS チューニング .................................... 83

6.11.2 プリンタサポート ....................................................... 83

(1) CUPS サービスの無効 ................................................... 83

(2) プリントサービスのネットワーク制限.................................... 84

(3) プリンタブラウジングの制限............................................ 84

(4) 印刷要求待ち受けの制限................................................ 84

(5) サービス利用クライアントの制限........................................ 84

(6) 管理者ページへのアクセス制限.......................................... 85

6.11.3 MySQL の設定 ........................................................... 85

(1) 管理者パスワードの設定................................................ 85

(2) 匿名ユーザの削除...................................................... 86

(3) 一般ユーザの作成...................................................... 86

Page 8: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

8/86

1111章章章章 ガイドラインガイドラインガイドラインガイドラインのののの目的目的目的目的

当ガイドラインは新規に Cent オペレーティングシステム(以下 OS)を用いてサーバを構

築する際に、OS で設定できる技術的な情報セキュリティ対策について、最低限必要とさ

れる考え方と推奨の設定方法を提示します。

2222章章章章 適用範囲適用範囲適用範囲適用範囲

当ガイドラインの適用範囲については、下記を参照してください。

2.12.12.12.1 適用適用適用適用

当ガイドラインの各項目は CentOS5.1 を基に作成しています。バージョンの異なる CentOS や異

なる Linux ディストリビューション、または、Unix、Windows などの他の OS に対して当ガイド

ラインの内容を適用する場合は、ガイドライン各項目の要求事項を確認し、各 OS の特性に応じ

た設定を行ってください。

2.22.22.22.2 対象対象対象対象

当ガイドラインは、新規に Unix 系サーバ OS をインストールし、利用目的に応じて基盤部分を

構築することができる技術を有するシステム管理者を対象としています。そのため、当ガイド

ラインの各章では基礎的なコマンド等により、Unix 系 OS を操作する知識がある読者が利用す

ることを前提として構成しています。

2.32.32.32.3 環境環境環境環境

当ガイドラインは管理者権限環境で構築することを前提としています。当該組織のセキュリテ

ィポリシーや構築環境に応じて sudo や su コマンド等を利用して、管理者権限での設定を実施

してください。

また、インストール時には、ファイアウォール等によって安全が確保されたネットワーク内で

の作業を実施してください。

2.42.42.42.4 記載範囲記載範囲記載範囲記載範囲

当ガイドラインの記載範囲は、OS のインストールから初期設定までの工程における、セキュリ

ティに関連する箇所のみを記載しています。セキュリティに直接関連しない基本構築やサービ

スの導入・設定に係る部分、およびサーバ稼働後の運用等に関連する部分に関しては言及して

いません。

また、当ガイドライン内の詳細オプションや各設定ファイルの書式など詳しく知りたい場合は、

man コマンドやベンダなどが提供する公開情報等を参照してください。

Page 9: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

9/86

3333章章章章 定義定義定義定義

3.13.13.13.1 用語定義用語定義用語定義用語定義

当ガイドラインで使用する用語の定義は以下となります。

用語 定義

当該サーバ 当ガイドラインを適用するサーバ OS がインストールされた電子計算機

管理者 当該サーバの root 権限(特権)のアカウントを持つシステム管理者

3.23.23.23.2 設定例設定例設定例設定例

当ガイドラインで記載する設定例の表記について以下の定義を参照してください。

表記 定義

赤字斜体 設定例のうち任意入力項目を示します。

4444章章章章 注意事項注意事項注意事項注意事項

当ガイドラインを利用するにあたり、下記の注意事項を参照してください。

4.14.14.14.1 適用時適用時適用時適用時のののの注意事項注意事項注意事項注意事項

当ガイドラインでは、情報セキュリティ上の推奨設定を記載していますが、設定する項

目によっては、当該サーバの提供するサービスに影響を及ぼす場合があります。

そのため、関連する内容を全て参照していただき、当該サーバの使用目的および使用方

法に沿って、設定を実施するかどうかを選択してください。

また、当ガイドラインを適用する際は、当該サーバを所有する組織が定める情報セキュ

リティポリシーや情報セキュリティ基本方針、情報システム運用基準文書等を併せて参

照し、その求めに応じて設定を実施するかどうかを選択してください。

4.24.24.24.2 最新情報最新情報最新情報最新情報のののの入手入手入手入手

当ガイドラインは 2007 年 12 月現在で公知となっている技術情報や、セキュリティ情報

及びその対策・予防方法に基づき作成しています。

OS や各種ツール、ソフトウェア、情報セキュリティに関連する情報は日々更新されてい

るため、当ガイドラインを適用する際には、その時の最新のセキュリティ情報に留意し

て利用してください。

4.34.34.34.3 環境環境環境環境

当ガイドラインを参照してサーバを構築する際は、開発環境等、外部からの影響を受け

Page 10: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

10/86

ない安全な環境で作業を実施してください。

4.44.44.44.4 免責事項免責事項免責事項免責事項

本ガイドラインに記載された事項に依存して行われた行為におけるいかなる損害(直接

的・間接的を問わず)、あるいは、本ガイトラインの不正確・誤りまたは欠落に起因する

いかなる損害に対して、本ガイドライン製作者は一切の責任を負いません。

Page 11: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

11/86

5555章章章章 インストールインストールインストールインストール時時時時ののののセキュリティセキュリティセキュリティセキュリティ設定設定設定設定

本章では OS 初期インストール時と初回起動時のセキュリティ設定について述べます。

5.15.15.15.1 ブートローダパスワードブートローダパスワードブートローダパスワードブートローダパスワード設定設定設定設定

当該サーバの OS を直接操作できるユーザは、シングルユーザモードを使用することで、root

のパスワードを知らなくても、root 権限でログインすることができ、GURUB エディタを使用し

た設定変更や内部情報を取得をすることができます。

このような操作を防ぐ必要がある場合は、ブートローダでパスワード認証を行ってください。

インストール時にブートローダにパスワードを設定する際、パーティション設定画面で、「デフ

ォルトのレイアウトを作成する」を選択するとブートローダパスワードの設定の画面はスキッ

プされてしまいます。その際は、「パーティションレイアウトの再確認と変更(V)」のチェック

ボックスをチェックしてから次へ進む必要があります。

Page 12: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

12/86

注意)本項の対策は RESCUE モードで回避することが出来るため、[6.6.11(1)]の BIOS パスワー

ド設定を合わせて実施し、物理的アクセス制限を強化することでより有効となります。

5.25.25.25.2 ホストホストホストホスト名名名名

ホスト名を手動で入力する際には、当該サーバを管理する組織(例:kaikeika)や当該サーバの提

供するサービス(例:kyuuyo-keisan)などが分かるような名前は、攻撃を誘発する可能性がある

ため、出来る限り推測し難い名前を付与することを推奨します。運用ポリシー等可用性も踏ま

えて、適切な名前を設定してください。

注意)OS インストール後にホスト名を変更すると、OS 上で動作している各サービスに影響

を及ぼす可能性があるため、可能な限りインストール時に適切なホスト名を付与してくださ

い。

Page 13: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

13/86

5.3 Root5.3 Root5.3 Root5.3 Root パスワードパスワードパスワードパスワードのののの設定設定設定設定

root パスワードの強度は当該サーバ全体のセキュリティに影響を与えます。堅牢なセキュリテ

ィ設定や、セキュリティシステムを導入していたとしても、脆弱な root パスワードによって簡

単に回避されてしまいます。そのため、運用への影響や当該組織のポリシーを考慮したうえで、

出来る限り強固なパスワードを設定してください。

root パスワードを設定する際には、以下のような要件をポリシーとすることを推奨します。

・root のパスワード長は可能な限り長く(12 文字以上を推奨)

・使用する文字の種類はアルファベットの大小文字と特殊文字(記号)と数字を全て組合せる

・辞書にある簡単な単語や、利用組織・利用者の属性情報から推測可能なフレーズの禁止

Page 14: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

14/86

5.45.45.45.4 インストールパッケージインストールパッケージインストールパッケージインストールパッケージのののの選択選択選択選択

インストーラでパッケージを選択してインストールを実施することは、非常に簡単な作業です

が、インストーラの初期導入の構成によっては、セキュリティ上の問題が発生する原因になる

ことがあります。当該サーバの提供するサービスに必要であっても、インストールパッケージ

の選択を利用したインストールでは、不要なモジュールやファイルを大量にインストールして

しまうこともあるため、ここでは必要最低限のパッケージの選択に留め、OS インストール後に

必要なサービスを個別にインストールすることを推奨します。

「今すぐカスタマイズする(C)」を選択し、必要の無い全てのパッケージのチェックを外してく

ださい。

注意)ただし、以下のパッケージは多くの基本的な機能を提供している為、チェックを外すこ

とは推奨しません。

・<ベースシステム>の[ベース]パッケージ

・<開発>の[開発ツール]パッケージ

Page 15: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

15/86

5.55.55.55.5 ファーストブートファーストブートファーストブートファーストブート

初回起動時のみ表示される設定について、以下の項目を実施してください。

5.5.15.5.15.5.15.5.1 ファイアウォールファイアウォールファイアウォールファイアウォールのののの設定設定設定設定

インストール時のファイアウォール設定を実施するかどうかは、インストール時のネットワー

ク環境によります。当ガイドラインでは、セキュリティが確保されたネットワーク上で構築作

業を実施することを想定しているため、インストール時にはファイアウォールを無効にして、

後から設定します。

もし、インストール時点で、ファイアウォールの設定を実施する必要がある場合は、当ガイド

ラインの[6.3.2]の項目を参照のうえ、設定を行ってください。

Page 16: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

16/86

5.5.2 SELinux5.5.2 SELinux5.5.2 SELinux5.5.2 SELinux のののの設定設定設定設定

SELinux は非常に強力で詳細なアクセス制御や権限管理機能を持ちますが、その反面システム

運用時に多くの制限とシステム管理者への負荷をもたらすこともあります。

そのため、運用の流れが安定してから SELinux を有効にすることを検討することとし、インス

トール時点では、特段の理由がある場合を除き「無効」にするか「permissive」モードを選択

してください。

「permissive」モードとは、SELinux によるアクセス拒否のログは記録するが、アクセス自体

には一切干渉しないモードです。一通りの運用を通して当該ログを収集することで、SELinux

を有効にする際のポリシー策定に役立ちます。

Page 17: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

17/86

5.5.35.5.35.5.35.5.3 日付日付日付日付とととと時刻設定時刻設定時刻設定時刻設定

当該サーバの構築環境に既に NTP サーバが存在し、時刻同期を行う場合は、「ネットワーク

タイムプロトコル」タブで NTP の設定をしてください。

Page 18: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

18/86

5.5.45.5.45.5.45.5.4 システムユーシステムユーシステムユーシステムユーザザザザ

ファーストブートの時点で当該サーバに必要なユーザが決定している場合は、一般ユーザを

作成してください。

ユーザを作成する際は、仮発行であるか無いかに関わらず、ユーザ名およびパスワードは推

測されにくいものを設定してください。

また、ネットワーク認証を使う場合でも、ファーストブートでは「ネットワークログインを

使用する」のボタンをクリックして設定を設けず、OS インストール完了後に設定してくださ

い。

Page 19: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

19/86

6666章章章章 オペレーティングシステムオペレーティングシステムオペレーティングシステムオペレーティングシステム強化強化強化強化

以下の項目は、OS インストール後のファーストブートが完了した時点からのセキュリテ

ィ設定について述べます。

ただし、各項目をすべて実施することで、運用が困難になったり、想定していたサービ

スの提供に支障をきたしたりする可能性がある項目も含まれています。

そのため、当該サーバの利用目的や組織のセキュリティポリシー等を参照し、必要に応

じて内容を検討し、適切に実施してください。

6.16.16.16.1 ソフトウェアアップデートソフトウェアアップデートソフトウェアアップデートソフトウェアアップデート

システムの脆弱性を低減するためには、既知のセキュリティホールに対応したセキュリティパ

ッチを適用することが不可欠です。ベンダなどが提供しているアップデートパッチやセキュリ

ティパッチを適用し、システムを最新かつ安全な状態に更新してください。

CentOS には、ソフトウェアのインストールおよびアップデートツールとして、yum(ヤム)ユー

ティリティが用意されています。以前のシステムバージョンにおいては、yum は up2date ユー

ティリティに置き換えることができます。yum と Up2date には、それぞれ、pirut と pup の二つ

の GUI ベースのパッケージマネージャが提供されており、GUI を利用している場合には、これ

らを利用することもできます。

6.1.1 yum6.1.1 yum6.1.1 yum6.1.1 yum によるによるによるによるソフトウェアアップソフトウェアアップソフトウェアアップソフトウェアアップデートデートデートデート

yum ユーティリティは、コマンドラインからの手動実行や、フロントエンドのツール(pirut

と pup)から呼び出して利用する方法や、定期的に自動実行する設定などで実行することが

できます。

注意)yum の利用はインターネット接続が出来ることが前提となります。ネットワーク接続

環境によっては proxy の設定、環境変数の設定などを事前に行う必要があります。

(1)(1)(1)(1) ソフトウェアアップデートソフトウェアアップデートソフトウェアアップデートソフトウェアアップデートのののの確認確認確認確認

以下のコマンドを実行して、アップデートが必要なパッケージを確認してください。

なお、自動アップデート確認を行う yum-updatesd サービスも利用することが出来ま

すが、開発途上のサービスのため、一般の環境で利用することは推奨されません。ま

た、不必要なオーバーヘッドをもたらす恐れもあるため、yum check-update コマンド

を用いて手動でアップデートの確認を定期的に行い、yum-updatesd サービスは無効に

することを推奨します。

Page 20: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

20/86

コマンド # yum check-update

# service yum-updatesd stop

# chkconfig yum-updatesd off

アップデート確認

サービス停止(起動時)

ブート時の無効

(2)(2)(2)(2) 手動手動手動手動アップデートアップデートアップデートアップデート

以下のコマンドを実行して、アップデートを行ってください。なお、ソフトウェアに

よっては、アップデートすることで既存サービスに支障をきたす場合もあるため、ア

ップデートをおこなう前に既存サービスへの影響を確認するようにしてください。

注意)アップデートを実行する際、対象パッケージを指定しないと、アップデート可

能な全てのパッケージがアップデートされます。

コマンド # yum update “対象パッケージ” アップデート実行

6.1.26.1.26.1.26.1.2 ソフトウェソフトウェソフトウェソフトウェアアアアのののの完全性完全性完全性完全性チェックチェックチェックチェック

AIDE はソフトウェアの完全性チェック機能を提供します。ソフトウェアの完全性チェックは、

ファイル改変の発生を検知することができます。

(1)(1)(1)(1) AIDEAIDEAIDEAIDE ののののインストールインストールインストールインストール

AIDE を利用するために、インストールしてください。

コマンド # yum install aide インストール

(2)(2)(2)(2) AIDEAIDEAIDEAIDE 設定設定設定設定ファイルファイルファイルファイルのののの確認確認確認確認

AIDE の設定ファイルは、/etc/aide/aide.conf です。デフォルト設定は多くの環境に

対応しています。設定を変更する場合は、man aide.conf でマニュアルを参照してく

ださい。

(3)(3)(3)(3) AIDEAIDEAIDEAIDE データベースデータベースデータベースデータベースのののの作成作成作成作成

以下のコマンドを実行して、新しいデータベースファイルを作成してください。新た

にデータベースファイルを作成すると、/var/lib/aide/aide.db.new.gz が作成されま

す。このデータベースファイルは新規作成された際、およびアップデートされた際に

書き込まれる比較元のファイルです。完全性チェックを行うために、このファイルを

コピーして、/var/lib/aide/aide.db.gz ファイルを作成してください。

Page 21: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

21/86

コマンド # aide --init

# cp /var/lib/aide/aide.db.new.gz

/var/lib/aide/aide.db.gz

DB 作成

コピー

注意)上記 DB 作成コマンドの実行は、時間が掛かってしまうので、注意してくださ

い。

(4)(4)(4)(4) 完全性完全性完全性完全性チェックチェックチェックチェックのののの手動手動手動手動によるによるによるによる実行実行実行実行

完全性チェックは以下のコマンドで実施することができます。チェック結果はコンソ

ールと/var/log/aide/aide.log に出力されます。ここで予期しない出力結果を確認し

た際は、原因を調査してください。

また、チェック結果に問題ない場合は、適宜(3)と同様の手順でデータベースファイ

ルのアップデートを実施してください。

コマンド # aide --check チェックの実行

(5)(5)(5)(5) 完全性完全性完全性完全性チェックチェックチェックチェックのののの定期的定期的定期的定期的なななな実行実行実行実行

完全性のチェックを cron によって定期的に行うために/etc/crontab ファイルに設定

を追加してください。以下の例は日次で午前 4:05 にチェックを実行する設定です。

コマンド # vi /etc/crontab ファイル編集

編集内容 05 4 * * * root /usr/sbin/aide --check 毎日 4:05

定期チェックの結果を確認して、問題が無い場合は(3)と同様の手順でにデータベー

スファイルを更新してください。その際、必要に応じて CD-R などの外部記媒体に元

のデータベースファイルをバックアップして保管してください。

6.26.26.26.2 不要不要不要不要ななななサービスサービスサービスサービスのののの停止停止停止停止ととととパッケージパッケージパッケージパッケージのののの削除削除削除削除

OS のデフォルトインストールのままでは、そのサーバが提供するサービスには必要ないサービ

スのパッケージも含まれる場合があります。脆弱性の多くはサービス毎に存在しており、多く

のサービスが存在していることは、脆弱性を内包する可能性を高めることになります。

そのため、サービスの提供に不要なパッケージを探し出し、可能な限り削減することは、脆弱

性の発生原因を極小化し、リスクを低減することに繋がります。

また、不要なサービスが有効になっていると、攻撃者に予期せぬ形で利用される可能性があり

ます。そのため、当該サーバが必要とする機能以外のサービスは出来る限り無効にし、内容に

Page 22: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

22/86

よっては削除してください。

6.2.16.2.16.2.16.2.1 不要不要不要不要ななななサービスサービスサービスサービスのののの停止停止停止停止

不要なサービスが起動している際は、以下の手順でサービスを停止してください。

コマンド # service --status-all

# service “停止するサービス” stop

全サービスステータス

サービスの停止

6.2.26.2.26.2.26.2.2 ブートブートブートブート時時時時のののの不要不要不要不要ななななサービスサービスサービスサービスのののの無効無効無効無効

不要なサービスがブート時に有効なっていないか確認し、必要に応じて無効にしてください。

コマンド # chkconfig –list | grep on

# chkconfig “無効にするサービス” off

ブート時有効サービス

ブート時の無効

6.2.36.2.36.2.36.2.3 不要不要不要不要ななななパッケージパッケージパッケージパッケージのののの削除削除削除削除

不要なパッケージがインストールされている場合は、以下の手順でパッケージを削除してく

ださい。

コマンド # yum list installed

# yum erase “削除するパッケージ”

パッケージの一覧表示

パッケージの削除

6.36.36.36.3 ネットワークアクセスネットワークアクセスネットワークアクセスネットワークアクセス制御制御制御制御

以下はネットワークのアクセス制御について述べたものです。サーバセキュリティにおいてネ

ットワークアクセス制御は最も重要な対策の1つであるため、以下の項目を必ず参照し、適切

なアクセス制御を行ってください。

6.3.16.3.16.3.16.3.1 カーネルチューニングカーネルチューニングカーネルチューニングカーネルチューニング

ネットワークアクセス制御では、カーネルと関連深い設定があります。本項目は、sysctl を

使ったカーネルチューニングによる、/proc/sys/net/ipv4 以下のネットワークアクセス制御

の設定を述べたものです。

(1)(1)(1)(1) IPIPIPIP パケットフォワードパケットフォワードパケットフォワードパケットフォワードのののの制御制御制御制御

適用するサーバがネットワーク境界などで、IP パケットの転送を行う必要が無い場合

は、以下のように/etc/sysctl.conf を編集して IP パケットフォワードを無効にして

ください。本設定は、サーバで複数の NIC を使用している場合などに、想定しない IP

Page 23: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

23/86

ルーティングを防止するための防御策の 1 つとして有効です。

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

IPforward 無効

リダイレクト無効

リダイレクト無効

コマンド # sysctl –p 編集の反映(必須

(2)(2)(2)(2) ソースルートソースルートソースルートソースルート検証検証検証検証のののの制御制御制御制御

以下の設定は、送信元アドレスの検証機能を有効にする設定です。リモートホストが

パケットをローカルのアドレスであるかのように偽装してアクセスしてくること(IP

Spoofing 攻撃)を防ぐことができます。(該当するパケットは破棄されます)

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

ソースルート検証有効

ソースルート検証有効

コマンド # sysctl –p 編集の反映(必須)

(3)(3)(3)(3) TCP SYNTCP SYNTCP SYNTCP SYN フラッドフラッドフラッドフラッド攻撃攻撃攻撃攻撃のののの対策対策対策対策

TCP SYN フラッド攻撃とは DoS 攻撃の一種で、攻撃者はクライアント/サーバ環境にお

いて、TCP 接続の手順を故意に停滞させることで、サーバのリソースを枯渇させ、新

たな接続の確立を出来なくします。

以下の設定によって、サーバが SYN フラッド状態になると、サーバは特殊な SYN/ACK

応答をクライアントに返すようになります。サーバは続けてクライアントからの ACK

応答に含まれる値を計算することで、正当なクライアントの接続に対してのみサーバ

のリソースを割り当てることができ、TCP SYN フラッド攻撃によるサーバのリソース

の枯渇を防ぐことが可能となります。

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.tcp_syncookies = 1 tcp_syncookies 有効化

コマンド # sysctl –p 編集の反映(必須)

注意)tcp_syncookies オプションの利用は、TCP SYN フラッド攻撃に対して、一定レ

ベルの効果をもたらしますが、tcp_syncookies オプションの実装上、サーバが SYN フ

ラッド状態になった場合に次の問題点があることに留意し、適用するかどうかを決定

してください。

Page 24: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

24/86

・クライアントが SYN パケットの中で指定した MSS(Maximum Segment Size)の値を記

憶しないため、予めサーバで設定した 8種類の値のなかから、クライアントの要求に

最も近い値を使用する。そのため、クライアントが指定した MSS値と一致しない場合、

サーバとクライアント間の通信性能が低下する可能性がある。

・クライアントが SYN パケットの中で指定した TCP オプションの値を記憶しないため、

SYN/ACK応答以降の通信ですべてのTCPオプションを無視せざるを得ない。そのため、

クライアントが TCP オプションを指定していた場合、サーバとクライアント間の通信

性能が低下する可能性がある。

・サーバは正当な接続かを確認するために、クライアントからの ACK 応答に含まれる

値を計算する。これにより、サーバ側の計算負荷が増大する。

・クライアントは ACK 応答を送信後にコネクションが確立したと認識してサーバから

の接続を待ち受ける状態となる。しかし、ACK パケットがサーバに到達する前に失わ

れた場合には、本来サーバが行なうべき SYN/ACK 応答の再送が行なわれないため、サ

ーバはコネクションの確立が行なえず、クライアントに対する応答を送信することが

できない。結果として、SSH、FTP、SMTP のような、サーバ側がクライアントより先に

応答を返すプロトコルでは、クライアント側で通信がハングアップする可能性がある。

(4)(4)(4)(4) ソースルートパケットソースルートパケットソースルートパケットソースルートパケットのののの制限制限制限制限

ソースルートパケット(source-route オプションが有効な IP パケット)とは、送信元

ホストがネットワークのどの経路を経て宛先へ到達するかが指定されたパケットで

す。送信ソースルートの設定は、侵入や情報詐取などの様々な用途に使用することが

可能な手法のため、特段の必要性の無い限りは以下の設定を実施し、ソースルートパ

ケットの受け入れを許可しないようにしてください。

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

ソースルートの禁止

ソースルートの禁止

コマンド # sysctl –p 編集の反映(必須)

(5)(5)(5)(5) ICMPICMPICMPICMP リダイレクトパケットリダイレクトパケットリダイレクトパケットリダイレクトパケットのののの制限制限制限制限

ICMP パケットはゲートウェイの更新時などに、ルータなどから送信されるパケットで、

ルーティングに関する情報を伝える為の ICMP メッセージです。

このパケットを受け入れると、攻撃者によりゲートウェイの設定が書き換えられてし

まう可能性があります。そのため、以下の設定を実施し、ICMP リダイレクトパケット

の受け入れを許可しないようにしてください。

Page 25: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

25/86

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.default.secure_redirects = 0

リダイレクト拒否

リダイレクト拒否

リダイレクト拒否

リダイレクト拒否

コマンド # sysctl –p 編集の反映(必須)

(6)(6)(6)(6) ICMPICMPICMPICMP 応答応答応答応答のののの制限制限制限制限

攻撃者は ICMP を利用して、攻撃目標の情報収集を伴った、様々な攻撃を行う場合が

あります。

セキュリティの観点からは ICMP 要求に応答しないことが望ましいですが、ICMP を全

て拒否した場合は、ネットワーク障害時の調査等に支障をきたす恐れがあります。

そのため、以下の設定ではブロードキャスト宛の ICMP 要求と ICMP 要求に対するエラ

ーメッセージに応答しないようにする内容を記載しています。

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.icmp_ignore_bogus_error_responses = 1

ブロードキャスト無視

エラーメッセージ無視

コマンド # sysctl –p 編集の反映

(7)(7)(7)(7) カーネルログカーネルログカーネルログカーネルログへのへのへのへの記録記録記録記録

以下の設定により、不審なパケット(宛先の不明なパケットやソースルートパケット)

が届いたときにカーネルログへ記録されます。

コマンド # vi /etc/sysctl.conf 設定ファイル編集

編集内容 net.ipv4.conf.all.log_martians = 1 記録の有効化

コマンド #sysctl –p 編集の反映

6.3.26.3.26.3.26.3.2 ファイアウォールファイアウォールファイアウォールファイアウォール設定設定設定設定

この項目は、ネットワークアクセス制御について、Netfilter と呼ばれるホストに基づくファ

イアウォールの設定について述べます。これは、iptables プログラムによってコントロールさ

れます

(1)(1)(1)(1) ファイアウォールファイアウォールファイアウォールファイアウォールののののルールルールルールルール原則原則原則原則

ファイアウォールの原則は default deny all (全ての通信を遮断)とし、必要な通信

Page 26: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

26/86

のみを追加してルールを構築することを推奨します。

(2)(2)(2)(2) 現在現在現在現在ののののルールルールルールルールのののの確認確認確認確認

現在のファイアウォールのアクセス制御ルールを確認する為に、以下を実行してくだ

さい。もし iptables が有効になっていない場合は、あわせて有効にしてください。

コマンド # service iptables start

# iptables -L --line-numbers

# chkconfig iptables on

iptables の起動

ACL リストの確認

起動時の有効化

(3)(3)(3)(3) デフォルトルールセットデフォルトルールセットデフォルトルールセットデフォルトルールセットのののの理解理解理解理解

iptables では、ルールに違反したパケットは、DROP か REJECT という取り扱いを設定

することができます。

DROP と REJECT は、双方ともにパケットの受け入れを拒否しますが、DROP は送信元に

は応答を返さずにパケットを破棄します。一方、REJECT は受け入れを拒否した旨を送

信元へ通知します。

攻撃者に情報を与えないという意味では、DROP でパケットを処理するほうが望ましい

ですが、ネットワーク障害時などに調査に支障をきたす恐れもあります。そのため、

当該サーバのネットワーク環境等を考慮して DROP するか REJECT するかを選択してく

ださい。

(4)(4)(4)(4) ポリシーポリシーポリシーポリシーのののの構築構築構築構築

iptables のポリシー設定では、あらかじめ、当該サーバにおいて、どのようなサービ

スを提供または利用し、どのような通信がどのネットワーク向きに発生しうるのかを

確認し、必要なポリシーについて定義してください。

ポリシーの構築を始める前に、/etc/sysconfig/iptables ファイルが存在するかを確

認してください。インストール時にファイアウォールの設定を無効にした場合は作成

されていない可能性があるため、ファイルが存在していない場合は、以下のコマンド

を入力して/etc/sysconfig/iptables ファイルを作成してください。

コマンド # iptables –F

# service iptables save

全ルールを破棄

ルールの保存

(5)(5)(5)(5) 既存既存既存既存ルールセットルールセットルールセットルールセットのののの破棄破棄破棄破棄

新たにポリシーを構築する際は、既存のルールセットを破棄してください。

Page 27: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

27/86

コマンド # iptables –F 全ルールを破棄

(6)(6)(6)(6) デフォルトデフォルトデフォルトデフォルトでででで全全全全てのてのてのてのパケットパケットパケットパケットをををを拒否拒否拒否拒否するするするする設定設定設定設定

まず、以下の作業を行い、INPUT(受信)および FORWARD(転送)のデフォルト設定を

ACCEPT から DROP へ変更し、全て拒否としてください。

注意)iptables は許可した通信に対する戻りの通信も許可するルールを定義する必要

があります。

コマンド # iptables –P INPUT DROP

# iptables –P FORWARD DROP

# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

全ての受信を拒否

全ての転送を拒否

戻り通信の許可

(7)(7)(7)(7) 許可許可許可許可するするするするルールルールルールルールのののの追加追加追加追加

必要に応じて、以下の書式例に従い、許可する通信のルールを追加してください。

# iptables -A[INPUT/OUTPUT/FORWARD]-s[送信元]-d[送信先]-p[PROTOCOL]-j[ACCEPT/DROP/REJECT]

(8)(8)(8)(8) 作成作成作成作成したしたしたしたポリシーポリシーポリシーポリシーのののの確認確認確認確認

ポリシーを作成したら以下のコマンドでルールを確認してください。その際、不要な

ルールを削除するときは、下記のコマンドを利用して削除してください。

コマンド # iptables –L

# iptables –F

# iptables –D “対象ルール”

ルール一覧表示

ルール全削除

ルール個別削除

(9)(9)(9)(9) ポリシーポリシーポリシーポリシーのののの保存保存保存保存

以下のコマンドにより作成したポリシーを保存し、/etc/sysconfig/iptables ファイ

ルに反映されているか確認してください。

コマンド # service iptables save ルールの保存

6.46.46.46.4 ファイルアクセファイルアクセファイルアクセファイルアクセスススス制御制御制御制御

ファイルのアクセス制御は、ファイルおよびフォルダのパーミッション設定に重点を置いて実

施する必要があります。

各ファイル/ディレクトリ/ファイルシステムに最小権限のパーミッションを設けてアクセス制

Page 28: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

28/86

御を行ってください。

6.4.1 6.4.1 6.4.1 6.4.1 パーティションマウントオプションパーティションマウントオプションパーティションマウントオプションパーティションマウントオプションのののの禁止禁止禁止禁止

システムパーティションは、パーティション上のファイルの動作を制限するオプションを使用

してマウントすることができます。

これらのオプションは/etc/fstab ファイルの中に記述され、様々な種類の攻撃を困難にする

ことができます。

/etc/fstab の記述内容は以下の通りです。

書式:[Label][mount_point][filesystem][mount_option][dump][fsck]

・[Label]:マウントするブロックデバイスやラベル

・[mount_point]:マウントポイント

・[filesystem]:ファイルシステムの種類

・[mount_option]:マウント時のオプション

・[dump]:ファイルシステムを dump するかどうか。[0]か記述無しの場合は dump 不要。

・[fsck]:システム起動時に fsck チェックを行うかどうか。[0]チェック不要。[1]ルートフ

ァイルシステムでチェック。[2]ルートファイルシステム以外でチェック。

(1)(1)(1)(1) デバイスマウントデバイスマウントデバイスマウントデバイスマウントのののの制限制限制限制限

特段の必要が無い場合は、/etc/fstab ファイルを編集して、ルートパーティション以

外のローカルパーティションで、ext2 および ext3 のファイルシステムであるパーテ

ィションについて、”,nodev”オプションを追加し、未許可とするデバイスの使用を無

効にしてください。

このオプションを利用することで、許可されていない特定のデバイスがマウントされ

ることを防ぎます。

注意)”/”パーティションおよび、”ext2”,”ext3”ファイルシステム以外のパーティショ

ンにはこのオプションを適用しないでください。

コマンド # vi /etc/fstab 設定ファイル編集

設定例 LABEL=/boot /boot ext3 defaults,nodev 1 2

(2)(2)(2)(2) リムーバブルメディアリムーバブルメディアリムーバブルメディアリムーバブルメディアのののの制限制限制限制限

リムーバブルメディア毎の制限を実施するには/etc/fstab ファイル内で、マウントポ

イントに”floppy”や” cdrom”ような文字列を含む行か、ファイルシステムタイプ

が”iso9660”,” vfat”,”msdos”である行にオプションを追加します。

Page 29: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

29/86

ユーザによる任意の機器の接続や、特権モードでのデバイスのマウントを制限する為

には、リムーバブルメディアの行の[mount_option]列に”,nodev”、”,nosuid”を追加し

てください。なお、”,noauto”を追加すると、起動時に自動的にマウントされなくなり

ます。

また、可能であれば、”,noexec”を追加すると、当該デバイス上のファイルは実行でき

なくなるため、不正なプログラムの実行が制限されます。

以下はフロッピーディスクの利用を禁止する設定例です。

コマンド # vi /etc/fstab 設定ファイル編集

設定例 /dev/fd0 /mnt/floppy auto noauto,owner,nodev,nosuid,noexec 0 0

6.4.26.4.26.4.26.4.2 デバイスデバイスデバイスデバイスののののアクセスアクセスアクセスアクセス制御制御制御制御

CentOS は実行システム上でファイルシステムの自動追加と除去のための機能を持っています。

これらの機能は利便性を高めますが、特権の無いユーザに任意のファイルシステムの使用を許

してしまいます。当該サーバへ攻撃者が物理的にアクセスできる可能性のある場合は、これら

の機能が悪用される可能性があります。当該サーバの物理的環境を考慮して、必要に応じて以

下の項の設定を実施してください。

(1)(1)(1)(1) コンソールデバイスコンソールデバイスコンソールデバイスコンソールデバイスののののアクセスアクセスアクセスアクセス禁止禁止禁止禁止

デフォルトのシステム構成では、コンソールユーザにデバイスの一時的な所有と root

ユーザの特権を与えます。これは攻撃者がコンソールアクセスできる場合に危険な構

成であるため、特段の必要が無い場合は以下の設定をおこない、コンソールデバイス

のアクセスを禁止してください。

コンソールデバイスの制限は、/etc/security/console.perms.d/50-default.perms を

編集モードで開き、# permission definitions の行を探し、<console>や<xconsole>

で始まる行をコメントアウトすることで実現できます。

コマンド # vi /etc/security/console.perms.d/50-default.perms 設定ファイル編集

編集内容 # permission definitions

#<console> 0660 <floppy> 0660 root.floppy

#<console> 0600 <sound> 0600 root

...

#<xconsole> 0600 /dev/console 0600 root.root

以下を編集

コメントアウト

コメントアウト

...

コメントアウト

Page 30: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

30/86

#<console> 0600 <dri> 0600 root コメントアウト

あわせて、/etc/sevurity/console.perms を編集してください。

コマンド # vi /etc/security/console.perms 設定ファイル編集

編集内容 # <console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :[0-9]

# <xconsole>=:0\.[0-9]

<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0\.[0-9] :0

<xconsole>=:0\.[0-9] :0

コメントアウト

コメントアウト

追加

追加

(2)(2)(2)(2) USBUSBUSBUSB デバイスデバイスデバイスデバイスのののの無効無効無効無効

当該サーバに物理的なアクセスが可能な場合、USB フラッシュメモリや USB ハードド

ライブを使用することによって、攻撃者に膨大な量のデータを簡単にコピーし持ち去

ることを許してしまいます。特段の必要が無い限り、これらのデバイスの使用を無効

にするよう設定してください。

① USB ストレージドライバロードの無効

modprobe はモジュール化されたドライバを自動的にカーネルへ組み込むために利用

されます。必要が無い場合は USB ストレージドライバのロードを無効にしてくださ

い。

コマンド # vi /etc/modprobe.conf 設定ファイル編集

編集内容 install usb-storage : 追加

この設定では、管理者(あるいは別のプログラム)による insmod プログラムを用いた

モジュールの手動ロードは禁止しません。

② USB ドライバの削除

当該サーバで USB ストレージデバイスを全く使用しない場合は、ドライバ自体を削

除することが可能です。

注意)この方法は、USB デバイスの利用を禁止するには確実ですが、カーネルが更新

される度に、この設定を繰り返す必要があり、rpm -q コマンドによりカーネルエラ

ーなど度々確認する必要があるかもしれません。また、USB ドライバを組み込んだカ

Page 31: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

31/86

スタムカーネルが使用される場合には、USB ストレージデバイスはマウントされるこ

とに注意してください。

以下のコマンドで USB ストレージデバイスドライバを削除することができます。

コマンド # rm /lib/modules/”kernelバージョン”/kernel/drivers/usb/storage/usb-storage.ko

③ ブートローダ経由での USB デバイス接続の禁止

USB 記憶装置を無効にするもう一つの手段は、OS によって提供されるすべての USB

サポートを無効にすることです。これは、「nousb」引数をカーネルのブートローダ

の設定ファイルに加えることによって実現されます。

注意)USB に対するすべてのカーネルサポートを抑制することは、USB キーボード、

USB マウスまたは USB プリンタを使えなくします。そのため、この設定は、USB 接続

を必要とする機器を接続したシステムには不適当です。

USB 機器の接続の必要が無いシステムにおいては、以下のように USB サポートを無効

にしてください。

コマンド #vi /etc/grub.conf 設定ファイル編集

確認内容 kernel /vmlinuz-version ro vga=ext

root=/dev/VolGroup00/LogVol00 rhgb quiet nousb

追 USB 無効

④ USB デバイスからのブート禁止

物理アクセスが可能な攻撃者は USB ドライブからシステムを起動して、ハードディ

スクに関する全てのデータにアクセスを試みることができます。さらに、通常のオ

ペレーティングシステムのアクセス制御は回避できます。これを防ぐために、USB ド

ライブからブートすることを認めない BIOS 設定を実施し、BIOS をパスワードで保護

(6.6.10(1)BIOS パスワード設定を参照)してください。

(3)(3)(3)(3) オートマウントオートマウントオートマウントオートマウントのののの無効無効無効無効

autofs デーモンは、NFS やオンデマンドで共有されるユーザホームディレクトリの

ようなファイルシステムをマウントやアンマウントします。さらに、autofs はリム

ーバブルメディアを扱うために使用することができます。しかしながら、autofs に

よるリムーバブルメディアへのアクセスを提供する方法は一般的ではありません。

従って、NFS を使用しない場合、autofs は無効とする場合が多いです。

Page 32: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

32/86

NFS が必要な場合でも、autofs に依存せず、/etc/fstab の編集により、ファイルシ

ステムマウントを静的に構成することは、多くの場合可能です。

動的な NFS ファイルシステムマウントやリムーバブルメディアのオートマウントが

必要無い場合は、オートマウント機能を無効にしてください。

コマンド # service autofs stop

# chkconfig autofs off

サービス停止

起動時の無効

6.4.36.4.36.4.36.4.3 重要重要重要重要ななななファイルファイルファイルファイルののののパーミッションパーミッションパーミッションパーミッション設定設定設定設定

システム利用者のパスワードファイル等、主要なファイルのパーミッションについて、特段の

理由が無い限りは下記のように設定を行ってください。

コマンド # cd /etc

# chown root:root passwd shadow group gshadow

# chmod 644 passwd group

# chmod 400 shadow gshadow

ディレクトリ移動

オーナーを root へ変更

オーナーのみ書込み可

オーナーのみ読込み可

6.4.46.4.46.4.46.4.4 スティッキービットスティッキービットスティッキービットスティッキービットによるによるによるによる制限制限制限制限

ワールドライタブルな権限(パーミッション***2)を持つディレクトリでは、オーナー含め、

全てのユーザに任意のファイルを作成/読込み/書込み/実行する権限が与えられます。

全ユーザからのファイル操作を許可しつつ、ユーザが互いのファイルを削除することを防ぐた

めには、スティッキービット(パーミッション 1***)を当該ファイルの作成されるディレク

トリにセットすることが有効です。

① ワールドライタブルディレクトリの検索

以下のコマンドでワールドライタブルでありながら、かつスティッキービットがセ

ットされていないディレクトリを探すことができます。

コマンド # find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) –print

② スティッキービットの設定

上記①のコマンドで表示されたディレクトリがあった場合は、以下のコマンドでス

ティッキービットをセットしてください。

Page 33: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

33/86

コマンド # chmod +t “該当ディレクトリ” パーミッション変更

注意)該当するディレクトリまたはファイルが特定のアプリケーションにより利用

される場合は、権限を変更する前に、そのアプリケーションのドキュメンテーショ

ンを参照してください。

6.4.56.4.56.4.56.4.5 ワールドライタブルファイルワールドライタブルファイルワールドライタブルファイルワールドライタブルファイルのののの検出検出検出検出

ワールドライタブル(パーミッション***2)ファイルは、全てのユーザからの編集が可能となり

ます。明確に把握していないこれらのファイルが存在する場合は、不要なリスクの発生に繋が

る恐れがあるため、ワールドライタブルファイルを検出し、必要が無い場合はパーミッション

を修正してください。

① ワールドライタブルファイルの検索

以下のコマンドでワールドライタブルでありながら、スティッキービットがセット

されていないファイルを探すことができます。

コマンド # find / -xdev -type f \( -perm -0002 -a ! -perm -1000 \) –print

② ワールドライタブルの禁止設定

上記①のコマンドで表示されたファイルが把握していないファイルである場合は、

以下のコマンドでパーミッションを修正してください。

コマンド # chmod o-w “該当ファイル” パーミッション変更

6.4.6 SUID/SGID6.4.6 SUID/SGID6.4.6 SUID/SGID6.4.6 SUID/SGID システムシステムシステムシステム実行実行実行実行ファイルファイルファイルファイルのののの設定設定設定設定

SUID/SGID がセットされたシステム実行ファイルは、root 権限を持たないユーザに root 権限

での実行権を与えます。これら SUID/SGID がセットされたファイルが不適切に存在していると、

攻撃者により攻略された一般ユーザに対して、root ユーザへの昇格の機会を与えてしまうな

どの恐れがあります。これら SUID/SGID がセットされた実行ファイルを検出し、特段の必要が

無いファイルではパーミッションを修正してください。

① SUID/SGID システム実行ファイルの検索

以下のコマンドで SUID/SGID がセットされたファイルを探すことができます。

コマンド # find / -xdev -type f \( -perm -4000 -o -perm -2000 \) –print

Page 34: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

34/86

② SUID/SGID の解除

上記①のコマンドで表示されたファイルが把握していないファイルである場合は、

以下のコマンドで SUID/SGID を解除してください。

コマンド # chmod -s “該当ファイル” パーミッション変更

Page 35: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

35/86

6.56.56.56.5 認証認証認証認証

認証機能は、システムを利用するユーザが正当な権限を持ち、かつ正当な手続によってアクセ

スしているのかを確認し、正当でない場合はアクセスを拒否するなどしてシステムを防護しま

す。サーバセキュリティ上最も重要な対策項目の 1つです。

6.5.1 PAM6.5.1 PAM6.5.1 PAM6.5.1 PAM のののの設定設定設定設定

PAM(Pluggable Authentication Modules)は、Linux における認証モジュールです。PAM は共通

オブジェクトとして実装されており、アプリケーションがユーザ認証を行ないたいときに呼び

出すことができます。

PAM の設定情報は/etc/pam.d にあり、最も重要なファイルは/etc/pam.d/system-auth です。

このファイルには、他の多くの PAM 設定ファイルが含まれており、システムのデフォルトの認

証手段を定義しています。

/etc/pam.d/system-auth は以下の書式で記述されます。

書式:[タイプ] [Space] [コントロールフラグ] [Space] [モジュールパス] [Space] [引数]

[タイプ]には、[auth][account][password][session]があります。

・[auth]タイプ行は、ユーザ認証に使用されます。また証明書の設定などでも使用されます。

・[account]タイプ行は、パスワード有効期限など、アカウントの有効性をチェックします。

・[password]タイプ行は、パスワードの設定および変更等に使用されます。

・[session]タイプ行は、ユーザの認証前または認証後で実行することを指定します。

[コントロールフラグ]には、[requisite][required][sufficient][optional]があります。

・[requisite]フラグ行は、認証に成功した場合には同じ[タイプ]のモジュールに移り、認証

に失敗した場合には即座に認証を拒否します。ただし、このフラグではどの段階で認証が拒

否されているかが推測できる為、使用することを推奨しません。

・[required]フラグ行は、認証に失敗しても同じ[タイプ]の残りのモジュールを全て実行して

からユーザに認証拒否を通知します。したがって、ユーザはどの段階で認証拒否されたかは

分かりません。

・[sufficient]フラグ行は、それより上の[required]行が全て許可されている場合に有効にな

ります。「sufficient」のフラグ行が許可をすれば、残りのモジュールはスキップされユー

ザは認証されます。

・[optional]フラグ行は、その[タイプ]のその他のモジュールで全て許可あるいは拒否された

場合にのみ有効となります。有効の場合、その[タイプ]全体の PAM 認証が決定されます。

Page 36: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

36/86

[モジュールパス]では、利用するモジュールを指定します。

[引数]では、モジュールに渡す引数を指定します。

PAM の設定ファイルはデフォルトの値で、ほとんどのユーザには十分ですが、編集を行う際に

は、設定ファイルの文法は複雑で、編集によって予期しない影響が出る可能性もあるため、注

意が必要です。

注意)authconfig コマンドや system-config-authentication を実行すると、PAM の設定ファ

イルを書き換えて、デフォルトに戻してしまい、すべての手動設定も消えてしまうため、注意

が必要です。

(1)(1)(1)(1) パスワードパスワードパスワードパスワード品質品質品質品質のののの設定設定設定設定

デフォルトの pam_cracklib モジュールは、パスワードの強度の確認に利用されます。

パスワードが辞書の言葉を利用していないか、十分な長さがあるか、以前のパスワー

ドの逆読みになっていないか、以前のパスワードからの単純な変更になっていないか

など、パスワードの強度に係る設定を確認できます。

・pam_clacklib.so を用いたパスワード認証の設定

pam_clacklib モジュールで指定できる主な引数は以下となります。

retry=数字 パスワード変更時に、プログラムを強制終了する失敗回数上限の指定

type=文字列 passwd プロンプトの文字列を設定

minlen=数字 パスワードの最小文字数を指定

difok=数字 現在のパスワードと変更するパスワードの異なる必要がある文字数を指定

difignore=数字 difok が無効となるパスワード長の指定

dcredit=数字 必要「数字」文字数を指定

ucredit=数字 必要「英大文字」文字数を指定

lcredit=数字 必要「英小文字」文字数を指定

ocredit=数字 必要「記号」文字数を指定

try_first_pass パスワードデータベースのパスワードとユーザの初期パスワードを突合し、一致

しない場合はパスワードの再入力を求めるプロンプトを表示します。

pam_clacklib はデフォルトで利用できるよう設定されています。既存の設定を変更す

る場合は、以下のように/etc/pam.d/system-auth を編集してください。

Page 37: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

37/86

コマンド # vi /etc/pam.d/system-auth 設定ファイルの編集

設定例 password required pam_cracklib.so try_first_pass

retry=3 minlen=8 difok=5 dcredit=1 ucredit=1 lcredit=1

ocredit=1

3回試行、最小8文字、

前回差分 5文字、大小

英数記号各 1文字要

また、pam_passwdqc はさらに厳しいパスワード要件を実施する機能を提供します。

必要に応じて pam_passwdqc を利用してください。

(2)(2)(2)(2) アカウントロックアウトアカウントロックアウトアカウントロックアウトアカウントロックアウト

PAM の pam_tally2 モジュールは、ログイン試行に一定回数失敗した後に、ユーザアカ

ウントをロックアウトする機能を提供します。この機能は、故意にアカウントロック

アウトを発生させるサービス不能(DoS)攻撃のリスクを生じますが、それ以上のメリ

ットとしてパスワード攻撃のリスクを大きく低減することが期待できます。可用性と

のバランスを考慮したうえで、以下のように設定ファイルを編集してください。

コマンド # vi /etc/pam.d/system-auth 設定ファイルの編集

編集内容 #auth sufficient pam_unix.so nullok try_first_pass

auth required pam_unix.so nullok try_first_pass

#auth requisite pam_succeed_if.so uid >= 500 quiet

#auth required pam_deny.so

コメントアウト

追加

コメントアウト

コメントアウト

アカウントロックアウトを強制する為に、/etc/pam.d にあるプログラム毎に次の行を

追加してください。以下の例では、パスワード間違いが 5回を越えるとアカウントが

ロックされます。

コマンド # vi /etc/pam.d/”対象サービス” 設定ファイルの編集

編集内容 auth required pam_tally2.so deny=5 onerr=fail

account required pam_tally2.so

追加

追加

アカウントロックアウトを解除する場合は、以下のコマンドを実行してください。

コマンド # /sbin/pam_tally2 --user “対象アカウント名” --reset ロックアウト解除

(3)(3)(3)(3) サービスアクセスサービスアクセスサービスアクセスサービスアクセス制御制御制御制御

多くの場合、PAM を通じてアクセス拒否をするよりもサービスを無効にする方が推奨

されます。しかし、新たなユーザに対してサービスを即座に無効にする方法として、

Page 38: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

38/86

PAM を利用したアクセス拒否は、すでに認証を受けたユーザの既存セッションは影響

を受けないという面からも有効です。

pam_deny.so モジュールを利用してサービスのアクセス制御を実施してください。

コマンド # vi /etc/pam.d/”対象サービス” 設定ファイルの編集

編集内容 auth requisite pam_deny.so ファイルの先頭へ追加

対象サービスの認証に失敗した場合、上記 requisite タグは PAM に通知し、PAM はす

ぐに設定ファイルの処理を停止します。

pam_deny.so モジュールは入力にかかわらず、エラーを返します。

(4)(4)(4)(4) userhelperuserhelperuserhelperuserhelper 制限制限制限制限

userhelper は、root 権限を持たないユーザが”system-config-*”などで GUI ベースの

管理ツールを利用する際、root 権限のパスワード入力プロンプトを提供し、認証され

れば管理ツールが起動されます。

userhelper のデフォルトパーミッションは 4711 であり、すべてのユーザにサービス

を提供しています。不要なリスクを低減するために、以下の設定例を参考に

userhelper のサービス提供を制限してください。

以下はコンソールユーザの所属するグループに対してのみ userhelper の利用が可能

となる設定例です。

コマンド # chgrp ”コンソールユーザグループ” /usr/sbin/userhelper

# chmod 4710 /usr/sbin/userhelper

グループ変更

パーミッション変更

注意)上記設定例において、chmod を先に実行して chgrp を実行すると SUID がリセッ

トされパーミッションが 0710 となってしまいます。chmod は chgrp の後に実行してく

ださい。

6.5.2 SSL6.5.2 SSL6.5.2 SSL6.5.2 SSL

SSL(Secure Sockets Layer)プロトコルは、暗号化されたネットワーク通信と認証されたネッ

トワーク通信を提供します。多くのネットワークサービスでサポートされており、Web システ

ムなどでは頻繁に利用されています。

SSL の実装は Secure Sockets Layer(SSL v2/v3)と、世界標準の暗号プロトコルである

Transport Layer Security(TLS v1)をサポートする OpenSSL で実現できます。

Page 39: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

39/86

SSL は要求する人が誰であるかを示す手段として、サーバがクライアントに証明書を与えます。

この証明書は暗号データ(公開鍵と、秘密鍵の署名)を保持するファイルです。

証明書の中の署名が、クライアントが信頼する認証局(CA)のみが生成できるものであれば、

クライアントは証明書を検証し、信頼することができます。

サーバの証明書と CA の証明書を使ったサーバの認証後、SSL はサーバの証明書を使って共有

秘密鍵を安全に交換して、暗号化の機能を提供します。

機微な情報をやり取りする経路においては、SSL を利用することを推奨します。以下の手順を

参照し、当該サーバの用途に合わせて適切に実施してください。

(1)(1)(1)(1) 証明書証明書証明書証明書にににに署名署名署名署名するするするする CACACACA のののの作成作成作成作成

証明書の安全性は、証明書に署名した CA の安全性に依存します。一般的に対外向け

のサービス(商用サービス)を提供する際の証明書は有償の CA 証明書発行を行ってい

る信頼できるサードパーティを利用します。

本稿で述べる CA の作成は、閉じられたネットワーク環境での組織内部利用の為の CA

として利用してください。

/etc/pki/tls/misc/CA スクリプトが、CA のセットアップをサポートしています。

このスクリプトは、/etc/pki/tls/openssl.cnfの設定のうち、特に[req distinguished

name]セクションにおいて、必要に応じた変更を提供します。

下記のようにコマンドを実行して、CA 鍵を作成してください。対話形式で入力するこ

とにより、作成できます。

注意)common name(CN)は必ず入力してください。入力をしなかった場合、CA 証明書

の作成に失敗します。

コマンド # cd /etc/pki/tls/misc

# ./CA -newca

ディレクトリ移動

作成

入力 CA certificate filename(or Enter to cerate) “エンターキー押下”

Enter PEM pass phrase:”秘密鍵用パスワード”

Verifying-Enter PEM pass phrase:”秘密鍵用パスワード”

:

CountryName(2 letter code)[GB]:81

State or Province Name(full name)[Berkshire]:Tokyo

Page 40: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

40/86

Locality Name(eg,city)[Newbury]:Kasumigaseki

Organization Name(eg,company)[My Company Ltd]:TestCompany

Organizational Unit Name(eg,section)[]:TestSection

Common Name(eg,your name or your server’s hostname)[]:TestName

Email Address []:[email protected]

:

A challenge password[]:”ブランク”

An optional company name[]:”ブランク”

:

Enter pass phrase for ../../CA/private/./cakey.pem:”秘密鍵用パスワード”

:

(2)(2)(2)(2) サーバサーバサーバサーバのののの SSLSSLSSLSSL 証明書証明書証明書証明書をををを作成作成作成作成するするするする

サーバの SSL 証明書を作成するには、以下のステップが必要となります。

① サーバの公開鍵と秘密鍵のペアが生成されていること。

② その鍵のペアから、証明書発行要求(CSR)が作成されていること。

③ 証明書発行要求が CA によって署名されること。

④ サーバ証明書と鍵をサーバに組み込んでいること。

各ステップ実施方法については、適用するサービス毎にことなります。それぞれのサ

ービスのマニュアル等を参照して実施してください。なお、HTTP サービス(Apache)

については、6.11.1(28)を参照してください。

6.66.66.66.6 アカウントアカウントアカウントアカウント管理管理管理管理

正しいログインアカウントでシェルのアクセスに成功した攻撃者は、ログインアカウントのア

クセス権の範囲で許可されているどんな操作もどんなファイルへのアクセスも可能になります。

そのため、承認を得てないユーザのシェルへのアクセス、特に管理者アカウント(root)での

アクセスを、より強固にすることが必要です。

6.6.16.6.16.6.16.6.1 パスワードパスワードパスワードパスワード認証認証認証認証のののの概要概要概要概要

慣習的に、Unix のシェルへのアクセスは、ユーザ名とパスワードをログインプログラムに渡

すことで行ないます。その値の検証には、/etc/passwd と/etc/shadow ファイルが使われます。

パスワード認証によるログインは、パスワードの推測と、ネットワークを流れるパスワードの

盗聴、不正なコンソールによる Man-in-the-Middle 攻撃に脆弱です。

6.6.26.6.26.6.26.6.2 コンソールコンソールコンソールコンソールでのでのでのでのルートログインルートログインルートログインルートログイン制御制御制御制御

Page 41: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

41/86

コンソールから直接 root でログインすることは、非常時を除いて禁止することが必要です。

通常の操作では、管理者は特権(root 権限)を持たないアカウントでログインし、su や sudo

を使って特権コマンドを実行することが求められます。

直接 root でログインできる経路を整理することで、root アカウントのパスワード推測による

攻撃の機会を減少させる効果もあります。

/etc/securetty ファイルの内容が以下の設定であることを確認し、不要なデバイスがある場

合は削除してください。

コマンド #cat /etc/securetty 設定ファイルの確認

確認内容 console

tty1

tty2

tty3

tty4

プライマリデバイス

仮想コンソールデバイス

また、管理者による不正操作への牽制として、組織として複数の管理者による監査証跡を確実

に取得することを推奨します。

6.6.3 su6.6.3 su6.6.3 su6.6.3 su コマンドコマンドコマンドコマンドのののの利用制限利用制限利用制限利用制限

su コマンドはユーザ名とパスワードを入力することで、他のユーザ権限へ切り替えることが

できます。デフォルトでは、このコマンドは全てのユーザに認められています。

そのため、一般ユーザアカウントが攻略された場合、root 権限へ昇格する為のパスワードア

タックの機会を与える等の危険性があります。

特段の必要がない場合は、su コマンドの利用を特定の権限を持つアカウント(システム管理

者)のユーザに制限してください。

(1)(1)(1)(1) wheelwheelwheelwheel グループグループグループグループのののの確認確認確認確認

su コマンドの利用は、wheel グループにアカウントを登録することによって実現でき

ます。wheel は root ユーザの所属するグループで、その他ユーザに管理者権限を持た

せたいときは、wheel グループにそのユーザ名を登録します。

以下のコマンドにより、su コマンドを利用できるアカウントを確認し、su コマンド

を利用するユーザ名の追加を行ってださい。

Page 42: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

42/86

コマンド # grep ^wheel /etc/group

# vi /etc/group

wheel グループの確認

設定ファイルの編集

編集内容 wheel:x:10:root,”所属させるアカウント名” wheel へ追加

pam_wheel.soモジュールはsuコマンドなど特権アクセスをwheelグループのアカウントのみ

に制限します。wheel グループに属するユーザのみ、su コマンドを利用できるよう以下の行を

有効化もしくは追加してください。(デフォルトではコメントアウトされています。)

コマンド # vi /etc/pam.d/su 設定ファイルの編集

編集内容 auth required pam_wheel.so use_uid 制限の有効化

6.6.4 sudo6.6.4 sudo6.6.4 sudo6.6.4 sudo のののの設定設定設定設定

sudo は別のユーザ権限によるコマンド実行を実現します。また、その権限等の設定は

/etc/sudoers で定義されます。sudo の利用は特定のユーザに一時的な管理者権限を与えたい

ときに有効ですが、設定によっては、権限を越えたコマンド実行を許してしまう恐れがありま

す。そのため、可能な限り利用は避け、必要な場合は権限設定を注意深く行う必要があります。

なお、sudo を介して実行された特権コマンドの記録は取得されます。

sudo の設定ファイルは、/etc/sudoers ですが、直接編集することは避けてください。この設

定に失敗すると、リモートから root アカウントでのアクセスができなくなるため、文法チェ

ック機能のある visudo コマンドを使っての編集を実施してください。

コマンド # visudo 設定ファイルの編集

注意)visudo によって、以下の設定例のように一般ユーザに無制限の特権を与えることは、

sudo を利用する意味が(ログの取得を除いて)無くなってしまうため、避けてください。

非推奨例 “一般ユーザ” ALL = NOPASSWD: ALL 認証なしで全権限を許可

6.6.5 6.6.5 6.6.5 6.6.5 システムアカウンシステムアカウンシステムアカウンシステムアカウントトトト制御制御制御制御

システムアカウントのいくつかは管理機能を持っています。これらの機能を不正利用されない

よう、以下のようにシステムアカウントをロックし、シェルを無効にしてください。

※本項目は root アカウントには決して行わないでください。システムにアクセスできなくな

る恐れがあります。

Page 43: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

43/86

(1)(1)(1)(1) システムアカウントシステムアカウントシステムアカウントシステムアカウントのののの特定特定特定特定

/etc/passwd からアカウントの一覧を表示し、設定対処となるシステムアカウントを

特定してください。システムアカウントは root を除いて、通常 500 番未満の UID を

持ちます。

コマンド # gawk -F: '{print $1 ":" $3 ":" $7}' /etc/passwd リストの表示

(2)(2)(2)(2) アカウントアカウントアカウントアカウントののののロックロックロックロック

特定したシステムアカウントをロックしてください。

コマンド # usermod -L “対象システムアカウント” アカウントのロック

(3)(3)(3)(3) シェルシェルシェルシェルのののの無効化無効化無効化無効化

特定したシステムアカウントのシェルを/bin/nologin に変更し、無効にしてください。

/bin/nologin は、/bin/false や/dev/null のように、どのようなコマンドに対しても

失敗のステータスを返して終了し、それ以上のコマンド実行を許可しません。

コマンド # usermod -s /sbin/nologin “対象システムアカウント” シェルの無効化

6.6.6 uid 06.6.6 uid 06.6.6 uid 06.6.6 uid 0 ののののアカウントアカウントアカウントアカウント確認確認確認確認

uid0 は root 権限をあらわします。システム管理者を区別するために uid0 を割り当てたアカ

ウントを 1つ以上設定する場合がありますが、予期せぬセキュリティホールに繋がる可能性が

あるため、特段の必要がない限り、uid0 は root アカウントのみを推奨します。

以下のコマンドを実行し、root アカウントの一行だけが表示されるかを確認し、承認されて

いない uid0 を設定されたアカウントがある場合は、変更してください。

コマンド # gawk -F: '($3 == "0") {print}' /etc/passwd

# usermod -u “変更する uid” “対象アカウント”

uid0 アカウント確認

uid の変更

6.6.76.6.76.6.76.6.7 パスワードパスワードパスワードパスワード制限制限制限制限

パスワードはアクセス制御の根幹となる重要なセキュリティポイントです。セキュアなパスワ

ード設定・運用はシステム全体のセキュリティ向上に必要不可欠です。

(1)(1)(1)(1) 空空空空ののののパスワードパスワードパスワードパスワード設定設定設定設定のののの禁止禁止禁止禁止

パスワードが空のアカウントが存在すると、誰でも当該アカウントでログインするこ

とが可能となり、不正利用などに繋がる恐れがあります。

Page 44: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

44/86

パスワードが空のアカウントが無いことを確認し、存在する場合はパスワードを設定

してください。

コマンド # gawk -F: '($2 == "") {print}' /etc/shadow

# usermod -p “パスワード” “対象アカウント”

該当アカウント確認

(2)(2)(2)(2) パスワードパスワードパスワードパスワード期限期限期限期限のののの設定設定設定設定

パスワードの強度不足等による侵入の可能性を低減させるために、ユーザによるパス

ワードの変更を強制してください。

ただし、パスワードの強制的な変更の間隔が短すぎると、ユーザは同じパスワードを

使用したり、パスワードを書き留めたりするリスクが生じます。パスワードの変更間

隔は機密性と可用性のバランスを踏まえ、十分に検討して決定する必要があります。

環境にもよりますが、本ガイドラインではパスワード変更間隔は 90~180 日にするこ

とを推奨します。

change コマンドを利用して、既存のユーザアカウントのパスワード期限を設定してく

ださい。また、/etc/login.defs を編集して、新規アカウントのパスワード期限を設

定してください。

・PASS_MAX_DAYS はパスワードの有効期間を表します。この期間を過ぎると強制的に

パスワード変更を求められます。

・PASS_MIN_DAYS はパスワードを変更してから、次の変更が可能になるまでの期間を

表します。

・PASS_WARN_AGE はパスワード有効期限から遡って警告を発する期間を表します。

コマンド # chage -M 90 -m 7 -W 7 “対象アカウント”

# vi /etc/login.defs

既存アカウントへ反映

設定ファイルの編集

編集内容 PASS_MAX_DAYS=90

PASS_MIN_DAYS=7

PASS_WARN_AGE=7

有効期間(変更間隔)

変更ロック期間

警告期間

この設定を行う際に、パスワードの再設定が禁止されている期間中(PASS_MIN_DAYS)

に新しいパスワードが攻略もしくは漏洩した場合は、緊急のパスワード変更を管理者

へ申請するよう、事前にユーザへ周知する必要があります。

Page 45: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

45/86

(3)(3)(3)(3) パスワードパスワードパスワードパスワード長長長長のののの設定設定設定設定

パスワードの長さは、パスワード強度に大きな影響を与えます。長いパスワードを設

定することにより、パスワード強度は高くなりますが、ユーザは単純なパスワードを

使用したり、パスワードを書き留めたりするリスクが生じます。パスワード長につい

ても、機密性と可用性のバランスを考慮して決定する必要があります。

/etc/login.defs を編集して、パスワードの最低文字数を制限してください。

環境にもよりますが、本ガイドラインではパスワードの最低文字数は 8文字を推奨し

ます。

コマンド # vi /etc/login.defs 設定ファイルの編集

編集内容 PASS_MIN_LEN=8 最低文字数

注意)ここで設定するパスワード長は、後の項に記載する PAM を利用したパスワード

ルール制限よりも優先されます。

(4)(4)(4)(4) パスワードファイルパスワードファイルパスワードファイルパスワードファイルのののの””””++++””””記号記号記号記号のののの確認確認確認確認

“+”の記号は、既存のファイルに NIS のデータを埋め込むために利用されます。しかし、

/etc/passwd に NIS データの埋め込み設定がありながら、NIS が稼動していない場合、

ユーザ名”+”のパスワード無しでログインが可能となります。

NIS を稼働しない場合は、関連するファイルに”+”記号のあるエントリが無いかを確認

し、発見された場合は、”+”記号を削除してください。

LDAP や NIS へユーザ情報を問い合わせるシステムでは、/etc/nsswitch.conf を適切

に編集してください。

コマンド # grep "^+:" /etc/passwd /etc/shadow /etc/group +記号つきエントリの確認

6.6.86.6.86.6.86.6.8 デフォルトグループデフォルトグループデフォルトグループデフォルトグループのののの推奨推奨推奨推奨

ユーザを作成するとデフォルトでユーザ名と同じ名前のグループが作成されます。特段の必要

が無い場合は、ユーザの作成するファイル等を他のユーザから参照されることが無いよう、以

下のようにユーザはデフォルトグループに所属することを推奨します。

・ユーザを作成する際に”-g”オプションを使わないでください。

・chmod などでデフォルトグループを変更しないでください。

6.6.96.6.96.6.96.6.9 ログインアカウントログインアカウントログインアカウントログインアカウントののののセッションセッションセッションセッション設定設定設定設定ファイルファイルファイルファイルのののの保護保護保護保護

Page 46: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

46/86

ユーザがアカウントへログインするとき、ユーザセッションはシステムで設定された多くのフ

ァイルを読み込みます。これらの多くのファイルは、ユーザのホームディレクトリに存在し、

各々のパーミッションが適切でないと、ユーザのエラーや設定ミスを引き起こします。

また、攻撃者は設定情報を読んだり変更したりできる場合、そのユーザアカウントのフルアク

セス権限を獲得する可能性があります。

そのため、root やシステム管理者のような特権ユーザの設定ファイルのパーミッションをテ

ストして、正しく直すことは重要となります。

(1)(1)(1)(1) rootrootrootroot パスパスパスパスのののの確認確認確認確認

把握していない不審なプログラムは、不正なコードを含む可能性があるため、root ユ

ーザによるそれら不審なプログラムの実行を防ぐ必要があります。

root ユーザは、非特権ユーザによってインストールされたプログラムについて、特段

の必要が無い場合は、実行しないでください。

なお、root ユーザはしばしば信頼できないディレクトリ内で作業をすることがありま

す。root ユーザのパスに、カレントディレクトリを示す「.」があるべきではなく、

また、非特権や半特権(システム)ユーザが設定したディレクトリもそうあるべきで

はありません。

以下のコマンドにより、root ユーザのパスを確認し、「.」および「空」のパスが含ま

れていないか確認してください。

コマンド # echo $PATH パス一覧の確認

次に、リストアップしたパスのそれぞれのディレクトリについて、パーミッションを

確認し、「グループ」と「その他」に書込みの権限が与えられていないことを確認し

てください。

コマンド # ls -ld “パスのディレクトリ” 権限確認

(2)(2)(2)(2) ユーザホームディレクトリユーザホームディレクトリユーザホームディレクトリユーザホームディレクトリ制限制限制限制限

ユーザのホームティレクトリには、ユーザアカウントの動作に影響を与える多くの設

定ファイルを含んでいます。どのユーザも他のユーザのホームディレクトリに対する

書込み権限を持つべきではありません。

グループで共有するディレクトリが必要な場合、サブディレクトリや、ファイルシス

テム上のどこか別の場所へ設定してください。

特に、ユーザのホームディレクトリはワールドライタブル(6.4.5 参照)ではないよ

うにしてください。

Page 47: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

47/86

一部のユーザが他のユーザのホームディレクトリへ読み込みアクセスをする必要が

ある場合、グループを使って制御を行ってください。

以下のように、ユーザのホームディレクトリを確認し、パーミッションが

「drwx------」となっていなければ、必要に応じて修正してください。

コマンド # ls -ld /home/”対象ユーザ名”

# chmod g-rwx,o-rwx /home/“対象ディレクトリ”

権限確認

パーミッション修正

(3)(3)(3)(3) ユーザドットファイルユーザドットファイルユーザドットファイルユーザドットファイル制限制限制限制限

他のユーザの設定ファイルを編集できると、そのユーザの権限でコマンドを実行した

り、データを盗んだり、ファイルを破壊したりするなど、悪意のあるユーザやその他

のユーザアカウントを奪取した攻撃者に幾多の攻撃の機会を与える恐れがあります。

そのため、ユーザホームディレクトリ以下にある「.」のついた設定ファイルのパー

ミッションについて、グループやその他からの書込みが有効になっていないかを確認

し、不備があれば修正してください。

コマンド # ls -ld /home/”対象ユーザ名”/.*

# chmod g-w,o-w /home/”対象ユーザ名”/“対象ファイル”

権限確認

パーミッション修正

(4)(4)(4)(4) UmaskUmaskUmaskUmask 制限制限制限制限

ユーザが新規に作成するファイルのデフォルトパーミッションは umaskとして設定さ

れます。デフォルトの umask は他のユーザや同じグループの他のユーザであっても作

成するファイルを閲覧や編集できないよう制限をかけることが推奨されます。

新規作成するファイルの閲覧/編集/実行権をオーナーのみに許可するデフォルト設

定は、以下の設定ファイルを編集して、umask077 を与えることで実現できます。

コマンド # vi /etc/bashrc 設定ファイル編集

編集内容 if [ $UID -gt 99 ] $$ [ “’id -gn’” = “’id -un’” ]; then

# umask 002

umask 077

else

# umask 022

umask 077

fi

コメントアウト

追加

コメントアウト

追加

Page 48: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

48/86

コマンド # vi /etc/csh.cshrc 設定ファイル編集

編集内容 # umask 022

umask 077

コメントアウト

追加

作成するファイルをグループ内で共有したい場合などは、chmod コマンドなどを利用

して、パーミッションを変更してください。

(5)(5)(5)(5) .netrc.netrc.netrc.netrc ファイルファイルファイルファイルのののの確認確認確認確認

.netrcファイルは、FTP を通じて他のシステムへ自動ログインをするために使用され、

ログイン情報と初期化情報を保持するファイルです。このファイルが存在する場合、

ファイルは往々にして暗号化されていないパスワードを含んでおり、その他の情報と

合わせて攻撃者に有益な情報をもたらします。

特段の必要が無い場合は、当該ファイルの有無を確認し、発見された場合には、削除

してください。

コマンド # ls -l /home/”対象ユーザ” /.netrc

# rm -r /home/”対象ユーザ名”/.netrc

ファイルの有無

削除

6.6.106.6.106.6.106.6.10 コンソールコンソールコンソールコンソール物理物理物理物理アクセスアクセスアクセスアクセス制御制御制御制御

一般的にシステムを物理的なアクセスから完璧に防御することは不可能といえます。したが

って、システムを安全な場所に配置することは、必要なステップであると考えるべきです。

以下の項に述べる、いくつかのステップが行なわれた場合、攻撃者がすばやく、または見つ

からずにシステムのコンソールを操作することを困難にすることができます。

(1)(1)(1)(1) BIOSBIOSBIOSBIOS パスワードパスワードパスワードパスワード設定設定設定設定

BIOS(x86 系のシステムにおいて)は、システムの起動時にまず初めに実行されるコー

ドで、システムがどのデバイスからどの順番でブートするかを含む、多くの重要なシ

ステムパラメータを制御します。

BIOS パスワードは、攻撃者の物理的なアクセスにより、無許可の USB デバイスや無線

デバイスを利用した、重要なパラメータの書き換えを困難にします。

ただし、通常物理的なアクセスに成功した攻撃者は BIOS パスワードを消去してしま

うため、他の対策をあわせて実施することが必要となります。

BIOS パスワードの設定手順はハードウェアシステム固有であるため、システムのハー

Page 49: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

49/86

ドウェアマニュアルを参照してください。

一般的には起動直後に[F2]キーを押下することで設定画面に入ることができます。

(2)(2)(2)(2) ブートローダパスワードブートローダパスワードブートローダパスワードブートローダパスワード設定設定設定設定

ブートプロセスでは、ブートローダが、Kernel や一時的なオプションの実行を始める

役を担っており、異なる kernel や、異なるパーディションやメディアの選択を可能

にします。

kernel の「single-user mode(シングルユーザモード)」オプションでの起動が許可

されると、認証なしに root 権限でのアクセスが可能となり、SELinux の機能も無効に

なってしまいます。

ローカルユーザがブートパラメータを操作することを防ぐために以下の手順でブー

トローダパスワードを設定してください。

ブートローダパスワードを決定し、パスワードのハッシュ値を生成します。このとき

コンソールに表示されるハッシュ値をコピーしておいてください。

コマンド # grub-md5-crypt ハッシュ値生成

入力値 Password:”任意のパスワード”

Retype Password:”任意のパスワード”

パスワード設定

再入力

/etc/grub.conf のヘッダコメントの直後に以下の行を追加して、認証を有効にしてく

ださい。ここで、上記で生成/コピーしたパスワードハッシュを挿入してください。

コマンド # vi /etc/grub.conf 設定ファイル編集

入力値 password --md5 “パスワードハッシュ” 認証有効化

最後に grub.conf ファイルのパーミッションが root ユーザ(管理者アカウント)以外

のユーザ書込みを禁止しているかを確認し、必要に応じて修正してください。

コマンド # ls -l /etc/grub.conf

# chown root:root /etc/grub.conf

# chmod 600 /etc/grub.conf

パーミッション確認

オーナーの設定

パーミッション設定

(3)(3)(3)(3) シングルユーザモードシングルユーザモードシングルユーザモードシングルユーザモード設定設定設定設定

シングルユーザモードはシステム復旧手段として意図されています。そのため起動時

のブートオプションにより、root 権限でのシステムへのアクセスを提供します。

Page 50: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

50/86

デフォルトでは、シングルユーザモードが選択された場合、認証はありません。その

ため、当該サーバのセキュリティを回避して root 権限を得ることが可能になります。

シングルユーザモードでシステムが起動したとしても、root のパスワードを要求する

ようにするには、/etc/inittab ファイルに次の行を追加してください。

コマンド # vi /etc/inittab 設定ファイルの編集

編集内容 ~~:S:wait:/sbin/sulogin 認証設定

(4)(4)(4)(4) インタラクティブブートインタラクティブブートインタラクティブブートインタラクティブブートのののの無効無効無効無効

/etc/sysconfig/init ファイルの PROMPT オプションは、コンソールユーザがインタラ

クティブなシステム起動を行なうこと制御します。インタラクティブな起動とは、起

動時にスタートするサービスを選択することを可能にします。これはコンソールユー

ザが起動時に監査機能やファイアウォール機能などのセキュリティ機能を無効にで

きることを意味します。

特段の必要が無い場合は、インタラクティブブートを無効にしてください。

コマンド # vi /etc/sysconfig/init 設定ファイルの編集

編集内容 PROMPT=no インタラクティブ無効

(5)(5)(5)(5) ログインシェルタイムアウトログインシェルタイムアウトログインシェルタイムアウトログインシェルタイムアウト設定設定設定設定

システムへログインしたまま、離席した際など権限の無いユーザに操作される恐れの

ある場合は、自動的にログアウトすることが推奨されます。

X Windows が起動していないシステムでは、ログインシェルに、一定時間無操作が続

いたユーザを自動的にログアウトする設定をすることができます。

X-windows を実行するシステムは本項の適用対象外です。x-windows で自動的にシス

テムをロックする方法は、次項(6)を参照してください。

以下はデフォルトシェルの/bin/bash にアイドルタイム 15 分を設定する例です。

コマンド # vi /etc/profile.d/tmout.sh 設定ファイルの作成

編集内容 TMOUT=900

readonly TMOUT

export TMOUT

アイドルタイム設定

Page 51: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

51/86

以下は、tcsh シェルにアイドルタイム 15 分を設定する例です。

コマンド # vi /etc/profile.d/outlogout.csh 設定ファイルの作成

編集内容 set -r autologout 15 アイドルタイム設定

ログインシェル毎に同様の設定ファイルを/etc/profile.d フォルダに設置してくだ

さい。

なお、本項目の設定は、シェルがフォアグラウンドで実行されている時だけ、シェル

の自動ログアウトが実行されます。例えば vi のセッションが、無操作のまま放置さ

れた場合には、自動ログアウトは起こりません。

(6)(6)(6)(6) GUIGUIGUIGUI スクリーンロックスクリーンロックスクリーンロックスクリーンロック設定設定設定設定

システムへログインしたまま、離席した際など権限の無いユーザに操作される恐れの

ある場合は、自動的にログアウトすることが推奨されます。

デフォルトの GNOME デスクトップでは、システムメニューから「スクリーンロック」

を選択して、スクリーンをロックします。さらに、gconftool-2 を使うことで、GNOME

環境のデフォルトの設定として強制スクリーンロックを適用できます。

注意)ただし、root ユーザはスクリーンロックされません。

次のコマンドを実行することで、強制的に、無操作時のスクリーンセーバーの起動、

スクリーンのロック、スクリーンセーバーのブランクモード、起動までの無操作時間

を設定することができます。

以下の例は、無操作時間を 1 分に設定しています。

コマンド #gconftool-2 --direct

--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory

--type bool

--set /apps/gnome-screensaver/idle_activation_enabled true

# gconftool-2 --direct

--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory

--type bool

--set /apps/gnome-screensaver/lock_enabled true

# gconftool-2 --direct

--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory

Page 52: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

52/86

--type string

--set /apps/gnome-screensaver/mode blank-only

# gconftool-2 --direct

--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory

--type int

--set /apps/gnome-screensaver/idle_delay 1

(7)(7)(7)(7) コンソールスクリーンロックコンソールスクリーンロックコンソールスクリーンロックコンソールスクリーンロック設定設定設定設定

コンソールのスクリーンロック機能は、vlock パッケージで提供されます。このパッ

ケージはデフォルトではインストールされていません。コンソールのスクリーンロッ

クが必要な場合は vlock パッケージをインストールし、以下のコマンドでスクリーン

ロックを適宜実施してください。

コマンド # yum install vlock

# vlock

インストール

スクリーンロック実施

6.6.116.6.116.6.116.6.11 バナーバナーバナーバナー表示設表示設表示設表示設定定定定

サーバのバナーは出来るだけ情報を表示しないよう設定してください。例えば、ログインプロ

ンプトの直前に表示されるシステムバナーは、サービスやホストの OS について情報を公開し

ます。この中にはディストリビューションの名前や kernel のバージョン、ネットワークサー

ビスの特定のバージョンなどが含まれます。

これらの情報は、システムが脆弱性のあるソフトウェアを動作させているかどうかを明らかに

し、不正侵入を試みる攻撃者に有益な情報を与えてしまいます。

(1)(1)(1)(1) システムログインシステムログインシステムログインシステムログイン時時時時ののののバナーバナーバナーバナー設定設定設定設定

/etc/issue ファイルは、端末へ直接ログインしたユーザに対して、ログインプロンプ

トのすぐ上に表示するコンテンツです。SSH や FTP のようなリモートログインプログ

ラムは、/etc/issue を表示させる設定ができます。

デフォルトでは、システムは OS のバージョンと kernel のバージョン、ホスト名を表

示します。

これは、攻撃者に有用な情報を提供してしまう恐れがあるため、バージョンやホスト

名などのシステム情報は極力表示しないよう変更してください。

/etc/issue を編集し、デフォルトのテキストから、システム情報を削除し、ローカル

サイトのポリシーや法的な免責条項に準拠した内容へ変更してください。

Page 53: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

53/86

コマンド # vi /etc/issue 設定ファイル編集

編集内容 “システム情報の削除”

“サイトポリシーの追加”

“免責条項の追加”

(2)(2)(2)(2) GUIGUIGUIGUI 警告警告警告警告バナーバナーバナーバナー設定設定設定設定

デフォルトの GUI 環境では、GNOME ディスプレイマネージャの提供するログインスク

リーンを通じてシステムへ直接ログインします。

GUI 環境においても、警告バナーは表示されるべきです。

CentOS デフォルトテーマファイルは、/usr/share/gdm/themes/CentOSCubes にありま

す。

次の XML 形式の行を、/usr/share/gdm/themes/CentOSCubes/ CentOSCubes.xml の上か

ら数えて 1つ目と 2つ目の pixmap エントリの直後に追加してください。

コマンド # vi /usr/share/gdm/themes/CentOSCubes/CentOSCubes.xml 編集

追加例 <item type="rect">

<pos anchor="n" x="50%" y="10" width="box" height="box"/>

<box>

<item type="label">

<normal font="Sans 14" color="#ffffff"/>

<text>

“表示させたいバナー文字列”

</text>

</item>

</box>

</item>

6.76.76.76.7 時刻同期時刻同期時刻同期時刻同期

NTP(Network Time Protocol)はシステム時刻の管理を行います。

多くのサービスやアプリケーションなどは、サーバの保持するシステム時刻を利用します。

そのため、システム全体の情報の正確性や連続性を保つうえで、システム時刻は各機器および

機器の提供するサービスにおいて統一されている必要があります。また、外部ネットワークと

時刻同期することによってグローバルなサービスの提供と利用を可能にします。

ログなどによる障害解析や不正侵入調査時なども、システム全体で統一された時刻を保持でき

Page 54: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

54/86

ていない場合は、その精度が著しく低下し、証拠能力を失う可能性があるため、以下の項に従

い、時刻同期設定を行ってください。

6.7.1 NTP6.7.1 NTP6.7.1 NTP6.7.1 NTP のののの設定設定設定設定

サーバの時刻同期方法には、ntpdate コマンドによる同期と、NTP クライアントを起動して、

他の NTP サーバと時刻同期する方法と、自ら NTP サーバとなって他の NTP サーバから時刻同期

する方法があります。以下の項では NTP サービスを利用して時刻同期を行う NTP クライアント

の設定について述べます。

(1)(1)(1)(1) ntpdatentpdatentpdatentpdate をををを利用利用利用利用したしたしたした時刻同期時刻同期時刻同期時刻同期

ntpdate コマンドは NTP サーバを指定することによって時刻同期を行います。以下の

設定例では、定期的な時刻同期を行うため、cron による時刻同期の方法を述べます。

注意)ntpdate コマンドは、ntpd サービスが起動していると使用することが出来ない

ため、ntpd サービスが停止されているかをあらかじめ確認してください。

cron を利用する場合は、NTP サーバとのトラフィックなどを勘案し、適切な間隔での

同期設定を行ってください。

コマンド # service ntpd stop

# chkconfig ntpd off

# vi /etc/cron.d/ntpdate

ntpd の無効

起動時の無効

設定ファイル作成

編集内容 30 * * * * root /usr/sbin/ntpdate “NTP サーバ IP アドレス” 30 分毎の同期設定

(2)(2)(2)(2) NTPNTPNTPNTP クライアントクライアントクライアントクライアントのののの設定設定設定設定

本項では、ntpd を利用し、NTP サーバに時刻問合せを行い、時刻同期する方法につい

て述べます。/etc/ntp.conf を編集し、NTP サーバの IP アドレスを指定して時刻同期

ができるようにしてください。

① ntpd サービスの有効化

以下のコマンドで ntpd サービスを有効にしてください。

コマンド # service ntpd start

# chkconfig ntpd on

サービス有効化

起動時の有効化

② ntp アクセスのデフォルト拒否制限

ntpd サービスでは、時刻問合せを行う場合と、問合せを受け付ける双方向の通信が

発生します。当該サーバを ntp クライアントのみとして利用する場合は、NTP サーバ

Page 55: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

55/86

への問合せを設定し、それ以外のアクセスを制限してください。

ntp アクセスの制限は主に restrict 行で設定します。

<restrict>行の[オプション]には以下をすることができます。

[ignore]:すべての NTP パケットを無視

[nomodify]:時刻問い合わせに応答、時刻変更要請は拒否

[notrust]:時刻問い合わせに応答、自身の時刻合わせには用いない

[nopeer]:相互に時刻を同期しない

[noquery]:時刻問い合わせを無視

[notrap]:状態変更時にトラップ送信しない

コマンド # vi /etc/ntp.conf 設定ファイル編集

編集内容 restrict default ignore デフォルト拒否

③ NTP サーバの指定

NTP サーバに時刻問合せをして同期するために、以下の設定を実施してください。ま

た、複数の NTP サーバを指定する場合は、指定するサーバ毎に retstrict 行と server

行をそれぞれ追加してください。

コマンド # vi /etc/ntp.conf 設定ファイル編集

編集内容 restrict “NTP サーバ IP” mask 255.255.255.255 nomodify notrap noquery

server “NTP サーバ IP”

④ NTP クライアントからの同期

他の NTP クライアントからの同期を受け付ける場合は、以下の設定を実施してくだ

さい。以下は、ローカルの同一ネットワーク内(24 ビットアドレスマスクレンジ)

の全ての NTP クライアントからの時刻同期要求に応答する設定例です。

コマンド # vi /etc/ntp.conf 設定ファイル編集

編集内容 restrict “ローカルネットワーク” mask 255.255.255.0 nomodify notrap

合わせてファイアウォールの設定ファイルに以下の行を追加して、時刻同期要求が拒

否されないようにしてください。

コマンド # vi /etc/sysconfig/iptables 設定ファイル編集

Page 56: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

56/86

編集内容 -A RH-Firewall-1-INPUT -s “ローカルネットワーク” /255.255.255.0

-m state --state NEW -p udp --dport 123 -j ACCEPT

(3)(3)(3)(3) 時刻同期時刻同期時刻同期時刻同期のののの確認確認確認確認

時刻同期が出来ているかを確認するために、以下のコマンドを実行してください。

コンソールに表示される NTP サーバ行の先頭に[*]マークが表示されていれば、時刻

同期が完了していることを表します。

コマンド # ntpq -p

6.86.86.86.8 ログログログログ管理管理管理管理とととと監査監査監査監査

サーバではシステムで発生するイベントを報告する機能がいくつかあります。代表的なもので

は、ログや監査などの機能があります。これらログや監査の機能を利用することで、サーバの

動作確認や不正アクセスの調査に必要な情報を得ることができます。

本項目では、ロギングと監査の設定と logwatch ツールを利用した設定方法を述べます。

6.8.16.8.16.8.16.8.1 ロギングロギングロギングロギングとととと監査監査監査監査ののののアプローチアプローチアプローチアプローチ

ロギングと監査は、データ収集にそれぞれ異なったアプローチを採ります。

ロギングは、動作している個々のプログラム毎に、特定のイベントを報告するフレームワーク

を提供します。一方、監査は、プログラムに依存せず、特定の低いレベルのイベントを報告し

ます。

その為、監査では網羅的に情報を収集できる反面、無駄な情報を大量に報告してしまうという

特徴があります。一方、ロギングは、多種多様なクライアントアプリケーションとの互換性が

あり、それぞれのアプリケーションにおいて、重要だと考えられる情報に限って報告するとい

う長所があります。ただし、それらの情報がアプリケーション間で統一されていないという短

所があります。

セキュリティ上、厳密な運用を求められるシステムにおいては、ロギングと監査を併用し、報

告された情報をまとめてレポートする自動化メソッドを使用してください。

6.8.26.8.26.8.26.8.2 ログログログログ取得設定取得設定取得設定取得設定

ほとんど全ての UNIX 系 OS において、ログの一元管理をする際に最も一般的に利用される

syslog についてセキュリティ上推奨される設定方法を提示します。

(1)(1)(1)(1) ログログログログ取得取得取得取得のののの基本設定基本設定基本設定基本設定

Page 57: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

57/86

サーバの利用目的に応じて、/etc/syslog.conf を編集してください。

/etc/syslog.conf の記述内容は以下の通りです。

書式:[selector][space][action]

[selector]列は[facility](ログカテゴリ)と[priority](ログレベル)を[.]で接

続して取得するログを指定します。action 列では取得したログの出力先を指定します。

[facility]一覧

auth 認証サービスのメッセージ(現在は authpriv が推奨されている)

authpriv 認証サービス(カテゴリは auth と同じ。auth とは出力結果が異なる)

cron cron のメッセージ

daemon デーモンのメッセージ

lpr プリンタサービスのメッセージ

mail メールサービスのメッセージ

news ニュースサービスのメッセージ

syslog syslog のメッセージ

user ユーザプロセスのメッセージ

uucp uucp 転送を行うプログラムのメッセージ

local0~local7 アプリケーションに依存するメッセージ

※複数指定は「,」で結合

[priority]一覧(重要度昇順+取得頻度昇順)

debug デバッグ情報

info 情報

notice 通知

warn 警告

err 一般的なエラー

crit 致命的なエラー

alert 緊急に対処すべきエラー

emerg システムダウンの危険性がある状態

none 指定した facility 以外の全メッセージを出力

※指定した priority 以上を取得します。

※正規表現を用いることにより、細やかなカスタマイズを行うことが可能です。

(例)mail.*;mail.!warn;mail.!=info “mail の debug と notice のみを取得”

[action]指定例

Page 58: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

58/86

/hoge/hoge.file 出力先ファイル指定(ファイルパスを記述)

| /hoge/hoge* 他のプログラムに渡す(パイプ「|」を使用)

@hoge 他のホストに渡す(「@ホスト名」)

user1 ユーザのコンソールに表示する(システムに登録されているユーザ名)

(2)(2)(2)(2) 主要主要主要主要ななななログログログログのののの取得取得取得取得

数多くあるファシリティの中から、主要な情報を簡単に見分ける為に、以下のファシ

リティのログを取得するよう設定してください。

コマンド # vi /etc/syslog.conf 設定ファイル編集

編集内容 kern.* /var/log/kern.log

daemon.* /var/log/daemon.log

syslog.* /var/log/syslog.log

追加

追加

追加

(3)(3)(3)(3) /var/log/messages/var/log/messages/var/log/messages/var/log/messages のののの散漫散漫散漫散漫ななななログログログログ取得取得取得取得のののの防止防止防止防止

/var/log/messages のログは auth と user のファシリティに制限し、それらのファシ

リティからの全ての情報を保存してください。

コマンド # vi /etc/syslog.conf 設定ファイル編

編集内容 #*.info;mail.none;authpriv.none;cron.none /var/log/messages

auth,user.* /var/log/messages

コメントアウト

追加

(4)(4)(4)(4) 不要不要不要不要ななななログログログログ取得設定取得設定取得設定取得設定のののの削除削除削除削除

デフォルトで取得される設定になっている uucp および news について、当該サーバで

利用しない場合は、/etc/syslog.conf を編集し無効にしてください。

コマンド # vi /etc/syslog.conf 設定ファイル編集

編集内容 # uucp,news.crit /var/log/spooler コメントアウト

(5)(5)(5)(5) 利用利用利用利用しないしないしないしないサービスサービスサービスサービスののののログログログログ取得取得取得取得

/var/log/unused.log ファイルを作成し、当該サーバで利用しない全てのファシリテ

ィに関する情報を保存してください。運用時に当該ファイルに何らかのログが記録さ

れた場合は、未知のサービスが稼働している可能性があり、調査することで障害や不

正アクセスの検知や分析に利用することができます。

Page 59: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

59/86

コマンド # vi /etc/syslog.conf 設定ファイル編集

編集内容 kern,daemon,syslog,auth,user.none /var/log/unused.log 追加

6.8.36.8.36.8.36.8.3 ログファイルログファイルログファイルログファイルのののの存在存在存在存在のののの確認確認確認確認ととととアクセスアクセスアクセスアクセス制御制御制御制御

syslog は指定した保存先のログファイルが存在しない場合は、何の警告も無く全てのメッセ

ージを破棄してしまいます。そのため、ログファイルの存在を確認することは重要となります。

また、いくつかのログはきわめて重要な情報を含んでいる可能性があります。ログファイルへ

の読み取りもしくは書き込みは管理者権限を持つユーザに限定することが推奨されます。

ログを出力するファイルの存在確認と、アクセス制御を行うため、/etc/syslog.conf の中に

記述されたログファイルを確認し、以下のコマンドを実行してください。

注意)下記一行目の touch コマンドは既存のファイルを上書きしてしまいます。既にログファ

イルがある場合は、実行しないでください。

コマンド # touch “取得するログファイル名”

# chown root:root “作成したログファイル名”

# chmod 0600 “作成したログファイル名”

ログファイル作成

オーナー設定

権限設定

6.8.46.8.46.8.46.8.4 ログログログログののののバックアップバックアップバックアップバックアップ

サーバに不正侵入を行った攻撃者は、管理者権限を取得した場合、管理者に発見される前に、

ステムの攻撃に結びつけられるログのエントリを消去することが一般的です。

不正な動作のログを解析する必要がある場合は、ローカルホストでログを保存すると共に、

/etc/syslog.conf の中に、下記の行を追加して、リモートホストでログのバックアップを行

ってください。

コマンド # vi /etc/syslog.conf 設定ファイル編集

編集内容 *.* @”リモートホスト” コメントアウト

コマンド # service syslog restart 設定反映

注意)リモートへ送るログは UDP で送られるため、信頼性が低く、攻撃者によって偽装したロ

グを送られる可能性があることに注意してください。厳密な攻撃の解析を行う場合は、ローカ

ルホストに保存されたログとリモートホストへ保存されたログを突合することが求められま

す。

Page 60: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

60/86

6.8.56.8.56.8.56.8.5 リモートメッセージリモートメッセージリモートメッセージリモートメッセージのののの受付受付受付受付

syslog はデフォルトではリモートからのログメッセージを受け付けません。そのため、ログ

メッセージをネットワーク越しに受け付けるサーバでは、/etc/sysconfig/syslog ファイルを

編集してリモートからの受付を有効にする設定にしてください。

コマンド # vi /etc/sysconfig/syslog 設定ファイル編集

編集内容 # SYSLOGD_OPTIONS=”-m 0”

SYSLOGD_OPTIONS=”-m 0 -r”

コメントアウト

-r 追加

コマンド # service syslog restart 設定反映

6.8.66.8.66.8.66.8.6 ログローテートログローテートログローテートログローテート

サーバ上のすべてのログは、定期的にローテーションさせなければなりません。ローテーショ

ンさせていない場合、長期的にはディスクスペースを食いつぶし、最終的にシステムの動作に

干渉する恐れがあります。

(1)(1)(1)(1) ログローテートログローテートログローテートログローテートのののの設定設定設定設定

ログローテートの設定は、/etc/logrotate.conf に記述されます。デフォルト設定で

は、1 週間毎 4 つのファイルに合計 4 週間分のログを保存します。必要に応じて設定

ファイルを編集し、ログローテートを適切に実施してください。

以下は、/etc/logrotate.conf の主な設定項目です。

・[daily/weekly/monthly]:ローテーションを行う間隔の指定(デフォルト weekly)

・[rotate 数字]:世代ファイル数の指定(デフォルト 4)

・[compress]ログを gzip 形式で圧縮保存(デフォルトコメントアウト)

注意)ログローテートは、/etc/cron.daily/logrotate の cron ジョブによって定期的

に実行されることに注意してください。

(2)(2)(2)(2) 特定特定特定特定ログログログログののののローテートローテートローテートローテート設定設定設定設定

ログ全体のローテート設定は/etc/logrotate.conf に記述されますが、特定ログのみ

異なるローテート設定を行う場合は、/etc/logrotate.d/配下の設定ファイルを編集

してください。

なお、/etc/logrotate.d/配下のファイルに記述されたローテーション設定は、

/etc/logrotate.conf よりも優先されます。

以下は syslog を日次 14 ファイル(2 週間分)でローテーションする設定例です。

Page 61: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

61/86

コマンド # vi /etc/logrotate.d/syslog 設定ファイル編集

設定例 /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler

/var/log/boot.log /var/log/cron {

daily

rotate 14

sharedscripts

postrotate

/bin/kill -HUP ̀ cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || t

rue

endscript

}

6.8.76.8.76.8.76.8.7 ログログログログのののの監視監視監視監視((((LogwatchLogwatchLogwatchLogwatch))))

logwatch は、定期的に指定ログから特定のパターンを含む行を比較的見やすい内容に編集し

てレポートします。定期的なログの監視は、攻撃や障害の早期発見などをもたらします。

(1)(1)(1)(1) logwatchlogwatchlogwatchlogwatch のののの設定設定設定設定

設定ファイルは、デフォルトでは/usr/share/logwatch/default.conf/logwatch.conf

ですが、設定を変更する場合は、/etc/logwatch/conf/logwatch.conf にコピーをして、

編集してください。

コマンド # cp /usr/share/logwatch/default.conf/logwatch.conf

/etc/logwatch/conf/logwatch.conf

コピー

logwatch.conf の書式は[Name]=[Value]で、それぞれに値を入れてログレポートの方

法を指定します。ほとんどの場合、デフォルト設定で問題ありません。

(2)(2)(2)(2) logwatchlogwatchlogwatchlogwatch のののの無効無効無効無効

logwatch は cron によって起動し、レポートを作成します。当該サーバのログを全て

取得・管理するリモートのログ管理サーバがある場合などログレポート機能が必要で

ない場合は、/etc/cron.daily/からファイルを削除し、logwatch を無効にしてくださ

い。

コマンド # rm /etc/cron.daily/0logwatch 無効

Page 62: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

62/86

6.8.8 auditd6.8.8 auditd6.8.8 auditd6.8.8 auditd によるによるによるによるシシシシステムアカウンティングステムアカウンティングステムアカウンティングステムアカウンティング

auditd サービスは、カーネルレベルの監査のためサービスです。デフォルトでは、SELinux

の AVC の拒否と、セキュリティに関連するイベント、たとえばシステムへのログインや、アカ

ウントの変更や、sudo のようなプログラムによって行われる認証を監査します。

デフォルトの設定では、少しのディスクの空き領域を使うのみで、システムのパフォーマンス

にほとんど影響を及ぼしません。

SELinux を稼動させているかどうかに関わらず、ログの監視は、すべてのシステムで強く推奨

されます。また、厳密な監査要求があるシステムでは、auditd システムの設定をそれらの要

求に見合うように設定することもできます。

(1)(1)(1)(1) auditdauditdauditdauditd サービスサービスサービスサービスのののの有効化有効化有効化有効化

デフォルトで、auditd は SELinux による動作の拒否と、いくつかのセキュリティに関

するイベント、たとえば、ユーザアカウントの変更(useradd、 passwd など)、ログイ

ンイベント、そして sudo の呼び出しなどを記録します。

以下のコマンドにより、サービスを有効にしてください。

コマンド # service auditd start

# chkconfig auditd on

サービス起動

起動時の有効化

監査データは/var/log/audit/audit.log に収納されます。標準で、auditd は 4 つの

ログを 5MB のサイズ単位でローテーションし、最大(4 つのログ全て)で 20MB のデー

タを保持し、ディスクがいっぱいになった時は、エントリの書き込みを中止します。

これは、各分割を監査データが満たしてしまうこと、および他のサービスに影響を与

えることのリスクを最小限にしています。ただし、システムがビジーになると、監査

データを失う可能性があります。

(2)(2)(2)(2) aaaaureportureportureportureport をををを使用使用使用使用したしたしたした監査監査監査監査ログログログログのののの管理管理管理管理

ausearch と aureport のコマンドを使うことによって、監査ログから情報を取り出し

ます。前者(ausearch)は SELinux の問題の原因を明らかに見つけ出すための詳細な情

報を十分に与えます。後者(aureport)は、毎日のレポートのために適切なまとめの出

力を提供します。

Page 63: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

63/86

/etc/cron.daily/以下に任意の名前のファイルを置くことによって、定期的に監査レ

ポートを取得することができます。

以下は、当該サーバにログインしたすべてのユーザ毎の報告を日時で記録し、

/var/log/au.log ファイルに保存する設定例です。

コマンド # vi /etc/cron.daily/audit_report ファイル作成

編集内容 #!/bin/bash

aureport -l -i -ts yesterday -te today >> /var/log/au.log

(3)(3)(3)(3) auditdauditdauditdauditd ののののデータデータデータデータ保有量保有量保有量保有量をををを増加増加増加増加するするするする

/etc/audit/auditd.conf に、それぞれのログファイルが保有すべき監査データの量

(メガバイト)を設定することができます。

当該サーバの環境に合わせて、保有すべき監査データ量を定め、以下の設定を実施し

てください。

コマンド # vi /etc/audit/auditd.conf 設定ファイル編集

編集内容 max_log_file = “保有すべき監査データ量(MB)” デフォルト 5MB

(4)(4)(4)(4) 監査機能監査機能監査機能監査機能のののの優先設定優先設定優先設定優先設定

組織のポリシーなどで、当該サーバの監査機能が停止した時に当該サーバを停止する

ことを要求している場合は、監査が実行されるディスクスペースが少なくなった時に、

システムを停止するよう auditd を設定します。

コマンド # vi /etc/audit/auditd.conf 設定ファイル編集

編集内容 space_left_action = email

action_mail_acct = root

admin_space_left_action = halt

(5)(5)(5)(5) ログフルログフルログフルログフル時時時時のののの設定設定設定設定

ログが最大サイズに達したときの標準の動作は、ログをローテーションさせて、最も

古いものを消すことです。組織のポリシーなどにより、ログフル状態に近づいた場合

でも、可能な限り全ての監査情報を残す必要がある(最も古いログを消すことができ

ない)場合は、以下のように設定を実施してください。

Page 64: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

64/86

コマンド # vi /etc/audit/auditd.conf 設定ファイル編集

編集内容 # max_log_file_action = ROTATE

max_log_file_action = keep_logs

コメントアウト

6.96.96.96.9 メンテナンスアクセスメンテナンスアクセスメンテナンスアクセスメンテナンスアクセス

CentOS には、システムメンテナンスのために、リモートからアクセスしてコマンドを実行する

ユーティリティが用意されています。これらの利用を適切に管理していない場合、重大なセキ

ュリティリスクに繋がる恐れがあります。

6.9.1 Telnet6.9.1 Telnet6.9.1 Telnet6.9.1 Telnet サービスサービスサービスサービス

Telnet はネットワークにつながれたコンピュータを遠隔操作するために利用されます。

Telnet サーバが有効になっているコンピュータに、ネットワークに繋がれたリモートコンピ

ュータから Telnet クライアントを使ってログオンし、コンソールアクセスと同様な操作をす

ることが可能です。

Telnet サーバの利用は、多くの重大なセキュリティホールを発生させる恐れがあるため、特

段の必要がある場合を除いて、削除してください。また、リモートから当該サーバを操作をす

る必要がある場合でも、よりセキュアな機能を持つ SSH(SecureShell)サービスを利用するよ

うにしてください。

以下のコマンドを実行して、Telnet サービスを削除してください。

コマンド # yum erase telnet-server 設定ファイル編集

6.9.2 SSH6.9.2 SSH6.9.2 SSH6.9.2 SSH サービスサービスサービスサービス

OpenSSH は、SSH(SecureShell)プロトコルを使用するネットワーク接続ツールです。リモー

トアクセスのプログラムとしては、 Telnet, rlogin, ftp などが代表的ですが、これらはパ

スワードを平文で送信するなど、利用すること自体に脆弱性が存在します。

OpenSSH はパスワードを含むすべての通信を暗号化し、盗聴やセッションハイジャックや、そ

の他の攻撃を効率的に排除することができます。また、OpenSSH は安全なトンネリング機能や

多様な認証方式を備えているため、リモートアクセスの必要がある場合には、SSH を利用して

ください。

OpenSSH は、rlogin と telnet の代わりになる ssh と、rcp の代わりになる scp 、ftp の

代わりになる sftp のセット一式を含んでいます。また、サーバサイドパッケージである、sshd

や、 ssh-add、 ssh-agent、 ssh-keysign、 ssh-keyscan、 ssh-keygen、および sftp-server

Page 65: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

65/86

などのツールが含まれています。

(1)(1)(1)(1) SSHSSHSSHSSH サービスサービスサービスサービスのののの削除削除削除削除

当該サーバにリモートログインやリモートファイル転送の機能が必要ない場合は、サ

ービスを停止し、SSH サービスを削除してください。

コマンド # service sshd stop

# chkconfig sshd off

# yum erase openssh-server

サービス停止

起動時の無効

削除

(2)(2)(2)(2) SSHSSHSSHSSH サービスサービスサービスサービスのののの設定設定設定設定

SSH サービスの提供が必要な場合は、以下の設定例を参考に利用目的に応じて設定し

てください。

① プロトコル 2接続の利用

SSH プロトコロルバージョン 1は脆弱性を含んでいる為、SSH プロトコロルバージョ

ン 2 を利用してください。デフォルトでプロトコル 2 を利用する設定となっている

為、確認のみを実施してください。

コマンド # cat /etc/ssh/sshd_config | grep Protocol 設定ファイル確認

確認内容 # Protocol 2,1

Protocol 2

② SSH アクセス制限

デフォルト設定では、任意のユーザがシステムに SSHアクセスすることが可能です。

特段の必要が無い場合は、SSH アクセスを行うユーザを限定してください。

コマンド # vi /etc/ssh/sshd_config 設定ファイル編集

編集内容 AllowUsers ユーザ 1 ユーザ 2 追加

③ ログインタイムアウト制限

SSH でログインしている際、利用されていない間隔によってタイムアウトさせる設定

が可能です。この設定は、リモートからアクセスしている端末でのログアウト忘れ

などに対する対策として有効です。

以下の設定は無操作で 5分間経つと自動的にログアウトさせる設定です。

Page 66: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

66/86

コマンド # vi /etc/ssh/sshd_config 設定ファイル編集

編集内容 ClientAliveInterval interval 300

ClientAliveCountMax

5 分間

接続制限

④ .rhosts ファイルの無効

SSH では、ユーザが.rhosts ファイルによって旧式の rsh コマンドによるアクセスを

制限することができます。特段の必要が無い場合は、以下の設定を実施してくださ

い。

コマンド # vi /etc/ssh/sshd_config 設定ファイル編集

編集内容 IgnoreRhosts yes 有効

⑤ root ログインの禁止

SSH を使ったリモートからの root ログインは、攻撃者に root ログインのパスワード

アタックの機会を与える可能性があるため、制限することが推奨されます。

以下の設定を行うことにより、SSH を使った root ログインを禁止してください。

コマンド # vi /etc/ssh/sshd_config 設定ファイル編集

編集内容 PermitRootLogin no

⑥ 空のパスワードログインの禁止

以下は、空のパスワードを備えたアカウントからのリモートログインを明示的に禁

止する設定です。特段の必要が無い場合は、実施してください。

コマンド # vi /etc/ssh/sshd_config 設定ファイル編集

編集内容 PermitEmptyPasswords no

6.106.106.106.10 ネットワークサービスネットワークサービスネットワークサービスネットワークサービス

ネットワークサービスは、関連するネットワークインターフェースがネットワークにアクセス

するのことを制御します。以下の項ではネットワークサービスの活動をコントロールするため

の推奨を述べます。

6.10.16.10.16.10.16.10.1 必要必要必要必要のないのないのないのない全全全全てのてのてのてのネットワークインターフェースネットワークインターフェースネットワークインターフェースネットワークインターフェースのののの無効無効無効無効

ネットワーク経由の攻撃のリスクを低減するために、必要のないネットワークインターフェー

スを確認し、無効にしてください。

Page 67: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

67/86

コマンド # ls /etc/sysconfig/network-scripts/ | grep ifcfg

# rm /etc/sysconfig/network-scripts/ifcfg-“インターフェース”

確認

無効化

6.10.2 Zeroconf6.10.2 Zeroconf6.10.2 Zeroconf6.10.2 Zeroconf ネットワーキングネットワーキングネットワーキングネットワーキングのののの無効無効無効無効

ZeroConf とは TCP/IP ベースの、同一ネットワーク内に接続されたクライアント PC や周辺機

器、或いはそれらの上で稼働しているアプリケーション等を、設定することなくネットワーク

に参加させる事を可能とした技術です。

Zeroconf のアドレスは、ネットワーク[169.254.0.0]のレンジにあります。ネットワークスク

リプトは、これらのアドレスのためのエントリをルーティングテーブルに加えます。DHCP を

有効にしている場合、DHCP サーバーからアドレス割当てを受け取ることができないときに、

Zeroconf アドレスの割当てが実施されます。

管理者の把握していないノードがネットワークに参加するのを防ぐため、特段の必要が無い場

合は/etc/sysconfig/network ファイルに以下の行を追加し、Zeroconf ネットワーキングを無

効にしてください。

コマンド # vi /etc/sysconfig/netowork 設定ファイル編集

編集内容 NOZEROCONF=yes 追加

6.116.116.116.11 アプリケーションアプリケーションアプリケーションアプリケーション

アプリケーションの設定は、個別の設定ファイルを編集することで実現できます。当該サーバ

の利用目的に応じて各アプリケーションの設定を適切に行ってください。

6.11.1 Web6.11.1 Web6.11.1 Web6.11.1 Web サーバサーバサーバサーバ

Webサーバは、HTTPプロトコルによるアクセスでWebコンテンツを提供する役割を果たします。

ウェブサーバは以下の理由から、重大なセキュリティリスクを内包しています。

・HTTP ポート(80 番)は頻繁に攻撃者から探査されます

・Web サーバのソフトウェアは非常に複雑で、長い脆弱性の歴史を持っています

・HTTP プロトコルは暗号化されず、受動的な盗聴に対し脆弱です

システムの標準の Web サーバソフトウェアは Apache2 で、httpd デーモンとして RPM パッケー

ジの中で提供されています。

(1)(1)(1)(1) ApacheApacheApacheApache のののの無効化無効化無効化無効化

当該サーバの利用目的として、Web サーバの機能が必要ないのであれば以下のように

Page 68: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

68/86

httpd を削除してください。

コマンド # chkconfig httpd off

# service httpd stop

# yum erase httpd

ブート時の httpd の無効

httpd の停止

httpd の削除

(2)(2)(2)(2) ApacheApacheApacheApache のののの安全安全安全安全ななななインストールインストールインストールインストール

Web サーバ機能が必要である場合は、当ガイドラインを参照し、Apache2 パッケージ

をインストールしてください。Web サーバパッケージグループは多くのほとんど無関

係なパッケージを含むため、以下のインストールの方法は、システムの導入段階にお

いて、”Web サーバパッケージ”をインストールするよりも推奨されます。コマンドラ

インメソッドによるインストールでは、単に httpd パッケージ自身が必要とするもの

だけがインストールされます。

コマンド # yum install httpd httpd のインストール

(3)(3)(3)(3) 最小限最小限最小限最小限のののの組組組組みみみみ込込込込みみみみモジュールモジュールモジュールモジュールのののの確認確認確認確認

標準の Apache インストレーションでは、モジュールは以下の 4 つに最小限化されバ

イナリがインストールされます。

・core

・prefork

・http_core

・mod_so

ウェブサーバによって許可されている機能を制限することによってリスクを最小化

するために、以下のようにコンパイルされたモジュールを確認してください。

コマンド # httpd -l モジュール確認

もし、上記 4つのモジュールよりも多くのモジュールがコンパイルされている場合は、

Apache の再インストールを推奨します。

(4)(4)(4)(4) ApacheApacheApacheApache ののののセキュアセキュアセキュアセキュア設定設定設定設定((((サーバサーバサーバサーバ情報情報情報情報のののの漏洩防止漏洩防止漏洩防止漏洩防止))))

攻撃者は一般的に偵察をおこない、得られた情報を収集して、次のステップへと進み

ます。そのため、Web サーバ情報など攻撃者にとって有益となる情報はできる限り制

限することが必要となります。

ServerToken と ServerSignature の設定は、Web サーバの情報をどれだけ公表するか

Page 69: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

69/86

を決定します。以下の設定により公表する情報を制限してください。

サーバ OS の種別のみ表示させる場合は以下の設定を行ってください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイルの編集

編集内容 ServerTokens Prod “Apache”とだけ返す

フッタ情報すべてを表示させない場合は以下の設定を行ってください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイルの編集

編集内容 ServerSignature Off フッタ情報を返さない

(5)(5)(5)(5) デフォルトエラーページデフォルトエラーページデフォルトエラーページデフォルトエラーページ設定設定設定設定のののの削除削除削除削除

Web サーバの情報収集をする際に、攻撃者は故意にエラーを起こすリクエストを送り、

エラーページを表示させようとします。デフォルトのエラーページ表示設定では、不

要な情報を攻撃者に与えてしまう恐れがあるため、特段の必要が無い場合は、以下の

設定を実施してください。

コマンド # rm -r /etc/httpd/conf.d/welcome.conf 設定ファイル削除

(6)(6)(6)(6) iconiconiconicon ファイルファイルファイルファイルのののの削除削除削除削除

icon ファイルの特徴から不要な情報を攻撃者に与えてしまう恐れがあるため、特段の

必要が無い場合は、以下の設定を実施し icon ファイルを削除してください。

コマンド # rm -rf /var/www/icons icon ディレクトリ削除

(7)(7)(7)(7) ロードロードロードロード可能可能可能可能ななななモジュールモジュールモジュールモジュールのののの最小化最小化最小化最小化

Apache の標準のインストールでは、ランタイムにロードされる大量の”動的共有オブ

ジェクト(DSO)”が含まれます。

上記(3)の”コンパイルされて組み込まれた”モジュールと異なって、DSO は設定ファ

イルの中の合致する LoadModule 設定を除去することによって、無効にすることがで

きます。

注意)もし関連付けられた設定が Apache の設定ファイルに含まれていれば、DSO は単

に追加機能を提供するだけです。

Page 70: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

70/86

もし設定ファイルが、モジュールを許可する設定を含んでいれば、DSO を除去すると

Apache の開始時にエラーが表示されます。

それぞれの DSO に関連する設定の詳細は、http://httpd.apache.org/docs/を参照し

てください。それぞれの DSO の除去に続いて、もしすべてが動いているなら、次の検

査用のコマンドで設定をテストできます。

コマンド # service httpd configtest 検査実施

(8)(8)(8)(8) ApacheApacheApacheApache コアモジュールコアモジュールコアモジュールコアモジュールのののの確認確認確認確認

以下のモジュール一覧は Apache の機能に必要な基本のサブセットです。これらがコ

メントアウトされていないかを確認してください。

コマンド # cat /etc/httpd/conf/httpd.conf

確認内容 LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authz_host_module modules/mod_authz_host.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_default_module modules/mod_authz_default.so

LoadModule log_config_module modules/mod_log_config.so

LoadModule logio_module modules/mod_logio.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule mime_module modules/mod_mome.so

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule dir_module modules/mod_dir.so

LoadModule alias_module modules/mod_alias.so

(9)(9)(9)(9) mod_rewritemod_rewritemod_rewritemod_rewrite モジュールモジュールモジュールモジュールのののの無効無効無効無効

mod_rewrite モジュールは一部の Web 攻撃に対して強力な防御力を発揮します。しか

し、それ自体が重大な脆弱性を持つことが確認されているため、特段の必要がない限

りは設定ファイル内の関連するモジュールをコメントアウトして、無効としてくださ

い。

Page 71: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

71/86

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModulerewrite_module modules/mod_rewrite.so コメントアウト

(10)(10)(10)(10) LDAPLDAPLDAPLDAP サポートサポートサポートサポート設定設定設定設定

このモジュールは、LDAP ディレクトリを介した認証を提供します。LDAP を利用して

いる際は SSL(SecureSocketLayer)を利用することが推奨されます。この機能が不要

であれば設定ファイル内の関連するモジュールをコメントアウトしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule ldap_module modules/mod_ldap.so

# LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

コメントアウト

コメントアウト

(11)(11)(11)(11) サーバサイドインクルードサーバサイドインクルードサーバサイドインクルードサーバサイドインクルードのののの無効無効無効無効

サーバサイドインクルードは HTML ファイルに動的にコンテンツを埋め込むことがで

きる機能です。この機能は重大な脆弱性をひきおこす可能性があるため、必要がない

場合は設定ファイル内の関連するモジュールをコメントアウトしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule include_module modules/mod_include.so コメントアウト

サーバサイドインクルードが必要である場合は、IncludesNoExec オプションで任意の

コードの実行を制限してください。また、Web クライアントから受取るデータは、ク

ロスサイトスクリプティングの脆弱性を防ぐためにエンコードする必要があります。

(12)(12)(12)(12) マイムマジックマイムマジックマイムマジックマイムマジックのののの無効無効無効無効

このモジュールは、ほとんどの設定が実験的な MIME の為のセカンドレイヤを提供し

ています。この機能が必要ない場合は設定ファイル内の関連するモジュールをコメン

トアウトしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule mime_magic_module modules/mod_mime_magic.so コメントアウト

(13)(13)(13)(13) WebDAVWebDAVWebDAVWebDAV のののの無効無効無効無効

WebDAV は、HTTP プロトコルの拡張機能で分散ファイル編集および管理機能を提供し

ます。クライアントから Web サーバに対する様々な処理が行えるため、セキュリティ

Page 72: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

72/86

上多くの脆弱性を持っています。特段の必要がなければ設定ファイル内の関連するモ

ジュールをコメントアウトして無効にしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule dav_module modules/mod_dav.so

# LoadModule dav_fs_module modules/mod_dav_fs.so

コメントアウト

コメントアウト

WebDAV を必要とする場合は、WebDAV アクセスが許可されているサーバのどの場所に

おいても、暗号化された認証を実施するなど、設定には特段の注意を払ってください。

(14)(14)(14)(14) サーバサーバサーバサーバ動作動作動作動作ステータスステータスステータスステータス表示表示表示表示のののの制限制限制限制限

mod_status モジュールは、現時点でのサーバステータスの統計情報を読みやすい形式

であらわしたウェブページを作成します。これは不必要な情報を攻撃者に与える恐れ

があるため、特段の必要がなければ設定ファイル内の関連するモジュールをコメント

アウトして無効にしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule status_module modules/mod_status.so コメントアウト

このモジュールを必要とする場合は、ステータスページへのアクセスを特定ホストだ

けにするなどの制限をおこなってください。

(15)(15)(15)(15) WebWebWebWeb サーバサーバサーバサーバのののの設定表示設定表示設定表示設定表示のののの制限制限制限制限

mod_info モジュールは、Web サーバの設定を表示するウェブページを作成する機能を

提供します。これは不必要な情報を攻撃者に与える恐れがあるため、特段の必要がな

い場合は、設定ファイル内の関連するモジュールをコメントアウトして、無効にして

ください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule info_module modules/mod_info.so コメントアウト

このモジュールを必要とする場合は、Location 命令によって当該表示情報へのアクセ

ス制限をおこなってください。

(16)(16)(16)(16) mod_spelingmod_spelingmod_spelingmod_speling のののの無効無効無効無効

Page 73: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

73/86

mod_speling モジュールは、失敗したリクエストの一文字のスペルミスを許可してド

キュメントを探し出そうとします。この機能は、攻撃者によってサイト一覧を簡単に

つくることができ、攻撃者に有益な情報を与える恐れがあるため、特段の必要がない

場合は、設定ファイル内の関連するモジュールをコメントアウトして、無効にしてく

ださい。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule speling_module modules/mod_speling.so コメントアウト

(17)(17)(17)(17) ユーザユーザユーザユーザにににに特化特化特化特化したしたしたしたディレクトリディレクトリディレクトリディレクトリのののの無効無効無効無効

UserDir 命令は、ユーザに特化したディレクトリの公開ディレクトリへの転換を提供

し、関連するユーザネームに基づく URL を許可します。このモジュールを使用して Web

サーバのユーザを列挙させることができるなど、攻撃者に有益な情報を与える可能性

があります。この機能が必要ない場合は設定ファイル内の関連するモジュールをコメ

ントアウトしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 # LoadModule userdir_module modules/mod_userdir.so コメントアウト

このモジュールを必要とする場合は、設定ファイル内の UserDir の行で、この機能を

必要とする特別なユーザに制限して有効としてください。また、特段の必要がない場

合は、最低でも root の無効化を必ず実施してください。

(18)(18)(18)(18) キャッシュサポートキャッシュサポートキャッシュサポートキャッシュサポートのののの無効無効無効無効

このモジュールは、よくアクセスされるコンテンツに特化して Web アクセスを最適化

するデータキャッシュを Apache に許可する機能を提供します。

しかし、実験的なモジュールであるだけでなく、Allow and Deny 命令を迂回する可能

性のあるような潜在的な脆弱性をウェブサーバにもたらすこともあるため、特段の必

要がない場合は、設定ファイル内の関連するモジュールをコメントアウトして、無効

にしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 #LoadModule disk_cache_module modules/mod_disk_cache.so

#LoadModule cache_module modules/mod_cache.so

#LoadModule file_cache_module modules/mod_file_cache.so

#LoadModule mem_cache_module modules/mod_mem_cache.so

コメントアウト

コメントアウト

コメントアウト

コメントアウト

Page 74: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

74/86

キャッシュ機能が必要な場合は、適切なアクセスコントロールを行ってください。

(19)(19)(19)(19) CGICGICGICGI サポートサポートサポートサポートのののの制限制限制限制限

このモジュールは、CGI ウェブプログラミング言語に相互に作用する HTML を許可しま

す。これらの機能は、設定によってはセキュリティを高めることも出来ますが、設定

不備によるセキュリティリスク増大の危険性もあります。これらの機能が不要な場合

は、設定ファイル内の関連するモジュールをコメントアウトして、無効にしてくださ

い。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 #LoadModule cgi_module modules/mod_cgi.so

#LoadModule env_module modules/mod_env.so

#LoadModule actions_module modules/mod_actions.so

#LoadModule suexec_module modules/mod_suexec.so

コメントアウト

コメントアウト

コメントアウト

コメントアウト

CGI が必要な場合は、CGI モジュールを有効にしてください。また、拡張 CGI 機能が

必要な場合は、適切なモジュールを含めなければいけません。

(20)(20)(20)(20) オプションコンポーネンツオプションコンポーネンツオプションコンポーネンツオプションコンポーネンツのののの制限制限制限制限

以下のモジュールは特別な機能を提供します。

・mod_ext_filter クライアントへ返す前の外部フィルタリング機能

・mod_expires ユーザに特化したキャッシュコントロールと有効期限設定機能

・mod_deflate クライアントへ返す前の圧縮出力フィルタ機能

・mod_headers HTTP レスポンス/リクエストヘッダカスタマイズ機能

・mod_usertrack クッキーを使ったユーザ動作のモニタリング機能

・mod_vhost_alias 大規模な仮想ホストの動的構成機能

これらの機能が必要ない場合は、設定ファイル内の関連するモジュールをコメントア

ウトして、無効にしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 #LoadModule ext_filter_module modules/mod_ext_filter.so

#LoadModule expires_module modules/mod_expires.so

#LoadModule deflate_module modules/mod_deflate.so

#LoadModule headers_module modules/mod_headers.so

#LoadModule usertrack_module modules/mod_usertrack.so

コメントアウト

コメントアウト

コメントアウト

コメントアウト

コメントアウト

Page 75: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

75/86

#LoadModule vhost_alias_module modules/mod_vhost_alias.so コメントアウト

(21)(21)(21)(21) 組組組組みみみみ込込込込みみみみ設定設定設定設定ファイルファイルファイルファイルのののの最小化最小化最小化最小化

組み込み命令は Apache に提供されたパスから追加の設定ファイルをロードするよう

に命令します。標準設定では、/etc/httpd/conf.d ディレクトリから、.conf で終わ

るすべてのファイルがロードされます。

過剰な設定を制限するために、以下の行をコメントアウトして、参照が必要な設定フ

ァイルだけを要求する組み込み命令に置き換えてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 #Include conf.d/*.conf

Include conf.d/”必要な設定ファイル名”.conf

コメントアウト

必要ファイル追加

(22)(22)(22)(22) ルートディレクトリルートディレクトリルートディレクトリルートディレクトリ制限制限制限制限

Apache のルートディレクトリは、常に最も強い制限にしてください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory / >

Options None

AllowOverride None

Order allow,deny

</Directory>

特別な機能の無効

.htaccess の無効

デフォルト拒否

(23)(23)(23)(23) WebWebWebWeb ディレクトリディレクトリディレクトリディレクトリ制限制限制限制限

ウェブディレクトリ(/var/www/html)への標準設定では、ディレクトリ一覧作成

(Indexes)と、シンボリックリンクの解釈(FollowSymLinks)が許可されていますが、

どちらも推奨しません。

/var/www/html ディレクトリ階層は、ウェブ経由で見えないようにし、SymLink は、

もし Symlink の所有者がリンクしたファイルを所有するならば、解釈されなければな

らないだけです。

このポリシーが、関連した<Directory>セクションに作用するよう設定してください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory "/var/www/html">

# ...

Options SymLinksIfOwnerMatch

所有者のみ許可

Page 76: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

76/86

# ...

</Directory>

(24)(24)(24)(24) そのそのそのその他他他他ののののディレクトリディレクトリディレクトリディレクトリ制限制限制限制限

すべてのアクセス可能なウェブディレクトリは、下記のポリシーに基づいて制限設定

してください。

・Options 命令は、必要性に基づいて制限してください。

・AllowOverride 命令は、必要な場合のみ有効にしてください。

・Order と Deny アクセスコントロールタグは、標準でのアクセス拒否に使用し、必要

な場所にだけアクセスを許可してください。

例として、(23)ルートディレクトリ制限を実施した場合、次項(26)④認証の設定な

どでは、以下の設定を追加する必要があります。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

設定例 <Directory “認証をかけたいディレクトリ” >

Allow from all

(26)④の認証の設定を記述

</Directory>

アクセス許可

(25)(25)(25)(25) 認証認証認証認証のののの設定設定設定設定

Web サービスにおいて、認証が必要な場合は以下の設定を実施してください。なお、

ベーシック認証は、認証情報を平文でやり取りすることに留意し、盗聴の危険性があ

る場合は、SSL(SecureSocketLayer)のような暗号化認証を使用してください。

① パスワードファイルの作成

パスワードファイルが存在しない場合は、以下のコマンドによって作成してくださ

い。

作成するパスワードファイルとグループファイルの場所は、十分注意を払い、必ず

Web サーバのドキュメント構成外で、外部のクライアントが、アクセス制限によって

排除される場所に作成してください。本ガイドラインで、これらのファイルの置き

場所として、「/etc/httpd/conf」を推奨します。

注意)すでにパスワードファイルが存在する場合、以下のコマンドでは既存のパスワ

Page 77: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

77/86

ードファイルを上書き処理することに注意してください。

コマンド # htpasswd -cs /etc/httpd/conf/passwdfile user1

# htpasswd -s /etc/httpd/conf/passwdfile user2

SHA 暗号化で作成

SHA 暗号化で作成

② グループファイルの作成

グループ認証の必要がある場合は、合わせてグループファイルも作成してください。

グループファイルの書式は、行単位でグループを指定し、「:」の後にユーザを「ス

ペース」区切りで追加します。

コマンド # vi /etc/httpd/conf/groupfile ファイル作成

編集内容 group1 : user1 user2 user3

group2 : user4 user5

グループ 1作成

グループ 2作成

③ ファイルパーミッションの設定

Apache から読み込めるように、パスワードファイルとグループファイルのパーミッ

ションを設定してください。

コマンド # chgrp apache passwdfile groupfile

# chmod 640 passwdfile groupfile

グループ設定

権限設定

④ 認証の有効化

認証を有効にしたいディレクトリのタグの中に、以下のオプションを追加してくだ

さい。

・指定したユーザの指定ディレクトリへの認証設定

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory “directory” >

# ...

AuthName "Private Data"

AuthType Basic

AuthUserFile passwdfile

require user user

# ...

</Directory>

任意ディレクトリ

認証時表示ラベル

Basic 認証方式

認証ファイル指定

ユーザ指定

Page 78: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

78/86

・指定したグループの指定ディレクトリへの複数ユーザ認証設定

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory “directory” >

# ...

AuthName "Private Data"

AuthType Basic

AuthUserFile passwdfile

AuthGroupFile groupfile

require group group

# ...

</Directory>

任意ディレクトリ

認証時表示ラベル

Basic 認証方式

認証ファイル指定

認証ファイル指定

グループ指定

・認証されたユーザの指定ディレクトリへの認証設定

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory “directory” >

# ...

AuthName "Private Data"

AuthType Basic

AuthUserFile passwdfile

require valid-user

# ...

</Directory>

任意ディレクトリ

認証時表示ラベル

Basic 認証方式

認証ファイル指定

認証ユーザの許可

(26)(26)(26)(26) メソッドメソッドメソッドメソッドのののの制限制限制限制限

Web サーバで利用するメソッドは必要なメソッドを除いて使用できないようにしてく

ださい。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <Directory /var/www/html>

# ...

#Only allow specific methods

<LimitExcept GET POST>

Order allow,deny

任意ディレクトリ

コメント

GET,POST メソッド

以外のデフォルト

Page 79: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

79/86

</LimitExcept>

# ...

</Directory>

禁止設定

(27)(27)(27)(27) TraceTraceTraceTrace メソッドメソッドメソッドメソッドのののの無効無効無効無効

TRACE メソッドはクライアントからのリクエストをそのまま返し、アプリケーション

レベルでの通信疎通確認に使われる機能です。一般的にはこの機能を使うことはあま

りなく、この機能と他の脆弱性を組み合わせることで、サニタイジングやセキュリテ

ィチェックをバイパスされる恐れがあるため、特段の必要が無い場合は、TRACE メソ

ッドを無効にしてください。

TRACE メソッドを無効にするには、httpd.conf のタグで囲まれた箇所以外に以下の行

を追加してください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 TraceEnable Off Trace の無効

注意)上記設定は Apache 1.3.34 または Apache 2.0.55 以降のバージョンで設定可

能です。それ以前のバージョンでは mod_rewriteモジュールを使う方法がありますが、

mod_rewrite モジュール自体に脆弱性を含むため推奨されません。

(28)(28)(28)(28) SSLSSLSSLSSL((((SecureSocketLayerSecureSocketLayerSecureSocketLayerSecureSocketLayer))))認証設定認証設定認証設定認証設定

HTTP は平文で通信を行うプロトコルであり、受動的なモニタリングにより通信内容が

露見します。機密性の求められる通信を行う際は、SSL(SecureSocketLayer)を使用

してください。

本項では、mod_ssl を使用した SSL 認証の為の設定を述べます。

① mod_ssl の導入

以下のコマンドにより、mod_ssl モジュールをインストールしてください。

コマンド # yum install mod_ssl インストール

② SSL 認証の作成

以下のコマンドでは、当該サーバによる鍵ペアの生成と証明書の発行を述べていま

す。これは、内部セグメントで利用する SSL 認証では有効ですが、当該サーバが外

部向けのサービスを提供する際には、「オレオレ証明書」などと呼ばれ、セキュリテ

Page 80: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

80/86

ィ上好ましくない認証を提供してしまうことになります。

そのため、外部へ提供するサービスに SSL 認証などを用いる際は、正規の認証局に

よる商用の証明書を購入して利用する必要があります。

・秘密鍵を生成し、適切なパスフレーズを入力してください。

コマンド # cd /etc/pki/tls/certs

# openssl genrsa -des3 -out key.pem 2048

フォルダ移動

鍵ペアの生成

編集内容 Enter PEM pass phrase:パスフレーズ

Verifying password - Enter PEM pass phrase:パスフレーズ

パスフレーズ入力

再入力

・CSR([Certificate Signing Request]署名要求)を生成し、適切なパスフレーズを

入力してください。また、従来もしくは新たな商用の認証局(CA)による署名を利用

する場合は、当該ベンダのホームページ等の CSR 作成手続を参照してから入力して

ください。

コマンド # openssl req -new -key key.pem -out csr.pem CSR の生成

編集内容 ・全てのフィールドを可能な限り入力してください。

・共有名フィールドは当該サーバのドメイン名と完全に一致させてください。

・その他のフィールドを決定する/etc/pki/tls/openssl.conf ファイルは、CA とサーバ

リクエストとで一致させてください。

・チャレンジパスワードとオプションの会社名は空白のままにしてください。

・証明書への署名を行ってください。当該サーバ自らが署名する方法と、従来もし

くは新たな商用の CA に CSR を送って署名を受ける方法がありますが、自ら署名する

場合は、内部セグメントによる限定的な認証の利用に限り、外部向けサービスの提

供などに認証を行う場合は、出来る限り商用の CA による署名を受けるようにしてく

ださい。

<商用 CA の署名済みファイルの設置>

コマンド # cp “CA から送られたファイル” /etc/pki/tls/certs/cert.pem ファイルを保存

<自ら署名を行いファイルを設置>

コマンド # cd /etc/pki/tls/certs

# openssl ca -in csr.pem -out cert.pem

# cp “自ら署名したファイル” /etc/pki/tls/certs/cert.pem

フォルダ移動

自ら署名

ファイルを保存

Page 81: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

81/86

・SSL 認証を有効にするために、以下のように設定ファイルを編集してください。

コマンド # vi /etc/httpd/conf.d/ssl.conf 設定ファイル編集

編集内容

# 有効な待ち受けポート

Listen 443

# 適切なシードの設定

SSLRandomSeed startup file:/dev/urandom 1024

SSLRandomSeed connect file:/dev/urandom 1024

<VirtualHost site-on-certificate.com:443>

# SSL を有効にする

SSLEngine On

# サーバ証明書と鍵のパス

SSLCertificateFile /etc/pki/tls/http/cert.pem

SSLCertificateKeyFile /etc/pki/tls/http/key.pem

SSLProtocol All -SSLv3

# 弱い暗号とヌル認証を制限します。

SSLCipherSuite HIGH:MEDIUM:!aNULL:+MD5

</VirtualHost>

443port 待ち受け

SSL 開始時の設定

SSL 接続時の設定

エンジンの有効

暗号化方式設定

・SSL のコンテンツを有するすべてのディレクトリは、/etc/httpd/conf/httpd.conf

の設定により、SSL のアクセスだけに制限されるよう設定してください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容

<Directory /var/www/html/secure>

# 強制アクセス制御

SSLRequireSSL

SSLOptions + StrictRequire

# 認証されたドメインと必要なドメインの一致

SSLRequire %{HTTP HOST}

(29)(29)(29)(29) mod_securitymod_securitymod_securitymod_security のののの構築構築構築構築

mod_security モジュールは、Apache にアプリケーションレベルのファイアウォール

Page 82: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

82/86

機能を提供します。適切な設定を行うことにより、Web アプリケーションの強固なセ

キュリティが実現できます。

① mod_security のインストール

コマンド # yum install mod_security インストール

② フィルタリング設定

mod_security は数多くのフィルタリング設定を実装することが可能です。以下のリ

ストは、推奨フィルタリング設定の最小限のサブセットです。必要に応じて設定フ

ァイルを編集してください。

コマンド # vi /etc/httpd/conf/httpd.conf 設定ファイル編集

編集内容 <IfModule mod_security.c>

SecFilterEngine On

SecFilterScanPost On

SecFilterCheckURLEncoding On

SecFilterForceByteRange 1 255

#ディレクトリトラバーサル対策

SecFilter "\.\./"

#不正なディレクトリへのリクエスト制限

SecFilter /etc/passwd

SecFilter /bin/

#クロスサイトスクリプティング対策

SecFilter "[Jj][Aa][Vv][Aa][Ss][Cc][Rr][Ii][Pp][Tt]:"

SecFilter "<[[:space:]]*[Ss][Cc][Rr][Ii][Pp][Tt]"

SecFilter "[\"]"

SecFilter "[']"

SecFilter "[<]"

SecFilter "[>]"

#SQL インジェクション対策

SecFilter "[Dd][Ee][Ll][Ee][Tt][Ee][[:space:]]+[Ff][Rr][Oo][Mm]"

SecFilter "[Ii][Nn][Ss][Ee][Rr][Tt][[:space:]]+[Ii][Nn][Tt][Oo]"

SecFilter "[Ss][Ee][Ll][Ee][Cc][Tt].+[Ff][Rr][Oo][Mm]"

SecFilter "[']"

SecFilter "[\"]"

SecFilter "[;]"

フィルタの有効化

POST 解析の有効化

URL エンコード

許可バイトの範囲

Page 83: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

83/86

SecFilter "--"

SecFilter "[[:cntrl:]]"

</IfModule>

(30)(30)(30)(30) WebWebWebWeb サービスサービスサービスサービスのののの為為為為のののの OSOSOSOS チューニングチューニングチューニングチューニング

Web サービスを提供するサーバを可能な限り安全な環境にするために、サーバ OS での

設定を行ってください。

① ファイルとディレクトリに対するアクセス制御

Apache の重要なファイルとディレクトリに対するアクセスは最小限に制限してくだ

さい。

コマンド # chmod 511 /usr/sbin/httpd

# chmod 750 /var/log/httpd/

# chmod 750 /etc/httpd/conf/

# chmod 640 /etc/httpd/conf/*

# chgrp -R apache /etc/httpd/conf

② iptables による設定

以下のルールを入力し、/etc/sysconfig/iptablesの INPUTチェインの最後のLOG and

DROP の前に挿入してください。

コマンド # iptables -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

# iptables -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

6.11.26.11.26.11.26.11.2 プリンタサポートプリンタサポートプリンタサポートプリンタサポート

CUPS(コモン・ユニックス・プリンティング・システム)は、他のシステムから印刷ジョブを受け

つけ、印刷ジョブを適切なプリンタに送ることができます。また、ウェブインターフェースに

よるリモート管理を提供します。

(1)(1)(1)(1) CUPSCUPSCUPSCUPS サービスサービスサービスサービスのののの無効無効無効無効

当該サーバでプリンタサポートを利用する必要が無い場合は、CUPS サービスを無効に

してください。

コマンド # service cups stop

# chkconfig cups off

サービスの停止

起動時の無効

Page 84: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

84/86

(2)(2)(2)(2) プリントサービスプリントサービスプリントサービスプリントサービスののののネットワークネットワークネットワークネットワーク制限制限制限制限

当該サーバでプリンタサポートを利用する必要が無い場合は、ファイアウォールルー

ルを確認して、デフォルトで許可されているプリンタサービスのルール削除してくだ

さい。

コマンド # vi /etc/sysconfig/iptables 設定ファイル編集

削除内容 -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT

削除対象ライン

削除対象ライン

(3)(3)(3)(3) プリンタブラウジングプリンタブラウジングプリンタブラウジングプリンタブラウジングのののの制限制限制限制限

CUPS はデフォルトでプリンタサーバにネットワークで繋がれた全てのプリンタを、自

動的に検索し、利用可能なプリンタが見つかると、プリンタリストをブロードキャス

トします。これらの機能はプリンタブラウジングと呼ばれます。

プリンタブラウジング機能が必要ない場合は、無効にしてください。

コマンド # vi /etc/cups/cupsd.conf 設定ファイル編集

編集内容 Browsing Off

BrowseAllow none

プリンタサービスを有効にする場合は、/etc/cups/cupsd.conf ファイルを確認してく

ださい。

(4)(4)(4)(4) 印刷要求待印刷要求待印刷要求待印刷要求待ちちちち受受受受けのけのけのけの制限制限制限制限

デフォルトで、印刷要求の待ち受けはローカルホストのみとなっています。特段の必

要が無ければデフォルト設定のままとし、ネットワークに繋がれた他のクライアント

にプリンタサービスを提供する場合は、提供先を指定してください。

コマンド # vi /etc/cups/cupsd.conf 設定ファイル編集

編集内容 # Listen localhost:631

Listen “サービス提供先ネットワーク・IP アドレス”:631

コメントアウト

追加

(5)(5)(5)(5) サービスサービスサービスサービス利用利用利用利用クライアントクライアントクライアントクライアントのののの制限制限制限制限

デフォルトでプリンタサービスを利用できるのはローカルホストのみになっていま

す。特段の必要が無ければデフォルト設定のままとし、プリンタサービスを同一ネッ

トワークに繋がれた他のクライアントに提供する場合は、利用するクライアントのネ

Page 85: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

85/86

ットワークアドレスもしくは IP アドレスを指定して制限してください。

コマンド # vi /etc/cups/cupsd.conf 設定ファイル編集

編集内容 <Location />

Order allow,deny

Allow localhost

Allow “ネットワーク・IP アドレス”/”マスク”

</Location>

(6)(6)(6)(6) 管理者管理者管理者管理者ページページページページへのへのへのへのアクセスアクセスアクセスアクセス制限制限制限制限

CUPS 管理者ページへのアクセスは、デフォルトでローカルホストのみになっています。

特段の必要が無い限り、デフォルト設定のままにしてください。ネットワーク越しに

管理者ページへアクセスする必要がある場合は、特定のホストに制限してください。

コマンド # vi /etc/cups/cupsd.conf 設定ファイル編集

編集内容 <Location /admin>

Encryption Required

Order allow,deny

Allow localhost

Allow “特定のホスト IP アドレス”/”マスク”

</Location>

<Location /admin/conf>

AuthType Basic

Require user @SYSTEM

Order allow,deny

Allow localhost

Allow “特定のホスト IP アドレス”/”マスク”

</Location>

6.11.3 MySQL6.11.3 MySQL6.11.3 MySQL6.11.3 MySQL のののの設定設定設定設定

本項では MySQL インストール後のセキュリティ対策について述べます。

(1)(1)(1)(1) 管理者管理者管理者管理者パスワードパスワードパスワードパスワードのののの設定設定設定設定

以下のコマンドを実行し、管理者のパスワードを設定してください。パスワードポリ

シーについては、OS の管理者パスワードと同等の品質を保持してください(5.3 参照)

Page 86: 2007年度オープンソースソフトウェア活用基盤整備事業 … · 2007情財第989号 2007年度オープンソースソフトウェア活用基盤整備事業 自治体等におけるオープンソースソフトウェア活用に

86/86

コマンド # mysql -u root 設定

編集内容 mysql> set password for=root password(‘パスワード’);

mysql> flush privileges;

パスワード設定

設定反映

(2)(2)(2)(2) 匿名匿名匿名匿名ユーザユーザユーザユーザのののの削除削除削除削除

MySQL では、インストール時に匿名のユーザ(mysql では[‘ ‘]で表されます)が作成さ

れます。匿名ユーザの存在は攻撃者に容易に推測される為、攻撃の足がかりに利用さ

れる可能性があります。特段の必要が無い場合は匿名ユーザの存在を確認し、削除し

てください。

コマンド # mysql -u root -p 設定

編集内容 Enter password:”mysql の root のパスワード”

mysql> select host,user from user where user='';

mysql> use mysql;

mysql> delete from user where user='';

mysql> flush privileges;

認証

匿名ユーザ確認

データベース選択

匿名ユーザ削除

設定反映

(3)(3)(3)(3) 一般一般一般一般ユーザユーザユーザユーザのののの作成作成作成作成

データベースを利用する一般ユーザを作成する際は、あらかじめユーザに与える権限

を定義し、適切な権限付与を行ってください。また、この際かならずパスワードの設

定を行ってください。パスワードを設定しない場合、当該ユーザアカウントを知る全

てのユーザがデータベースに接続できてしまいます。

ユーザに与える権限は以下の書式で記述されます。

書式:grant [権限] on [DB 名] to [ユーザ名@接続元指定] identified ‘[パスワード]’;

以下の例は、test_db にローカルマシンからのみ接続する、testuser というユーザの

権限を select と index のみにする設定です。

コマンド # mysql -u root -p 設定

編集内容 Enter password:”mysql の root のパスワード”

mysql> create database “test_db”;

mysql> grant select,index on test_db.* to testuser@localhost

identified by 'パスワード';

認証

DB 作成

以上