Posts tagged FedoraCore

お盆のスパムメール嵐

FedoraCore5+Postfixで構築しているメールサーバですが、現時点で親の取っているドメインなどを含めて5個以上ドメインが動いています。
親の使っているドメイン宛てのスパムメールが最も多いが、それでも1日に100件程度でここ1年以上推移していました。

そして、お盆の週12日からこのスパムメールが急増!
1日に2万件以上来るようになった。
もちろん、特殊なフィルタリングをサーバ側で行っていてスパムに関しては全てドロップできているので実害はない(親からのクレームもなし)のだが、かなり気持ち悪い。

普通、スパマーは1回のスパム送信は多くても数回のリトライしか行わない(リトライはリソースを食うので、何秒毎、何分毎などのリトライを送ろうとしている何万件というメールに対してやっていられるわけがない)。

それが、見てみると、1度に80回以上のリトライを繰り返している。
普通は善良なメールサーバであれば1時間に1回程度のリトライをしてくるわけだが、数時間、数分以内に100件くらいのリトライをしてくるというのは尋常ではない。
当然、宛先はドメインこそ合っているものの、アドレスは実在しないものばかり。

ひとまずどうすることもできないので様子を見ていたところ、週後半にかけて数千件、数百件、と落ち着いてきた。
日本のお盆を狙った海外勢!?

SquirrelMailで添付ファイルが「見つかりません」になる

SquirrelMailでWEBメールを使用している場合、添付ファイルを添付して送信するということは、サーバのディスクに添付ファイルをテンポラリファイルとして確保しておき、送信する。

一般的なOutlookExpressやThunderbirdなどはクライアントソフトなので自分のローカルPC内で添付ファイルを確保するわけで、そこらへんが根本的に異なる。

で、SquirrelMailで添付しようとして「見つかりません」のエラー。

エラーメッセージが不親切ってのはあるが、要するにサーバ側に一時ファイルが(テンポラリファイル)が書き込めないにも係らず、それを探そうとして「見つかりません」なわけだ。

もうここまで説明すれば原因は簡単。

サーバのディスクが一杯なのだ。

超簡単に書いているが、実は原因究明に3日かかりましたから!( ̄▽ ̄;)!!


パーティションを3つに分けているが、テンポラリファイルを格納するパーティションが100%になっていた!

で、なぜ100%なの!?と調べると、サーバのバックアップファイル(DBやファイルの指定したもの全て)が1日分で10GB以上、それが8世代。

いっぱいになるわけだ。。
しかし、なんでそんなにバックアップファイルが大きいのか?総容量に対してデータ自体はせいぜい20GB程度、しかもバックアップファイルは圧縮してあって、全ファイルをバックアップしているわけではないのに?

まだあまり調べてないが、とりあえずバックアップファイルは1世代分持っていれば十分、と判断してバックアップシェルを修正、ファイルを削除。

多分、おおよその見当はついている。MySQLのDB(恐らくWEBのアクセスログ)が相当やヴぁいことになっているにちげーねー。そのうち不要分を削除しよう・・・

FC5のx86_64版のbindインストール

FedoraCore5のx86_64でひたすらサーバ構築を頑張ってますが、DNSサーバの構築ですこーし躓いたので、メモ。
bindのバージョン自体は同じでもx86_64版では「caching-nameserver」を入れようとすると「Conflict」エラーが出る。

Transaction Check Error: file /etc/named.conf from install of caching-nameserver-7.3-5.FC5 conflicts with file from package bind-9.3.2-20.FC5

もともとの手順はお馴染みのFedoraで自宅サーバ構築外部/内部向けDNSサーバー構築(BIND)です。

調べてみるとcaching-nameserverはx86_64では「bind-config」というパッケージに変わったらしい。
yum install caching-nameserver でエラー

ということで、一旦named関連を再度全部消してから、再びbind→bind-config→bind-chrootの順に入れ直した。

More >

FedoraCore5のインストールとパーティション分割

