Linux逆引き大全 360の極意 サーバセキュリティ編
概 要
ウィルスやspamの蔓延、公開サーバへの攻撃、個人情報保護など、サーバ管理者にとってセキュリティの重要性は高まる一方です。本書は、Linuxでネットワークを構築・管理する人に必要なセキュリティ対策や不正アクセス対策などについて知りたいことを目的からすぐ参照でき、各項目の設定を操作例の通りにすれば設定できます。Fedora CoreとDebian GNU/Linuxの2つのディストリビューションに対応。
| 著者 | 田鍬享、東いずみ |
| 価格 | 円(税込)(本体2500円) |
| ISBN | 4-7980-1056-1 |
| 発売日 | 2005/04/15 |
| 判型 | A5 |
| 色数 | 2色 |
| ページ数 | 560 |
| CD/DVD | - |
| 対象読者 | 中級 |
| シリーズ | 逆引き大全 |
目次
第1章 IPアドレス設定の極意
1-1.IPアドレスの設定
001 LANアダプタが認識されているかどうかを確認する
002 IPアドレスを確認する
003 ネットワーク・インターフェイスにIPアドレスを割り当てる
004 DHCPクライアントを使ってIPアドレスを取得する
005 設定ファイルで静的IPアドレスを設定する
006 設定ファイルで動的IPアドレスを設定する
007 設定ツールを使ってIPアドレスを設定する
1-2.ルーティングの設定
008 ルーティング・テーブルを確認する
009 ルーティング・テーブルを編集する
010 設定ファイルにルーティング・テーブルを記述する
1-3.通信状態の確認
011 通信状態を確認する
012 パケットの到達状態を確認する
第2章 ファイアウォールの極意
2-1.procによるファイアウォールの設定
013 パケットを転送する
014 送信元IPアドレスの偽装を検証する
2-2.iptablesコマンドの基本
015 フィルタリングのポリシーを設定する
016 フィルタリング・ルールを表示する
017 フィルタリング・ルールを削除する
018 フィルタリング・ルールを追加する
019 フィルタリング・ルールを挿入する
020 フィルタリング・ルールを保存する
021 フィルタリング・ルールをロードする
2-3.iptablesによるパケット・フィルタリング
022 IPマスカレードを行う
023 ポートを閉じる/開ける
024 戻りパケットの侵入のみを許可する
025 ポート転送を行う
026 偽装されたIPアドレスからのパケットを遮断する
027 特定のホストから送信されたパケットを遮断する
028 特定のホストへ送信されるパケットを遮断する
029 特定のホストに対しインターネットの利用を禁止する
030 特定のサービスへのアクセスを遮断する
031 特定のMACアドレスからのパケットを遮断する
032 オリジナルのチェインを作成する
033 pingのパケットに応答させない
034 DoS攻撃を防ぐ
035 ログを採取する
036 透過Webプロキシを構築する
037 FTPクライアントとの通信を可能にする
038 ブラックリストへ登録したホストからのアクセスを遮断する
2-4.パケット・フィルタリング用のツール
039 lokkitでパケット・フィルタリングを設定する
2-5.Squid
040 Squidをインストールする
041 Squidへの接続を制限する
042 Squidでポート番号を設定する
043 Squidでキャッシュに使うメモリの量を設定する
044 Squidでキャッシュに使うディスクの量を設定する
045 Squidを起動する
2-6.DeleGate
046 DeleGateをインストールする
047 DeleGateを起動する
048 DeleGateでクライアント・ホストの利用を制限する
049 DeleGateのキャッシュを有効にする
050 DeleGateが接続を待ち受けるアドレスを指定する
051 DeleGateの設定ファイルを作成する
第3章 ユーザ管理の極意
3-1.ユーザ管理
052 ユーザを一時的に無効にする
053 ユーザを削除する
054 ディスククォータをかける
055 ログイン中のユーザを確認する
056 ユーザのログイン記録を表示する
057 一般ユーザのシェル使用を禁止する
058 プロセス・アカウンティング・ツールの導入
059 プロセス・アカウンティングで採取した情報を表示する
060 ファイルやディレクトリを削除/改変不能にする
061 SetUID/SetGIDされたファイルを検出する
3-2.パスワード管理
062 John the Ripperで安全でないパスワードを見つける
063 ランダムなパスワードを生成する
064 ユーザに定期的なパスワードの変更を促す
065 シャドウ/MD5パスワードを有効にする
066 suコマンドを実行できるユーザを制限する
067 suを用いて他のユーザ権限でプログラムを実行する
068 rootでログインできる端末を制限する
069 コンソール・ログインを制限する
070 辞書に載っている語句をパスワードとして設定させない
071 シングルユーザ・モードで起動した際にrootパスワードを要求する
072 複数の一般ユーザを1つのグループに所属させる
073 LILOのパスワードを有効にする
074 GRUBのパスワードを有効にする
3-3.sudo
075 sudoコマンドをインストールする
076 sudoの設定ファイルを編集する
077 プログラムをroot権限で実行する
078 他のユーザ権限でプログラムを実行する
079 sudoコマンドを実行できるユーザのグループを作成する
080 パスワードの入力を省略する
081 sudo実行時に必ずパスワードを要求する
082 コマンドのグループを作成する
083 コマンドを実行できるホストを指定する
084 コマンドを実行できるホストのグループを作成する
第4章 スーパー・サーバの極意
4-1.xinetd
085 xinetdをインストール・起動する
086 サービスを追加・削除する
087 リモート・ホストからのアクセスを制限する
088 inetd.confからxinetd.confを生成する
089 サービスを有効・無効にする
090 ログを採取・確認する
091 DoS攻撃を防ぐ
4-2.inetd
092 inetdをインストール・起動する
093 サービスを追加・削除する
4-3.TCP Wrapper
094 TCP Wrapperをインストールする
095 プログラムにTCP Wrapperが組み込まれているかどうかを確認する
096 プログラムにTCP Wrapperを組み込む
097 リモート・ホストからのアクセスを制限する
098 設定ファイルの整合性を確認する
4-4.tcpserver
099 tcpserverをインストールする
100 サービスを有効・無効にする
101 リモート・ホストからの接続を制限する
102 制御ルールの内容を検証する
103 DoS攻撃を防ぐ
104 ログを採取・確認する
第5章 パッケージ管理の極意
5-1.アップデートの基本
105 アップデート・パッケージをダウンロードする
106 アップデート・パッケージをインストールする
5-2.aptを利用する
107 aptをインストールする
108 利用するパッケージ・グループを選択する
109 アップデートしないパッケージを指定する
110 apt用のデータベースを更新する
111 aptでアップデート・パッケージをインストールする
112 aptでパッケージを検索する
113 aptでパッケージをインストールする
114 aptでパッケージを削除する
5-3.yumを利用する
115 yumをインストールする
116 利用するパッケージ・グループを選択する
117 更新しないパッケージを指定する
118 更新可能なパッケージを確認する
119 yumでアップデート・パッケージをインストールする
120 yumによるパッケージの更新を自動化する
121 yumでパッケージを検索する
122 yumでパッケージをインストールする
123 yumでパッケージを削除する
124 サポートの終わったFedoraを使い続ける
5-4.up2dateを利用する
125 up2dateをインストールする
126 up2date-configで基本設定を行う
127 up2dateでアップデート・パッケージをインストールする
128 up2dateでパッケージをインストールする
第6章 ログの極意
6-1.syslog
129 syslogのインストール・起動
130 ログを読む
131 ログを整形する
132 priorityの範囲を指定する
133 1行に複数のselectorを指定する
134 ログをファイルに記録する
135 ログをリモート・ホストに送信する
136 ログをログインしているユーザの端末に表示する
137 syslogにメッセージを送る
138 ログファイルを整理する(ローテーション)
6-2.swatch
139 swatchをインストールする
140 swatchを設定・起動する
6-3.logwatch
141 logwatchをインストールする
142 logwatchでレポートを表示する
143 logwatchのレポートをメールで送信する
144 サービスを指定する
145 日を指定する
146 ファイルに保存する
6-4.syslog-ng
147 syslog-ngをインストールする
148 syslogの設定ファイルをsyslog-ngへ移行する
第7章 サービス管理の極意
7-1.プロセス管理
149 psコマンドで実行中のプロセスを確認する
150 topコマンドで実行中のプロセスを確認する
151 killコマンドでプロセスを終了する
152 pgrepコマンドでプロセスを検索する
153 pkillコマンドでプロセスを終了する
7-2.システムの状態を知る
154 空いているポートを確認する
155 空いているUDPポートを確認する
156 telnetコマンドを使ってサービスと通信する
157 ポートを使用しているプロセスを確認する
158 サービスを起動・停止する
159 chkconfigでシステム起動時に開始されるサービスを選択する
160 ntsysvでシステム起動時に開始されるサービスを選択する
161 update-rc.dでシステム起動時に開始されるサービスを選択する
162 rcconfでシステム起動時に開始されるサービスを選択する
163 sysv-rc-confでシステム起動時に開始されるサービスを選択する
7-3.ランレベル
164 現在のランレベルを確認する
165 現在のランレベルを変更する
166 システム起動時のランレベルを変更する
第8章 ネットワーク監視の極意
8-1.tcpdump
167 tcpdumpをインストールする
168 tcpdumpでパケットをキャプチャする
169 tcpdumpで特定のプロトコルのみを抜き出す
170 tcpdumpで特定のホストに関するパケット情報を抜き出す
171 tcpdumpで複数の条件式を指定する
172 tcpdumpでペイロードをASCII出力する
8-2.ngrep
173 ngrepをインストールする
174 ngrepでパケットをキャプチャする
8-3.Ethereal
175 Etherealをインストールする
176 Etherealでパケットをキャプチャする
177 Etherealでキャプチャしたデータを表示する
178 EtherealでTCPのデータを表示する
179 Etherealでパケットにフィルターをかける
8-4.MRTG
180 snmpdをインストールする
181 snmpdを設定・起動する
182 MRTGのインストールと基本設定を行う
183 MRTGでCPUのロードアベレージ情報をグラフ化する
184 MRTGでメモリの空き容量をグラフ化する
185 MRTGでSquidのヒット数やヒット率をグラフ化する
186 MRTGでプロトコルごとのトラフィックをグラフ化する(Fedora編)
187 MRTGでプロトコルごとのトラフィックをグラフ化する(Debian編)
8-5.ntop
188 ntopでトラフィック情報を収集する
第9章 サーバ・セキュリティの極意
9-1.sendmailのセキュリティ
189 sendmailをインストールする(Fedora編)
190 sendmailをインストールする(Debian編)
191 ユーザ・リストの作成を防ぐ
192 sendmailのバージョンを隠す
193 メール送信時に認証&暗号化を行う
194 ドメイン名をマスカレードする
195 バーチャルドメインを使う
196 エイリアスを定義する
9-2.Postfixのセキュリティ
197 Postfixをインストールする(Fedora編)
198 Postfixをインストールする(Debian編)
199 メールの中継を制限する
200 不正中継の可能性を確認する
201 迷惑メールの受信を拒否する
202 特定のネットワークから送信されたメールの受信を拒否する
203 ブラックリストを利用してメール受信を拒否する
204 エイリアスを定義する
205 メール送信時に認証を行う
206 メール送信を暗号化する
207 ウィルス・メールを検出する
9-3.Apacheのセキュリティ
208 Apacheのインストール
209 URL単位でアクセスを制限する
210 ホスト単位でアクセスを制限する
211 インデックスの表示を制限する
212 CGIの使用を禁止する
213 一般ユーザのスペースを公開する
214 指定した領域にパスワードをかける
215 ダイジェスト認証を使う
216 グループ単位でアクセス制限する
217 mod_sslを使う(Fedora編)
218 mod_sslを使う(Debian編)
219 mod_proxyを使う(Fedora編)
220 mod_proxyを使う(Debian編)
221 キャッシュ機能を有効にする
9-4.vsftpdのセキュリティ
222 vsftpdをインストールする
223 FTPログインできるユーザを制限する(PAM編)
224 FTPログインできるユーザを制限する(vsftpd編)
225 anonymousユーザのアクセスに限定する
226 ローカル・ユーザのアクセスに限定する
227 ホーム・ディレクトリ以外のアクセスを制限する
228 バーチャル・ユーザを使う(Fedora編)
229 バーチャル・ユーザを使う(Debian編)
230 同時接続数を指定する
9-5.BINDのセキュリティ
231 BINDをインストールする(Fedora編)
232 BINDをインストールする(Debian編)
233 BIND9をchroot環境で動かす
234 TSIG(トランザクション署名)を使う
235 不要なクエリに応答させない
236 BINDのログ機能を使う
237 BIND9でDNS分割を使う
238 BINDのバージョンを隠す
9-6.djbdns
239 djbdnsをインストールする(Fedora編)
240 djbdnsをインストールする(Debian編)
241 ローカル・ホスト用のDNSキャッシュ・サービスを設置する
242 ローカル・ネット用のDNSキャッシュ・サービスを設置する
243 自ドメインのDNS情報を提供するサーバを設置する
244 tinydns―tinydns間でゾーンデータをやりとりする
245 BIND―tinydns間でゾーンデータをやりとりする
第10章 不正アクセス対策の極意
10-1.不正アクセスの防止
246 ポートスキャンを遮断する
247 外部から自分のマシンをポートスキャンする
248 rootkitの有無を確認する
10-2.Tripwire
249 Tripwireをインストールする(Fedora編)
250 Tripwireをインストールする(Debian編)
251 Tripwire用の鍵を作成する
252 Tripwireの動作を設定する
253 Tripwireの動作設定を変更する
254 Tripwireのポリシーを設定する(監視対象を指定する)
255 Tripwireのデータベースを作成する
256 Tripwireのポリシー設定を変更する
257 Tripwireを使ってファイルを検証する(Tripwireレポートの作成)
258 ファイルの改変に対応する(データベースの更新)
259 Tripwireのレポートを表示する
260 Tripwireのレポートをメールで送信する
261 Tripwireの管理下におくファイルを追加する
262 Tripwireで監査しないファイルを指定する
263 Webサイトの改竄を検知する
264 Tripwireのレポートを定期的にメールで送信する
10-3.ファイルの検証と暗号化
265 md5sumコマンドをインストールする
266 md5sumコマンドを使ってファイルの改竄を確認する
267 sha1sumを使ってファイルのチェックサムを計算する
268 sha1sumを使ってファイルのチェックサムを書き出す
269 sha1sumでファイルのチェックサムを検証する
270 GPGをインストールする
271 GPG用の鍵を作成する
272 GPG公開鍵をkeyringに登録する
273 GPGで署名されたファイルを検証する
274 自分の秘密鍵で相手の公開鍵を署名する
275 GPGでファイルに署名する
276 GPGでテキスト・ファイルに署名する
277 GPGで署名ファイルを作成する
278 GPGでテキストの署名ファイルを作成する
279 ファイルにパスワードをかける
280 公開鍵を使ってファイルを暗号化する
281 GPGで暗号化されたファイルを復号化する
10-4.Snort
282 Snortをインストールする(Fedora編)
283 Snortをインストールする(Debian編)
284 Snortの基本設定を確認する
285 Snortでポート・スキャンを検知する
286 SnortでSoftEther VPN 2.0の使用を検知する
第11章 安全な通信の極意
11-1.OpenSSH
287 OpenSSHをインストールする
288 rootでのSSHログインを禁止する
289 OpenSSHでchroot機能を利用する
290 OpenSSHサーバを起動する
291 プロトコル・バージョンを選択する
292 公開鍵認証を使う(SSH1)
293 公開鍵認証を使う(SSH2)
294 ホスト・ベースの認証を利用する(SSH1)
295 ホスト・ベースの認証を利用する(SSH2)
296 パスワード認証を禁止する
297 sftpを有効にする
298 リモート・ホストからのアクセスを制限する
299 SSHログインできるユーザを制限する
300 SSHでログインする
301 SSHポート転送する
302 公開鍵を作成する
303 パスフレーズの入力を省略する
304 ログイン時にssh-agentを自動的に起動する
305 keychainを使って秘密鍵を管理する
306 rsyncと組み合わせてファイル転送する
307 sshを使ってリモート・ホスト上のコマンドを実行する
308 scpでファイルを転送する
309 sftpでファイルを転送する
11-2.WindowsでのSSH
310 WindowsでSSHの鍵を作成する(PuTTYgen)
311 PuTTY形式の鍵をOpenSSH形式に変換する
312 Tera Termをインストールする
313 Tera Termを日本語化する
314 Tera Termを設定する
315 TTSSHをインストールする
316 TTSSHを日本語化する
317 TTSSHを設定する
318 TTSSHでSSHログインする
319 TTSSHでSSHポート転送する
320 Tera TermをUTF-8対応にする
321 PuTTYをインストールする
322 PuTTYを設定する
323 PuTTYでSSHログインする
324 PuTTYでSSHポート転送する
325 Pageantで代理認証する
326 WinSCPをインストールする
327 WinSCPを設定する
328 WinSCPでファイル転送する
329 PortForwarderをインストールする
330 PortForwarderを設定する
331 PortForwarderでSSHポート転送する
332 PortForwarderで公開鍵認証を利用する
11-3.VPNの導入
333 vtunをインストールする
334 vtunを設定する
335 SoftEtherの「仮想HUB」をインストールする
336 SoftEtherの「仮想HUB」を設定する
11-4.シリアル・コンソール
337 シリアル・コンソールを使うための設定をする
338 minicomを使ってシリアル・コンソールを操作する
339 cuを使ってシリアル・コンソールを操作する
340 GRUBの起動画面をシリアル・コンソールに表示する
第12章 ツール利用の極意
12-1.ツールの利用方法
341 バッファ・オーバーフローなどを防ぐ
342 exec-shieldで防御された記録を残す
343 プログラムごとにexec-shieldを有効にする
344 OS保護機能を有効にする
345 libsafeをインストールする
346 libsafeの動作を確認する
347 デフォルトでlibsafeを有効にする
348 libsafeを適用するコマンドを選択する
349 libsafeを適用しないコマンドを選択する
350 バッファ・オーバーフローの検知情報をメールで通知する
351 Bastille Linuxをインストールする
352 Bastille Linuxを設定する
353 ファイル・パーミッションについて設定する(FilePermissions.pm)
354 アカウントについて設定する(AccountSecurity.pm)
355 OSの起動について設定する(BootSecurity.pm)
356 スーパー・サーバについて設定する(SecureInetd.pm)
357 実行ファイルについて設定する(DisableUserTools.pm)
358 コンソール・ログインできるユーザを制限する(ConfigureMiscPAM.pm)
359 ログについて設定する(Logging.pm)
360 ファイアウォールについて設定する(Firewall.pm)
付録
付録1 ディストリビューション・インストールの要点
付録2 chkconfig、update-rc.d、sysv-rc-confの使い方
サービスをシステムと同時に起動する方法

