いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.133 / 読者数:1311名

こんばんは、うすだです。

いきなり唐突ですが、スラッシュドット・ジャパンに、以下のような記事がありました。

Linuxを使う本当の理由?
http://slashdot.jp/linux/08/03/18/0835201.shtml

Linux ユーザが Linux を使う真の理由は、 セキュリティの強化や無料のためなどではなく、「楽しい」からなのではないか、 という新説が上記で提示されています。

わたしは、お仕事用マシンもプライベートマシンも、Linux がメインですが、 確かに、コマンドラインでいろいろやるのは楽しいですし、 システムをいじくり回すのも楽しいです。

Linux を使えるようになりたいけど慣れないなぁ、と思われている方は、 Linux をいじくり回す「楽しさ」に目覚めていない、 あるいは「楽しさ」を求めていない、からなのかもしれませんね。

そんなときは、当メルマガを読んで、わからないけどとりあえず実行してみよう、 と無理矢理思い込んで、実行してみてはいかがでしょうか。

結論も唐突になってしまいましたが、今回も、はりきってまいりますよ。

今回のお題 - 特定のログをメールで通知する

いまや、ネットワークのない環境はほとんど存在しないのではないか、 と思えるくらい、いろんなものが、ネットワークに接続されています。

そして、直接的にせよ間接的にせよ、インターネットに接続された環境では、 不正侵入される可能性が常につきまといます。

また、あまり身内を疑いたくはありませんが、社内からの不正侵入の可能性も、 ないとは言いきれません。

そんな世知辛い世の中ですから、システム管理者たるもの、 不穏な空気はなるべく早急に察知すべきだと思ってしかるべきでしょう。

さて、世の中には、IDS(不正侵入検知システム)というものが、 いくつも存在します。
IDS を使えば、侵入そのものや侵入の試みを検知して、 メールなどで通知することができます。

ですが、IDS のインストールや設定方法の調査、 バージョンアップの対応などを行うことは、それなりに手間がかかります。
また、そんな高機能である必要はなく、 決まったログを通知してくれさえすればいいんだ、 と思うことも多々あるのではないかと思います。

そのような貴兄のために、今回は、特定のログを検知して、 それをメールで通知する方法について、ご紹介したいと思います。


今回は、ログインに失敗したときのログを検知し、 メールで通知することを目指したいと思います。

ログインに関するログは、/etc/syslog.conf によりますと、 facility が authpriv か auth になるようです。

  authpriv         /var/log/secure      (※1)
  auth,authpriv    /var/log/auth.log    (※2)

※1: Fedora Core5 や Vine Linux4.2 などの場合
※2: Ubuntu7.10 などの場合

ちなみに、手元にある OpenSUSE10.1 には、 syslog ではなく syslog-ng が入っていますが、該当する設定は見当たりませんでした。

さて、これと同じログを、パイプを通して受け取るようにします。
ここでは、/var/log/authpriv というファイル名のパイプに渡そうと思いますので、 以下の設定を /etc/syslog.conf に追加します。

  auth,authpriv    |/var/log/authpriv

かたや、OpenSUSE の場合は、 以下を /etc/syslog-ng/syslog-ng.conf に追加してください。

  filter f_authpriv { facility(auth,authpriv); };
  destination authpriv { fifo("/var/log/authpriv"); };
  log { source(src); filter(f_authpriv); destination(authpriv); };

もちろん、上記のパイプが必要ですので、mkfifo コマンドを使って作成します。

  # mkfifo -m 600 /var/log/authpriv

そして、syslogd(あるいは syslog-ng) に設定変更を伝えるため、以下を実行します。

  # /etc/init.d/syslog reload    (※1)
  # /etc/init.d/sysklogd reload  (※2)

※1: Fedora Core5, Vine Linux4.2 や OpenSUSE10.1 などの場合
※2: Ubuntu7.10 などの場合

あとは、/var/log/authpriv から読み出して、その内容をメールで送ってやれば、 目的達成です。
まずは単純に、以下のようなスクリプトを作成してみました。

  #!/bin/sh
  while read message; do
      echo $message | /usr/bin/Mail -s 'syslog authpriv' root
  done < /var/log/authpriv

