logstudy01 & mailerstudy 02 に参加しました
logstudy と mailerstudyの合同勉強会に参加しました。
※翌日更新ですが、今回はblogを書きながら聴講するというスタイルをとりました。後半は電池が切れ気味だったため、後で書いてます。このやり方だとメモのようになってしまうので、ちょっと今後はどうしようか考えてます。
全体の感想
@ttkzwさんの丁寧な解説で、基本的なところをしっかり学べました。
rsyslogについては基本がしっかり解説されていて、実際に使えるような内容でした。syslogの問題点を列挙していただいたのがとても理解に役立ちました。
暗号化周りの話、特にSSLはなかなか複雑ですが、綺麗にまとまっていてよかったと思います。
@qryuuさんのLTも現場レベルの話が聞けてとても面白く、実際にありそうな話なので、同じ現象になったら気をつけようと思います。
※デジタル署名の際には秘密鍵と公開鍵が逆転していて、この辺の理解が僕はいつもぐちゃぐちゃになるんです。ちょっとこの辺は勉強しなおしてから書きたいと思います。
logstudyセッション「rsyslog入門」
@ttkzwさん
syslogの復習
まずはsyslogの復習から。
- Facility:メッセージの種類
- Severity:メッセージの重要度
Facilityを8倍してSeverityを加えたものがPRIになる
HEADERはTIMESTAMPとHOSTNAME
MSGはプログラム名(TAG)とメッセージの内容(CONTENT)
syslog.confの書き方
ルールはセレクタとアクションから構成される。セレクタに一致したものをアクションに記録。
あるルールにしても、その後のルールも評価する
これらの組み合わせをsyslog.confに書いて、ログの出力先などを設定する。
アクションはファイル名、パイプ、ユーザー端末にメッセージを送るなどができる
従来のsyslogの問題点
- メッセージの転送に信頼性がない
UDPの使用、応答確認がない
- 暗号化できない
- セレクタの制御
FacilityとSeverityでの制御しかできない
- ローテートが単独でできない
- ディスクI/Oの処理が非効率
fsyncを毎回やるので、システムのパフォーマンスに影響
rsyslog
メッセージ転送の信頼性を重視している。
rsyslogの特徴
- メッセージ転送の信頼性の向上
TCP対応、TLSによる暗号化、RELP対応、RFC3195の受信に対応
- ログファイルの扱いの改善
2GB以上のログファイルに対応、ログのローテーションに対応、動的ファイル名に対応
- データベースへの出力
- 多様な出力先
- 出力するメッセージのカスタマイズ
テンプレートによって出力内容をカスタマイズ。マイクロ秒単位でタイムスタンプ出力
- 柔軟なルールの記述
フィルタにより、細かな条件をかける。破棄がかける
- プラグインモジュールによって機能拡張可能
サードパーティー製のモジュールも作成可能
rsyslogは2004年にsysklogdからフォークしてrsyslogプロジェクトを立ち上げる。
v6で後方互換性は無くなった。
バージョン番号の付け方
majar.minor.patchlevel
minorは偶数が安定版、奇数が開発版
rsyslogの設定について
設定ファイルの構成は従来と代わり、以下の四つ
- グローバルディレクティブ
rsyslogの動作に影響を与える設定を記述。モジュール読み込み、モジュール固有の設定など
- テンプレート
テンプレートを定義してアクションに割り当てると、メッセージの形式を制御できる
ex)ログをcsv形式で出力する
動的なファイル名をテンプレートで定義する。アクションに?テンプレート名を記述
- アウトプットチャネル
アクションに大して様々な処理を行うことを目指した機能。現状ではファイいるとファイルの最大サイズに対する処理しかかけない
ex)ログのローテーション
- ルール
セレクタとアクションの区切りにはタブ文字とスペースが使える(syslogはタブ文字だけ)
severityにnoneを記載するとそのfacilityには一致しない
ファイル名の先頭に-をつけると非同期書き込み
セレクターの代わりにフィルタを書くことができる。
-
- プロパティベースフィルタ 条件に一致するかで判断する
- 式ベースフィルタ 複雑な条件式を記述できる。文字列処理の関数も用意されてる
アクション。"@@hostname"でTCPでメッセージ転送、">"でDBに。"~"破棄、"^program"プログラムを実行
タイムスタンプはsyslogとはデフォルトの形式が違うので、syslogと同じ形式にしたい場合はディレクティブで設定しよう
サーバーがダウンしたらキューイングする機能がある。
mailerstudyセッション「メール暗号化入門」
@ttkzwさん
メールを利用する上での脅威
- 盗聴
- 否認
- 改竄
- 詐称
暗号
暗号文なら→盗聴されても内容がわからない
暗号の要素はアルゴリズムと鍵から成り立つ
現代の暗号に求められていることは、広く公開されていること、数学的に強度があること
共通鍵暗号方式では鍵の受け渡しが問題。信頼できる方法であらかじめ渡す必要がある。また、人数が増えると鍵の管理が大変
公開鍵暗号方式は暗号化と復号化を別々の鍵で行う。公開鍵は公開されてもいいので、配送問題が解決する。
ボブの公開鍵が本物であるかどうかを確認する必要がある
SSLのお話
今使われているのはSSL3.0。
TLS1.0はSSL3.0をベースにして開発。1999年にRFC2246に。CBC攻撃リスクを抱えている
TLS1.1 RFC4346 CBC攻撃に対する耐性の強化。
TLS1.1,1.2は実装があまり進んでいない
SSL2.0は無効にしないといけない。
SSL3.0、TLS1.0がよく使われているが、CBC攻撃のリスクあり
TLS1.1以降の利用が望ましいが、実装があまり進んでいない。
サーバーの管理者が設定すること
公開鍵証明書
- プライベート鍵
- 中間証明書
- サーバー公開鍵証明書
利用するバージョン
SSLv3、TLSv1
利用する暗号スイート