記事一覧

Linux は軽い

ファイル 141-1.jpg

…という夢を見たんだ.

いやね,いま Libretto30 (Am5x86-100MHz, Mem 20MB) を,単体で Web & メールクライアントに仕立てて復活させようとしているんだけど,
・Windows95 をサポートする Web ブラウザは古いものばかりで,今日日の Web ページは表示が崩れてまともに見れない
・Win98 は既にきつい

 それなら,一般的に Windows よりも軽いといわれている Linux はどうなのよ? とチラッと調べてみたけど,Mem 128MB 以上でないと動かんとか.全然軽くないじゃん.Win95 世代のマシンはすでに切り捨てられたってことね…
 と思ったら見つけたのが以下の 2つ.
・Damn Small Linux
・Tiny Core Linx
特に TCL の方は,iso サイズが 10MB なのに GUI が使えるということで期待していたが,Out Of Memory とかで起動中にカーネルパニックを起こしたwww

ならばと DSL のほうを入れてみたら,無事動いたよ…(゜ーÅ)ほろり
ただし,プリインストールの FireFox 起動してみたら,5分たっても帰ってこねぇw より軽いナントカってブラウザ (写真) はスタイルシートを無視するし,日本語が表示できないのが痛いw rdesktop でリモートデスクトップクライアントにはなるが,これなら Win95 とかわんねぇし.

 (安定性とか置いといて) まともな GUI が使えるという条件において,Win95 より軽い Linux は無いという結論に達した.
 Lib 単体でがんばるなら,Windows 版 w3m を入れるのが落としどころかもしれん.

1807年のブログ

Web クローラに色々な情報を与えるために robots.txt の仕組みが用意されているが,自分がサーバ管理者なら .htaccess でアクセス制限できるので,今まで robots.txt のありがたみがイマイチ分からなかった.

が,ふと Apache ログを眺めていたら,Googlebot が 1807年~2206年の日記をクロールしている事に気づいたw いやいや,そんな世紀の日記とか書けないからwww

今ご覧のブログ,Web Diary Professionalというフリーの blog スクリプトを使わせてもらってるのだが,「先月」「来月」のリンクが (記事が無くても) 常に張られ,記事は無くても 404 にはならずに「記事がありません」と書かれたページが生成されるので,「記事がありません」だけのページが上の年月×12ヶ月分キャッシュされているという状態.

これじゃ Google にもアクセスを受けるうちのサーバにもムダなので,日付指定が含まれている URL を robots.txt でクロール対象外にした.

なるほど,こういう風に使うのか.

Linux サーバを coLinux 化

