12
hbstudy#28 LT rsyslog + PostgreSQL9.1.x= ??? ishikawa84g

rsyslog + SE-PostgreSQL = ???

Embed Size (px)

DESCRIPTION

hbstudy#28 (当日力が抜けて死ぬほどぐだぐだした) LT

Citation preview

Page 1: rsyslog + SE-PostgreSQL = ???

hbstudy#28 LT

rsyslog + PostgreSQL9.1.x= ???

ishikawa84g

Page 2: rsyslog + SE-PostgreSQL = ???

Agenda

1. ログ

2. 目的

3. システム構成

4. rsyslog とは

5. PostgreSQL 9.1.x (SE-PostgreSQL) とは

6. Labeled IPSec とは

7. 設定

8. まとめ

Page 3: rsyslog + SE-PostgreSQL = ???

1. ログ管理

今までのログ

定期的な監視

リソースチェック

障害の発見

インシデント発生時に利用

原因の特定

今のログ

新法制度への対応

社会的リスクマネジメント

セキュリティ要件の強化

⇒ 「何かあってから」ではなく、「何もなくても」

→ 根本は「何かあったらどうする!」だけど....

Page 4: rsyslog + SE-PostgreSQL = ???

1. ログ管理

個別サーバでのログ収集の限界

全てのサーバに同一のポリシーを適用する

ローテート期間などの管理が難しい

システムマネジメントツールを利用すればある程度可能

システムの複雑化にともなうログの増加

ハードディスクを圧迫 →システムにも影響

事故または故意による保存ログ消失

基本的にログはファイルで管理される

# rm -rf /var/log/*

Page 5: rsyslog + SE-PostgreSQL = ???

2. 目的

システムのポリシーを管理することは難しいが、

せめて、ログを消せない仕組みが欲しい

あと、欲を言うとログを一元管理したい

既存の仕組みで、できればタダで。

妄想2年(最近思い出した)

Page 6: rsyslog + SE-PostgreSQL = ???

3. システム構成

以下、実証実験環境

ログ保存用 データベースサーバ (PostgreSQL9.1.x)

普通のサーバ (rsyslog)

ログ転送

Page 7: rsyslog + SE-PostgreSQL = ???

4. rsyslog とは

RHEL系で syslogd にとって代わってたシスログデーモン

http://www.rsyslog.com/

rsyslog の r は remote ではなく、reliable

reliable(信頼できる) syslog

主な機能

TCP によるログ転送

セキュアなログ転送が可能(stunnelを使用)

ログ処理が追いつかなくなった場合に、ログをプール可能

RFC3195(http://www.ietf.org/rfc/rfc3195.txt)サポート

標準機能として保存先にデータベースを指定可能

Page 8: rsyslog + SE-PostgreSQL = ???

5. なぜ PostgreSQL 9.1.x?

普通の PostgreSQL です。

ただし!

Add a SECURITY LABEL command and support for SELinux permissions control

(PostgreSQL 9.1.0 リリースノートより)

OS レベルの MAC を DB でも制御可能

通称: SE-PostgreSQL

未踏ソフトウェア創造事業 にて 2006年 発表

2011年

Page 9: rsyslog + SE-PostgreSQL = ???

5. SE-PostgreSQL とは

未踏ソフトウェア創造事業 にて 2006年 発表

作者は日本人: 海外浩平氏

2011年09月 PostgreSQL 9.1 (一部)標準機能へ

今までOSの権限とまったく結びつかず、 DB 内で最強だった Super User を制御する

同じ Super User を使った場合でも、 コマンドを実行したユーザの権限によって、 DB 内の権限を縮退させることが可能

Page 10: rsyslog + SE-PostgreSQL = ???

5. SE-PostgreSQL とは

もっと具体的に

SELECT Only のテーブル

SELECT INERT Only のテーブル

特定のカラムやタプルを隠ぺい

ただし、View を使った場合には見えるとかとか

rsyslog への応用

ネットワーク経由で来たデータベースへのアクセスは SELECT, INSERT 以外許可しない

ログが消せないシステムができる!

勿論、死ぬほど INSERT されたら違う意味で死にます。

SELinux がどうとか関係ない問題

Page 11: rsyslog + SE-PostgreSQL = ???

6. Labeled IPSec とは

IPSec の中にセキュリティラベルを混ぜる技術

今まで取得できなかったリモートのラベルを取得可能

ただし、対向も IPSec の設定が必要

Windows 等はラベルの仕組みがない

UnLabel (ラベルなし/ラベル不明)として到達

IPSec が無効な場合も UnLabel となる

困った・・・

UnLabel はFailback Context 機能で解決

分からない時は定義したラベルを付ける

Page 12: rsyslog + SE-PostgreSQL = ???

後記

この時、デモが失敗しました。

詳しくはこの辺り参照ください。

PostgreSQL 9.1.0 で SE-PostgreSQL

http://2done.org/index.php?id=42

rsyslog + SE-PostgreSQL で改竄されない?ログサーバ案

http://2done.org/index.php?id=44