bzcat hogehoge.log.bz2 | grep -c action=greylist



特に経緯はありません(笑

自分の覚え書き。


S25R+greylistingでどれだけグレイリストしてくれたかを、

bz2で圧縮された過去ログファイルから件数を出すという意味。


grep -c とは、抽出した行数を出力せよという意味。

greylistingが吐き出すログの中で action=greylist と出力するのは

一件のやりとりにつき一回だけなので、grep -c で表示された数字が

そのままグレイリストされた件数となります。


なんか、特定の時間のトラフィックが異様に増えてたから、

スパム攻撃じゃないか調べてくれって言われたので、

他の日と比較して統計を取ったりしてました。

最近、自社のML用メールゲートウェイのポリシーにより、

envelope-FROMに記述がないメールはSPAMと見なして

受け取りを拒否するようになった。



・・・と、ここで問題発生。



私が保守しているお客さんの某メールアーカイブアプリは、

アーカイブ失敗などのイベントメールを管理者に送る時に

envelope-FROMに記述無し(null)でメールを生成する仕様で、

これが変更不可なのだ。



(客)メールアーカイブサーバ(archive.hogehoge.com) envelope-FROM<null>メールを生成

(客)メールゲートウェイ

【The Internet】

(自社)ML用メールゲートウェイ  ←ここでenvelope-FROM <null>メールを拒否

(自社)保守SE



という流れで、イベントメールが受け取れなくなってしまった。



仕方がないので、メールアーカイブサーバのMTAであるPostfixへ

一旦ローカル配送し、同Postfixにて、


envelope-FROM = <null> だった場合のみ、強制的にenvelopeを付与

する設定を追加して回避してみました。



設定変更を最小限に抑える為に、メールアーカイブサーバのみ変更します。


# vi /etc/postfix/main.cf

canonical_calsses = envelope_sender  ←この記述を追記して上書き保存


# vi /etc/postfix/canonical.regexp ←デフォルトでは存在しないファイルなので新規作成

/""/ root@archive.hogehoge.com  ←この行だけ記述して上書き保存。


# postfix reload ←Postfixをリロードして上記の設定を反映



こうしておいて、archive.hogehoge.comのメールアーカイブアプリが生成したメールを

root宛てローカル配送するようにし、自社MLに転送するようにしておく。


すると、root@archive.hogehoge.com  にローカル配送されたメールのうち、

envelope-FROM = <null> だった場合のみ、

envelope-FROMの欄に、root@archive.hogehoge.com と強制的に記入してくれる。



元々envelope-FROMをちゃんと記載していたメールには付与しません。


-----envelope-FROMがちゃんと記載される例-----

# telnet localhost 25

HELO hogehoge.com

2xx~OK

MAIL FROM: <takeC@fugafuga.com >

2xx~OK

RCPT TO: <honyarara@hogehoge.com >

2xx~OK

DATA

3xx~OK

(本文)

-----ここまで-----


~~~envelope-FROMをちゃんと記載していない(null)メールの例~~~

# telnet localhost 25

HELO hogehoge.com

2xx~OK

MAIL FROM: <>

2xx~OK

RCPT TO: <honyarara@hogehoge.com >

2xx~OK

DATA

3xx~OK

(本文)

~~~~~ここまで~~~~~




上記の例を見てもらえばわかるように、

MAIL FROMの欄が空欄( <> )だったとしても、

MTAは『了解』として、200番を返答するので、

そのまま続けてメールが送れます。


これはRFCでは、『受け取り側のMTAは、envelepe-FROMがnullのメールでも受け取りなさい』と

書いてある為らしいです。


・・・という事は、うちの会社のMTAが受け取らないってのがRFC違反なんじゃん!


と思ったけど、SPAMメール対策としてはそれほど珍しくない例みたいですね。



ちなみに、

/etc/postfix/canonical.regexp 

に書いた、


/""/ の部分はマッチ条件

root@archive.hogehoge.com  の部分は付与するアドレスを手動で指定


なので、これをいじくればenvelope-FROMをいくらでも捏造出来てしまいます。



メーラーで表面的に見た発信者アドレスが信用出来ないというのは、

こういう設定をする事で、簡単に偽造出来てしまうからです。

怪しいメールは、必ずヘッダーまで確認して、発信者を確認しましょう。




canonicalの指定で、

『特定のメールアドレスを、指定したアドレスに書き換える』

という設定という意味ではググれば結構出てくるのですが、

今回のように envelope-FROM = null だった場合のみ付与する

という意味ではWeb上で見つからなかったので、備忘録に加えます(´∀`)




へぇーと思ったらポチっとお願いします( ´∀`)つ → 人気ブログランキングへ



Postfix実用ガイド/カイル・D. デント
¥3,360
Amazon.co.jp

Postfix詳解―MTAの理解とメールサーバの構築・運用/荒木 靖宏
¥2,730
Amazon.co.jp

Linux教科書 LPICレベル1 第4版 (CD-ROM付)/リナックスアカデミー 中島 能和
¥3,990
Amazon.co.jp
Linux教科書 LPICレベル2 第3版 (CD-ROM付)/リナックスアカデミー 中島 能和
¥3,990
Amazon.co.jp


ぶっちゃけ・・・



LPICは暗記さえ出来れば受かる試験です(´・ω・`)



実際に資格を取得出来ても、それを実務に生かせるかというところは、

本人のセンスにかなり依存するものになります。

LPIC持ってても、ファイルの検索が出来ない、

tarが展開出来ないなんて人はザラです。


以前、筆者の同期で『パソコンなんてインターネットぐらいしか使ってません><』

っていうレベルのヤツが、たった一ヶ月の試験勉強で取れたぐらいですから・・・

(この人は記憶力は抜群に良かった)



コマンドのオプションなんてのは、暗記なんかしてなくたって

google先生に聞けば一発で判るし

大抵の職場には↓みたいなリファレンスブックがあるし

【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)/沓名 亮典
¥2,394
Amazon.co.jp
Red Hat Linuxコマンドポケットリファレンス (POCKET REFERENCE SERIES)/加藤 彩
¥2,079
Amazon.co.jp

でも、何か困った事があった時に、どのコマンドで解決出来るの?

っていうのを素早く検索出来るっていうのも、やっぱり経験とセンスがモノを言う。



というような事を現場の人は知ってて




逆にLPIC持ちっていうと警戒されるぐらいですw

(303まで持ってる人はそれなりにスゲーと思われますけどね)



まぁ、学習する意欲を買われるぐらい?



LPI Japanとかは、『海外でLPIC取得者の平均年収は高い』とか、

必死こいてアピールしてますけど、日本の現場での評価はあまり高くない。



むしろ社内サーバなんてWindowsでやってくれれば管理しやすいのに、

10年前に『これからはオープンソースだ』なんて言葉に踊らされて

導入してはみたものの、ログのローテートと保存の為だけに

Linuxが判る人員の確保を要求され、ムダな人件費として疎まれる・・・。

そんなLinux・・・。



書けば書くほどションボリ(´・ω・`)なんですが、

Linuxを体系的に学ぶ機会っていうのもなかなか無いし、

学生の就職活動だとか転職活動で、資格欄を埋めたい人とか向け

それなりにLPI試験も存在意義があるんじゃないかと思います。



そんな中でも、筆者が一番存在意義がないと思ってるのが、

LPIC Level 1-101試験です。



I/Oポートとかいじった事、実際の業務でないし・・・。



なので、それでもLPICを目指す人は、

101は軽く暗記で取ってしまうのが良いと思います。



そんな101の試験に役立ちそうな模擬問題を


今後ちまちまと紹介して行こうかと思います。


今の職場でLevel1取ろうとしてる人がいるので、応援の意味も込めて(笑)

お客さんのドメインが変更になるってんで、

システム全体でFQDNで設定されてる箇所を変更する事に。

仮に、example.co.jpから、hogehoge.co.jpに変更するとしましょう。



というわけで、今回の対象サーバはSolaris9

色々と調査したんだけど、代表的なのは・・・


●NW設定部分

 ・/etc/hosts

 ・/etc/resolv.conf

 ・/etc/sysconfig/network


●メーラー

 ・/etc/main.cf


●DNS

・/etc/named.conf



こんなもんで、後はバックアップ系アプリとかの再セットアップでいいかにゃーと。



で、調査に漏れがあったら困るって事で、

# grep "example.co.jp" /*/*/*

#example.co.jpがファイル内に記述してあるファイルを表示してね。

 (ルートディレクトリから/*/*/*なら、全てのディレクトリに対して3段下まで掘って探してね)


[↑注意!!これ、ホントはやっちゃダメです!(理由は今度grepコマンドについてで書きます)]




って感じで探し回ったのですよ。すると、


/etc/inet/hosts


ってファイルの中に、example.co.jpの記述があると出ました。



ほほー、じゃあこれも変更しなきゃダメなのかねーと思ってとりあえずメモ。




そんなこんなで、お客さんにサービス止めて良い時間を聞いたので、

実際に変更してみる。


まず /etc/hosts のexample.co.jphogehoge.co.jpを変更。

次に /etc/inet/hostsを変更・・・・




あれ・・・?


まだ設定変更してないのに、

/etc/inet/hostsは既にhogehoge.co.jpになってる・・・



(´・ω・`)???????????




んー・・・



# ls -lh /etc




あ"・・・・!!



/etc/hostsって・・・


/etc/inet/hostsのシンボリックリンクなんだ Σ( ̄△ ̄;)




Solarisのホスト情報は、

/etc/inet/hostsファイルの方が実体で、

/etc/hostsはそのシンボリックリンクなので、


# vi /etc/hosts


で編集したら、実体の/etc/inet/hostsの方が変更される事になると。




・・・普段RedHat系Linuxしか使ってないから知らなかったよ(´・ω・`)




っていうか事前にファイルの属性ぐらい調べようぜ俺 orz



こいつバカだなーと思ったらポチっとお願いします( ´∀`)つ → 人気ブログランキングへ

find / -name [ファイル・ディレクトリ名]
([ファイル・ディレクトリ名]に記載した文字列を含む、ファイルやディレクトリの
在り処を、ルート( / )から掘って探して表示してね)

find . -name [ファイル・ディレクトリ名]
([ファイル・ディレクトリ名]に記載した文字列を含む、ファイルやディレクトリの
在り処を、カレントディレクトリから下へ向かって掘って探して表示してね)



基本中の基本と言うべきコマンドです。

昔、LPICの勉強してた頃にもfindコマンド出てきたんですけど、
その時はオプションの指定の仕方が良くわからなかったので一応メモ。

探し(掘り)始める場所の指定と、-name のオプション指定が重要。

間違い例)

find / [filename]

とかだと、/ パーティション以下に存在するディレクトリとファイルを全て表示しに行っちゃう。

最初の頃、find使えNEEEEEE!!とか思ってました(アホ
            

正規表現がとてもとても苦手な私には、findコマンドのmanページは
ものすごーーーーーく解り辛いと感じます。。。


ので、上に書いた二つをとりあえず決まり文句的に覚えてます。



yumwgetでダウンロードしてきたファイルの場所とかを見失った時に非常に便利です(´∀`)




へぇーと思ったらポチっとお願いします( ´∀`)つ → 人気ブログランキングへ