ファイル 129-1.jpg

 ウチの Linux サーバ (Celeron@300MHz のノーパソ),かつては VMWare 上の Linux で動かしていたのだが,あまりの遅さに耐えかねてネイティブな Linux で動かしていた.
 が,どうやっても手持ちの USB LAN アダプタを WEP でしか動かせなかったのと,トラブル時の復旧の容易性 (ディスクイメージファイル 1個をコピるだけで別のホストマシンで復旧できる.メールサーバが動いているのでダウン時間は最小に抑えたい) を考えると,やはりバーチャルマシンで Linux 動かしたほうが便利.

 というわけで,coLinux 入れてみた.VMWare に比べてメモリ消費量が格段に減ったので廃スペックマシンでの動作も快適.素の Linux と変わんないっす.ヽ(´ー`)ノ

 で,本格運用しようと思ったら,無線 LAN アダプタと仮想マシンの LAN アダプタが Bridge できねぇ_| ̄|○
 WPA で接続しようと思ってたのに,いみねーじゃん.

-----
追記:

・無線 LAN アダプタを含めたブリッジができた.情報はここ↓
http://d.hatena.ne.jp/cnaos/20081102/1225628170
ただし,リンク先では無線 LAN アダプタだけ enable にすればよいみたいに読めるが,ウチの環境,無線 LAN・有線 LAN・TAP-Win32 Adapter をブリッジする環境では,有線・無線 LAN を enable にしないとだめだった.

C:>netsh bridge show a

----------------------------------------------------------------------
 ID AdapterFriendlyName         ForceCompatibilityMode
----------------------------------------------------------------------
  1 ローカル エリア接続 2                disabled ← TAP-Win32 Adapter
  2 ワイヤレス ネットワーク接続          enabled  ← 無線 LAN アダプタ
  3 ローカル エリア接続                  enabled  ← 有線 LAN
----------------------------------------------------------------------

Layer3 互換モードってなんだろうねぇ? 自身の MAC アドレス以外の MAC アドレスを持つパケットを送出できない LAN アダプタ用の設定かな? (てきとう)

・実は WMWare でもホストマシンとゲストマシンとのファイル共有・Samba ファイル共有ができないという現象があって困っていたのだが,WinPCap を使ったブリッジ構成の coLinux でも同じ現象が出て困っていた.(ゲスト OS と,LAN に繋がった他のマシンとなら問題なし) その解決法がここに載っていた↓
http://scratchpad.fc2web.com/colinux/winpcap.html

どっちも重要な割りにすげーマニアックな設定方法なんですけどwww
ググってもなかなか引っかからなくて苦労したよ…

根本的スパム対策

 今まで本命メアドと捨てメアドを使い分けて,本命メアドは信用できるところにしか公開していなかったのでスパムメールとは無縁だったのだが,ついに本命メアドがスパムメール業者に渡ってしまったらしい.出会い系とか「10万円当たりました!」とか大量に届くようになった.これを機に,根本的なスパムメール対策システムを考えてみようと思う.

 一つ思いつくのは,メアドを知らせたい相手一人一人に違うメアドを教えておく,というもの.一般的にはテンポラリメールアドレスと呼ばれる仕組みだが,例えば

Aさん: hoge-a@domain.jp
Bさん: hoge-b@domain.jp
通販業者C: hoge-shop_c@domain.jp

 などのように,一人一人に違うアドレスを教えておく.例えば業者 C がメアドをスパム業者に売ったとしても,あて先メアドから誰が犯人であるか明白であるから晒し上げる事もできるだろうし,そもそも通販のやり取りが終わった時点で hoge-shop_c@domain.jp を破棄すればよい.
 また A さんが事故で hoge-a@domain.jp を外部に漏らしてしまった場合でも,A さん用メアドを新たに割り当てなおして,メアド変更の連絡は A さんだけで済む事から被害を最小限に抑えられる.

 幸い,今使っているメールサーバーの qmail にはこれに適した仕組みが用意されている.具体的には dot-qmail という仕組みで,hoge-*@domain.jp の * があらかじめ設定したものと一致すれば,hoge@domain.jp 宛てへのメールとして届けられる.

 これにより受信側は解決だが,問題は送信側.From アドレスは普通メーラーで設定するから,メール送信ごとにメーラーの From 設定を変えるのはめんどくさい.現実的な案として,To 欄を参照して自動的に From 欄を書き換えるメールゲートウェイを設置する事だが…

 てか,こんなサービス,どこかで既にやってそうな気がしてきた.

ntp.conf の罠

最近,録画 (TV キャプチャボードを使った PC での録画) の冒頭が切れるようになった.

ちょうど,グラフィックボードの交換と発症時期が重なっていたので,これが原因かと思って録画時間を早めに開始する措置をとっていたのだが,ふと時計を見ると,1分遅れてるやん…なんで?(;´д⊂)

自宅 LAN 環境では,Linux サーバに ntpd を立てて WinXP と同期させているので,時刻ずれとは無縁のはずだったのだが… 改めて Linux のログを確認すると,1ヶ月以上前から Linux サーバが参照している上位 ntp サーバとの同期に失敗している.しかも ntp.conf の設定が前設定したのとえらい違うぞ? しかもしかも,前設定した内容が ntp.conf.sv なんてファイルに勝手にバックアップされてるぞ???

と思って調べてみたら,引っかかったのがここ.DHCP 使ってると勝手に ntp.conf が書き換えられてしまうのね.
そういや,ntp.conf の作成日時が前回リブートした日時と一致してるわ.

韓国フィルタ

Linux サーバを立ち上げている人なら誰でも直面する問題,セキュリティ.Linux ではやたらとログが残るので,どこからどんなアクセスがあったかが詳細にわかるので,気になりだすと仕方がない.

特に,中国・韓国あたりからのアタックがひどい.スパムメールの踏み台にしようとしてるのか,メールサーバーに何度もアクセスして失敗した跡がある.

あー,俺別に中国人・韓国人に友達いないし.そんなとこからのパケット無条件に捨ててくれていいよ.

と同じ境地の人がいるはずと思ってググって見たら,いたよ…↓
http://www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/index.jsp

これは iptables を利用して,中国・韓国・東南アジアからのパケットを無条件でポアするフィルタ.
3日ほどで 221件のアクセスが引っかかった↓

Chain KRFILTERED (2247 references)
 pkts bytes target     prot opt in     out     source               destination
  221 10768 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

変なアクセスログがすっきりヽ(´ー`)ノ

cookie 食えねぇ…

自宅サーバーのアパッチで,クッキーを食わせる cgi を立ち上げていたところ,クライアント PC のブラウザ (IE) でどうやらクッキーが保存されていないことに気づいた.

