出版社内容情報
官公庁サイトへの侵入や書き換え、 米国Yahoo!などへの一連のDoS攻撃!
次はあなたのサイトかもしれない!
本書は、悪意ある行為からLinuxシステムを守る際に重要になる、Linuxの長所と短所を包括的に
解説しています。Crack、Tripwire、linux_sniffer、mendaxやその他の攻撃的/防衛的なツールを
多く紹介し、、各プログラムについて前提となる環境(C言語やPerlなど)、必要なアクセス権、
ダウンロードのためのURL、さらに、各プログラムの使い方までを詳しく解説。巻末の付録では
何百ものハッキングツールを紹介。付属CD-ROMにはさまざまなソフトウェア(Linuxセキュリティ
製品、コード例、技術ドキュメント、システムログ、ユーティリティ)を収録。使い方を間違えると
大変危険です。
※注 本書の内容を利用して他人のコンピュータに侵入を試みることは禁じられています。
編集部では、本書の内容を利用した結果生じた損害については、その責を負いません。
■総合目次
PART1 Linuxセキュリティの基礎――27
第1章 Linuxの紹介――29
第2章 物理的なセキュリティ――45
第3章 インストール――67
第4章 基本的なLinuxシステム管理――95
PART2 Linuxユーザーセキュリティ――129
第5章 パスワード攻撃――131
第6章 悪意のコード――173
PART3 Linuxネットワークセキュリティ――195
第7章 スニッファと電子盗聴――197
第8章 スキャナ――225
第9章 スプーフィング――267
第10章 転送データの保護――283
PART4 Linuxインターネットセキュリティ――307
第11章 FTPのセキュリティ――309
第12章 メールのセキュリティ――323
第13章 telnetのセキュリティ――349
第14章 Webサーバーのセキュリティ――363
第15章 安全なWebプロトコル――397
第16章 安全なWeb開発――423
第17章 サービス拒否(DoS)攻撃――441
第18章 Linuxとファイアウォール――469
第19章 ログと監査――491
第20章 侵入検知――513
第21章 災害復旧――527
PART5 付録――543
付録A Linuxセキュリティコマンドリファレンス――544
付録B Linuxセキュリティインデックス――Linuxの過去のセキュリティ問題――573
付録C その他の便利なLinuxセキュリティツール――588
付録D 詳しい情報の入手――609
付録E 用語集――632
付録F 不正アクセス行為の禁止等に関する法律――671
■目次
WARNING!――3
訳者まえがき――4
著者/訳者紹介――5
はじめに――6
PART1 Linuxセキュリティの基礎――27
第1章 Linuxの紹介――29
1.1 Linuxとは何か――29
1.1.1 Linuxはフリー――29
1.1.2 UNIXによく似たLinux――31
1.1.3 Linuxはどこから生まれたのか――33
1.2 スタンドアロンシステムとしてのLinux――33
1.3 イントラネット/インターネットサーバーとしてのLinux――34
1.4 Linuxセキュリティの概要――35
1.4.1 ユーザーアカウント――35
1.4.2 任意アクセス制御(DAC)――37
1.4.3 ネットワークアクセス制御――39
1.4.4 暗号化――40
1.4.5 組み込みのログ機能、監査機能、ネットワーク監視機能――41
1.4.6 侵入者検出――42
1.5 まとめ――43
第2章 物理的なセキュリティ――45
2.1 サーバーの位置と物理的なアクセス――46
2.1.1 ネットワーク操作センター(NOC)――46
2.2 ネットワークトポロジー――47
2.2.1 おもなネットワークトポロジー――47
2.2.2 トポロジーセキュリティのまとめ――51
2.3 ネットワークハードウェア――52
2.3.1 ネットワークハードウェアの一般的なセキュリティ対策――52
2.3.2 ネットワークハードウェアのまとめ――55
2.4 ワークステーションとセキュリティ――55
2.4.1 BIOSとコンソールのパスワード――55
2.4.2 バイオメトリクスによるアクセス制御――57
2.4.3 モデムのセキュリティ――60
2.4.4 盗難防止デバイス――62
2.4.5 一意の番号、マーク、その他の手法――63
2.5 まとめ――65
第3章 インストール――67
3.1 さまざまなLinuxディストリビューション、セキュリティ、インストール――67
3.2 パーティションとセキュリティ――70
3.2.1 パーティションとは何か――70
3.2.2 1つのパーティションに押し込んだLinux――75
3.2.3 複数パーティションのその他の利点――77
3.2.4 パーティションのサイズ――77
3.2.5 swapパーティションとルートーティションの作成――80
3.2.6 拡張パーティションの作成――83
3.2.7 拡張パーティション内への論理パーティションの作成――84
3.2.8 その他のパーティション作成ツール――86
3.2.9 パーティションとセキュリティのまとめ――87
3.3 インストール時のネットワークサービスの選択――89
3.3.1 ブートローダー――91
3.3.2 /etc/lilo.conf――LILO設定ファイル――91
3.3.3 ブートローダーのまとめ――93
3.4 まとめ――94
第4章 基本的なLinuxシステム管理――95
4.1 基本概念――95
4.1.1 自分だけのアカウント――96
4.2 アカウントの作成と管理――96
4.2.1 アカウントポリシー――97
4.2.2 アカウント構造――98
4.2.3 ユーザーの追加――101
4.2.4 独自のツールによるユーザーの追加――106
4.2.5 ユーザーの削除――106
4.3 suによる管理作業の実行――107
4.3.1 su――代理ユーザー――107
4.4 アクセス制御――110
4.5 アクセス権と所有権――110
4.5.1 chmod――ファイルアクセス権の変更――112
4.6 グループの詳細――120
4.6.1 グループの作成――121
4.6.2 chown――ユーザー所有者とグループアクセス権の割り当て――124
4.6.3 グループの削除――125
4.7 システムのシャットダウン――125
4.7.1 shutdown――Linuxシステムのシャットダウン――126
4.8 まとめ――127
PART2 Linuxユーザーセキュリティ――129
第5章 パスワード攻撃――131
5.1 パスワード攻撃とは――131
5.2 Linuxのパスワード生成/保存方法――132
5.2.1 パスワードの歴史――133
5.3 Data Encryption Standard(DES)――135
5.3.1 ディクショナリ攻撃――137
5.4 ケーススタディ――ディクショナリ攻撃でのLinux パスワードのクラック――138
5.4.1 Crack――138
5.4.2 Crackのコマンドラインオプション――143
5.4.3 ディクショナリ攻撃の歴史――145
5.5 パスワードのシャドー化とシャドースィート――147
5.5.1 /etc/shadow――shadowパスワードデータベース――147
5.5.2 ユーザーとグループの作成/削除以外の機能――158
5.5.3 シャドー化システムへの攻撃――159
5.6 シャドースィートのインストール後――161
5.6.1 人間のパスワード選択とシステムセキュリティへの影響――161
5.6.2 予防的パスワードチェック――162
5.7 パスワードセキュリティに関するその他の問題――165
5.7.1 パスワードの増殖とセキュリティ――165
5.8 Pluggable Authentication Modules(PAM)――168
5.9 その他のパスワードセキュリティソリューション――169
5.9.1 ネットワーク情報サービスとパスワードセキュリティ――170
5.10 まとめ――171
第6章 悪意のコード――173
6.1 悪意のコードとは――173
6.1.1 トロイとは――173
6.1.2 ウィルス――176
6.2 悪意のコードの検出――178
6.2.1 Tripwire――181
6.2.2 Tripwireの入手――182
6.2.3 Tripwireのインストール――183
6.2.4 Tripwireの設定と実行――188
6.2.5 Tripwireによるファイルの整合性の検査――190
6.2.6 Tripwireのまとめ――191
6.3 その他のファイル整合性チェックソフトウェア――191
6.3.1 TAMU――191
6.3.2 ATP(Anti-Tampering Program)――192
6.3.3 Hobgoblin――192
6.3.4 sXid――193
6.3.5 trojan.pl――193
6.3.6 その他の情報源――193
6.3.7 まとめ――194
PART3 Linuxネットワークセキュリティ――195
第7章 スニッファと電子盗聴――197
7.1 スニッファの動作――197
7.2 ケーススタディ――簡単なスニッファ攻撃の実行――199
7.2.1 linsniffer――200
7.2.2 linux_sniffer――203
7.2.3 hunt――207
7.2.4 sniffit――211
7.3 その他のスニッファやネットワーク監視ツール――215
7.4 スニッファの危険性――217
7.5 スニッファ攻撃に対する防御――218
7.5.1 ifconfig――219
7.5.2 ifstatus――219
7.5.3 NEPED(Network Promiscuous Ethernet Detector)――221
7.5.4 一般的なスニッファ対策――221
7.6 参考資料――222
7.7 まとめ――223
第8章 スキャナ――225
8.1 スキャナとは――225
8.1.1 システムスキャナ――226
8.1.2 ネットワークスキャナ――230
8.2 スキャナの構成要素と進歩――233
8.3 スキャナの効果的な使い方――243
8.4 さまざまなスキャナツール――243
8.4.1 SAINT(Security Administrator's Integrated Network Tool)――243
8.4.2 ISS(Internet Security Scanner)――244
8.4.3 Nessus――250
8.4.4 nmap(The Network Mapper)――251
8.4.5 CGI scanner v1.0――254
8.4.6 スキャナは合法か――259
8.5 スキャナ攻撃に対する防御――259
8.5.1 courtney(SATANとSAINTのディテクタ)――260
8.5.2 IcmpInfo(ICMPスキャン/爆弾ディテクタ)――261
8.5.3 klaxon――263
8.5.4 Psionic PortSentry――264
8.6 参考資料――265
8.7 まとめ――266
第9章 スプーフィング――267
9.1 スプーフィングとは――267
9.2 TCPとIPのスプーフィング――267
9.3 ケーススタディ――簡単なスプーフィング攻撃――270
9.3.1 スプーフィング攻撃のテスト――271
9.3.2 TCPとIPのスプーフィングツール――273
9.3.3 IPスプーフィングに弱いサービス――274
9.4 IPスプーフィング攻撃の防止――275
9.5 ARPスプーフィング――276
9.5.1 ARPスプーフィング攻撃に対する防御――277
9.6 DNSスプーフィング――278
9.7 その他の変則的なスプーフィング攻撃――280
9.8 参考資料――281
9.9 まとめ――282
第10章 転送データの保護――283
10.1 Secure Shell(ssh)――283
10.1.1 sshの主要ユーティリティ――284
10.1.2 クイックスタート――sshディストリビューションのインストール――285
10.1.3 あまりクイックではないスタート――configureオプションの指定――288
10.1.4 sshサーバーの設定――289
10.1.5 sshd起動コマンドラインオプション――291
10.1.6 sshdの起動――294
10.1.7 sshクライアントの使い方――294
10.2 scp――安全なリモートファイルコピープログラム――296
10.3 異種ネットワークでのsshサービスの利用――297
10.3.1 Tera Term Pro + TTSSH for Windows――297
10.3.2 Macintosh対応sshクライアント――299
10.3.3 sshの使用例――300
10.4 sshのセキュリティ問題――305
10.5 参考資料――305
10.6 まとめ――306
PART4 Linuxインターネットセキュリティ――307
第11章 FTPのセキュリティ――309
11.1 ファイル転送プロトコル(FTP)――309
11.1.1 FTPのセキュリティの歴史――309
11.2 FTPのデフォルトのセキュリティ機能――312
11.2.1 /etc/ftpusers――ユーザーアクセス制限ファイル――312
11.2.2 /etc/ftpaccess――ftpd設定ファイル――315
11.3 SSLftp――317
11.3.1 SSLftpのインストール――318
11.4 FTPアプリケーション固有のセキュリティ――319
11.4.1 ncftp――319
11.4.2 filerunner――320
11.4.3 ftpwatch――320
11.4.4 wu-ftpd 2.4.2-academ[BETA-18]――321
11.5 まとめ――321
第12章 メールのセキュリティ――323
12.1 SMTPサーバー/クライアント――323
12.1.1 簡易SMTPクライアント――325
12.2 sendmailのセキュリティの基礎――328
12.2.1 sendmailサービスの保護――334
12.2.2 sendmailに関する情報源――342
12.3 sendmailからQmailへ――343
12.3.1 Qmailのインストール――343
12.3.2 Qmailに関する情報源――347
12.4 まとめ――347
第13章 telnetのセキュリティ――349
13.1 telnetサービスを提供することの必要性――349
13.2 telnetのセキュリティの歴史――349
13.3 安全なtelnetシステム――351
13.4 deslogin――352
13.4.1 desloginディストリビューションのインストール――352
13.4.2 STEL(Secure Telnet)――358
13.4.3 SSL MZ-Telnet――359
13.5 SRA Telnet(テキサスA&M大学)――359
13.6 SRP Telnet/FTPパッケージ(スタンフォード大学)――359
13.6.1 重要な参考資料――360
13.7 まとめ――361
第14章 Webサーバーのセキュリティ――363
14.1 必須でないサービスの除去――363
14.1.1 ファイル転送プロトコル(FTP)――364
14.1.2 finger――364
14.1.3 ネットワークファイルシステム(NFS)――366
14.1.4 その他のRPCサービス――366
14.1.5 Rサービス――368
14.1.6 パブリックサーバーには不要なその他のサービス――370
14.1.7 動作中のサービスに対するアクセス制御の適用――371
14.2 Webサーバーのセキュリティ――371
14.2.1 httpd――372
14.2.2 外部アクセスの制御――access.conf――372
14.2.3 セキュリティに影響する設定オプション――377
14.2.4 ExecCGIオプション――CGIプログラムの実行を有効にする――378
14.2.5 FollowSymLinks Option――ユーザーがシンボリックリンクを辿れるようにする――379
14.2.6 Includesオプション――SSI(Server Side Includes)の有効化――380
14.2.7 Indexesオプション――ディレクトリ索引生成機能――382
14.3 ディレクトリアクセス制御と基本HTTP認証――383
14.3.1 htpasswd――384
14.4 基本HTTP認証の弱点――389
14.5 HTTPと暗号化認証――390
14.5.1 MD5ダイジェスト認証の追加――391
14.6 chroot Web環境の実行――392
14.7 認定と証明――393
14.7.1 Coopers & Lybrand L.L.P.のResource Protection Services(米国)――394
14.7.2 米国公認会計士協会(AICPA:American Institute of Certified Public Accountants)――394
14.7.3 International Computer Security Association(以前のNCSA)――395
14.7.4 Troy Systems――395
14.8 まとめ――396
第15章 安全なWebプロトコル――397
15.1 問題――397
15.2 SSL(Secure Sockets Layer)プロトコル――398
15.2.1 SSLのセキュリティの歴史――398
15.3 Apache-SSLのインストール――401
15.3.1 OpenSSLのアンパック、コンパイル、インストール――402
15.3.2 Apacheのアンパック、パッチ適用、インストール――406
15.3.3 httpsdスタートアップファイルの設定――413
15.3.4 サーバーのテスト――414
15.3.5 証明書の認証機関――418
15.3.6 Apache-SSLのまとめ――419
15.3.7 SSLに関する情報源――420
15.4 その他の安全なプロトコル――IPSEC――421
15.5 まとめ――421
第16章 安全なWeb開発――423
16.1 開発における危険因子の全体像――423
16.2 シェルの生成――424
16.2.1 system()によるシェルコマンドの実行――424
16.2.2 C/C++におけるpopen()――428
16.2.3 Perlにおけるopen()――430
16.2.4 eval(Perlとシェル)――431
16.2.5 Perlにおけるexec()――432
16.3 バッファオーバーラン――432
16.3.1 ユーザー入力全般の注意――435
16.4 パス、ディレクトリ、ファイル――435
16.4.1 chdir()――437
16.4.2 ファイル――437
16.5 セキュリティプログラミングとテストツール――438
16.6 その他のオンライン情報――439
16.7 まとめ――440
第17章 サービス拒否(DoS)攻撃――441
17.1 サービス拒否攻撃とは――442
17.2 サービス拒否攻撃によるリスク――443
17.3 この章の構成――444
17.4 ネットワークハードウェアに対するDoS攻撃――444
17.5 Linuxネットワークに対する攻撃――448
17.5.1 sesquipedalian.c――449
17.5.2 inetdとNMAP――450
17.5.3 lpd偽印刷要求――451
17.5.4 mimeflood.pl――452
17.5.5 portmap(また、その他のRPCサービス)――452
17.5.6 UNIXソケットガベージコレクションDoS――453
17.5.7 time/daytime DoS――453
17.5.8 teardrop.c――454
17.5.9 identdオープンソケットフラッド――456
17.5.10 Lynx/chargenブラウザ攻撃――456
17.5.11 nestea.c――457
17.5.12 pong.cとICMPフラッド――458
17.5.13 Ping of Death――458
17.5.14 octopus.c――459
17.6 Linuxアプリケーションに対する攻撃――461
17.6.1 Netscape Communicatorコンテンツタイプ(1)――461
17.6.2 Netscape Communicatorコンテンツタイプ(2)――462
17.6.3 passwdリソース枯渇――462
17.6.4 xdm――463
17.6.5 wtmpロック――463
17.7 その他のDoS攻撃――464
17.8 サービス拒否攻撃に対する防御――466
17.9 オンラインの参考資料――467
17.10 まとめ――467
第18章 Linuxとファイアウォール――469
18.1 ファイアウォールとは――469
18.1.1 ネットワークレベルのファイアウォール――パケットフィルター――470
18.1.2 アプリケーションプロキシファイアウォール/アプリケーションゲートウェイ――471
18.2 ファイアウォールの必要性の評価――473
18.3 tcpd――TCP Wrappers――473
18.3.1 TCP Wrappersとネットワークアクセス制御――476
18.3.2 TCP Wrappersのまとめ――479
18.3.3 ipfwadm――480
18.3.4 ipfwadmの基本――480
18.3.5 ipfwadmの設定――482
18.4 ipchains――483
18.4.1 ipchainsのセキュリティ問題――485
18.5 Linux用のフリーのファイアウォールツールとアドオン――485
18.6 商用ファイアウォール――485
18.7 参考資料――488
18.8 まとめ――489
第19章 ログと監査――491
19.1 ログとは――491
19.2 Linuxのログ機能――492
19.2.1 lastlog――492
19.2.2 last――493
19.2.3 xferlog――496
19.2.4 httpdログ――497
19.2.5 システムメッセージとカーネルメッセージ――500
19.2.6 /var/log/messages――システムメッセージとカーネルメッセージの保存――500
19.2.7 プログラムからsyslogへの情報の書き込み――504
19.2.8 ログのバックアップと取り扱い――506
19.3 その他のおもなログツールと監査ツール――508
19.4 まとめ――511
第20章 侵入検知――513
20.1 侵入検知とは――513
20.2 基本的な侵入検知システム――514
20.3 おもな侵入検知ツール――516
20.3.1 chkwtmp――516
20.3.2 tcplogd――516
20.3.3 Snort――517
20.3.4 HostSentry――519
20.3.5 Shadow――519
20.3.6 MOM――520
20.3.7 HummingBird System――521
20.3.8 AAFID(Autonomous Agents for Intrusion Detection)――522
20.3.9 侵入検知技術の参考資料――524
第21章 災害復旧――527
21.1 災害復旧とは――527
21.1.1 災害復旧プランの必要な理由――527
21.2 Linuxネットワークを構築する前に必要な作業――528
21.2.1 ハードウェアの標準化――528
21.2.2 ソフトウェアの標準化――基本的な設定――528
21.3 バックアップツールの選択――531
21.4 簡単なアーカイブ化――tarとZipを使ったアーカイブ――532
21.4.1 tarアーカイブの作成――532
21.4.2 gzipを使ったtarアーカイブの圧縮――533
21.4.3 cpio――その他のファイルアーカイブツール――534
21.4.4 ホットなアーカイブサイトの作成――534
21.5 バックアップの種類とバックアップ方針――535
21.6 バックアップパッケージ――538
21.6.1 KBackup(Karsten Balluders開発)――538
21.6.2 Enhanced Software Technologies社のBRU――539
21.6.3 AMANDA(The Advanced Maryland Automatic Network Disk Archiver)――540
21.7 豆知識――541
21.8 まとめ――541
PART5 付録――543
付録A Linuxセキュリティコマンドリファレンス――544
付録B Linuxセキュリティインデックス――Linuxの過去のセキュリティ問題――573
付録C その他の便利なLinuxセキュリティツール――588
付録D 詳しい情報の入手――609
付録E 用語集――632
付録F 不正アクセス行為の禁止等に関する法律――671
索引――674
内容説明
本書は、Linuxサーバー/ワークステーションを不正な侵入やその他の危険から守りたい、システム管理者、マネージャ、ユーザーのための究極のガイドブックです。本物のハッカーによって書かれた目的は、Linuxの顕在的/潜在的なセキュリティホールを明かにし、その修正の方法を示すことです。
目次
1 Linuxセキュリティの基礎(Linuxの紹介;物理的なセキュリティ ほか)
2 Linuxユーザーセキュリティ(パスワード攻撃;悪意のコード)
3 Linuxネットワークセキュリティ(スニッファと電子盗聴;スキャナ ほか)
4 Linuxインターネットセキュリティ(FTPのセキュリティ;メールのセキュリティ ほか)
5 付録(Linuxセキュリティコマンドリファレンス;Linuxセキュリティインデックス―Linuxの過去のセキュリティ問題 ほか)