次期新サーバ候補のPowerEdge SC430にはFedoraCore5(x86_64版)を入れてみてますが、もうかれこれ5回くらいインストールし直してます( ̄Д ̄;;

※FC5のインストール自体はあちこちにスクリーンショット付きで出ているので
手順とかは割愛!
ダウンロード元は:ftp://ftp.riken.go.jp/Linux/fedora/core/5/x86_64/iso/
Bフレッツさまさまで、合計3GB以上あるのにあっさり終了。
CD-Rに焼くのはフリーソフトの「CD Manipulator」を使うと簡単・高速にISOイメージが焼ける。
その他では同じフリーの「DeepBurner Free」も確実だし、楽なのでお勧め。

こんな画面で始まります。
05.gif

More >

DELL PowerEdge SC430 期待の新サーバが来た

買っちゃいました!新サーバ。
pedge_sc430_quarter_131x145.jpg

前のエントリ「新サーバ投入計画」で書いたけど、実家で動いているサーバはその後も夜中のフルバックアップ処理中にそのまま死んだり、そろそろ本当にやばい!

なんせノートPCですしねぇ。
ただLINUXを入れてWEBサーバにするだけならさほど負荷はないし、問題ないんだけど、MovableTypeもCGIだのデータベースだの使っててかなり実はそれなりのスペックのサーバじゃないとダメということも判明。メールサーバ、DNSサーバ、ブログサーバ、1台でよく頑張ってはいると思うけどね。

今の死にかけノートPCサーバのスペックはこんな感じ。

More >

FC3でPHP4をPHP5にアップデート

FedoraCore3はデフォルトではPHP4です。FC4からはPHP5なのだけど、今まではPHP4でいいや、と思って使ってました。
けど、最近「オブジェクト指向」というものを避けて通れなくなってきていて、PHP4でもオブジェクト指向は取り入れられているが、PHP5ではよりオブジェクト指向らしくなっていて、書店で本を買ってもほとんどPHP5が前提になってきている。
というわけでPHP5にアップデートをしようと思い始めた。

でも気になる点としては、やはりどこでも言われているように、「既存のPHPアプリケーションが動作しなくなる場合がある」というあたりに関してかなりためらいがあった。けど、調べてみた限りでは、PHP5になっても既存のPHPアプリケーションでClassの定義など使ってなければ多分問題ないはず!という結論に達して、イチカバチカのアップデートに踏み切った。

ソースから入れるのはなんとなく嫌だったので、yumでインストールできないか調べたら、ありました。

More >

dovecotでIMAPの日本語検索に対応させる

うちのサーバは現在メールサーバはFedoraCore3で、送信用にPostfix、受信用はdovecotを使用してpop3でもimapでも対応できるようにしているが、どうやらdovecotの場合imapで日本語検索が行えないらしい。
自分自身はimapを使用していなくてpop3なので、しかも日本語で本文検索とかあまりしないほうだったので気付かなかった。

自分で試してみたところ、以下のような問題があり。

More >

APC製ES500 無停電電源装置(UPS)導入

前々から気になっていた停電対策をようやく実現しました!

実家サーバは実家に置いてあるので、自分はそこに住んでいないから、停電やらネットワーク障害があると、いちいち親に電話して「あーだこーだ」やってもらうわけだけど、やっぱりなかなか親もサーバなんて詳しいわけがないので手こずる。

で、5月頭に関東各地で落雷が起きたとき、見事に実家停電!!
幸い、親が家にいて、停電に気付いて知らせてきたので1時間半程度のダウンで済んだけど、やっぱり停電でも電源が落ちないようにするにこしたこたーない。

UPSって会社(というか、データセンタ)にあるし、なんとなく知ってるけど、実際に買って設定したり使ってみたことはないのでまずは下調べから。

そして分かったこと。

  • なにやら非常に高い!何万もする!(まあ、これは予想通り・・・)
  • なにやら異常に重い!10kg~20kgなんてざら!
  • なにやら異常にでかい!ビール24缶入りケースくらいとか!?
  • でも電源タップ型っていうのもある!(これなら小さいし、軽いし、1万円そこそこで買えるじゃない!)
  • 電源管理ソフトっていうのが付属(?)していてサーバの自動シャットダウンが可能!(?)
  • しかも電源管理ソフトで、UPSのバッテリ状況も見られる
  • 停電時は数分~数十分サーバを稼動し続けられる(ものによる)
  • UPSといえばAPC社!と皆が口を揃えるくらいAPC製のものが有名
  • ヤフオクで中古品はバッテリの寿命の問題があるからなるべく新品が無難

ふむ?

More >

CentOS4.2でLAN内(社内)用サーバ構築の手順

自分とこのサーバ(実家サーバ)はFedoraCore3で構築しているが、仕事でCentOSを使ってLAN用サーバ(メールサーバFTPサーバWWWサーバ内向けDNSサーバファイルサーバ)を構築する機会に恵まれたのでせっかくなので手順をメモっておいた。

基本的にはFedoraCoreシリーズと設定ファイル等ほとんど同じなので、構築自体はたった数時間で終了。
以下、メモ。

More >

メールがTimeoutでサーバに届かない(Postfix)

うちの実家サーバ(LINUX:FedoraCore3)の場合、親がメールを独自ドメインで使いたい!と言い出したため、Postfixをインストールして、メールサーバを立てているのですが、実はKazuはメールサーバなんて当然今まで立てたこともなく、知識もほとんどなかったので、いろいろ問題が出たりしています。

今までに起こった問題と解決手段

1.添付ファイル(というより、メール1通の全体)が10MB以上あると送れない
 →/etc/postfix/main.cf内のmessage_size_limitを102400000(100MB)に増やした(増やしすぎ!?)
2.AOLドメイン宛てのメールが送れない
 →ダイナミックDNSを使ってサーバを立てていたので、例えばAOLは固定IPからの接続以外を拒否するらしく、こればっかりは固定IPにしないと無理?ということで先日固定IPを導入した
3.特定の相手からメールが届かない
 →送ったはずだ、いや、届いていない、というのがあったようで、これは原因がなかなかつかめなくて苦労した(以下に詳細をメモ)

特定の相手からメールが届かない

3に関してはサーバのログを調べてみると、

postfix/smtpd[XXXX]: timeout after DATA from XXX.XX.XX[XXX.XXX.X.XX]
postfix/smtpd[XXXX]: disconnect from XXX.XX.XX[XXX.XXX.X.XX]

のようなものが大量に出ていた。
何?これ。とググってみると、Postfixのメーリングリストで同じ症状に見舞われている方を見つけた。その方の場合はMTUを変えることで解決した、と書かれてあった。

で、MTUってなーに?(笑 ・・・こんなやつがサーバ立ててていいんだろうか。。))