他のサイトではクッキー OK なので,IE はシロだと判断して,Apache の設定を疑っていたのだが,最初のこの判断が間違っていておおハマリしてしまった.Apache の設定をいくらイジっても改善しない.

ここで,確か IE にはゾーンごとにセキュリティの設定が別々に設定できたよな? と思って一番ゆるい設定にしてみたら,クッキー食えました.犯人は IE かよ…orz

で,さらに詳しく調べてみると,サーバの URL は外から見ると http://naruto.sytes.net/ だが,ローカルでアクセスするときは,http://dds_svr/ とマシン名だけでアクセスしていた.で,IE は,URL にピリオドが何個ついているかもゾーン判定の材料にしているようで,後者でアクセスするとなぜかキツイ制限になってクッキーが拒否されていたようだ.

でも普通,ローカルアクセスのほうが制限がゆるくできると思うのだが….

DNSMasq で DHCP 登録されたホスト名から IP アドレスを解決させる

DNSMasq は,DNS 機能とともに DHCP サーバ機能も持っている.で,FON にインストールされていた DNSMasq では,DHCP により登録されたホスト名でも IP アドレスを解決できていたので,DHCP の特性上動的に IP アドレスが変わっても,ホスト名でアクセスできて便利だったのだが,Linux にインストールしたものは /etc/hosts しか見ない.

こんな機能もともと持ってるはずだよなぁと思ってオプションや conf ファイルを見てみたけど,それらしき設定がない.でもそれを間接的に実現できそうなオプションが見つかった.

具体的には,dnsmasq.conf 内の
dhcp-script=<コマンド>
で,DHCP にマシンが登録・削除されるたびにこのコマンドが呼び出される.そのときの DHCP アドレス貸し出し状況は (デフォルトで) /var/lib/misc/dnsmasq.leases に書かれているので,これを元に /etc/hosts を書き直した後,DNSMasq に /ets/hosts をリロードさせるために,kill -HUP すればよい.

というわけで,↓こんなスクリプトを書いて dhcp-script に指定してみた.

#!/usr/bin/perl -w

$Hosts = '/etc/hosts';
$Leases = '/var/lib/misc/dnsmasq.leases';

exit( 0 ) if( !( $ARGV[ 0 ] eq 'add' || $ARGV[ 0 ] eq 'del' ) 
    && -e $Hosts || ! -e $Leases );

open( fpIn, "< $Leases" );
open( fpOut, "> $Hosts" );

print fpOut << 'EOF';
# DO NOT EDIT THIS FILE
# This file is generated automatically by dhcp_update.pl
127.0.0.1       localhost localhost.localdomain

# これ以下~EOF の間に,固定 IP アドレスのホスト名を書く
192.168.0.254   ephemeris  dds_svr

EOF

while( <fpIn> ){
    @_ = split;
    print( fpOut "$_[2]\t$_[3]\t# $_[1]\n" ) if( $_[3] ne '*' );
}

close();

kill( HUP, `cat /var/run/dnsmasq.pid` );

/etc/hosts はこのスクリプトにより完全に上書きされる形になるので,DHCP 以外の固定的なホスト情報は,このスクリプト内に書いておかないといけない./etc/hosts に上書きするのがイヤなら,適当なファイルに吐いて dnsmasq.conf の addn-hosts= で指定する方法もあるが,そうすると DNSMasq が走ってるマシン自身で DHCP 登録されたホスト名でのアドレス解決ができない(???).

新しい PC が DHCP に登録されると,/var/log/messages に

Jan 20 17:22:46 ephemeris dnsmasq[1053]: read /etc/hosts - 4 addresses