/var/log/authpriv から1行ずつ読み出して、 Mail コマンドで root 宛にメールを送信するだけのスクリプトです。
これを、auth2mail.sh というファイル名で保存したら、実際に実行してみましょう。

  # chmod +x auth2mail.sh
  # ./auth2mail.sh

すると、/var/log/secure や /var/log/auth.log に出力される内容が、 そのままメールで送信されるようになります。
(試しに、上記スクリプトを実行したまま、別のマシンなどから、 SSH でログインに失敗してみてください。)


以上、特定のログをメールで通知する方法を、お知らせしました。

…と言いたいところですが、たとえば、SSH でログインに失敗しますと、 Vine の場合、10行以上ログが出力されます。
(以下では、日付とホスト名を省略しています。)

  sshd[PID]: pam_unix(sshd:auth): authentication failure; ...
  sshd[PID]: error: PAM: Authentication failure for usu from ...
  ...
  sshd[PID]: Postponed keyboard-interactive for usu from ...
  ...
  sshd[PID]: Failed password for usu from ...
  ...
  sshd[PID]: Connection closed by ...

前述のスクリプトでは、1行につき1つのメールが送信されますので、 こうたくさん送りつけられますと、読むだけでも大変です。

そこで、たとえば、ログに 'Failed password' という文字列を含むときだけ、 メールを送信するようにしてみましょう。
一旦スクリプトを終了させて、スクリプトの内容を、以下に変更してみてください。

  #!/bin/sh
  while read message; do
      if [ "z`echo $message | grep 'Failed password'`" != z ]; then
          echo $message | /usr/bin/Mail -s 'syslog authpriv' root
      fi
  done < /var/log/authpriv

1行読み込んだ $message に、'Failed password' を含むときのみ、 Mail コマンドでメールを送信します。
(先ほどと同様にスクリプトを実行して、SSH などでログインに失敗してみましょう。)


以上、特定のログをメールで通知する方法を…と言いたいところですが、 たとえば Ubuntu の場合、それでも3通ほどメールが届いてしまいます。
また、Failed password 云々だけで、他の情報が抜けてしまうのも、 少々もの足りない気がします。

そこで、ちょっと発想を変えて、一定期間に出力されたログを、 まとめて 1通のメールで通知するようにしてみましょう。

  #!/bin/bash
  while [ 1 ]; do
      allmessages=""
      while read -t 60 message; do
          allmessages="${allmessages}${message}@RET@"
      done < /var/log/authpriv
      if [ "z$allmessages" != z ]; then
          echo $allmessages | sed 's/@RET@/\n/g' | \
              /usr/bin/Mail -s 'syslog authpriv' root
      fi
  done

前半の while 文で、60秒間ログが出力されなくなるまで、ひたすら読み込んで、 内容を $allmessages に追加していきます。
60秒間出力されないと、while 文を抜けます。そして、 $allmessages が空っぽでないときに、Mail コマンドでメールを送信します。

これを用いますと、先ほどの10行ちょいあるログが、 まとめて1通で送信されるようになります。1通だけなら、 多少冗長でも許せますよね。ね。


以上、特定のログを…と言いたいところですが、まだ問題があります。
ログインに成功したときなどの際にも、メールが届いてしまいます。

  sshd[PID]: Accepted keyboard-interactive/pam for usu from ...
  sshd[PID]: pam_unix(sshd:session): session opened for user usu...

SSH や FTP などで、いろんなひとに利用されるマシンですと、 その度にメールが飛んできますので、チェックが大変ですし、 セキュリティ的にもあまりよろしくないように思われます。

そこで、今度は、まとめたログに fail という文字列が含まれているときのみ、 メールを送信するようにしてみましょう。

  #!/bin/bash
  while [ 1 ]; do
      allmessages=""
      while read -t 60 message; do
          allmessages="${allmessages}${message}@RET@"
      done < /var/log/authpriv
      if [ "z`echo $allmessages | grep -i fail`" != z ]; then
          echo $allmessages | sed 's/@RET@/\n/g' | \
              /usr/bin/Mail -s 'syslog authpriv' root
      fi
  done