ちょっとだけお勉強タイム。
まずは、IT用語辞典 e-wordsより

MTUとは

通信ネットワークにおいて、1回の転送で送信できるデータの最大値を示す値。送信する側が接続ごとに値を設定できる。送信側ホストが受信側ホストより大きいMTUを持っていた場合は、送信側が受信側のMTUに従ってデータを再分割して送信する。エラーデータの再送信はMTUに指定されたサイズを単位として行われるため、劣悪な通信環境ではMTUを小さい値に設定した方が転送速度が速くなり、逆に安定した通信環境では制御信号が少なくなる分MTUの大きい方が転送速度が速くなる。MTUの単位はバイトで、Ethernetでは1500程度、電話回線によるダイヤルアップ接続では576程度が最適とされる。

それと、メールとどう関係あんの?

もう一つサイトを見つけた。@ITの記事

ネットワークで通信を行う場合、(通常は)一度に送信可能なデータ(パケット)のサイズには上限がある。例えば、TCP/IPプロトコルで利用されているIPプロトコルでは、1つのIPパケットでは最大64Kbytesまでしか送信できない(IPv4の場合)。しかし、このような大きなサイズのIPデータを1つのパケットで送信することのできる物理ネットワーク媒体はない。例えばイーサネット(および相互互換性を持つ無線LANなど)では、1パケット(1フレーム)のサイズは最大1500bytesだし、FDDI(光ファイバ)では4352bytesというのが普通である。このように、一度に送信することができるデータのサイズを「MTU(Maximum Transmission Unit)」といい、ネットワークのプロトコルや媒体ごとに固有の値がある。

そして、その許容可能なパケットサイズを超えたデータが来ると、「フラグメンテーション(パケットの断片化)が発生してパケットを組み立てなおす必要が出てきて、その分時間がかかってログにあったような「timeout after DATA from XXX.XX.XX[XXX.XXX.X.XX]」というのが発生する、ってことらしい。

なるほど。うちの実家サーバの場合、光回線でPPPoEなのでこれを試してみる価値はあるかも?と考え、一応MTUを最適化させるために以下を試してみた。

まず、サーバ側の設定は?

ifconfigコマンドでeth0のネットワークインタフェースを調べられる

[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.253.103 Bcast:192.168.253.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
(省略)

1500がデフォルト値のようだ。

PingでMTUをサイズを調査する

MTUサイズは、ICMPヘッダ(8バイト)とIPヘッダ(20バイト)を含めた値なので、1500からこれらヘッダのサイズ28バイトを引くと、1472バイト。これを使って外部ネットワークから試してみる。

C:\Documents and Settings\user>ping -f -l 1472 kazuizm.com

Pinging kazuizm.com [202.171.147.53] with 1472 bytes of data:

Reply from 192.168.1.2: Packet needs to be fragmented but DF set. ・・・エラー応答

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Ping statistics for 202.171.147.53:

Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

やっぱダメじゃん!断片化してますよ!って。

パケットのサイズを小さくしながら試していくと・・・

C:\Documents and Settings\user>ping -f -l 1424 kazuizm.com

Pinging kazuizm.com [202.171.147.53] with 1424 bytes of data:

Reply from 202.171.147.53: Destination protocol unreachable.
  ↑応答あり(ICMPパケットはルータではじいているのでこれでOK
Reply from 202.171.147.53: Destination protocol unreachable.
Reply from 202.171.147.53: Destination protocol unreachable.
Reply from 202.171.147.53: Destination protocol unreachable.

Ping statistics for 202.171.147.53:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

1424バイトまではpingが通ることからMTUサイズは1424+28(ICMPヘッダ+IPヘッダ)で1452バイトとなる。
どうやら、PPPoE(xDSLや光ファイバ・インターネット回線などで使われているプロトコル)などが使われていると、それらのプロトコルの分だけ、MTUサイズが制限されることになる、ということらしい。

この1424バイトというのをMTUの値としてLinuxのサーバ側に設定する

LINUXサーバ側でMTU値を設定

MTU値の設定はifconfigコマンドでできる。

[root@linux ~]# ifconfig eth0 mtu 1452

[root@linux ~]# ifconfig

eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx

inet addr:192.168.253.103 Bcast:192.168.253.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1452 Metric:1
(省略)

メールが届くか確認

早速/var/log/maillogを見てみると、今までtimeout after DATA from~となっていた接続元ドメインからのメールが無事届いた!

めでたしめでたし