Linux逆引き大全 360の極意 サーバセキュリティ編 [第2版]

概 要

Linuxを用いたインターネットサーバを構築・運用する際に必要となるセキュリティの設定方法を逆引き形式で解説したリファレンス書です。サーバセキュリティの理論よりも具体的な設定手順を中心に解説しており、サーバ管理者が日々の運用で困った時にすぐに役立つ内容です。第2版となる本書では、サーバセキュリティの基礎知識から、rsyslog、Microsoft Network Monitor、Zabbix、Milter、NSD、TrueCrypt、TOMOYO Linuxなどの新しいトピックまで解説。ファイルの編集例や操作例を通して設定方法がよくわかります! CentOS/Ubuntu対応。

著者 田鍬享
価格 本体2500円(税別)
ISBN 978-4-7980-2827-9
発売日 2010/12/21
判型 A5
色数 2色
ページ数 528
CD/DVD
対象読者 中級
シリーズ 逆引き大全
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

第1章 IPアドレス設定の極意

1-1 IPアドレスの設定

001 ネットワーク・アダプタの認識状況を確認する(ifconfig編)

002 ネットワーク・アダプタの認識状況を確認する(ip編)

003 IPアドレスを確認する(ifconfig編)

004 IPアドレスを確認する(ip編)

005 IPアドレスを手動で割り当てる(ifconfig編)

006 IPアドレスを手動で割り当てる(ip編)

007 IPアドレスをDHCPで取得する

008 IPアドレスを設定ファイルで指定する(CentOS編)

009 IPアドレスを設定ファイルで指定する(Ubuntu編)

010 IPアドレスを設定ツールで指定する

1-2 ルーティングの設定

011 ルーティング・テーブルを確認する

012 デフォルト・ゲートウェイを手動で指定する

013 デフォルト・ゲートウェイを手動で削除する

014 デフォルト・ゲートウェイを設定ファイルで指定する(CentOS編)

015 デフォルト・ゲートウェイを設定ファイルで指定する(Ubuntu編)

1-3 通信状態の確認

016 通信状態を確認する

017 パケットの到達状態を確認する

018 IPv6アドレスを無効にする(CentOS編)

019 IPv6アドレスを無効にする(Ubuntu編)

第2章 ファイアウォールの極意

2-1 procによるファイアウォールの極意

020 パケットを転送する

2-2 iptablesコマンドの基本

021 フィルタリング・ルールを表示する

022 フィルタリングのポリシーを設定する

023 フィルタリング・ルールを削除する

024 フィルタリング・ルールを一気に削除する

025 フィルタリング・ルールを追加する

026 フィルタリング・ルールを挿入する

027 フィルタリング・ルールを保存する

028 フィルタリング・ルールをロードする

029 オリジナルのチェーンを作成する

2-3 CentOSのファイアウォール

030 ファイアウォールを有効/無効にする

031 ポートを開閉する

032 特定のホストから送信されたパケットを遮断する

033 特定のMACアドレスからのパケットを遮断する

034 偽装されたIPアドレスからのパケットを遮断する

035 特定のホストへ送信されるパケットを遮断する

036 特定のサービスへのアクセスを遮断する

037 pingのパケットに応答させない

038 DoS攻撃を防ぐ

039 ログをとる

040 ブラックリストへ登録したホストからのアクセスを遮断する

041 ポート転送する

042 IPマスカレードを使う

043 特定のホストに対しインターネットの利用を禁止する

044 透過Webプロキシを構築する

2-4 Ubuntuのファイアウォール

045 ファイアウォールを有効/無効にする

046 フィルタリング・ルールを削除する

047 ポートを開閉する

048 特定のホストから送信されたパケットを遮断する

049 特定のMACアドレスからのパケットを遮断する

050 偽装されたIPアドレスからのパケットを遮断する

051 特定のホストへ送信されるパケットを遮断する

052 特定のサービスへのアクセスを遮断する

053 pingのパケットに応答させない

054 DoS攻撃を防ぐ

055 ログをとる

056 IPマスカレードを使う

057 ポート転送する

058 特定のホストに対しインターネットの利用を禁止する

059 透過Webプロキシを構築する

2-5 SquidによるWebプロキシ

060 Squidをインストールする

061 Squidへの接続を制限する

062 Squidでポート番号を設定する

063 Squidでキャッシュに使うメモリの量を設定する

064 Squidでキャッシュに使うディスクの量を設定する