とか出て,いちお期待通りに動いている模様.ヽ(´ー`)ノ

iptables の勉強

ファイル img_28527478_1.jpg

無意味に調子に乗ってきたウチの LAN 環境改革,試験勉強をしようと思ったらいつの間にか始めてしまった掃除のごとくとどまるところを知らない.

今の家の LAN 環境は,↓のように

  [WAN]----(長いLANケーブル)----[ルータ]--[Linux,Fon,PC他]

ADSL モデムが 1F にあり,PC がある 2F まで長い LAN ケーブルが這っているので,このように↓

  [WAN]--[Linux+無線LANカード]・・・・[FON]--[HUB]--[PC他]

1F?2F間を無線 LAN 化してケーブルを取っ払おうプロジェクト発動.そのために,Linux サーバになっているノート PC に 無線 LAN カードを挿して,FON と通信させる事にした.

で,ついでなので,Linux サーバを BB ルータ化しようと,iptables を勉強中.難しいけどオモロイねこれ.一種のサブルーチンみたいな定義も出来るのでなかなか奥が深い.
ただ,iptables の設定は複雑で,下手すると WAN 側から LAN 側覗かれ放題なんて事になりかねないので,WAN・Linux サーバ・LAN を模した 3台の PC で実験中.WAN 側 PC から Linux サーバを attack しまくってますw

そもそも Linux サーバの eth0⇔eth1 が単純に bridge 出来れば別によかったんだけど,なんでかうまく行かない.いろいろググって見ると,bridge した IF の MAC アドレスは (詐称して無理やり) 同じにならなければならないらしいが,ifconfig で見ると同じになっていない.これが原因なんだろうか?
ググっても,bridge がうまく行かない,という記事をあまり見かけないので,なかなかトラブルシューティングができねぇ…

2008/1/23追記:-----
使っている無線 LAN カード WLI-PCM-L11GP に使われている Lucent 社製 chip を使った無線 LAN カードでは,OS に関係なくブリッジは構成できないようになってるらしい (--#
---------

Linux サーバがルータも兼ねるということで,今まで BB ルータにさせていた DHCP サーバ・DNS サーバもインストールしてみた.といっても,dnsmasq っていうナンチャッテ DNS サーバなんだけど(笑)
FON も dnsmasq が動いていて,DHCP (これも dnsmasq の機能) により登録されたマシン名が dnsmasq の DNS 機能によって参照できたのだが,Linux にインストールしたほうは,/etc/hosts に書かれたマシン名しか参照できない.なんで…?

LILOのバカぁ

ウチのサーバーマシンは,今まで VMWare 上で Linux が走っていたのだが,あまりにも遅いので素の Linux を入れる事にした.

で,インストール自体は順調に終わり,データを Linux 側に移したり,設定もあらかた終わったときに,

LILO の MBR を上書きしちまった_| ̄|○

ヤバイ,Linux ブートしねぇ.このノート PC には HDD の他は FDD しか繋がらないから,1CD Linux とか起動できない.WindowsXP だったら MBR が変でも,他のマシンから NTLDR を FD にコピれば FDD からブートできるのだが,LILO ってカーネルイメージのディスク上の位置情報を使ってるから,他のマシンのを持ってくるとかいうわけにはいかんよねぇ.LILO のばかぁ(゜ーÅ)ほろり

再インストールするのもだるすぎるので,なんとか FDD から LILO を復活させる方法を探ってたら,
あったよ…1FD Linux

また一つ,トラブルを乗り越えて大きくなったよ > 俺(゜ーÅ)ほろり

Linux 撤廃計画

ウチのローカルネットワークでは,LINUX を立ち上げてメール・web サーバーなどを立ち上げている.だが,実は純粋な LINUX マシンではなく,VMWare 上で走っているので重い.(しかも古いノート PC なのでさらに遅い(゜ーÅ)ほろり)
そこで,cygwin 上で今のサーバー環境と同等のものを構築できるか考察してみる.

■telnet
Cygwin SSH サーバがあるので OK.

■cron
…あるのか?
まぁ Windows のタスクスケジューラでも何とかなりそう.

■Web サーバ
Cygwin の Apache があるので OK.

■WebDAV
Cygwin の Apache で mod_dav が動くかどうか微妙だが,最悪 sftp でもいいので,まぁなくてもいいか.

■CVS サーバ
どうなるんだろ…? SSH サーバが動いていれば,
setenv CVS_RSH ssh
でいけるような気はするが…

■メールサーバ
一番引っかかりそうなのがこれ.Cygwin 上でなくても,Windows 用のメールサーバでもいいのかもしれないが,今の qmail の機能,具体的には
・SMTP フォワード (外部へのメール送信をプロバイダの SMTP に丸投げする機能)
・ユーザーアカウントエイリアス (qmail でいうところの,user-***@hoge.com 宛ての *** が何であれ user@hoge.com 宛てのメールと解釈してくれる機能.メールアカウントが無限に持てるのと同じ)
が使えないと困る.
というわけで,「cygwin qmail」で検索してみたら,ポーティングしてる人がすでにいる事はいるが,ちょっと試したところ上手くいかない.
そこで方針を変えて,Windows 用で上記の機能を持つメールサーバーを探してみたら,あったよ… → XMail

というわけで,Cygwin でも何とかいけそうなので,Linux→Cygwin 乗り換え計画発動.
いやちょっとまて,そもそも Cygwin と VMWare とじゃどっちが速いんだ?(´・ω・`)


ページ移動

  • 前のページ
  • 次のページ