先ほどと異なるのは、if 文の条件だけです。
ここでは、 $allmessages に fail という文字列が含まれる(大文字小文字の区別なし)場合に、 メールを送信するようにしています。

これで、ログインに失敗したログを、 1つにまとめてメールで通知できるようになりました。


以上、特定のログをメールで通知する方法を、ご紹介しました。
(今度こそ、ホントウのおしまいです。)

ただ、上記では、60秒で区切っていますが、システムの設定やタイミングによっては、 1つの失敗が複数のメールで通知されたり、他のログが混入することも、 十分ありえます。

また、ログの情報をメールで別のマシンに送信するというリスクも、 実際に運用する際には、きちんと検討する必要があると思います。

ちなみに、syslog に関するネタは、以前にいくつかご紹介しています。
パイプを使った方法もご紹介していますので、興味のあるかたは、 以下をご覧くださいませ。

Vol.016 - syslog を管理する
http://www.usupi.org/sysad/016.html
Vol.017 - syslog を集中管理する (…の宿題の答え)
http://www.usupi.org/sysad/017.html

また、メールを送信するスクリプトを、今回は手動で動かしていますが、 これを自動的に実行する方法を、以下でご紹介しております。
こちらも、よろしければどうぞ。

Vol.094 - デーモンじゃないものをデーモンにする
http://www.usupi.org/sysad/094.html

これが実用的かどうかはともかく、実際に動かしてみることで、侵入検知のしくみが、 なんとなく理解できるのではないかと思います。
(もちろん、本物の IDS は、もっと複雑なことをされていますし、 パイプを使ってもいないと思います。あくまで雰囲気的にということで…。)

また、Mail コマンドに渡さなければ、単体で試せますので、是非、 試行してみてくださいませ。

宿題の答え

前回の宿題は、

  メールのログを集計して、日毎の送受信バイト数を求めましょう。

でした。

前回は、時間をキーにして集計しましたが、今度は日付です。
(そして、前回同様、詳細な説明はございません。すみません。)

  #!/usr/bin/perl
  use strict;

  my %tm;
  my %sz;
  my %tot;
  my %num;

  while(<>) {
      chop;
      # (1) ↓時間ではなく、月と日に括弧がついた
      if(/^(\S+)\s+(\d+)\s+\d+:\d+:\d+[^:]*\]:\s*([^:^\s]+):.*size=(\d+)/) {
          $tm{$3} = "$2-$1";  # 日-月 を記録  ($3 がキューID)
          $sz{$3} = $4;       # サイズを記録 ($4 がサイズ)
      # (2) ↓送ったかどうかの判定は変わらず
      } elsif(/^\S+\s+\d+\s+\d+:\d+:\d+[^:]*\]:\s*([^:^\s]+):.*stat[^=^\s]*=[Ss]ent/) {
          if($sz{$1} > 0) {
              $tot{$tm{$1}} += $sz{$1};
              $num{$tm{$1}}++;
              $tm{$1} = $sz{$1} = 0;
          }
      }
  }

  # (3) キーのソートを数字に変更
  foreach my $m (sort {$a <=> $b} keys %tot) {
      printf("%s,%d,%d\n", $m, $tot{$m}, $tot{$m}/$num{$m});
  }

前回のスクリプトと見比べればわかりますが、ほとんど変わりません。
時刻をキーにしていたところを、"日-月" に変更しただけです。

これを、mtasize2.pl というファイル名で保存して、 以下のように実行権をつけて実行すれば、前回同様、結果が CSV 形式で得られます。

  # chmod +x mtasize2.pl
  # ./mtasize2.pl /var/log/maillog

もし、ログファイルが複数にわかれているなら、以下のように、 まとめて実行してください。

  非圧縮形式の場合:
    # cat /var/log/maillog.? | ./mtasize2.pl
  非圧縮の場合:
    # zcat /var/log/maillog.4.gz > /tmp/maillog_all.log
    # zcat /var/log/maillog.3.gz >> /tmp/maillog_all.log
    # zcat /var/log/maillog.2.gz >> /tmp/maillog_all.log
    # zcat /var/log/maillog.1.gz >> /tmp/maillog_all.log
    # ./mtasize2.pl /tmp/maillog_all.log
    # rm /tmp/maillog_all.log