第3章 ユーザ管理の極意

3-1 ユーザ管理

065 ユーザを追加/削除する(CentOS編)

066 ユーザを追加/削除する(Ubuntu編)

067 ユーザを一時的に無効にする

068 ログイン中のユーザを確認する

069 ユーザのログイン記録を表示する

070 一般ユーザのシェル使用を禁止する

071 プロセス・アカウンティングを開始する

072 プロセス・アカウンティングで採取した情報を表示する

073 ファイルやディレクトリを削除/改変不能にする

074 SetUID/SetGID rootされたファイルを検出する

075 ディスククォータをかける(CentOS編)

076 ディスククォータをかける(Ubuntu編)

3-2 パスワード管理

077 John the Ripperで安全でないパスワードを見つける

078 ランダムなパスワードを生成する(CentOS編)

079 ランダムなパスワードを生成する(Ubuntu編)

080 ユーザに定期的なパスワードの変更を促す

081 suコマンドを実行できるユーザを制限する

082 suを用いて他のユーザ権限でプログラムを実行する

083 コンソール・ログインを制限する

084 辞書に載っている語句をパスワードとして設定させない

085 シングルユーザ・モードで起動した際にrootパスワードを要求する

086 複数の一般ユーザを1つのグループに所属させる(CentOS編)

087 複数の一般ユーザを1つのグループに所属させる(Ubuntu編)

088 GRUBのパスワードを有効にする(CentOS編)

089 GRUBのパスワードを有効にする(Ubuntu編)

3-3 sudo

090 sudoの設定ファイルを編集する

091 プログラムをroot権限で実行する

092 他のユーザ権限でプログラムを実行する

093 sudoコマンドを実行できるユーザのグループを作成する(実グループ編)

094 sudoコマンドを実行できるユーザのグループを作成する(User_Alias編)

095 パスワードの入力を省略する

096 sudo実行時に必ずパスワードを要求する

097 コマンドのグループを作成する

098 コマンドを実行できるホストを指定する

099 コマンドを実行できるホストのグループを作成する

第4章 スーパー・サーバの極意

4-1 xinetd

100 xinetdをインストールする(CentOS編)

101 xinetdをインストールする(Ubuntu編)

102 サービスを追加・削除する

103 IPアドレスやホスト名でアクセス制限する

104 サービスを有効・無効にする

105 ログをとる

106 DoS攻撃を防ぐ

4-2 TCP Wrapper

107 サービスのTCP Wrapper対応を確認する

108 IPアドレスやホスト名でアクセスを制限する

109 リモートホストのリストを1つのファイルにまとめる

110 TCP Wrapperで接続ログをとる

4-3 ipsvd

111 ipsvdをインストールする

112 サービスを有効・無効にする

113 IPアドレスやホスト名でアクセスを制限する

114 DoS攻撃を防ぐ

115 ログをとる

第5章 パッケージ管理の極意

5-1 CentOSでパッケージ管理する

116 利用するレポジトリを選択する

117 特定のパッケージを更新しない

118 yumで更新可能なパッケージを確認する

119 yumでパッケージを更新する

120 yumでパッケージを検索する

121 yumでファイル名からパッケージを検索する

122 yumでパッケージ情報を表示する

123 yumでパッケージをインストールする

124 yumでパッケージ群をインストールする

125 yumでパッケージを削除する

126 rpmコマンドでパッケージ用の公開鍵を管理する

127 yumでパッケージを取得する

128 yumでパッケージのバージョンを確認する

129 yumで自動的にアップデートする

5-2 Ubuntuでパッケージ管理する

130 特定のパッケージを更新しない

131 aptitudeでパッケージを更新する

132 aptitudeでパッケージを検索する

133 apt-fileでファイル名からパッケージを検索する

134 aptitudeでパッケージ情報を表示する

135 aptitudeでパッケージをインストールする

136 aptitudeでパッケージを削除する

137 aptitudeで「推奨」パッケージを自動的に導入しない

138 apt-keyでパッケージ用の公開鍵を管理する

139 aptitudeやapt-getでパッケージを取得する

140 apt-show-versionsでパッケージのバージョンを確認する

141 aptitudeで自動的にアップデートする

第6章 ログの極意

6-1 ログの基本的な扱い方

142 ログを読む

143 ログを整形する

144 loggerコマンドでsyslogにメッセージを送る

145 logrotateでログファイルを整理する

