Download - OSS OS セキュリティ
![Page 1: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/1.jpg)
![Page 2: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/2.jpg)
OSS OS セキュリティOSS OS セキュリティ
株式会社リナックスアカデミー
http://www.linuxacademy.ne.jp
![Page 3: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/3.jpg)
本講座の項目 サーバセキュリティ概論 ネットワークセキュリティ セキュアシェル セキュア OS 概論 SELinux の仕組みと機能 (1) SELinux の仕組みと機能 (2)
(1/2)
![Page 4: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/4.jpg)
本講座の項目 SELinux 構築演習 Web 環境におけるセキュリティ Web 環境におけるセキュリティの実務 ログ管理システムの仕組み (1) ログ管理システムの仕組み (2) ログ管理システムの構築実務
(2/2)
![Page 5: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/5.jpg)
1 章 サーバセキュリティ概論
サーバセキュリティ Linux におけるネットワーク chkconfig によるサービスの設定 Kudzu
![Page 6: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/6.jpg)
脅威の種類
侵入による脅威‒ 情報漏洩‒ 改ざん‒ バックドア‒ 踏み台
サービス妨害– DoS
待ち伏せによる脅威– トロイの木馬型– 盗聴– ソーシャルエンジニアリング
![Page 7: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/7.jpg)
実際に起きた事例 (1)
楽器販売サイトからの情報流出‒ 楽器をインターネット上で通信販売している会
社のサーバから、過去に利用した利用者の情報が流出
‒ 流出規模は数万件‒ SQL インジェクションといわれる、 DB の操作
を不正に行う処理‒ 販売サイトのシステムにミスが存在‒ 流出したデータにはクレジットカードの情報も
存在
![Page 8: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/8.jpg)
実際に起きた事例 (2)
DoS
企業ネットワークを機能させなくする‒ ある企業のネットワーク部門に連絡、膨大な顧
問料を要求‒ 断ると、その企業のサーバに対して、多くのア
クセスが発生。企業のサービス・ネットワークがダウン
‒ 攻撃元は、顧問料を要求している人間
![Page 9: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/9.jpg)
代表的な対策 (1)
トロイの木馬‒ アンチウイルスのソフトウエアによる駆除
ソーシャルエンジニアリング‒ ワンタイムパスワード‒ セキュリティに対する教育‒ ハードウエアトークン
![Page 10: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/10.jpg)
代表的な対策 (2)
DoS‒ ネットワークの監視
Broute Force Attack‒ ネットワークの監視‒ IDS
![Page 11: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/11.jpg)
TCP/IP とネットワーク
Linux では、 TCP/IP をベースとしたネットワークが動作
lo のループバックのインターフェース ethX の主に NIC が対象となるインターフェ
ース
![Page 12: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/12.jpg)
IP ネットワーキング 実習 (1)
IP アドレスを確認
ifconfig -a でインターフェース一覧表示
ifconfig eth0 で、特定インターフェースの設定内容の表示
![Page 13: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/13.jpg)
IP ネットワーキング 実習 (2)
netstat -r でルーティングテーブル表示 隣の生徒に IP アドレスを交換 教員が IP アドレスを板書 ルータの IP アドレスを板書1.localhost に ping を打つ2.隣に ping を打つ3.教員マシンに ping を打つ4.ルータに ping を打つ
![Page 14: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/14.jpg)
ポートオープンとその確認 (1)
TCP/IP の動作原理は、サーバの対象となるサービスのポートに対して、クライアントがアクセス
例 : HTTP は TCP/80 なので、 Web サーバの TCP/80 番へのアクセス
サーバは、常に対象となるサービスのポートをオープン状態で待機
lsof 等のコマンドで、待機状態を確認
![Page 15: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/15.jpg)
ポートオープンとその確認 実習
netstat –a netstat –r netstat –p lsof
これらを順に入力し動作確認
![Page 16: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/16.jpg)
サーバプログラムとは
サーバ上で、常時稼動しているプログラム
クライアントからのリクエストに応じて、サーバプログラムが応答し、レスポンスが応答
主要なサービスは、 1-1023=Well known port でポートオープン
![Page 17: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/17.jpg)
サービスの起動と終了
service コマンドを利用して、起動/終了
service XXXX start
service XXXX stop
で起動/終了が可能
![Page 18: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/18.jpg)
ランレベル
Linux が動作するときの、動作モードのことが「ランレベル」
ランレベルごとに、違った動作環境を設定済 ランレベルごとに動作するサービスを変更 ランレベルは 0-6, S の 8 段階 telinit X でランレベルを変更
![Page 19: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/19.jpg)
kudzu とは
システム起動時に実行されるハードウエア認識ツール
新しいデバイスが加わった、既存のデバイスが取り出された、等の管理
起動時に新しいデバイスがあった場合、追加するかしないか等の判定
![Page 20: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/20.jpg)
kudzu の設定
kuzduの設定ファイル-
/etc/sysconfig/hwconf
- ハードウエアの情報が記述されている
起動時のkudzuのメッセージを確認-
dmesgコマンド
![Page 21: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/21.jpg)
1 章のまとめ
ネットワークにおける脅威 Linux のネットワーク機能 Linux におけるサーバ動作の原理 サーバ機能の提供 ランレベルとサーバの動作 kudzu の説明の機能
![Page 22: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/22.jpg)
2 章 ネットワークセキュリティ
iptables- iptales の仕組み- テーブルとチェイン- ターゲット- ルールの設定- 実習
上級の設定
![Page 23: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/23.jpg)
iptables とは
パケットフィルタのツール カーネルレベルに実装されている netfilter netfilter に対して制御のルールを指定する
のが iptables( コマンド ) アクセス制限によるファイアウォール パケット転送による NAT ルータ等が実現 パケットは、「チェイン」というところを通
過
![Page 24: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/24.jpg)
iptables の仕組み 1
カーネルのモジュールとコマンドから成立
カーネルが受け取ったパケットを、カーネル内部で処理コマンドは、そのルールを与えるためのコマンド
ハードウエア
カーネル
ユー
ザラ
ンド プ
ログ
ラム
プログ
ラム
プログ
ラム
iptables モジュール(netfilter)
![Page 25: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/25.jpg)
iptables の仕組み 2
ルールはチェインに対して設定
例 : iptables -A INPUT -i eth0 –s 192.168.10.0/24
-p tcp --dport 80 -j DROP
インターフェース eth0 から入ってくる (=INPUT チェインを通過する ) 、発信元アドレスが 192.168.10.0/24 で宛先ポートが TCP/80 であるパケットをDROP せよ、というルール
![Page 26: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/26.jpg)
iptables の仕組み 3
否定に関する
例 : iptables –A INPUT ! –s 192.168.20.0/24 –j DROP
! は否定(〜ではない)を意味する。 従来の書式では、
iptables –A INPUT –s ! 192.168.20.0/24 –j DROP
というように、 ! の位置が違っていた。 まだ出回っている iptables の説明は、こ
の古い形式で書かれている場合が多い。
![Page 27: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/27.jpg)
テーブルとは?
4つのテーブル「 filter 」「 nat 」「 mangle 」「 raw 」
それぞれのテーブルに機能が存在 例 : mangle ・・・パケットの改変 filter ・・・パケットのフィルタリング
それぞれのテーブルの中で利用できるチェイン
![Page 28: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/28.jpg)
チェインとは?
チェインは、ルールの集まりでできている 元々組み込まれているチェインがある チェインは独自に設定し、チェインに対して
チェインを加えることができる チェインの中に記述されたルールは、ファー
ストマッチであるため、優先度の高いルールはチェインの中で前の方に書いておく必要がある
![Page 29: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/29.jpg)
ターゲット
チェインに設定されたルールで、対象のパケットをターゲットに送る仕組み
ターゲット自身に機能があり、パケットを送ることで処理を
全部で 20以上あるが、有名なターゲットとして、 ACCEPT, DROP, REJECT, MASQUERADE 等が存在
例 : iptables -A INPUT -i eth0 -s 192.168.10.0/24 -p tcp --dport 80 -j DROP
対象のパケットを DROP ターゲットに送る(= 落とす)。
![Page 30: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/30.jpg)
ルールの設定
チェイン XXX に対してルールを設定する
iptables -A XXX ルールの追加
iptables -D XXX ルールの削除
iptables -i ethX ルールを ethX からパケットが入力されるときに適用
iptables -s X.X.X.X 発信元 IP アドレスがX.X.X.X であるパケットが対象。 CIDR形式でも指定可能。
iptables -d XXX 送信先 IP アドレスが X.X.X.Xであるパケットが対象。 CIDR形式でも指定可能
![Page 31: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/31.jpg)
実習 1 方針
SSH のアクセス制限を行います。
2 人でペアになってください。
相手の IP アドレスを聞いてください。
自分の IP アドレスを相手に伝えてください。
![Page 32: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/32.jpg)
実習 2-1 アクセス制限
ssh 相手の IP アドレス-
アクセスできます。
![Page 33: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/33.jpg)
実習 2-2 アクセス制限 コマンド一覧
iptables –nvL
iptables -A INPUT -i eth0 -s 相手の IP アドレス -j DROP
iptables –nvL
相手の IP アドレスを発信元 IP とするパケットで、 eth0 からパケットがくるものを、すべて DROP する。という意味。
![Page 34: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/34.jpg)
実習 3-1 アクセス制限後
もう一度実行してください。 ssh 相手の IP アドレス・・・接続できないはずです。
![Page 35: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/35.jpg)
実習 3-2 アクセス制限後 コマンド一覧
iptables –nvL iptables –F iptables –nvL
すべてのアクセス制限を解除します。
![Page 36: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/36.jpg)
実習 4 カウンター確認する
実験 2〜3を再度行います。iptables –nvL
を入力しますが、実験 2-2 の終わりの出力と、実験 3-2 の終わりの出力を比較してください。
設定した条件にマッチした回数と、適用したパケットのバイト数が変わるはずです。
![Page 37: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/37.jpg)
上級の設定
![Page 38: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/38.jpg)
サーバの構成
あるサーバを想定し、そのサーバのファイアウォールをiptablesで実現
対象とするサーバの構成:-
Webサーバ-
リモートからSSHアクセスによる操作が可能
- Apache-httpd, sshdが動作
- IPアドレスは192.168.10.100
![Page 39: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/39.jpg)
サーバの特徴 1
設定上の理念は 2 つA 「対象ホストが、ネットワーク的にどういう動きをする
か完全把握する必要がある」B 「獅子身中の虫」
A 「対象ホストが、ネットワーク的にどういう動きをするか完全把握する必要がある」
Apache-httpd が動作している⇒ TCP/80 がポートオープンsshd が動作している⇒ TCP/22 がポートオープン
他にオープンしているようであれば、それは停止→ lsof 等を使って、動いているプロセスと、ポートオープンの状況を調査
![Page 40: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/40.jpg)
サーバの特徴 2
B 「獅子身中の虫」
iptables で設定できるファイアウォール/アクセス制限多くの場合 :
「外部から自ホストへのアクセス制限をかける」
それ以外に :
「自ホストから外部へのアクセス制限もかける」
万が一乗っ取り等が発生した場合、他ホストへのアタックの防止
![Page 41: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/41.jpg)
iptables の設定 1
どちらの方針がよいか ?
1. 「全パケット通過で、特定のパケットだけ制限する。」 2. 「全パケットを制限し、特定のパケットだけ通す」
1. vs 2. ・・・もちろん 2. そのための A 「対象ホストが、ネットワーク的に・・・完全把握する」
実際の設定方法まず全チェインに対するルール削除と、余分なチェインの削除INPUT, OUTPUT のチェインのポリシーは「すべて通過させない」ループバックは全部通す。
![Page 42: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/42.jpg)
iptables の設定 2
自ホスト TCP/80 へのアクセスと、その応答の通信を許可。 (HTTP)
自ホスト TCP/22 へのアクセスと、その応答の通信を許可。 (SSH)
自ホストから UDP/53 TCP/53 へのアクセスと、その応答の通信を許可。 (DNS)
![Page 43: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/43.jpg)
iptables スクリプト表示
参考文献「習うより慣れろ iptables テンプレート集
」@IT 連載記事http://www.atmarkit.co.jp/flinux/index/
indexfiles/iptablesindex.html
![Page 44: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/44.jpg)
![Page 45: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/45.jpg)
2 章のまとめ
iptables の動作原理の説明
iptables のアクセス制限の実証
iptables で Web サーバの設定
![Page 46: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/46.jpg)
3章 セキュアシェル
telnet サーバの構築
OpenSSH
sshd_config の設定
ブルートフォースアタック
![Page 47: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/47.jpg)
telnet とは
TCP 23 番ポートで通信相手先の telnet サーバと通信 UNIX でリモートのマシンにログイン暗号化は(標準では)行われない セキュリティ的に怖いので、最近は利用頻度
が低い
![Page 48: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/48.jpg)
telnet サーバとは
telnet のクライアントに対して応答
telnet の通信は、ログインだけではない
ルータや様々な機器が telnet の接続に応答
![Page 49: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/49.jpg)
telnet コマンドとは UNIX系 OS の場合標準で利用可能
リモートマシンにも接続
telnet ホスト名 ポート番号で、ホスト名に対してポート番号で接続
手動 HTTP 、手動 SMTP の実現
![Page 50: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/50.jpg)
telnet サーバの設定 ( 実習 )
yum install telnet-server
/etc/xinetd.d/telnet の設定 disable=yes ⇒ no に変更
service xinetd restart
telnet-server は xinetd で管理
![Page 51: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/51.jpg)
OpenSSH
![Page 52: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/52.jpg)
SSH とは 1
Secure SHell のこと。従来、 Remote SHell(rsh) というのがあり、リモートマシンのシェルを利用することが可能通信内容はすべて平文
SSH は、リモートへの接続をすべて暗号化し、 RSH と同等のことが実現
UNIX系 OS を中心に、リモートマシンへのログインは、現在 SSH が一般的
![Page 53: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/53.jpg)
SSH とは 2
同等なことは、前述 RSHや telnet でも実現
通信内容がすべて平文でありアカウント認証時も平文
⇒セキュリティ的に NG
SSH を使うようになった。
![Page 54: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/54.jpg)
SSH とは 3
外部からのホストのアクセスを、すべてSSH に限定
SSH のサーバプログラム( sshd)のセキュリティ情報をだけを注意し、他のサービスを利用しない
他のポートを閉じることも可能なので、セキュリティ的にも利点
![Page 55: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/55.jpg)
SSH関連のコマンド 1
sftp‒ 通常の FTP サービスは、最近利用頻度が低下‒ プロトコルの仕様と、サーバのセキュリティ等
の理由‒ ファイルの転送は重要‒ 通信経路はできれば暗号化されていることが期
待
⇒sftp の利用
![Page 56: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/56.jpg)
SSH関連のコマンド 2
sftp(続き)‒ FTP の通信中に暗号化を行う SFTP(≠FTP over
SSL)
‒ SSH をインストールすると、クライアントコマンド sftp
サーバプログラム sftp-server
がインストール‒ ポートも SSH と同じ TCP/22 番を利用するので
、ファイアウォールの設定も簡単‒ 「 SFTP は SSH のサブセットである」
![Page 57: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/57.jpg)
SSH関連のコマンド 3
scp‒ リモートホスト間で、ファイルのコピーを行う
rcp というコマンドが過去に存在‒ rsh同様、セキュリティの面で難があったので
、利用頻度が減少‒ 通信内容が暗号化され、ファイルコピーの実行
コマンド例 : scp file-a host1:/tmp
file-a を host1 というホストの /tmp ディレクトリにコピー
![Page 58: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/58.jpg)
SSH関連のコマンド 4
ssh の -L オプション( SSH トンネリング)‒ あるマシンに ssh をトンネリングモードで待機
。この ssh は 2 つのポートをオープン。
‒ 1 つは待機用( host1 の port1)。もう 1 つは別マシン( host2)のポート( port2)に接続。
‒ すると、 host1 の port1 に接続すると、それがそのまま host2 の port2 に接続。
![Page 59: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/59.jpg)
SSH関連のコマンド 5
ssh の -L オプション( SSH トンネリング) 2(続き)
‒ 環境により直接 host2 の port2 に接続できないとき、 host1 を経由させることによって接続が可能
‒ これが SSH のトンネリングモード
host1 host2
port1 port2ssh –L によるトンネリング
![Page 60: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/60.jpg)
sshd_config の設定
![Page 61: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/61.jpg)
様々なパラメータの紹介 1
Port
- ポート番号を設定する。 Protocol
- 利用するプロトコル。 2,1 と記述することで、 SSH2 を優先し、次に SSH1
PermitRootLogin
- SSH での接続の際に root でログインすることを許可
![Page 62: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/62.jpg)
様々なパラメータの紹介 2
MaxAuthTries
- ログイン名とパスワードが一致しなかったときに、何回までリトライを許すか?という設定。あ多いと、ブルートフォースアタックに対してぜい弱
PubkeyAuthentication
- 事前に公開鍵を渡しておき、それを利用して認証する=パスワードを聞かれることが無くなる
RhostsRSAAuthentication
- rhosts を認証のときに利用するかしないか、の設定
![Page 63: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/63.jpg)
様々なパラメータの紹介 3
HostbasedAuthentication
- /etc/ssh/ssh_known_hosts に公開鍵を設定。登録されたホストからのログインを許可- ホストが認証の対象
PasswordAuthentication
- SSH の接続の際に、ログイン名・パスワードでのログインを許可- 交換したキーの情報に依存せず
ChallengeResponseAuthentication
- チャレンジレスポンスの認証方式を許可するかの設定
![Page 64: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/64.jpg)
公開鍵暗号方式
鍵 A, B のルール
- 「 A で閉めた(=暗号化した)データは、 Bでしかあけられ(復号化でき)ない。」
- 「 Bで閉めた(=暗号化した)データは、 Aでしかあけられ(復号化でき)ない。」
A,B のどちらかを公開鍵といい、残りを秘密鍵公開鍵は一般に公開、秘密鍵は外部に非公開
![Page 65: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/65.jpg)
SSH の公開鍵と秘密鍵
authorized_key に公開鍵保存する- 2名一組で、お互いの IP アドレスを交換- root でログインにチャレンジ- 公開鍵/秘密鍵のペアを作成- 相手に公開鍵を渡す- ログイン名・パスワードの入力無しでログイ
ンができる事を確認
![Page 66: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/66.jpg)
ブルートフォースアタック
![Page 67: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/67.jpg)
ブルートフォースアタック 1
ログイン名とパスワードの組み合わせを、たて続けに送信
アカウント奪取を“力技”で実行
どのサーバ・サービスでも対象例:Web のサービスにおける、アカウントの
ログインとパスワード
![Page 68: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/68.jpg)
ブルートフォースアタック 2
パスワードの生成方法よくある「パスワードの決め方」ルール‒ 辞書に載っている単語は利用しない‒ 簡単な文字列の羅列( abcdef)は利用しない‒ アルファベット(大文字小文字)・記号・数値
等を混ぜて作成‒ ログイン名/パスワードを同じにするのは利用
しない
⇒ブルートフォースアタックの時に、耐久性を上げる為の忠告
![Page 69: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/69.jpg)
パスワードの設定方法(続き)- root のように、アカウントが存在しているこ
とがわかっていると、パスワードを順に変えてアタック
- アカウントを総当りにするより、対象になるデータ件数は減るため、見つかるまでの“のべ時間”が減り、危険
![Page 70: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/70.jpg)
ブルートフォースアタック 3
ログ(抜粋)logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY user=root
Oct 22 23:02:17 XXXXXX sshd[6078]: Failed password for root from YYYY port 36657 ssh2
logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY user=root
Oct 22 23:02:20 XXXXXX sshd[6082]: Failed password for root from YYYY port 37060 ssh2
logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY user=root
Oct 22 23:02:27 XXXXXX sshd[6090]: Failed password for root from YYYY port 37791 ssh2
- root というユーザに対して、同じ IP から連続にしてログインしようとしていて、失敗
- 様々なパスワードを送信されている事が確認
![Page 71: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/71.jpg)
ブルートフォースアタック 4
ログはこのようになります(抜粋)logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY
Oct 20 22:09:49 XXXXXX sshd[5314]: Failed password for invalid user abe from ZZZZ port 57556 ssh2
logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY
Oct 20 22:09:50 XXXXXX sshd[5318]: Failed password for invalid user adabas from ZZZZ port 57779 ssh2
logname= uid=0 euid=0 tty=ssh ruser= rhost=YYYY
Oct 20 22:10:00 XXXXXX sshd[5322]: Failed password for invalid user adam from ZZZZ port 57962 ssh2
同じホストから、 a で始まるアカウント(abe, adabas, adam…) でログインを試行
![Page 72: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/72.jpg)
SSH に対するブルートフォースアタックの対策 1
SSH のサーバにブルートフォースアタックを検出する方法は無い
一般的には、 2 通り‒ Linux のファイアウォールを設定す
る、 iptables を利用するタイプ‒ SSH に対するアクセスログをスキャンし、同一ホストからの大量のログインミスを発見、そのホストからのアクセスを禁止。ログを解析するタイプ。
![Page 73: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/73.jpg)
SSH に対するブルートフォースアタックの対策 2
iptables を利用するタイプ 2(続き)
- iptables には、 recent というモジュールがある。
「最近**秒以内に~の条件が**回発生した」⇒単位時間あたりの条件適用回数をカウントできるモジュール
![Page 74: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/74.jpg)
SSH に対するブルートフォースアタックの対策 3
iptables を利用するタイプ 3 (続き)
recent モジュールを用いて
「最近**分以内に、 ssh宛てのパケットでNEW フラグがたったパケットを**回以上確認した場合、発信元の IP からのパケットを**秒遮断する」
という設定をする。
![Page 75: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/75.jpg)
SSH に対するブルートフォースアタックの対策 4
iptables を利用するタイプ 4 (続き)
利点:指定回数以上を間違えた場合、即その段階で遮
断することができる。
難点:正式なユーザでも、「たまたま」指定回数以上
を間違えると、アクセスが禁止される。
![Page 76: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/76.jpg)
SSH に対するブルートフォースアタックの対策 5
ログを利用するタイプ 1
- 定期的にログ解析ツールを動かす。- 対象のログは、認証結果を出力するログ。- 「何時何分にアカウント**がログインをし
た」- 「何時何分にアカウント**のアクセスがあ
ったが認証に失敗した」
![Page 77: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/77.jpg)
SSH に対するブルートフォースアタックの対策 6
ログを利用するタイプ 2(続き)
- ブルートフォースアタックは、大量のログイン失敗の情報が発生
⇒ログの内容から、ブルートフォースアタックの検出
![Page 78: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/78.jpg)
SSH に対するブルートフォースアタックの対策 7
ログを利用するタイプ 3 (続き)
利点 :
ログの解析なので、 iptables の複雑な方法の理解が不要
難点 :
ログのフォーマットにより、検出できる場合とできない場合が存在。利用するプログラムにもよる。
![Page 79: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/79.jpg)
3章のまとめ
telnet の動作原理
ssh の動作原理
ssh で公開鍵/秘密鍵を交換したログイン
ssh でのブルートフォースアタックと、その防ぎ方
![Page 80: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/80.jpg)
4章 セキュア OS 概論
セキュア OS の種類 セキュリティアップデート パッケージの管理と利点 chroot/jail 環境
![Page 81: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/81.jpg)
セキュア OS
セキュリティを強化した OS明確な定義は無い
‒ MAC(Mandatory Access Control, 強制アクセス制御 ) を兼ね備えている
‒ root ではなく、最小特権をもつ複数ユーザによる管理
root は危険‒ すべての権限が root で操作可能‒ root が乗っ取られるとアウト
![Page 82: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/82.jpg)
セキュリティホール情報の集め方
IPA 情報セキュリティ情報http://www.ipa.go.jp/security/
JP/CERT 注意喚起http://www.jpcert.or.jp/
のようなところから情報を収集
![Page 83: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/83.jpg)
パッケージの管理と利点 1
パッケージとは? アプリケーションを実行するの必要なファイ
ルを提供 一括インストールできる機構 パッケージ管理機構により、依存性を解決配布元が動作保証(することがある)
![Page 84: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/84.jpg)
パッケージの管理と利点 2
ディストリビューション大きく分けて、 2系統に分かれる- RedHat系列・・・ RedHat Enterprise Linux,
Fedora, CentOS
- Debian系列・・・ Debian, Ubuntu, KNOPPIX
ディストリビューションとパッケージ- RedHat系列・・・ .rpm形式のパッケージ- Debian系列・・・ .deb形式のパッケージ
![Page 85: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/85.jpg)
パッケージの管理と利点 3
パッケージとパッケージツリーの管理 パッケージツリーとは、パッケージの依存関係の情報
パッケージのインストールは、 CD/DVD からの他にネットワークからファイルを取り寄せインストール
ツリー管理コマンドと、インストールするコマンドは異なる
rpm/yum ・・・ RedHat系 dpkg/apt-get・・・ Debian系
![Page 86: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/86.jpg)
実習 : パッケージ管理
CD/DVD を利用するときは、メディアをマウント ネットワークを利用するときは、導通確認 プロキシが必要であるときは、以下の設定
export http_proxy=http:// プロキシ情報
CentOS では、 yum を利用しパッケージファイルの取り寄せyum install パッケージ名yum remove パッケージ名yum check-update ・・・パッケージツリー情報更新
![Page 87: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/87.jpg)
![Page 88: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/88.jpg)
chroot/jail 環境とは 1
プログラムのアクセスを、特定ディレクトリ以下に抑える技術
/usr/var/tmp/home
/chroot /dir-a
![Page 89: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/89.jpg)
Jail 環境とは 2
原理は、 UNIX のプロセスの機能 プロセスが到達できる、最上位のディレクト
リを指定 通常は /(ルート)だが、任意のディレクト
リにする事が可能 動作範囲が抑えられた状態が、いかにも牢獄
のよう・・・ Jail(牢獄)環境と呼ぶ
![Page 90: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/90.jpg)
Jail 環境の利点 1
シェルの実習環境 不特定多数の一般ユーザに、ログイン環境を提供
通常だと /etc 等、その OS 上の設定までみられる可能性
/var, /home 等に動作環境を作成 Jail 環境には、 OS の設定等を見せないよう
に構築
![Page 91: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/91.jpg)
Jail 環境の利点 2
サーバ運用環境 サーバの動作環境を Jail 環境で構築 1 つの Jail 環境が攻撃されても、他の Jail 環
境には影響が無いメモリ・ CPU ・ HDD は共有可能 一番簡単な「仮想化」
![Page 92: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/92.jpg)
実習 : Jail 環境の構築
/tmp/jailed に Jail 環境を構築する /tmp/jailed に必要なファイルをコピー chroot コマンドでルートディレクトリを指
定 対象のディレクトリ以上より上にアクセスで
きない事を確認
![Page 93: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/93.jpg)
![Page 94: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/94.jpg)
4章のまとめ
セキュア OS セキュリティホール情報の集め方 パッケージの利用と利点 chroot/jail 環境について chroot/jail 環境の構築
![Page 95: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/95.jpg)
5章 SELinux の仕組みと機能 (1)
root の危険性 SELinux とは SELinux の機能の構成強制アクセス制御 TE ドメイン RBAC セキュリティコンテキスト
![Page 96: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/96.jpg)
SELinux とは
SELinux は、カーネルに独自拡張を加えたOS
セキュア OS に分類 アメリカの国家安全保障局 (NSA) が中心に開発
GPL で配布 カーネル 2.6.0 にマージ
![Page 97: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/97.jpg)
root権限の存在
root ・・・ UNIX系 OS での UID 0 番の特殊なユーザ
すべてのアクセス権において、無視・・・「なんでもあり」
セキュアな OS において、 root の存在が好ましくない
理由は「 root権限が奪取されたら、すべてのことができてしまう」ことによる
![Page 98: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/98.jpg)
任意アクセス制御( DAC)
アクセス権は、ファイル・ディレクトリに存在 それらのアクセス権を設定するのは、“ユーザ” - 「各ユーザが“(各自が)任意に”アクセス権
を設定・管理できる」 この仕組みを DAC(Discretionalry Access
Control) という・・・セキュリティ管理者がアクセス権
を設定したい・・・しかし「 root の存在」が問題
![Page 99: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/99.jpg)
SELinux の動作
SELinux の働き
カーネル カーネル
ファイル等のリソース ファイル等のリソース
プロセス
アクセス権の確認
アクセス権の確認
Linux Security Module
プロセス
従来のアクセス SELinux 環境でのアクセス
![Page 100: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/100.jpg)
機能構成図
最小特権 RBAC
TE
ドメイン遷移
強制アクセス制御 (MAC)
監査ログ (AVC)
セキュア OS の必要項目
![Page 101: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/101.jpg)
強制アクセス制御
「セキュリティ ポリシ ファイル」に、アクセスについての記述
設定は、ユーザや ファイル・ディレクトリのオーナではなく、 Role単位
ポリシファイルを管理するのが、セキュリティ管理者
セキュリティ管理者の考えの元に、運用
![Page 102: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/102.jpg)
TE(Type Enforcement)1
様々なプロセスとリソースに対して、ラベルを割り当て
プロセスの事を“サブジェクト” リソースの事を“オブジェクト” プロセスに割り当てたラベルは“ドメイン” リソースに割り当てたラベルを“タイプ” 「様々なリソース」には次のもの
‒ ファイルやディレクトリ‒ 通信ポート等のデバイス
![Page 103: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/103.jpg)
TE(Type Enforcement)2
オブジェクトには、その種類ごとにオブジェクトクラスが存在
オブジェクトクラスには、アクセス権限が存在
・・・アクセスベクタ TE ・・・ドメイン(プロセス)がオブジェ
クトに対して、どんな権限があるかの定義
![Page 104: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/104.jpg)
ドメイン遷移
プロセスに対してラベルを付けたものが“ドメイン”
アクセス対象のファイル・ディレクトリにつけたラベルが“タイプ” (前述)
プロセスが別プロセスを起動したとき、原則は同じドメインを割り当て
必要に応じて、別プロセスに別ドメインを割り当てる必要あり・・・ドメイン遷移
![Page 105: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/105.jpg)
RBAC
すべてのユーザに対して、“役割”を割り当て
役割は Role(ロール)
ロールに対して、アクセス制限
これが RBAC(Role Based Access Control)
![Page 106: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/106.jpg)
セキュリティコンテキスト
プロセスやオブジェクトが属している、セキュリティの属性
ユーザ・ロール・タイプが定義 プロセスの場合、ユーザ・ロール・ドメイン
が属性として存在 リソース(オブジェクト)の場合、ユーザ・
ロール・タイプが属性として存在
![Page 107: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/107.jpg)
5章のまとめ
SELinux の機能について説明
SELinux は Linux Security Module というroot でも機能するアクセス制限機能の元で動作
SELinux を理解する上で必要な用語である、 TE, RBAC, セキュリティコンテキスト等を説明
![Page 108: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/108.jpg)
6章 SELinux の仕組みと機能 (2)
SELinux の動作モードの説明
SELinux で守れない種類の脅威
TOMOYO Linux の紹介
![Page 109: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/109.jpg)
SELinux の動作モード
enforcing, permissive, disabled の 3つのモードが存在
RedHat/CentOS Linux では、インストール時に設定が可能
標準でインストールを行う場合、 enforcingの状態に設定
![Page 110: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/110.jpg)
SELinux の動作モードの設定
SELinux の動作モードの設定箇所は以下の 2点
インストール時に設定 インストール後コマンドにて設定する
‒ setenforce [ Enforcing | Permissive | 1 | 0 ]
1, 0 はそれぞれ Enforcing, Permissive
![Page 111: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/111.jpg)
動作モードの確認と変更
確認を行う方法‒ getenforce コマンドで応答を確認‒ cat /etc/selinux/config で config ファイルの中を
確認
動作モードの変更‒ setenforce [ Enforcing | Permissive | 1 | 0 ] で変更
‒ ただし、 Enforcing と Permissive の間でのみ切り替え
‒ /etc/selinux/config ファイルを書き換え、直接指定し
‒ 再起動
![Page 112: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/112.jpg)
SELinux の弱点 1
root アカウント root のアカウントが奪取される可能性 root が実行するプロセスの動きは制限する
ことが可能 root が属するドメインの権限の範囲内で、
設定を変更することが可能 定期的に root のパスワードを入れ替えたり
、ネットワークからのアクセス制限を実行
![Page 113: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/113.jpg)
SELinux の弱点 2
ネットワークでの攻撃外部ネットワークからの不正攻撃(それで乗っ取られたプロセスの挙動を制限する
ことはできるが、乗っ取り自体を防ぐことはできない)
SPAM の受信 CSRF, XSS 等 Web アプリケーション上での
セキュリティホール
![Page 114: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/114.jpg)
TOMOYO Linux とは
NTT データが開発し、 GPL で配布しているセキュア OS
標準でインストールされていないので、カーネルの追加モジュールとして実装
「使いこなせるセキュア OS 」という発想‒ 従来のセキュア OS は、設定が困難
http://tomoyo.sourceforge.jp
![Page 115: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/115.jpg)
TOMOYO Linux の特徴
「学習」を行う・・・最大のポイント
セキュア OS で一番難しい設定が、ポリシーの設定
収集したアクセス履歴の中から、必要なポリシーを自動的に生成
動作モード (SELinux の Enforcing, Permissive 等 ) に、学習を行うモードが存在
![Page 116: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/116.jpg)
6章のまとめ
SELinux の動作モードの説明Enforcing, Permissive
SELinux で守れない種類の脅威
TOMOYO Linux の紹介 「学習を行う」事が最大の特徴
![Page 117: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/117.jpg)
7章 SELinux 構築演習
SELinux のインストール– インストール– SELinux の状態の確認– SELinux の有効化/無効化
SELinux関連のコマンド‑ セキュリティコンテキスト関連のコマンド‑ アクセス制御関連のコマンド‑ ロール関連のコマンド
avc ログ
![Page 118: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/118.jpg)
SELinux のインストール
標準ではインストール済みなので、操作は必要無い
![Page 119: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/119.jpg)
SELinux の状態の確認
sestatus ・・・動作状態とポリシー情報を表示
seinfo ・・・現在のポリシーの詳細な情報
![Page 120: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/120.jpg)
SELinux の有効化/無効化
getenforce で動作確認‒ disableだった場合は、 /etc/selinux/config で
SELINUX=permissive にして再起動‒ 再度 getenforce で状態を確認
setenforce 1 で SELinux を有効化
![Page 121: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/121.jpg)
SELinux関連のコマンド
セキュリティコンテキスト関連のコマンドps --context ・・・プロセスのコンテキスト
を表示id –context ・・・ログインシェルの動作ドメ
インを表示ls --context ・・・ファイルのコンテキストを
表示
![Page 122: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/122.jpg)
アクセス制御関連のコマンド
sesearch
- ポリシーに定義されている内容を調査
chcon
- ファイルコンテキストを変更
fixfiles
- ファイルコンテキストを再設定
![Page 123: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/123.jpg)
ロール関連のコマンド
newrole
- ロールの変更 - パッケージ policycoreutils-newrole が必
要
![Page 124: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/124.jpg)
avc ログとは
ポリシールールに関する違反が発生すると、 avc ログに出力
SELinux のモードは、 enforcing, permissive のときに出力
ポリシールール違反が発生した理由、またはポリシールールの動作確認等で利用
CentOS では /var/log/audit/audit.log
![Page 125: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/125.jpg)
avc ログのフォーマット
ログには次の内容が含まれるs
context=アクセスしたプロセスのドメインコンテキスト
tcontext=アクセス対象のセキュリティコンテキスト
tclass=アクセス対象のオブジェクトクラス
その他、プロセスidや、実行したプロセスを記録
![Page 126: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/126.jpg)
avc ログの解析
avc ログを元に、ポリシーを作成
audit2allow というコマンド - audit.log を元にポリシーを作成
![Page 127: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/127.jpg)
7章のまとめ
SELinux の設定で利用するコマンドの利用
セキュリティコンテキスト等の表示
avc ログの解析
avc ログからのポリシーの作成
![Page 128: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/128.jpg)
8章 Web 環境におけるセキュリティ
Apache-HTTPD のセキュリティ– Apache-HTTPD のインストール– Apache-HTTPD の実行権限– httpd.conf の設定– ネットワークのアクセス権限
CGI のプログラムと出力 フォームデータの取り扱い 入力値評価
![Page 129: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/129.jpg)
Apache-HTTPD のセキュリティ
![Page 130: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/130.jpg)
Apache-HTTPD のインストール
パッケージによるインストール‒ 非常に有名・多く利用されているので、各ディ
ストリビューションはパッケージで用意
ソースコードからビルド‒ 機能追加のモジュール形式として static と DSO形式が存在
‒ ディストリビューションによる配布では、 DSO形式が多数
![Page 131: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/131.jpg)
Apache-HTTPD の実行権限
親プロセスと子プロセスで動作親プロセスは、リクエストを子プロセスに振り分け、子プロセスが応答
親プロセスは root 、子プロセスが一般ユーザで動作
子プロセスは、必ず一般ユーザ権限で実行 コンテンツは、 apacheやwww-dataユーザ権限では保存“しない”
‒ 通常は /var/www/httpdや /var/www に保存
![Page 132: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/132.jpg)
httpd.conf の設定
ServerRoot‒ /etc/httpd が標準‒ httpd の設定ファイルツリーのトップを示す
User, Group‒ apache, apache が標準‒ httpd の子プロセスが動作するユーザ権限
DocumentRoot‒ /var/www/httpd が標準‒ コンテンツをおくトップディレクトリを指定
![Page 133: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/133.jpg)
ネットワークのアクセス権限
アクセス制御<Directory /var/www/http/xxx>
order deny, allow
denyfrom all
allow from .example.com
</Directory>
deny, allow の順でパターンマッチ.example.com からのアクセス以外、すべて
応答拒否
![Page 134: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/134.jpg)
CGI のプログラムと出力
静的コンテンツ=常に同じ内容を応答 動的コンテンツ=入力に応じて応答が変化 CGI ・・・外部プログラムを起動し、動的コ
ンテンツを作成
クライアント /ブラウザ
Web サーバ /Apache
外部プログラム
この部分が CGI
![Page 135: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/135.jpg)
フォームデータの取り扱い 1
フォームにより値を入力 インタラクティブなページを作成 フォームによるデータ入力を扱える HTTP のメソッドは 2 つ (GET/POST)
パラメータの渡しかたが、 GET/POST で異なる‒ GET ・・・ URL の終わりに値の羅列‒ POST ・・・ HTTP の通信上に値を羅列
![Page 136: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/136.jpg)
フォームデータの取り扱い 2
GET の動作を見てみよう‒ Google で何か検索‒ 検索結果を URL で表示‒ 検索結果も HP である、という考え
POST の動作を見てみよう‒ POST のサイトに Wireshark でパケットキャプ
チャ
![Page 137: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/137.jpg)
入力値評価 1
入力する値が、想定したものかどうか検証する。
例:生“年”月日を西暦 4桁ではなく、昭和・平成**年で入力
- 住所の欄に名前を入力
入力値が、こちらの想定したものかどうかを検証
例 : 郵便番号 3桁 -4桁の数値
- 携帯電話番号 : 080 or 090 で始まる、 3桁 -4桁 -4桁の番号
![Page 138: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/138.jpg)
入力値評価 2
RADIOボタンのとき、値は複数の中から 1つ選択
入力値評価は「必要である」前述 GET/POST 、どちらでも値を偽装する
ことは可能 もし、「複数の中から 1 つ」を前提にシステ
ムを設計すると、トラブル発生文字列パターンのマッチングには、正規表現
を使うといい
![Page 139: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/139.jpg)
8章のまとめ
Apache-httpd のセキュリティについて Apache-httpd の動作環境について Apache-httpd の設定 フォームデータの取り扱い フォームデータの入力値検証の重要性
![Page 140: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/140.jpg)
9章 Web 環境におけるセキュリティの実務
Web アプリケーション周りで発生するセキュリティホール‒ SQL インジェクション‒ XSS
‒ CSRF
前述セキュリティホールの発生原因と、その対策(方法)
セキュリティ対策
![Page 141: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/141.jpg)
SQL インジェクション
SQL インジェクションは、「期待した入力値ではなく、 SQL の制御コードを入力され、期待していない SQL が動作」
Web アプリケーション等で、受け付けた値に SQL の制御コードが存在
既存の SQL コードと連携し、期待していない動作の SQL文が実現・実行
![Page 142: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/142.jpg)
SQL とフォームの値
Web アプリケーションにおける、フォームのパラメータの処理
フォームによりパラメータが入力 書式が無いデータは、自由に入力 書式があるデータも、パラメータ操作により
入力が自由( Radioボタンの GET)
![Page 143: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/143.jpg)
SQL インジェクションの発生メカニズム
t_person に name列という文字列が含まれる列があったとする。
okada という文字を含む行を検索する SQL
select * from t_person where name like 'okada';
$input_data という文字列変数があり、それに含まれた文字列を含む行を検索するときは?
"select * from t_person where name like '" . $input_data . "';"
![Page 144: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/144.jpg)
SQL インジェクションの防止方法
入力値評価を厳密化‒ 書式のあるデータは、その書式に従ったフォー
マットかを繰り返し検証‒ 入力値の中に制御コード(今回の場合‘)が入っ
ていないか検証‒ ’ がある場合は、’ -> \’という「’は文字である
」というエスケープ処理
DB 操作フレームワークを利用する。‒ Java-JDBC(PreparedStatement)
‒ PHP-PDO(bindParam)
‒ Perl-DBI(bind_param)
![Page 145: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/145.jpg)
![Page 146: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/146.jpg)
XSS とは
ブラウザ上で動作するスクリプト言語(主にJavaScript)を利用
JavaScript ・・・ブラウザに効果を与えることができるスクリプト言語
HP 表示を行う際に、利用者に気づかせずスクリプトを動作
動作内容により、 Web サイトにアタックをかけたり、 Cookie 情報を盗用
これを XSS(Cross Site Scripting)
![Page 147: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/147.jpg)
XSS の発生メカニズム
JavaScript の文法・・・ <script type="text/javascript">……</script>
スクリプトがブラウザに読み込み
気づかないうちに、スクリプトが動作
JavaScript の内容によっては、危険な攻撃が可能
![Page 148: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/148.jpg)
XSS の発生メカニズム ( 例 )
他のサイトに攻撃を仕掛けるスクリプトだったと仮定
1.悪意のあるユーザ
一般の
閲覧者
2.
3.
4. 攻撃対象のサイト
![Page 149: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/149.jpg)
XSS の防止方法
<script> というタグが認識されてしまうことが、すべての原因
入力データに <script> 等、タグ情報を入力させない
出力時に、タグの情報をすべて実体参照文字に変更‒ < ・・・ < 、 > ・・・ > 等の変換
効果を含んだ文字入力(<b> 等)をしても、出力時にエスケープされてしまい、機能を限定
![Page 150: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/150.jpg)
CSRF とは
リンクの先に特別なアクションを設定 そのリンクをクリックした瞬間、そのアクシ
ョンが動作気づかないうちに、そのアクションが実行
‒ ヤフオクの評価を下げる(未遂)‒ 「ぼくはまちちゃん」事件
ブラウザに含まれる、環境 (Cookie ・ログイン済みの状態)を利用しながら攻撃が可能
![Page 151: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/151.jpg)
CSRF の発生メカニズム
攻撃対象のアクションが GETメソッドのときは、 URL自体がアクション
攻撃対象のアクションが POSTメソッドのときは、 POSTメソッドが動作するJavaScript が含まれた HP を作成し、そこにアクセス
認証を必要とするサイトで、ログインしたままのときは、 Cookie が備わっているので、認証がそのまま通過
![Page 152: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/152.jpg)
CSRF の発生メカニズム ( 例 )1
通常はウイザード画面のように処理が進む(A. B. C.)⇒ ⇒
A B C
![Page 153: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/153.jpg)
CSRF の発生メカニズム ( 例 )2
通常はウイザード画面のように処理が進む
A B
D
C
![Page 154: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/154.jpg)
CSRF の発生メカニズム ( 例 )3
通常はウイザード画面のように処理が進む
A B
D
C
E
![Page 155: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/155.jpg)
CSRF の防止方法
過去にログインした Cookie が利用できる・・・ログイン状態でできる“重要な”アクションの前、再度認証を要求
リンクによるアタックではないことを保証=前のページからの遷移である事を保証‒ hidden タグを使って、前ページからの遷移であ
る確認を行う‒ リファラーを確認し、前のページの URL を確認‒ CAPTCHA(後述)を利用し、ユーザが目で見
ていることを確認
![Page 156: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/156.jpg)
クロールツールについて
プログラムで自動的に巡回する(クロールツール) データを POST することでフォームの利用も可能自動巡回による攻撃
‒ Blog に対してメッセージを自動で書き込むことも可能(ブログスパム)
‒ 認証機構にブルートフォースアタック
対策‒ 遷移に JavaScript が用いられていると、遷移を行えな
い場合が多い‒ 遷移に JavaScript を利用
![Page 157: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/157.jpg)
クロールツールの対策
CAPTCHA クライアントが画面を見ているという保証
=クロールツールのブロック画像自動認識をさせないように、曲がった文字列を表示
なぞなぞ・クイズを解かせる CAPTCHA も存在
視覚に障害を持つ人のケア‒ 色覚障害で、画像の文字がよく見えない、等
![Page 158: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/158.jpg)
実習
XSS を発生させるホームページ 「名前を表示する」という簡単なプログラムを
作成
名前を入力し、通常の動作がする事を確認
JavaScript を含んだ文字列を入力し動作確認
もし、これが攻撃用の JavaScript であったら?
![Page 159: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/159.jpg)
![Page 160: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/160.jpg)
9章のまとめ
Web のセキュリティ対策について学習 SQL インジェクション、 XSS 、 CSRF につ
いて学習 それぞれの発生原因と対策方法に着いて解説 実際に XSS を発生
![Page 161: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/161.jpg)
10章 ログ管理システムの仕組み (1)
第 10章 ~第 12 章でログについて説明第 12 章が実習です。 10,11 章は説明のみログの管理機構についての説明 syslog syslog-ng swatch
等の動作原理の解説
![Page 162: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/162.jpg)
syslog とは 1
ログ-
システムの動作の記録(ログ=航海日誌)
- システムの挙動をログから判断/解析する
例: メールのログには、メールを送受信したことが記録される
ロギングシステム-
ログをとり、それらを管理するシステム
syslogはロギングシステムである
![Page 163: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/163.jpg)
syslog とは 2
syslog はクライアントサーバ形式のロギングシステム
クライアントサーバ形式なので、「ログサーバ (syslog サーバ ) 」の構築が可能
一般に 日時 ホスト名 (IP アドレス ) 情報 の順で出力ホスト名を記述するのは、ログサーバを作成
した場合、ログを送ったホストを判定するために必要
![Page 164: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/164.jpg)
syslog の動作原理
セレクタとアクション- セレクタには「ファシリティ」と「プライオリティ」が存在
ファシリティ・・・ログの分類 プライオリティ・・・ログの優先度
アクション・・・保存するログの位置、も他のホストに送る場合の設定、パイプで区切ったファイルへ渡す、などの指示
![Page 165: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/165.jpg)
syslog の設定
/etc/syslog.conf で設定 ログサーバへ送る場合は、前述 action で説明した方法を利用
例:cron.* /var/log/cron
cron ファシリティは /var/log/cron ファイルにログを出力
cron.* @server-b
cron ファシリティは server-b にログを送付
![Page 166: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/166.jpg)
syslog-ng
syslog-NewGeneration が名前の由来 syslog に機能追加
‒ フィルタリング‒ 柔軟性の高い設定‒ 信頼性の高い処理‒ データベースへの出力‒ ログサーバへの通信を暗号化
![Page 167: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/167.jpg)
swatch とは
syslog 等のログの内容を監視することが可能
常に複数の OS で出力されている複数のログを監視することは困難
swatch ・・・ログの監視ツール ログに吐き出されたメッセージを解析条件にマッチしたものがあれば、イベントを
フック
![Page 168: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/168.jpg)
swatch の動作原理
対象ログファイルの監視 設定ファイルは ~/.swatchrc
Perl で書かれているため、いくつかモジュールが必要
Date::Calc, Date::Parse, File::Tail, Time:HiRes
![Page 169: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/169.jpg)
swatch の設定 1
パターンの記述.swatchrc に watchfor / パターン /
アクション :
watchfor / パターン /,/ パターン /
アクション :
の繰り返しを記述
![Page 170: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/170.jpg)
swatch の設定 2
アクションの例 - mail=... ...(メールアドレス)に送信 - bell ベルを鳴らす - continue 処理を継続 - echo ターミナルに文字列出力 - pipe コマンド 出力をパイプ経由でコマ
ンドを実行
![Page 171: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/171.jpg)
10章のまとめ
syslog の動作原理 syslog の設定ファイルの記述方法 syslog-ng の動作原理 swatch の動作原理 swatch の設定ファイルの記述方法
![Page 172: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/172.jpg)
11 章 ログ管理システムの仕組み (2)
ログの管理機構についての説明 logrotate logwatch
の動作原理の解説
![Page 173: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/173.jpg)
logrotate とは
logが増えてくると管理が困難1
回/1日、1回/1週、1回/1月等の単位でログを循環
xxx.log ⇒ xxx.log.1
---次の循環------------------------
xxx.log.1 ⇒ xxx.log.2
xxx.log ⇒ xxx.log.1
この循環作業を行うのが logrotate
![Page 174: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/174.jpg)
logrotate の動作原理
logrotate の設定ファイル /etc/logrotate.conf
/etc/logrotate.d
logrotate.d は設定ファイルを置くディレクトリ
パッケージの追加/削除が行いやすいように、独立したファイルが設定ファイルとして存在
プログラムが設定ファイルを読み込むときに、ディレクトリ内のすべてのファイルを参照
![Page 175: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/175.jpg)
logrotate の設定
設定できる項目-
対象ログファイル
- 更新タイミング(daily, weekly, monthly)
- ファイルのサイズ(minsize)
- ファイルの所有権(create)
- 保存する過去の世代(rotate)
その他-
更新時に実行するスクリプト(postrotate)
![Page 176: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/176.jpg)
![Page 177: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/177.jpg)
logwatch とは
ログは、様々な種類で様々なファイルへ出力
ログ全部の監視は困難
logwatch は、それらのログを「まとめる」
まとめたログは、ファイルに出力したりメールで送ったりすることが可能
![Page 178: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/178.jpg)
logwatch の動作原理
/etc/logwatch/conf/logwatch.conf が設定ファイル
オリジナルは /usr/share/logwatch/default.conf/logwatch.conf
/etc/logwatch/conf/* のファイルを、オリジナルの設定に重ねて設定
ログファイルを直接管理する機能ではないので、 cron 等で指定、定時実行を指示
![Page 179: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/179.jpg)
logwatch の設定
LogDir = /var/log ログの保存ディレクトリ
MailTo = usera 結果をメールするユーザ Detail = Low 報告の精度 Archive = Yes Range = yesterday 昨日のログファイル
をチェック
等の設定が可能
![Page 180: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/180.jpg)
11 章のまとめ
logrotate の原理を学習 logwatch の原理を学習
![Page 181: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/181.jpg)
12 章 ログ管理システムの構築実務
syslog の動作確認 syslog サーバの構築 syslog-ng の動作確認 swatch の動作確認 logwatch の動作確認 logrotate の動作確認
![Page 182: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/182.jpg)
実習
本章では実習がメイン OS の設定は、ノートの通り
![Page 183: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/183.jpg)
ログの動作
Apache-httpdサーバの動作確認-
service httpd start (サーバの動作開始)
- tail –f /var/log/httpd/access_log(ログの更新確認)
- ブラウザを起動し、http://localhostにアクセス
アクセスがあり、ログが更新されていることを確認
![Page 184: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/184.jpg)
syslog の学習
この節の流れ Apache-httpd のログの出力を、 syslog に変更- Apache-httpd のログを syslog に向ける
- syslog で Apache-httpd を受信するに設定
ローカルホストでの syslog を、リモート環境で動作- 2 人 1 組で作業をするので、相手となる人のマシ
ンの IP アドレスを聞いておいてください
![Page 185: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/185.jpg)
syslog の設定 1
Apache-httpd の設定‒ エラーのログは syslog に流すことができる。‒ アクセスログは、 syslog に流す為には細工が必
要
( logger コマンド)
syslog の設定‒ syslog.conf で設定‒ ファシリティは local5( access_log) と
local6(error_log) を利用
![Page 186: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/186.jpg)
syslog の設定 1
Apache-httpd の設定‒ エラーのログは syslog に流すことができる。‒ アクセスログは、 syslog に流す為には細工が必
要
( logger コマンド)
syslog の設定‒ syslog.conf で設定‒ ファシリティは local5( access_log) と
local6(error_log) を利用
![Page 187: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/187.jpg)
syslog の設定 2
2名 1 組になり、 syslog サーバを構築 マスターのマシンとサーバのマシンに役割分担
マスターのマシン側は、 Apache-httpd のログを syslog経由でサーバのマシンへ送信
サーバのマシン側は、ネットワーク経由でログ情報を受けとり、ファイルへ出力
![Page 188: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/188.jpg)
![Page 189: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/189.jpg)
syslog-ng の動作確認
インストール-
syslog-ngはCentOSのyumリポジトリには存在しない
動作確認-
作業内容は、Apache-httpdとsyslogと同一
- error_logは操作せず、access_logのみ操作
- syslog-ng.confの設定が、syslogと違う
![Page 190: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/190.jpg)
![Page 191: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/191.jpg)
swatch の動作確認 1
インストール-
リポジトリには存在していない
- Perlのスクリプトで、Perlのモジュールが必要
- PECLを利用しインストール
- gccがインストールされていることを確認
![Page 192: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/192.jpg)
swatch の動作確認 2
設定ファイル/root/.swatchrc に設定を記述設定内容は、 ssh でのログインに失敗すると
ベルが鳴る
動作確認ssh localhost
で、ランダムなログイン名/パスワードを入力ログインに“わざと失敗”
![Page 193: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/193.jpg)
logwatch の動作確認
インストール-
yum install logwatch
- CentOSはインストール済みのことが主流
動作確認 - --serviceオプションで、特定サービスのlogwatchの結果を得ることが可能
- 設定ファイルの方は、メールが必要なので、ここでは設定しない
![Page 194: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/194.jpg)
logrotate の動作確認
既存のログを、 logrotate を使って更新 対象のログは、 Apache-httpd のログ Apache-httpd のログは、(標準の設定では) 1週間たたないと更新が発生しない
logrotate は最終更新日時の記録を持っているので、それを操作し、更新
![Page 195: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/195.jpg)
12 章のまとめ
syslog サーバの構築 syslog-ng の設定・動作確認 swatch の設定・動作確認 logwatch の設定・動作確認 logrotate の設定・動作確認
![Page 196: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/196.jpg)
![Page 197: OSS OS セキュリティ](https://reader033.vdocuments.site/reader033/viewer/2022061602/56814d99550346895dbaf1d4/html5/thumbnails/197.jpg)