<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>えいとぴーくす トピックス</title>
    <link>http://111.68.180.102/blog/</link>
    <description>えいとぴーくす オフレコ トピックス</description>
    <language>ja</language>
    <generator>Nucleus CMS v3.64</generator>
    <copyright>&#169;</copyright>
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://111.68.180.102/blog/nucleus/nucleus2.gif</url>
      <title>えいとぴーくす トピックス</title>
      <link>http://111.68.180.102/blog/</link>
    </image>
    <item>
 <title>Netatalkで外部ストレージ</title>
 <link>http://111.68.180.102/blog/?itemid=124</link>
<description><![CDATA[<div class="item_titleline"><h2>Linuxサーバーを、Macintoshの外部ストレージに</h2></div><div class="item_body"><h3>Macintoshの共用フォルダと言えばNetatalk</h3><br />
サーバーでnetatalk を確認する。<br />
<div class="textbox" style="width:240px;margin:4px 16px;"># aptitude show netatalk<br />
パッケージ: netatalk                     <br />
状態: インストールされていません<br />
バージョン: 2.1.2-2<br />
優先度: 特別<br />
セクション: net<br />
メンテナ: Jonas Smedegaard <dr@jones.dk></div></div><div class="item_body"><h3>Netatalkをインストール</h3><div class="textbox" style="width:280px;margin-top:4px;"># aptitude install netatalk<br />
以下の新規パッケージがインストールされます:<br />
  cracklib-runtime{a} libcrack2{a} libpam-cracklib{a} libreadline5{a} <br />
  netatalk rc{a} <br />
更新: 0 個、新規インストール: 6 個、削除: 0 個、保留: 43 個。<br />
1,834 kB のアーカイブを取得する必要があります。展開後に 5,210 kB のディスク領域が新たに消費されます。<br />
先に進みますか? [Y/n/?] <br />
..............................<br />
..............................<br />
..............................<br />
netatalk (2.1.2-2) を設定しています ...<br />
Starting Netatalk services (this will take a while):  cnid_metad afpd.</div><br />
以上でサーバー側(debian GNU/Linux -6.0.2.1 Squeeze)のインストールは終了。<br />
<br />
<h3>Macintoshから接続する</h3>... Mac mini G4 MacOS X 10.4.11<br />
<div class="textbox" style="width:440px;margin-top:4px;">アップルメニューの「移動」から「サーバーへ接続」をクリック<br />
<div style="width:420px; font-size: 0.8em;"><div style="float: left;width:204px;margin:0 2px;padding:0">MacOS X 10.4.11の画面。<br />
<a href="xml-rss2.php?imagepopup=1/20111201-netatalk1_4.png&amp;width=262&amp;height=307&amp;imagetext=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=262,height=307');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111201-netatalk1_4.png">サーバーに接続</a></a></div><div style="float: right;width:204px;margin:0 2px;padding:0">MacOS X 10.6.8の画面。<a href="xml-rss2.php?imagepopup=1/20111130-netatalk1.png&amp;width=345&amp;height=345&amp;imagetext=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=345,height=345');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk1.png">サーバーに接続</a></a></div></div><div class="clearing"></div><br />
<br />
サーバーのアドレスを入力する。この場合は「afp://192.168.0.21」。<br />
ついでに「よく使うサーバー」に登録。<br />
<div style="width:420px; font-size: 0.8em;"><div style="float: left;width:204px;margin:0 2px;padding:0">MacOS X 10.4.11の画面。<br />
<a href="xml-rss2.php?imagepopup=1/20111201-netatalk2_4.png&amp;width=488&amp;height=249&amp;imagetext=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=488,height=249');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111201-netatalk2_4.png">サーバーを指定</a></a></div><div style="float: right;width:204px;margin:0 2px;padding:0">MacOS X 10.6.8の画面。<a href="xml-rss2.php?imagepopup=1/20111130-netatalk2.png&amp;width=490&amp;height=235&amp;imagetext=%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E6%8C%87%E5%AE%9A" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=490,height=235');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk2.png">サーバーを指定</a></a></div></div><div class="clearing"></div><br />
<br />
接続するユーザ名を要求される。<br />
サーバーに登録してあるユーザIDとパスワードを入力する。<br />
<a href="xml-rss2.php?imagepopup=1/20111130-netatalk3.png&amp;width=425&amp;height=287&amp;imagetext=Netatalk%E3%81%A7%E6%8E%A5%E7%B6%9A" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=425,height=287');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk3.png">Netatalkで接続</a></a><br />
<br />
「Home Directory」が表示されるのでクリックする。<br />
<a href="xml-rss2.php?imagepopup=1/20111130-netatalk5.png&amp;width=458&amp;height=332&amp;imagetext=Netatalk%E3%81%A7%E8%A1%A8%E7%A4%BA" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=458,height=332');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk5.png">Netatalkで表示</a></a><br />
<br />
ユーザのディレクトリの中身が、Finderと同じように表示される。<br />
 MacOS X 10.4.11だと左の欄に、デバイスとして「Home Directory」が表示される。デスクトップにもアイコンが現れる。<br />
MacOS X 10.6.8では、共有フォルダとしてウィンドウが開くだけ。<a href="xml-rss2.php?imagepopup=1/20111130-netatalk6.png&amp;width=521&amp;height=325&amp;imagetext=%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E4%B8%AD%E8%BA%AB" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=521,height=325');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk6.png">ディレクトリの中身</a></a><br />
<br />
フォルダの表示を「リスト」にしてみる。<br />
<a href="xml-rss2.php?imagepopup=1/20111130-netatalk7.png&amp;width=522&amp;height=322&amp;imagetext=%E3%83%AA%E3%82%B9%E3%83%88%E8%A1%A8%E7%A4%BA" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=522,height=322');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk7.png">リスト表示</a></a><br />
<br />
ファイルをサーバーに入れてみる。<br />
<div style="width:420px; font-size: 0.8em;"><div style="float: left;width:204px;margin:0 2px;padding:0">MacOS X 10.4.11の画面。<br />
<a href="xml-rss2.php?imagepopup=1/20111130-netatalk8.png&amp;width=522&amp;height=321&amp;imagetext=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E5%85%A5%E3%82%8C%E3%82%8B" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=522,height=321');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111130-netatalk8.png">ファイルをサーバーに入れる</a></a></div><div style="float: right;width:204px;margin:0 2px;padding:0">MacOS X 10.6.8の画面。<br />
<a href="xml-rss2.php?imagepopup=1/20111201-netatalk7b.png&amp;width=601&amp;height=336&amp;imagetext=MacOS+X+10.6%E3%81%AE%E7%94%BB%E9%9D%A2" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=601,height=336');return false;" class="thumbnail"><a href="http://111.68.180.102/blog/media/thumbnail/1_20111201-netatalk7b.png">MacOS X 10.6の画面</a></a></div></div><div class="clearing"></div><br />
これで、サーバーの「共有フォルダ」を、同じユーザIDで接続するMacintoshすべてで<b>共有する</b>ことができる。<br />
個別のユーザIDを使えば、他人に覗かれないユーザ個別の外部ストレージとなる。<br />
<br />
debian GNU/Linux -6.0.2.1 Squeezeでは、netatalk (2.1.2-2)のdefaultで Macintoshから接続できた。<br />
</div><br />
debian GNU/Linux -6.0.2.1 Squeeze<br />
MacOS X 10.4.11、10.6.8</div><br />
<br />
同じフォルダを、sambaでwindowsの共有フォルダに指定すれば、WindowsとMacintoshの双方からアクセスすることができる。<br />
<br />
<div class="item_body"><h3>Windowsの共用フォルダと言えばSamba</h3><br />
# aptitude install samba<br />
以下の新規パッケージがインストールされます:<br />
  libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} <br />
  libcups2{a} libtalloc2{a} libwbclient0{a} samba samba-common{a} <br />
  samba-common-bin{a} <br />
更新: 0 個、新規インストール: 9 個、削除: 0 個、保留: 43 個。<br />
14.4 MB のアーカイブを取得する必要があります。展開後に 41.3 MB のディスク領域が新たに消費されます。<br />
先に進みますか? [Y/n/?] <br />
<br />
いつもながら、簡単この上なく...Debianの皆さんに感謝。<br />
</div><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=124</comments>
 <pubDate>Wed, 30 Nov 2011 18:38:28 +0900</pubDate>
</item><item>
 <title>Youtubeの1分 CM</title>
 <link>http://111.68.180.102/blog/?itemid=122</link>
<description><![CDATA[<div class="item_titleline"><h2>掲載料なしで流せる TV CM</h2></div><br />
<div class="item_body"><h3>百聞に勝る一見の映像宣伝</h3>パチンコのCM満載になってその「権威」が落ち続けているテレビCMだが、一方インターネットでは、新たな動画CMが流され始めている。&nbsp; &nbsp;</div><br />
<br />
<div class="item_body"><h3>テレビを超えた Youtubeの1分 CM</h3><br />
最近増え始めているのが、Youtubeなどの動画サイトに企業宣伝の動画を流す動きである。<br />
<br />
会社の設備や製造工程が流れ、社長がアップで「我が社の誇りは◯◯です」などと訴える映像は、今まではテレビCMでしか流すことはできなかった。<br />
<br />
だがインターネットを利用すれば、こんなことは簡単に実現できるのである。<br />
Youtubeを初めとする<b>動画サイトに動画を掲載するだけ</b>でいいのだ。<br />
<br />
「御社はどう行ったらいいですか」と会社の場所を聞かれ、<br />
「Google Mapで会社名を検索してください。赤い風船がでますから」と応えるのは、もはや当たり前のようになっている。<br />
昨今は、Google Mapに登録もできないようでは、21世紀の企業としてはいかがなものかということなのだろうか。<br />
<br />
同様に、「どんな製品があるんですか」と聞かれ、<br />
「Youtubeで社名を検索してください」と応える時代になって来ているのかもしれない。<br />
<div class="textbox" style="width:440px;margin-top:4px;">Youtubeは、掲載料なしで流せる TV CM です。<br />
制作費も極めて安価。抜群の企業宣伝力とコストパフォーマンスを誇ります。<br />
ネットCMは、30秒から1分程度。Youtube向けCM の企業、製品・商品紹介は、1分前後が標準品。<br />
目的は視聴者から、問い合わせ、引き合いをいただくことです。<br />
もちろん訴求力があるCMを作るには、コツがあります。</div><br />
</div>	<!-- item_body --><br />
<br />
]]></description>
 <category>    映像・動画</category>
<comments>http://111.68.180.102/blog/?itemid=122</comments>
 <pubDate>Tue, 16 Feb 2010 15:52:28 +0900</pubDate>
</item><item>
 <title>LennyでGumblar対策</title>
 <link>http://111.68.180.102/blog/?itemid=121</link>
<description><![CDATA[<div class="item_titleline"><h2>hosts.denyと hosts.allowで侵入阻止</h2></div><br />
<div class="item_body"><h3>ガンブラー(Gumblar)を門前払いする</h3>ガンブラー(Gumblar)でFTPのパスワードを盗まれ、サイトに不正アクセスされて書き換えられる被害が目立っている。<br />
Gumblarが関わる手口は、おおよそのところ<ul><li>パソコンにTROJ_DROPR.GBが、潜り込む。</li><li>TROJ_DROPR.GBは、TSPY_KATES.SMOD(カテス)というプログラムを作り、レジストリを書き換えたあと消滅する。</li><li>TSPY_KATES.SMODは、ネットワークのトラフィックを盗み見て、webサイトの管理パスワードを 193.104.12.20、210.51.166.228、67.212.81.67、91.215.156.74などに送信する。</li><li>盗んだパスワードでサイトにアクセスし、webページを改ざんしてウイルス(Gumblarというプログラム)を仕掛ける。</li><li>改ざんしたwebページを表示するとウイルスに感染する。</li></ul>といったものだ。<br />
</div><div class="item_body">大手企業などのサイトの書き換え被害が明らかになっているが、パスワードを盗まれてもFTPでサーバーにアクセスできなければ、webページを書き換えられることはない。<br />
<br />
<h3>TCP Wrapperの設定</h3>TCP Wrapperの設定で FTPのアクセスを制限し、サイトの意図しない書き換えを防ぐことができる。<br />
<br />
TCP Wrapperは、inetdで起動されるサービスに対するアクセスをportごとに制御したり、通信履歴をとることができるソフトウェアで DebianではDefaultでinstallされている。 <br />
inetdで起動されるサービスはinetd.confに記載されており、 hosts.deny、hosts.allowファイルにこれらのサービスのアクセスを許すドメインやホストを指定することで、危険なホストからのアクセスを遮断することができるようになる。<br />
<br />
基本的な設定は、hosts.denyですべてのサイトのアクセスを不許可にし、hosts.allowで指定したホストだけアクセス可能にするというやり方だ。<br />
<h3>hosts.denyの設定</h3> <div class="textbox" style="width:440px;margin-top:16px;">ALL:ALL</div><br />
<h3>hosts.allow の設定</h3> ftpの接続許可を指定するなら次のようになる。<br />
<div class="textbox" style="width:440px;margin-top:4px;"><!--<br />
sshd:&nbsp; &nbsp;&nbsp; &nbsp;.sample.or.jp&nbsp; &nbsp;&nbsp; &nbsp;EXCEPT PARANOID<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;sample.or.jpからのsshのアクセスを許す<br />
sshd:&nbsp; &nbsp;&nbsp; &nbsp;.sample.com&nbsp; &nbsp;&nbsp; &nbsp;EXCEPT PARANOID<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;sample.comからのsshのアクセスを許す<br />
-->proftpd:&nbsp; &nbsp;&nbsp; &nbsp;.sample.or.jp&nbsp; &nbsp;&nbsp; &nbsp;EXCEPT PARANOID<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;sample.or.jpからのftpのアクセスを許す<br />
proftpd:&nbsp; &nbsp;&nbsp; &nbsp;.sample.com&nbsp; &nbsp;&nbsp; &nbsp;EXCEPT PARANOID<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;sample.comからのftpのアクセスを許す<br />
proftpd:&nbsp; &nbsp;&nbsp; &nbsp;192.168.10.0/255.255.255.0&nbsp; &nbsp;&nbsp; &nbsp;EXCEPT PARANOID<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;192.168.10.0-255からのftpのアクセスを許す<br />
<br />
sshd:     .plala.or.jp   EXCEPT PARANOID<br />
#in.telnetd:     202.414.256.456/255.255.255.240<br />
&nbsp; &nbsp; &nbsp; ↑&nbsp;telnetを利用したい時はコメントを外す</div>telnetを、ネットワーク内だけでは許す設定もできるが、不要なサービスは少ない方が危険が少なくなる。メールサーバーのテストで使うこともあるが、Debianのパッケージの導入は aptitude install telnetd-sslでできるのだから、普段は消しておいたほうが確実だろう。<br />
<br />
これらの設定はサーバーインストール時に接続するユーザのipアドレス、ドメインに合わせて行なう。ユーザのISPの変更があればそれに合わせて hosts.allowの記述を変える。細かい設定をすると運用が大変になるので、ドメインなど包括するような範囲で制限するのがいい。<br />
<br />
上記の場合、sample.or.jp、sample.com以外からftpの接続できない。<br />
たとえ正規のユーザ名とパスワードを使っても、sample.or.jp、sample.com以外からは、サーバーにアクセスできなくなるということである。<br />
<br />
設定の確認は、tcpdmatch 、tcpdchkで行う。<br />
sshdは inetd.confに記載されていないので TCP Wrapperの対象外になる。 <br />
<br />
この設定では、サーバーにアクセスしたとき接続を拒否されるが、ルーターでフィルタリングすれば、ネットワークに入る前に弾くことができる。<br />
<br />
<h3>Gumblarの変異にも対策</h3>サイトの書き換えはこの方法で対策できるが、FTPのパスワードを盗まれることを阻止できるわけではない。<br />
<br />
今のところ Gumblar関係はサイトの書き換えでマルウェアを読み込ませる手口だが、パスワードを売り渡したり、セキュリティの甘いサーバーから重要なデータを盗み出して売ったりするケースも考えられる。<br />
sslで送信される銀行やカードなどの情報を盗み、クラッキング辞書などで解析し、そのユーザに成りすます犯罪もありうる。<br />
<br />
FTPのアクセスログ、syslogなどを定期的にチェックし、あやしいアクセスに注意する必要がある。<br />
<br />
<br />
</div>	<!-- item_body --><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=121</comments>
 <pubDate>Sun, 10 Jan 2010 18:57:19 +0900</pubDate>
</item><item>
 <title>phpメールが文字化け</title>
 <link>http://111.68.180.102/blog/?itemid=120</link>
<description><![CDATA[<div class="item_titleline"><h2>phpで送信するmailが突然文字化け</h2></div><div class="item_body">php scriptで送信していたメールが突然文字化けした。<br />
最初に動かしたのは 6年ほど前で、以後メール送信部分に変更はなかった。scriptが動いているsystemは、昔は debian woody、debian sarge、debian etch、そして今は debian lennyだ。<br />
メールが化けたクライアントの環境は、Windows XP、Outlook express 2006である。</div><div class="item_body"><h3>文字化けは1台だけ?</h3>文字化けとなるメールを開いた時のクライアントのメーラーのエンコードは「西ヨーロッパ言語(Windows)」になっていた。 「日本語自動選択」にエンコードを指定すると文字化けは解消される。<br />
 [ツール]  -> [オプション]  ->  [読み取り]  -> [フォント] のエンコードは「日本語自動選択」が指定されていた。<br />
<br />
文字化けしているクライアントと同じ環境を用意し、文字化けメールを受信して開くと日本語で正常に表示された。エンコードは「日本語自動選択」となっている。<br />
他のメーラーで同じメールを開けてみたが、すべて文字化けせずに表示された。<br />
<br />
いろいろ試したが、以下をヘッダに記述することで解決した。<br />
<div class="textbox" style="width:440px;margin-top:4px;">Content-Type: text/plain; charset=&quot;iso-2022-jp&quot;</div>ダブルクォーテーションでくくるのがキモ。<br />
さまざまな文字コードのページが動いているサーバーのため、phpなどの初期設定はセキュリティ関係を除いて defaultのまま。文字コードの指定は個別のページ側で行っている。<br />
<br />
EUC-JPで記述している scriptのとき<br />
<div class="textbox" style="width:440px;margin-top:4px;">mb_language('Japanese');<br />
mb_internal_encoding(&quot;EUC-JP&quot;);<br />
<br />
$subject = Mb_convert_encoding($subject,&quot;JIS&quot;,&quot;EUC-JP,UTF-8,auto&quot;);<br />
$subject = mb_encode_mimeheader($subject);<br />
<br />
$body = Mb_convert_encoding($body,&quot;JIS&quot;,&quot;EUC-JP,UTF-8,auto&quot;);<br />
<br />
SEND_mail(&quot;user@examole.jp&quot;,$subject,&quot;X-mailer: PHP Scrip001 ¥nContent-Type: text/plain; charset=¥&quot;iso-2022-jp¥&quot;¥n&quot;,$body);</div><br />
UTF-8で記述している scriptのとき<br />
<div class="textbox" style="width:440px;margin-top:4px;">mb_language('Japanese');<br />
mb_internal_encoding(&quot;UTF-8&quot;);<br />
<br />
$subject = Mb_convert_encoding($subject,&quot;JIS&quot;,&quot;UTF-8,EUC-JP,auto&quot;);<br />
<!--<br />
$subject = mb_encode_mimeheader($subject);<br />
--><br />
$body = Mb_convert_encoding($body,&quot;JIS&quot;,&quot;UTF-8,EUC-JP,auto&quot;);<br />
<br />
SEND_mail(&quot;user@examole.jp&quot;,$subject ,&quot;X-mailer: PHP Script002&quot;.chr(0x0A).&quot;Content-Type: text/plain; charset=&quot;.chr(0x22).&quot;iso-2022-jp&quot;.chr(0x22).chr(0x0A),$body);</div>関数SEND_mail()は自作のメール送信script。<br />
&nbsp; &nbsp; function SEND_mail($to,$subject,$headers,$message)<br />
SMTPを載せていないサーバーでメールを送信するための  fsockopenを使ったもの。 <br />
<br />
</div>	<!-- item_body --><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=120</comments>
 <pubDate>Mon, 21 Dec 2009 17:38:00 +0900</pubDate>
</item><item>
 <title>Postfix メール転送</title>
 <link>http://111.68.180.102/blog/?itemid=119</link>
<description><![CDATA[<div class="item_titleline"><h2>Postfix バーチャルとOB25</h2></div><div class="item_body">virtual userを記載したファイルを作り、main.cfで、 virtual_alias_maps = hash:/etc/postfix/virtualのようにファイルを指定する。<div class="textbox" style="width:240px;margin-top:4px;margin-right:0px;">virtualuser1@example.jp <br />
&nbsp; &nbsp; realuser1<br />
virtualuser2@example.jp <br />
&nbsp; &nbsp; realuser1,realuser2<br />
realuser3@example.jp <br />
&nbsp; &nbsp; realuser3,realuser4@example.com<br />
realuser3@mx2.example.jp <br />
&nbsp; &nbsp; realuser3,realuser4@example.com</div></div><div class="item_body">実ユーザ名を書いて、実ユーザ本人と別アドレスの転送もできる。.forwardをユーザごとに書くより virtual_alias_mapsに一括して書いた方が管理が楽になる。<br />
<br />
ファイルを更新したら、<div class="textbox" style="width:240px;margin-top:8px;"># postmap /etc/postfix/virtual</div>Postfix 2.xでは、vmailbox、vuid、transportなどの指定を行わなくても、virtualが使えるようになった。<br />
<br />
<br />
<h2>Submission OB port25</h2>master.cfの 587に関する記述を確認する。<br />
<div class="textbox" style="width:440px;margin-top:16px;"># =========================================<br />



smtp      inet  n       -       -       -       -       smtpd<br />
submission inet n       -       -       -       -       smtpd<br />

          -o smtpd_tls_security_level=may<br />
<br />
  -o smtpd_sasl_auth_enable=yes<br />

&nbsp; &nbsp; &nbsp; ↑ main.cfで指定する</div><br />
main.cfに記述を追加する。<div class="textbox" style="width:440px;margin-top:16px;">smtpd_client_restrictions =<br />
&nbsp; &nbsp; &nbsp;reject_unknown_client<br />
&nbsp; &nbsp; &nbsp;check_client_access hash:/etc/postfix/reject_client<br />
&nbsp; &nbsp; &nbsp;permit_mynetworks<br />
&nbsp; &nbsp; &nbsp;permit_sasl_authenticated<br />
</div> warn_if_rejectをつけてもよい。<br />
<br />
設定を変えたら、<br />
<div class="textbox" style="width:240px;margin-top:8px;"># /etc/init.d/postfix restart</div><br />
<br />
<h2>端末 -> サーバー -> 中 & 外 587を使って送信テスト</h2>接続、非接続をテストする。<div class="textbox" style="width:440px;margin-top:16px;">$ telnet localhost 587<br />
<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 host.example.jp ESMTP Postfix (Debian/GNU)<br />
EHLO local<br />
250-host.example.jp<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
<br />
250-ETRN<br />
250-STARTTLS<br />
250-AUTH GSSAPI LOGIN PLAIN CRAM-MD5 DIGEST-MD5<br />
250-AUTH=GSSAPI LOGIN PLAIN CRAM-MD5 DIGEST-MD5<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
VRFY 587username &nbsp; <- 確認<br />
252 587username<br />
<br />
VRFY userNone587 &nbsp; <- 確認<br />
550 &lt;userNone587>: User unknown<br />
quit<br />
221 2.0.0 Bye<br />
Connection closed by foreign host.</div>ISP等の別ネットワークからサブミッションポートを介して接続し、メール送信ができることを確認する。<br />
<br />
<h3>実験で生まれたゴミメールを片付ける</h3>メールキューの確認。<div class="textbox" style="width:440px;margin-top:16px;"># mailq<br />
<br />
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------<br />
7E6FF35B57      314 Wed Oct  7 18:02:10  root@example.jp<br />
        (connect to lsean.example.jp[[257.088.500.600].400.500.600]:25: Connection timed out)<br />
                                         testuser@example.jp<br />
<br />
A133635B60      305 Wed Oct  7 19:04:12  root@example.jp<br />
        (connect to lsean.e.example.jp[257.044.500.600]:25: Connection timed out)<br />
</div>いらないメールを削除する。<div class="textbox" style="width:440px;margin-top:16px;"># postsuper -d 7E6FF35B57<br />
<br />
	postsuper: 7E6FF35B57: removed<br />
	postsuper: Deleted: 1 message<br />

	postsuper: A133635B60: removed<br />
	postsuper: Deleted: 1 message</div><br />
設定が終わったら状況を確認する。<div class="textbox" style="width:240px;margin-top:16px;"># postconf -n</div><br />
<br />
Apacheの設定や、hostsallowの設定や、proftpd、sshや、そのほかの穴ふさぎの設定もしなければなりません。wordpressやnucleusの置き方もあるし。<br />
<a href="http://blog.8peaks.co.jp/index.php?itemid=119">さらに続く</a>。<br />
</div><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=119</comments>
 <pubDate>Mon, 14 Dec 2009 16:59:00 +0900</pubDate>
</item><item>
 <title>Postfix Spam対策</title>
 <link>http://111.68.180.102/blog/?itemid=118</link>
<description><![CDATA[<div class="item_titleline"><h2>Open Relayと Spam対策の最初</h2></div><div class="item_body"><h3>Spamerの手口を知る</h3> mail Headerからわかる情報<div class="textbox" style="width:240px;margin-top:4px;">例 1 &nbsp; &nbsp; コソコソspamer<br />
Received: from heatrace.net (unknown [113.20.174.65])by host.example.jp (Postfix) with ESMTP id for &lt;authuser@example.jp&gt;; Fri,  9 May 2008 01:55:56 +0900 (JST)<br />
2001 03:17:12 +0900 (JST)<br />
<br />
例 2 &nbsp; &nbsp; 一応ごまかすspamer<br />
Received: from ksbon.info (unknown [218.240.41.188])by host.example.jp (Postfix) with ESMTP id for &lt;authuser@example.jp&gt;; Mon, 11 Aug 2009 01:42:53 +0900 (JST)<br />
<br />
例 3 &nbsp; &nbsp; 確信犯spamer<br />
Received: from ks2473.kimsufi.com (ks2473.kimsufi.com [91.121.25.168])by host.example.jp (Postfix) with ESMTP id for &lt;authuser@example.jp&gt;,  4 Jun 2009 12:17:12 +0900 (JST)</div>「Received: from」に続く「ks24736.kimsufi.com [91.121.25.168]」が送信ホスト名とIPアドレスとなる。<br />
DNSに登録しない<b>オレオレ</b>メールサーバーを勝手に接続すると(unknown [113.20.174.65])のようになる</div><div class="item_body"><h3>/etc/postfix/main.cf</h3>smtpd_sender_restrictions でメールの送り主、smtpd_client_restrictionsで SMTP接続を要求するクライアント、mtpd_recipient_restrictionsでメールの送り先の規制をする。<br />
<div class="textbox" style="width:200px;margin-top:16px;">smtpd_sender_restrictions =<br />
&nbsp; &nbsp; &nbsp;reject_unknown_sender_domain<br />
&nbsp; &nbsp; &nbsp;check_sender_access hash:/etc/postfix/reject_sender<br />
&nbsp; &nbsp; &nbsp;permit_mynetworks<br />
smtpd_client_restrictions =<br />
&nbsp; &nbsp; &nbsp;reject_unknown_client<br />
&nbsp; &nbsp; &nbsp;check_client_access hash:/etc/postfix/reject_client<br />
&nbsp; &nbsp; &nbsp;permit_mynetworks<br />
smtpd_recipient_restrictions =<br />
&nbsp; &nbsp; &nbsp;permit_sasl_authenticated<br />
&nbsp; &nbsp; &nbsp;reject_unauth_destination<br />
&nbsp; &nbsp; &nbsp;permit_mynetworks</div>記述の順番に注意する。先に全部 rejectしたら後は許可されない。<br />
warn_if_rejectをつけてもよい。<br />
<br />
ファイルを更新したら、<br />
<div class="textbox" style="width:240px;margin-top:8px;"># postmap reject_sender<br />
<br />
拒否を行うためのリスト reject_sender、reject_clientは、<br />
<div class="textbox" style="width:200px;margin-top:4px;">spamer.net.br &nbsp; &nbsp; REJECT<br />
adsl.spamer.pl &nbsp; &nbsp; REJECT<br />
spamer.co.th &nbsp; &nbsp; REJECT<br />
spamer.co.uk &nbsp; &nbsp; REJECT<br />
spamer.com &nbsp; &nbsp; REJECT<br />
spamer.net.tw &nbsp; &nbsp; REJECT<br />
spamer.com.ar &nbsp; &nbsp; REJECT<br />
spamer.net.il &nbsp; &nbsp; REJECT<br />
spamer..pl &nbsp; &nbsp; REJECT<br />
spamer.com.sg &nbsp; &nbsp; REJECT<br />
spamer.net &nbsp; &nbsp; REJECT<br />
</div>などのように記述する。<br />
</div><br />
<br />
さらに続く。<br />
</div><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=118</comments>
 <pubDate>Mon, 30 Nov 2009 01:10:00 +0900</pubDate>
</item><item>
 <title>debianで Postfix</title>
 <link>http://111.68.180.102/blog/?itemid=112</link>
<description><![CDATA[<div class="item_titleline"><h2>debian GNU/Linux Postfixのインストール</h2></div><div class="item_body"><h3>eximを追い出してPostfixを installする</h3><div class="textbox" style="width:240px;margin-top:16px;"># aptitude install postfix</div>インストールの途中で、「メール設定の一般形式の設定」を行う。<br />
<br />
Etchまでは、exim4-config conflicts with postfix から始まって、exim4-base、exim4-daemonなどの依存関係やコンフリクトで結構面倒だったが、Lennyではaptitude一発でPostfixのインストールができるようになった。</div><div class="item_body"><h3>Post Office Protocol server (POP3)</h3>確認<div class="textbox" style="width:240px;margin-top:0px;"># aptitude show qpopper</div>なければ導入する。<br />
procmailもあるとよい。<br />
IMAPを使うならば courier-imap、courier-imap-sslをインストールする。IMAPを使うと、Gmail、Yahoo! mailのようなブラウザで送受信するメールが扱える。<br />
<br />
<h2>送受信テスト</h2>hostから外部へのメール送信を行う。<div style="float:right; margin:0 ;padding:0px; font-size:0.8em;text-align:right;"><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&nou=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=lynxokit9-22&o=9&p=8&l=as1&m=amazon&f=ifr&asins=4873111951" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div><div class="textbox" style="width:320px;margin-top:0px;margin-right:0;padding-right:0px;">user@debian:~$ mail somebody@example.com<br />
Subject: test mail<br />
~v&nbsp; <- &nbsp;viにはいる<br />
Today it's fine.<br />
&lt;ESC&gt;:wq&nbsp; <- &nbsp;viから抜ける<br />
&lt;control -d&gt;&nbsp; <- &nbsp;mailを終了する<br />
Cc: </div>途中で vi に行くと長い文を書くのが簡単。<br />
unixの授業でみんな遊んだ mail。大概、学外にも飛ばせたもんだ。<br />
<br />
端末、外部ネットワークから登録ユーザ、バーチャルユーザ(あれば)が、メール送受信できることを確認する。<br />
<br />
<h2>popauth</h2>APOPのための設定<div class="textbox" style="width:440px;margin-top:4px;"># popauth -init &nbsp; <- 認証データベースファイル(/etc/pop.auth)の作成<br />
<br />
&nbsp; &nbsp; &nbsp; username    &nbsp;  &nbsp;  : APOP  &nbsp;</div>外部のネットワークからAPOPで受信認証し、メール受信できることを確認する。<br />
<br />
<h2>SMTP Auth</h2>main.cfに追加<div class="textbox" style="width:440px;margin-top:4px;">smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_local_domain = $myhostname<br />
</div><br />
sasl2認証テスト<div class="textbox" style="width:440px;margin-top:16px;"># telnet localhost 25<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 host.example.jp ESMTP Postfix (Debian/GNU)<br />
EHLO local &nbsp; <- 入れる<br />
&nbsp; &nbsp; EHLO localhost &nbsp; <- これでも同じ<br />
&nbsp; &nbsp; EHLO host.example.jp &nbsp; <- これでも同じ<br />
250-host.example.jp &nbsp; <- 以後の個別動作確認で問題になる<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-STARTTLS &nbsp; <- TLSが動いている<br />
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN NTLM<br />
&nbsp; &nbsp; &nbsp; &nbsp; ↑ SMTP AUTHが動いている<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250 DSN<br />
quit	<br />
221 2.0.0 Bye<br />
Connection closed by foreign host.</div><br />
認証用の文字列を用意する。<br />
<div class="textbox" style="width:440px;margin-top:16px;">printf 'username¥0username¥0userpasswd' | mimencode<br />
edgeyfhcskdielgqldcjhyecrdhseJHbsge-:-)<br />
</div>使用する端末の文字コードの設定で、文字の表示が異なる場合がある。<br />
<br />
<h3>MacOS X tarminalの文字セットエンコーディングと表示の例</h3>&nbsp; &nbsp; dGVzdDgAdGVzdDgAa2l0YTgydHR0dA== &nbsp; <- これが正解の文字列のとき<br />
&nbsp; &nbsp;dGVzdDjCpTB0ZXN0OMKlMGtpdGE4MnR0dHQ=&nbsp; <- UTC−8のとき<br />
&nbsp; &nbsp;dGVzdDg/MHRlc3Q4PzBraXRhODJ0dHR0&nbsp; <- EUCのとき<br />
&nbsp; &nbsp;dGVzdDhKXEIwdGVzdDhKXEIwa2l0YTgydHR0dA==&nbsp; <- ISO2022-jpのとき<br />
&nbsp; &nbsp;dGVzdDgAdGVzdDgAa2l0YTgydHR0dA==&nbsp; <- s-jis<br />
作る時に端末のtarminalの文字セットエンコーディングを s-jisにするとよいようだ。<br />
<br />
<div class="textbox" style="width:440px;margin-top:16px;">#  telnet localhost 25<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 host.example.jp ESMTP Postfix (Debian/GNU)<br />
EHLO local<br />
250-host.example.jp<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-STARTTLS<br />
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN NTLM<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250 DSN<br />
AUTH PLAIN edgeyfhcskdielgqldcjhyecrdhseJHbsge-:-) &nbsp; <- 入力する<br />
235 2.7.0 Authentication successful &nbsp; <- 認証成功<br />
quit<br />
221 2.0.0 Bye<br />
Connection closed by foreign host.<br />
</div>外部のネットワークから、送信認証をしてメール送信できることを確認する。<br />
<br />
<a href="http://blog.8peaks.co.jp/index.php?itemid=118">さらに続く</a>。<br />
</div><br />
]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=112</comments>
 <pubDate>Thu, 22 Oct 2009 14:25:43 +0900</pubDate>
</item><item>
 <title>debian installer 後半</title>
 <link>http://111.68.180.102/blog/?itemid=109</link>
<description><![CDATA[<div class="item_titleline"><h2>debian GNU/Linux Lennyをインストールする2</h2></div><div class="item_body"><h3>パッケージマネージャの設定</h3>パッケージを読み込むサイトを指定する。<br />
お勧め通り自国を指定すると、自国にあるミラーホスト ftp.jp,debian.org がアーカイブミラーのサイトに推奨される。どのサイトでも構わない。<br />
プロキシサーバーを使っている時は、そのproxyのアドレスを入力する。<br />
...aptの設定がはじまるのでしばらく待つ。</div><div class="item_body"><h3>ソフトウェアの選択とインストール</h3>配布CDの構成のために、パッケージの利用状況の統計をとる「popularity-contest」に参加するか聞かれる。<br />
ここで「No」を選択しても、<br />
<br />
 を実行すると変更ができる。<br />
<br />
<h3>ソフトウェアの選択</h3>「デスクトップ環境」...　GUI環境 GNOME 2.22<br />
「ウェブサーバ」　...　apache2が入る。<br />
「印刷サーバ」　...　<br />
「DNSサーバ」　...　bind9が入る。<br />
「ファイルサーバ」　...　sambaとかnetatalkとかが入るかも。<br />
「メールサーバ」　...　eximが入る。指定しなくてもeximは入るのだが...?<br />
「SQLデータベース」　...　postgresqlが入りそう<br />
「ラップトップ」　...　<div style="float:right; margin:0 4px;padding:4px; font-size:0.8em;text-align:right;"><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&bc1=000000&IS2=1&nou=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=lynxokit9-22&o=9&p=8&l=as1&m=amazon&f=ifr&asins=4798109088" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div><br />
「標準システム」　<br />
<br />
今回は実験用兼スペアサーバーとして「ウェブサーバ」を選択する。<br />
<br />
<br />
<h3>ハードディスクへのGRUBブート・ローダーのインストール</h3>システムの起動時に実行されるブート・ローダーの「GNU GRUB」をインストールする<br />
Debianだけをインストールしているなら。「はい」を選択。<br />
Windowsを先にインストールしているなら。「はい」を選択。/boot/grub/menu.lst の設定を直せば windowsの優先起動ができる。<div class="textbox"  style="width:440px;margin-top:16px;"><h3>/boot/grub/menu.lst</h3># menu.lst - See: grub(8), info grub, update-grub(8)<br />
<br />
<br />
<br />
......略..................<br />
<br />
<br />
<br />
timeout         16&nbsp; &nbsp; &nbsp; &nbsp;<- default で指定した OS を起動するまでの待ち時間(16秒)<br />
......略..................<br />
<br />
<br />
title           Debian GNU/Linux, kernel 2.6.26-2-686&nbsp; &nbsp; &nbsp; &nbsp;<- GRUB の起動画面に表示される index<br />
root            (hd0,1)&nbsp; &nbsp; &nbsp; &nbsp;<- hda2が起動する ... Debian Lennyが入っている<br />
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda2 ro quiet&nbsp; &nbsp; &nbsp; &nbsp;<- カーネルのBoot image<br />
initrd          /boot/initrd.img-2.6.26-2-686&nbsp; &nbsp; &nbsp; &nbsp;<- Initial Ramdisk のimage file<br />
<br />
title           Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)<br />
root            (hd0,1)<br />
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda2 ro single<br />
initrd          /boot/initrd.img-2.6.26-2-686<br />
<br />
<br />
<br />
<br />
<br />
title           Other operating systems:<br />
root<br />
<br />
<br />
<br />
<br />
title           Microsoft Windows 2000 Professional&nbsp; &nbsp; &nbsp; &nbsp;<- GRUB の起動画面に表示される index<br />
root            (hd0,0)&nbsp; &nbsp; &nbsp; &nbsp;<- hda1が起動する... w2kが入っている<br />
savedefault&nbsp; &nbsp; &nbsp; &nbsp;<- ここで起動したら次回の起動をここにする(# savedefault=falseと連動)<br />
<br />
makeactive<br />
chainloader     +1</div><br />
<br />
<br />
パッケージがインストールされたら、CDを出して Reboot する。<br />
<br />
</div>]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=109</comments>
 <pubDate>Wed, 21 Oct 2009 19:55:00 +0900</pubDate>
</item><item>
 <title>debianのRAID復旧</title>
 <link>http://111.68.180.102/blog/?itemid=114</link>
<description><![CDATA[<div class="item_titleline"><h2>debian GNU/Linux のRAIDから不具合通知メール</h2></div><div class="item_body">RAIDに不具合が発生すると、 /etc/mdadm/mdadm.conf の MAILADDR に設定したメールアドレスに通知が届く。</div><br />
<div class="item_body"><h3>Debian のRAID不具合で届くメール</h3><div class="textbox"  style="width:340px;margin-bottom:16px;">X-Original-To: raidadmin@example.jp<br />
Delivered-To: raidadmin@example.jp<br />
From: mdadm monitoring &lt;root@debian.example.jp><br />
To: raidadmin@example.jp<br />
Subject: DegradedArray event on /dev/md2:debian<br />
Date: Fri, 23 Oct 2009 16:29:26 +0900 (JST)<br />
<br />
This is an automatically generated mail message from mdadm<br />
running on debian<br />
<br />
A DegradedArray event had been detected on md device /dev/md0. &nbsp; <- md0が異常<br />
<br />
Faithfully yours, etc.<br />
<br />
P.S. The /proc/mdstat file currently contains the following:<br />
<br />
Personalities : [raid1] <br />
md4 : active raid1 sdb7[1] &nbsp; <- secondaryしかない<br />
      1349312 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md3 : active raid1 sdb6[1] &nbsp; <- secondaryしかない<br />
      29294400 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md2 : active raid1 sdb5[1] &nbsp; <- secondaryしかない<br />
      497856 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md1 : active raid1 sdb3[1] &nbsp; <- secondaryしかない<br />
      7815552 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md0 : active raid1 sdb2[1] &nbsp; <- secondaryしかない<br />
      248896 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
unused devices: <none></div>片側のHDDが動作不良になったときは、同内容のメールが不具合が生じたアレイの数だけ届く。<br />
<br />
<h3>RAIDに不具合が生じたときの HDD交換</h3>不具合が生じた HDDを、新しい HDDに入れ替えて稼働させる。<br />
installのときスペアデバイスを用意しておくと作業が簡単になる。<br />
<br />
<div class="rightbox" style="width:240px;">片肺になったとき復旧できなければ RAIDにした意味がない。Hot Swapでコケたら泣くに泣けないので一度止める。<br />
.....Cobalt Qube では入れ替えるだけでrebootすれば再構築してくれたのだが...。</div>交換手順<ol><li>故障したHDDをアレイから外す。</li><li>shutdown する。</li><li>不具合が生じた HDDを外す。</li><li>新しい HDD(スペアデバイス)を取り付ける。</li><li>起動する。</li><li>追加 HDD に、アレイに合わせた Pertitionを切る。</li><li>追加 HDDをアレイに組込む。</li><li>同期を確認する。</li><li>追加した HDDに GRUBの設定を行う。</li></ol>primaryで不具合が発生したとき、primaryにスペアデバイスを取り付けても構わない。<br />
master(primary)でのみ bootするハードウェアならば、動作している HDD を master(primary)に入れ替え、新しい HDDを slaveに入れる。BIOSの変更で起動ディスクを変更できればそれでもいい。<br />
<br />
不具合が発生した状態で再起動すると起動メッセージに次のような警告が現れる。<br />
<div class="textbox"  style="width:440px;margin-bottom:16px;">madam:/dev/md0 has been stared with 1 drive (out of 2)<br />
madam:/dev/md1 has been stared with 1 drive (out of 2)</div>スペアデバイスのアレイを装着し、デバイスを追加する。<div class="textbox"  style="width:440px;margin-bottom:16px;"># mdadm /dev/md0 -a /dev/sda2 &nbsp; <- デバイスを追加する<br />
<br />

........略........<br />
          UUID : ccad581e:255c5ff1:6c782c16:d0cdbe79<br />
         Events : 0.1057<br />
<br />
    Number   Major   Minor   RaidDevice State<br />
       2       3        2        0      spare rebuilding /dev/sda2 &nbsp; <- 構成に入った<br />
       1       3        2        1      active sync   /dev/sdb2<br />
</div>同期の状態を確認する。<div class="textbox"  style="width:440px;"># cat /proc/mdstat<br />
<br />
Personalities : [raid1] <br />
md3 : active raid1 sda6[0] sdb6[1]<br />
      5855616 blocks [2/2] [UU]<br />
      <br />
md2 : active raid1 sda5[2] sdb5[1]<br />
      29294400 blocks [2/1] [_U]<br />
      [==>..................]  recovery = 11.6% (340416/29294400) finish=3.5min speed=19394K/sec<br />
      <br />
md1 : active raid1 sda3[0] sdb3[1]<br />
      7815552 blocks [2/2] [UU]<br />
      <br />
md0 : active raid1 sda2[0] sdb2[1]<br />
      248896  blocks [2/2] [UU]<br />
      <br />
unused devices: <none></div>HDDの作動LEDの点灯状態で、同期の終了を知ることができる。<a href="http://www.linux.or.jp/JM/html/procps/man1/watch.1.html">watch コマンド</a>を使うのもいい。<div class="textbox"  style="width:440px;margin-bottom:16px;"># watch -n30 cat /proc/mdstat &nbsp; <- 30秒ごとに mdstatを表示</div><br />
まっさらなHDDを組み込むときは、fdiskでパーティションを切ってからアレイに追加する。<br />
<br />
</div>]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=114</comments>
 <pubDate>Wed, 21 Oct 2009 18:47:00 +0900</pubDate>
</item><item>
 <title>debianで RAID</title>
 <link>http://111.68.180.102/blog/?itemid=110</link>
<description><![CDATA[<div class="item_titleline"><h2>debian GNU/Linux LennyでRAID</h2></div><div class="item_body"><h3>クリーンインストールでRAIDを設定する</h3>Debian Installer で「パーティションの設定」に進んでからの説明。<br />
<br />
「パーティションの設定」で各パーティションのサイズを設定する。<br />
異なる容量の HDD を使う場合、RAIDは容量の少ない HDD側の最大容量に合わせることになる。あまった容量をRAIDにせず、/local、/opt、/tmpなどにしてもよい。</div><div class="item_body"><div class="textbox" style="width:260px;padding-left:0;"><h3> &nbsp; &nbsp;大ざっぱな進め方メモ</h3><ol><li>RAID 1(ミラーリング)を使うときは、「手動」で2台のHDDのパーティションを対(アレイ)になるように同じ個数、同じサイズに切る。</li><li>パーティションの「利用方法」を「RAIDの物理ボリューム」に指定し、その後「マルチディスク設定アクション」の「MD デバイスの作成」でアレイにするパーティションのペアを指定する。</li><li>「MD デバイスの作成」で作った「RAID1デバイス n」にマウントポイントを設定する。</li></ol></div><br />
<h3>パーティションの設定</h3>最初にRAIDでない「パーティションの設定」と同じように、希望のパーティション構成に合わせてパーティションのサイズを決める。<br />
RAIDにしないときと異なるのは、<ul><li>アレイにするパーティションは、各々のHDDに同じサイズに切る。</li><li>「利用方法」で「RAIDの物理ボリューム」を指定する。<br />
「ext3ジャーナリングファイルシステム」などは選択しない。</li></ul>ことである。<br />
サイズが異なるパーティションを指定すると、アレイは容量の小さいパーティションのサイズになる。一部だけ、例えば /homeだけをRAIDにすることもできる。RAIDにしないパーティションのサイズは好みで構わない。<br />
「RAIDの物理ボリューム」を選んだパーティションは、「MD デバイスの作成」を行ないアレイを指定してからマウントポイントを指定する。<br />
<br />
対象のパーティションの容量が不足すると、パッケージを読み込む過程でエラーが表示され、パーティションを切り直さないとインストールができなくなる。<br />
<br />
「パーティションの設定」ではパーティションのリサイズもできる。<br />
「マルチディスク設定アクション」で「MD デバイスの作成」を行なったパーティションは、一旦「MD デバイスの削除」でマルチディスクデバイスを削除したあとサイズを変更する。<br />
<br />
「RAIDの物理ボリューム」を指定すると、「ディスクのパーティシニング」のメニュー上部に、「ソフトウェアRAIDの設定」の項目が現れる。<br />
</div><br />
<div class="item_body"><h3>RAIDのアレイ設定</h3>アレイのペアになるようにパーティションの切ったら「ソフトウェアRAIDの設定」に進む。<br />
<div class="rightbox" style="width:200px;">RAIDは、偶発故障期間中は心強い対策になるが、使用状況によっては片側のHDDに不具合が出たあと、数日をまたずもう一方に不具合が生じることがある。ペアにするHDDを異なるメーカの製品にする、同じロットにしないなど、摩耗故障の対策をしておく。<br />
LennyのRAID設定は、sargeのころの RAID設定とは作業がかなり異なる。</div>「マルチディスク設定アクション」メニューで「MD デバイスの作成」さらに「RAID1」「RAID1アレイのアクティブデバイスの数」に 2(default)、「RAID1アレイのスペアデバイスの数」に 0(default)を指定。さらに「RAID1マルチディスクデバイス」でアレイにするパーティションを指定する。<br />
<br />
不具合時に交換するスペアのための HDDを接続しているときは、「RAID1アレイのスペアデバイスの数」でその数を入力する。<br />
スペアデバイスはアレイに組み込まれない。不具合発生時に # mdadm /dev/md0 -a /dev/hdd2 などでアレイに組み込む。<br />
<br />
GRUBを入れるパーティションは、最初にMDデバイスの設定をする。<br />
その後、ヘッドシークの合理性に合わせて順番に指定する。<br />
<br />
アレイを指定すると「マルチディスク設定アクション」メニューに戻るので、すべてのアレイを指定するまでこの作業を繰り返す。指定が終わったら「マルチディスク設定アクション」メニューの「完了」をクリックする。<br />
<br />
設定が終了すると「ディスクのパーティショニング」の初期画面に戻る。<br />
<br />
<div class="rightbox" style="width:200px;">アレイの削除は「ソフトウェアRAIDの設定」を進み「MD デバイスの削除」でマルチディスクデバイスを削除する。<br />
アレイを削除すればパーティションの変更ができる。</div><h3>マウントポイントの設定</h3>「ディスクのパーティショニング」画面に 「マルチディスク設定アクション」で指定した「RAID1デバイス 0」から「RAID1デバイス n」が追加されるので、各 RAID1デバイスに、「パーティションの利用方法」、「マウントポイント」を設定する。<br />
<br />
作業は、従来のパーティション設定とおなじように、「利用方法」->「ext3ジャーナリングファイルシステム」、「マウントポイント」->「/usr」などの設定を行う。<br />
<br />
「パーティショニングの終了とディスクへの変更の書き込み」をすると、installerは構成を登録しパッケージの導入に進む。<br />
</div><div class="item_body"><h3>RAIDの確認</h3>installerのrebootの後、RAIDの確認を行う。<div class="textbox"  style="width:100%;margin-bottom:16px;"># df</div><h3>RAIDの双方の md0から起動する改造</h3>RAIDのすべての起動パーティションから起動するための設定を行う。<br />
<br />
installerの最後のGRUB書き込みは、RAIDの起動ディスク側(primary)の/bootにのみ行われる。他方(secondary)の/bootを起動可能にするために、GRUBを書き込む。<br />
md0に /bootがあることが前提。<br />
<br />
<div class="textbox"  style="width:440px;"># grub<br />
grub> device (hd0) /dev/hdb&nbsp; &nbsp; &nbsp; &nbsp;<- (hd0) を /dev/hdb とする	<br />
grub> root (hd0,1)&nbsp; &nbsp; &nbsp; &nbsp;<- /boot があるパーティション(/dev/hdb1)は(hd0,0)、(/dev/hdb2)は(hd0,1)<br />
 Filesystem type is ext2fs, partition type 0xfd<br />
<br />
grub> setup (hd0) &nbsp; &nbsp; &nbsp; &nbsp;<- (hd0) に GRUB をインストール<br />
 Checking if "/boot/grub/stage1" exists... yes<br />
 Checking if "/boot/grub/stage2" exists... yes<br />
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes<br />
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  17 sectors are embedded.<br />
succeeded<br />
 Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1)/boot/grub/stage2<br />
/boot/grub/menu.lst"... succeeded<br />
Done.<br />
<br />
grub> quit  </div>「/」の中に"/boot"があるときは"/boot/grub/stage1"。"/boot"でパーティションを切っているときは、"/grub//rub/stage1"になる。<br />
<br />
<h3>RAIDに不具合が生じた時 mailで連絡する設定</h3><div class="rightbox" style="width:240px;">片肺になっても不具合発生を知らなければ危機管理はボロボロである。</div>RAIDに不具合が生じたとき、警告を受け取れるよう設定する。<div class="textbox"  style="width:440px;margin-bottom:16px;"># cat /etc/mdadm/mdadm.conf <br />
.......略........<br />
<br />
<br />
MAILADDR username@example.com <-これ変更</div>不具合が発生すると次のようなメールが届く。<div class="textbox"  style="width:440px;margin-bottom:16px;">X-Original-To: raidadmin@example.jp<br />
Delivered-To: raidadmin@example.jp<br />
From: mdadm monitoring &lt;root@debian.example.jp><br />
To: raidadmin@example.jp<br />
Subject: DegradedArray event on /dev/md2:debian<br />
Date: Fri, 23 Oct 2009 16:29:26 +0900 (JST)<br />
<br />
This is an automatically generated mail message from mdadm<br />
running on debian<br />
<br />
A DegradedArray event had been detected on md device /dev/md0. &nbsp; <- md0が異常<br />
<br />
Faithfully yours, etc.<br />
<br />
P.S. The /proc/mdstat file currently contains the following:<br />
<br />
Personalities : [raid1] <br />
md4 : active raid1 sdb7[1] &nbsp; <- secondaryしかない<br />
      1349312 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md3 : active raid1 sdb6[1] &nbsp; <- secondaryしかない<br />
      29294400 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md2 : active raid1 sdb5[1] &nbsp; <- secondaryしかない<br />
      497856 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md1 : active raid1 sdb3[1] &nbsp; <- secondaryしかない<br />
      7815552 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
md0 : active raid1 sdb2[1] &nbsp; <- secondaryしかない<br />
      248896 blocks [2/1] [_U] &nbsp; <- primaryが動いていない<br />
      <br />
unused devices: <none></div></div><br />
<br />
<div class="item_body"><h3>実際に RAIDが片肺で起動するか確認</h3><div class="rightbox" style="width:200px;">RAIDにしたつもりでも、実際にRAID動作していない、不具合が出たとき shutdownしたら再起動できないでは意味がない。</div>RAID 1が設定され、いずれのHDDからでも bootできることを確認する。<br />
稼働中に片肺になっても稼働すること、片肺状態で、生きている HDDで再起動できることを確認する。<br />
<br />
hda(sda)の電源を外し起動することを確認する。<br />
PCによっては primary/master HDDでしか起動しないものがある。<br />
IDEなら hdbのモードを cable select(slave)から masterに変更し、起動できることを確認する。SCSIは ID か primary/secondaryの指定を変えて確認する。<br />
HDDが１台では起動しないハードウェアもある。その場合は２台のHDDを接続してテストする。<br />
<br />
<h3>RAIDに不具合が生じたときの HDD交換</h3>片肺になったとき復旧できなければ RAIDにした意味がない。<br />
不具合が生じた HDDを、新しい HDDに入れ替えて稼働を続けたい。<br />
<br />
さらに <a href="http://blog.8peaks.co.jp/index.php?itemid=114">debianのRAID復旧</a> に続く。<br />
debian GNU/Linux Lenny<br />
<br />
</div>]]></description>
 <category>ネットとサーバー</category>
<comments>http://111.68.180.102/blog/?itemid=110</comments>
 <pubDate>Wed, 21 Oct 2009 17:00:00 +0900</pubDate>
</item>
  </channel>
</rss>