6-2 syslog

146 syslogの起動

147 優先度の範囲を指定する

148 1行に複数のセレクタを指定する

149 ログをファイルに記録する

150 ログをリモートホストに送信する

151 ログをリモートホストから受信する

152 ログをユーザの端末に表示する

6-3 rsyslog

153 rsyslogのインストール

154 優先度の範囲を指定する

155 1行に複数のセレクタを指定する

156 ログをファイルに記録する

157 ログをリモートホストに送信する

158 ログをリモートホストから受信する

159 ログをSSLで送信する

160 ログをSSLで受信する

161 ログをMySQLに保存する

162 特定のメッセージが出現したら管理者にメールする

163 rsyslog用MySQLサーバを構築する

第7章 サービス管理の極意

7-1 プロセス管理

164 psコマンドで実行中のプロセスを確認する

165 プロセスの親子関係を表示する

166 topコマンドで実行中のプロセスを確認する

167 killコマンドでプロセスを終了する

168 pgrepコマンドでプロセスを検索する

169 pkillコマンドでプロセスを終了する

7-2 システムの状態を知る

170 netstatで開いているポートを確認する

171 nmapで開いているポートを確認する

172 ポートを使用しているプロセスを確認する

173 プロセスが使用中のポートを確認する

174 telnetコマンドを使ってサービスと通信する

175 サービスを起動・停止する

176 システム起動時の開始サービスを選択する(CentOS編)

177 システム起動時の開始サービスを選択する(Ubuntu編)

178 不要なサービスを停止する

7-3 ランレベル

179 現在のランレベルを確認する

180 現在のランレベルを変更する

181 システム起動時のランレベルを変更する

第8章 ネットワーク監視の極意

8-1 tcpdump

182 tcpdumpでパケットをキャプチャする

183 tcpdumpの出力から特定のプロトコルを抽出する

184 tcpdumpの出力から特定のホストを抽出する

185 tcpdumpで複数の条件式を指定する

186 tcpdumpでペイロードをASCII出力する

8-2 ngrep

187 ngrepをインストールする

188 ngrepでパケットを検索する

8-3 Microsoft Network Monitor

189 Microsoft Network Monitorを導入する

190 Microsoft Network Monitorでパケットをキャプチャする

191 プロトコルでトラフィックを抽出する

192 IPアドレスでトラフィックを抽出する

193 ポート番号でトラフィックを抽出する

194 TCPフラグでトラフィックを抽出する

195 文字列でトラフィックを抽出する

196 雛形や右クリックで抽出条件を指定する

197 複数の抽出条件を指定する

8-4 Zabbix

198 Zabbixサーバを導入する(CentOS編)

199 Zabbixサーバを導入する(Ubuntu編)

200 Zabbixの管理ユーザを作成する

201 Zabbixエージェントを導入する

202 Zabbixの監視対象を登録する

203 ZabbixでCPUやメモリの使用率を確認する

204 Zabbixでトラフィックを確認する

第9章 サーバ・セキュリティの極意

9-1 BINDのセキュリティ

205 BINDをインストールする(CentOS編)

206 BINDをインストールする(Ubuntu編)

207 BINDをchroot下で実行する

208 DNS情報を提供する(CentOS編)

209 DNS情報を提供する(Ubuntu編)

210 マスタサーバを構築する(CentOS編)

211 マスタサーバを構築する(Ubuntu編)

212 スレーブサーバを構築する(CentOS編)

213 スレーブサーバを構築する(Ubuntu編)

214 TSIGでゾーン転送に署名する

215 TSIGでゾーン転送の内容を検証する

216 BINDのバージョンを隠す

9-2 NSDのセキュリティ

217 NSDをインストールする

218 DNS情報を提供する

219 マスタサーバを構築する

220 スレーブサーバを構築する

221 TSIGでゾーン転送に署名する

222 TSIGでゾーン転送の内容を検証する

9-3 Sendmailのセキュリティ

223 Sendmailをインストールする(CentOS編)

224 Sendmailをインストールする(Ubuntu編)

225 受け取るドメインを指定する

226 リレーを許可/禁止する

227 エイリアスを定義する

228 ドメイン名をマスカレードする

229 Sendmailのバージョンを隠す

230 ユーザリストの作成を防ぐ

231 SMTP認証を使う(CentOS編)

232 SMTP認証を使う(Ubuntu編)