出力された CSV を、あれやこれやすると、以下のグラフができました。

上記によりますと、土日がどうこうという法則性が見られることもなく、 のぺーっとした結果が得られただけでした。
ちなみに、27日から下降線をたどっているのは、 管理下にあったドメインが期限切れになったためです。

このように、期待した結果が得られないこともありますが、めげないで、 今後もいろいろ試していただけますと幸いです。(言い訳…)

今回の宿題

今回の宿題は、

  プロミスキャス・モードになったときに、メールで通知しましょう。

です。

tcpdump コマンドなどを起動し、ネットワーク上のパケットをキャプチャするとき、 ネットワーク・インタフェースが、プロミスキャス・モードというモードになります。

具体的には、/var/log/messages などに、以下が記録されます。

  Mar 23 02:19:23 xxx kernel: device eth0 entered promiscuous mode
  Mar 23 02:21:10 xxx kernel: device eth0 left promiscuous mode

ネットワークをキャプチャしないといけない、いうシチュエーションは、 通常の業務では、あまりないことだと思います。
ということは、 誰かがこっそりネットワークを盗み見ようとしている可能性が考えられます。

疑わしきは検知せよ、ということで、 上記のログをメールで通知するようにしてみてください。

あとがき

冒頭に引き続き、またまた、ご紹介なお話です。
シェルから、さまざまな方法を用いて、Hello World を出力してみよう! という、楽しい記事です。

Hello World コレクション(2) シェルスクリプト編
http://journal.mycom.co.jp/column/helloworld/002/index.html

echo や printf コマンドくらいなら、だれでも思いつくと思いますが、 よくもまあこれだけ考えたなあ、というくらい、 変わった方法がたくさん紹介されています。

ここで、少しでもご紹介するのはもったいないですので、 みなさんで上記を参照してみてください。(難しくありませんので、楽しく読めます。)

ちなみに、上記は第2回ですが、第1回では C言語の、 第3回では C++言語の出力が取り上げられています。(こちらはややまっとうです。)

Hello World コレクション
http://journal.mycom.co.jp/column/helloworld/

こういった身近なところにも、いろいろ考える余地はあるのですね。
普段からこのように考えることで、どんなときでも、 なんらかのアイデアをひねり出せるようになる…のかもしれません。

というわけで、淡々と仕事をしていると、 だんだんマンネリ化(よく言うとルーチンワーク化)していきがちですので、 なにか改善の余地がある、あるいはもっと楽しく仕事できる、 という視点を常に持って、よいほうに変化し続けられるようにしたいと思います。

 

今回も、ここまで読んでいただき、ありがとうございました。
それでは、次回は 4月6日 頃に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」− ややスランプ気味ですが、がんばって栗画を描いてます。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
LINUXで自宅サーバーを構築・導入
(Fedora8)

Fedora8のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん





▼ 最近読んだ本

ハリー・ポッターと炎のゴブレット ハリー・ポッターと炎のゴブレット
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターとアズカバンの囚人 ハリー・ポッターとアズカバンの囚人
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと秘密の部屋 ハリー・ポッターと秘密の部屋
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと賢者の石 ハリー・ポッターと賢者の石
J.K.Rowling
  ハリポ月刊なので読み直してます
アルケミスト アルケミスト
パウロ・コエーリョ
  また読んだ
賢者の書 賢者の書
喜多川 泰
  違った視点から見られてよかった
セキュリティウォリア セキュリティウォリア
Cyrus Peikari, Anton Chuvakin
  やや冗長…ためにはなりました
CORE MEMORY CORE MEMORY
John Alderman, Mark Richards
  この筐体でPC作ってほしい!
新訳 星の王子さま 新訳 星の王子さま
サン=テグジュベリ
倉橋 由美子
  つまらない大人になったのか…
センネン画報 センネン画報
今日 マチ子
  長編マンガがとてもよかった
.....

[X]
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します