233 非SSL通信下での平文SMTP認証を禁止する

234 SMTPの通信をSSLで暗号化する(CentOS編)

235 SMTPの通信をSSLで暗号化する(Ubuntu編)

9-4 Postfixのセキュリティ

236 Postfixをインストールする(CentOS編)

237 Postfixをインストールする(Ubuntu編)

238 受け取るドメインを指定する

239 不正中継の可能性を確認する

240 リレーを許可/禁止する

241 エイリアスを定義する

242 SMTP認証を使う(CentOS編)

243 SMTP認証を使う(Ubuntu編)

244 SMTPの通信をSSLで暗号化する

9-5 迷惑メール対策のセキュリティ

245 ENMAをインストールする

246 SendmailやPostfixでSPF/DKIM認証する

247 送信先のメールサーバにSPF認証して貰う

248 dkim-milterをインストールする(CentOS編)

249 dkim-milterをインストールする(Ubuntu編)

250 SendmailやPostfixで送信するメールにDKIM署名する

251 swaksを導入する

252 swaksで試験メールを送信する

9-6 Apacheのセキュリティ

253 Apacheのインストール

254 ディレクトリ単位でアクセスを制限する

255 .htaccessファイルでアクセスを制限する

256 ホスト単位でアクセスを制限する

257 インデックスの表示を制限する

258 CGIの使用を禁止する

259 一般ユーザの領域を公開する

260 ベーシック認証を使う

261 ダイジェスト認証を使う

262 グループ単位でアクセス制限する

263 SSLを使う(CentOS編)

264 SSLを使う(Ubuntu編)

265 HTTPプロキシとして使う(CentOS編)

266 HTTPプロキシとして使う(Ubuntu編)

9-7 vsftpdのセキュリティ

267 vsftpdをインストールする(CentOS編)

268 vsftpdをインストールする(Ubuntu編)

269 FTPログインできるユーザを制限する(PAM編)

270 FTPログインできるユーザを制限する(vsftpd編)

271 IPアドレスで接続元を限定する

272 匿名ユーザのアクセスに限定する

273 ローカルユーザのアクセスに限定する

274 ユーザをホームディレクトリに閉じ込める

275 仮想ユーザを使う(CentOS編)

276 仮想ユーザを使う(Ubuntu編)

277 同時接続数を指定する

第10章 不正アクセス対策の極意

10-1 不正アクセスの防止

278 外部から自分のマシンをポートスキャンする

279 rootkitの有無を確認する

10-2 Tripwire

280 Tripwireをインストールする(CentOS編)

281 Tripwireをインストールする(Ubuntu編)

282 Tripwire用の鍵を作成する

283 Tripwireを設定する

284 Tripwireの設定を変更する

285 Tripwireの監視対象を指定する

286 Tripwireの監視対象を変更する

287 Tripwireのデータベースを作成する

288 Tripwireでファイルの改竄を検証する

289 ファイル編集後にTripwireのデータベースを更新する

290 Tripwireのレポートを表示する

291 Tripwireのレポートをメールで送信する

292 Tripwireの監視下にファイルを追加する

293 Tripwireで監視しないファイルを指定する

294 Webサイトの改竄を検知する

10-3 ファイルの検証と暗号化

295 md5sumを使ってファイルのチェックサムを計算する

296 md5sumを使ってファイルのチェックサムを書き出す

297 md5sumでファイルのチェックサムを検証する

298 sha1sumを使ってファイルのチェックサムを計算する

299 sha1sumを使ってファイルのチェックサムを書き出す

300 sha1sumでファイルのチェックサムを検証する

301 GPG用の鍵を作成する

302 GPG公開鍵を鍵輪に登録する

303 GPGで署名されたファイルを検証する

304 公開鍵の信頼度を設定する

305 GPGでファイルに署名する

306 GPGでテキストファイルに署名する

307 GPGで署名ファイルを作成する

308 GPGでテキストの署名ファイルを作成する

309 ファイルにパスワードをかける

310 公開鍵を使ってファイルを暗号化する

311 GPGで暗号化されたファイルを復号する

312 TrueCryptを導入する

313 TrueCryptで暗号化領域を作る

314 TrueCryptの暗号化領域をマウントする

10-4 Snort

315 Snortをインストールする(CentOS編)

316 Snortをインストールする(Ubuntu編)

317 Snortでポートスキャンを検知する

第11章 安全な通信の極意

11-1 OpenSSHサーバ

318 rootのSSHログインを禁止する

319 ポート番号を変更する

320 公開鍵認証を使う

321 パスワードを使った認証を禁止する

322 IPアドレスで接続を制限する(TCP Wrapper編)

323 IPアドレスで接続を制限する(authorized_keys編)

324 SSHログインできるユーザを限定する

325 CentOSのOpenSSHをバージョンアップする

326 sftpユーザをchroot下に閉じ込める

327 実行できるコマンドを制限する

11-2 OpenSSHクライアント

328 SSHログインする

329 SSHポート転送する

330 公開鍵を作成する

331 パスフレーズの入力を省略する

332 ログイン時にssh-agentを自動的に起動する

333 rsyncと組み合わせてファイル転送する

334 sshを使ってリモートホスト上のコマンドを実行する

335 scpでファイルを転送する

336 sftpでファイルを転送する

11-3 WindowsでのSSH

337 PuTTYgenでSSHの鍵を作成する

338 Pageantで代理認証する

339 Tera Termをインストールする

340 Tera TermでSSHログインする

341 Tera Term MenuでSSHサーバを登録する

342 TTXttyrecで画面を録画する

343 PuTTYでSSHログインする

344 pfwd.exeでSSHポート転送する

345 WinSCPをインストールする

346 WinSCPでファイル転送する

11-4 IPSecの極意

347 IPSecを導入する(CentOS編)

348 IPSecを導入する(Ubuntu編)

349 IPSecの動作確認をとる

11-5 シリアル・コンソール

350 シリアル・コンソールを有効にする(CentOS編)

351 シリアル・コンソールを有効にする(Ubuntu編)

352 Tera TermやPuTTYを使ってシリアル・コンソールを操作する

353 cuを使ってシリアル・コンソールを操作する

第12章 セキュアOSの極意

12-1 TOMOYO Linux

354 TOMOYO Linuxを導入する(CentOS編)

355 TOMOYO Linuxを導入する(Ubuntu編)

356 アクセス履歴を保存する

357 プロセスを解析する

358 SSHサービスへの接続を制限する

359 SSHサービスの利用をポート転送に限定する

360 ポリシーを対話的に設定する

巻末資料

資料1 CentOSのインストール方法

資料2 Ubuntuのインストール方法

資料3 syslog.confとrsyslog.confの書式

資料4 CAcert.orgで電子証明書を取得する

索引

●Column

ループバック・インターフェイス

ifconfigコマンドとipコマンド

ipコマンドの省略記法

ルーティング・テーブル

デフォルト・ゲートウェイとは?

IPv6を無効化するわけ

テーブルとチェーン

lokkitで作ったルールを拡張する

パケット評価の流れ

Squidとは?

SetUID/SetGIDとは?

suとsudo

GRUBの設定ファイル

sudoとは?

NOPASSWDとPASSWD

TCP Wrapperとは?

ipsvdとは?

ファイルのパーミッション

ソース・パッケージの構成

「postrotate」と「prerotate」

Ubuntu標準のsyslog

Cacert.orgのCA証明書

ロードアベレージ

シグナル

なぜ開いているポートを確認するのか?

サービス名の確認

Ubuntuのinitctlコマンドと初期化スクリプト

Ubuntuにおける初期化の仕組み

保存したデータのロード

「Display Filter」欄のツールバー

否定の演算子

Zabbixのサーバとエージェント

TSIGとは?

NSDとは?

nsdcコマンドの使い方

「DNS NOTIFY」メッセージ

awaksコマンドを使ったSMTP認証の動作確認

mynetworks項目の設定値

SPFとDKIM

ドキュメントルート

「allow,deny」と「deny,allow」

ドキュメントルートでのCGI

a2enmodコマンドとa2dismodコマンド

FTPパッシブモードとip_conntrack_ftp

匿名FTP用のディレクトリを変更する

接続制限の評価方法を逆にする

chkrootkit CDの作成

Tripwireとは?

ポリシーファイルの調整

md5sumとは?

ファイルの置き場所

sha1sumとは?

ファイルの置き場所

乱数の生成

パーティション全体の暗号化

Snortとは?

PasswordAuthenticationとChallengeResponseAuthentication

chrootディレクトリとホームディレクトリ

公開鍵の登録

PuTTY ごった煮版

SADとSPD

TOMOYOのバージョン1系と2系

ドメインとは?

PR

秀和システム