8月 10 2006

mod_geoip2 で国別フィルタリング

Tag: Apache, FreeBSDTOSHI @ 20:39:57

国別フィルタを探してたらこんなの発見
MaxMind – GeoIP Apache API
GeoIPってホスト名 or IPアドレスの割り当てられている国を調べるツールを提供してるらしい。で、それを参照できるようなApache用のmoduleがあると。

まずはmoduleインスコ。公開されてるソースがapache-2.0用と書いてあるので、2.2用に書き換えなと想ったけど、ソース覗いたらその必要はなさそうだったのでがっつんとportsからインスコ。httpd.confに書くのはmod_geoipのWeb参照して

LoadModule geoip_module       modules/mod_geoip.so

<IfModule geoip_module>
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE KR BlockCountry

Deny from env=BlockCountry
</IfModule>

SetEnvIfとかは別にVirtualHost下とか塞ぎたいところでええんでない。
IPアドレス割り当てのDBは自前で持たなくちゃいけなくて、お金払うと市とかまで入った詳細や更新ツールが使えるようになったりするようだけど、そんな制度高くなくていいので(あくまでいらないところを通さなくするだけなので)、月1更新の公開DBをもってくることに。GeoLite Countryにある国別DBをwgetするようcronに仕込むだけ。

想ったよりあっさり動いたので、さっそくUS/CN/KRはdenyしますたw って想ったけど、USを閉じると色々他のサービスで弊害が出るので仕方なくallow。で、一番ひどいコメント(ついでにトラックバック)へのアクセスをJP以外開けないように変更。
見えなくて困る人(そもそもそういう人はこのエントリーが見えてないと想うけど)は言ってくれれば、気分によっては何とかするかもしれないししないかもしれない。


12月 07 2005

apache 2.2.0

Tag: Apache, FreeBSDTOSHI @ 12:17:50

portsにも早々に入ったけど、とりあえず手元で試してみようかということで突っ込んでみる。以下ぶちあたった問題点。

1. mod_encoding
まぁこれは予想通りだったんだけど。API変更の影響。regex.hがといわれてコンパイル通らなかったり、GETでとる文字列にかかる問題の修正パッチを当てていたところでも関数が古くて引っかかった。
最終的には、mod_encoding.c.apache2.20040616にパッチ(FreeBSD 6.0-STABLE環境。ヘッダファイルの場所とか適当に直して)を作ってコンパイルしてようやく動作。

2. AcceptFilter

[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter.

とかうっちぇーwarningが出る。どうも、2.1で追加された機能を動かしているらしく、わざわざそれ用のkernel moduleまで立ち上げろと言う(’A`)
accf_data(SSL用),accf_httpのkernel moduleあげたら起動時は言われなくなったけど、gracefulやったら相変わらずうっさいので、この際noneに…

3. Directory設定
付属のオリジナルサンプルのconfigでは

<Directory />
    Order deny,allow
    Deny from all
</Directory>

となっていてこのまま流用していて、上記だと勿論デフォルトdenyになっちゃうので、明示してあげない限り設定した全ディレクトリが見えなくなる罠。
マニュアルでもデフォルトdenyを推奨していてconfigも準拠したんだろうということで、使うディレクトリで明示的にallow指定してあげることに。


11月 09 2005

GTK+-2.8 updateとFirefox

Tag: FreeBSDTOSHI @ 18:33:04

GNOME/Glib/GTK+をageたから、portupgrade使うなよとUPDATINGには書いてあったので、素直にupdate用のスクリプト落としてきて実行。
x11-toolkits/pango でどうしてもスクリプトとまります。log見たら、どうも止まってるのは依存した graphics/cairo のようです。足元にあるマシンは通ってるのに何でだろうと散々悩み、コンパイルに使ってるオプションをはずしていったら、WITHOUT_X11が原因だったようです。ナンダヨーッヽ(`д´)ノ 通らないオプションを有効にするなーっ

ようやくGTK+まわりの整理が落ち着いたと想った矢先、今度は足元ましんのFirefoxが立ち上がらない。なんか pango_x_font_map_for_display がどうのと文句を言う。どうもXFTを無効にしたらエラーを吐かれる模様。アンチエイリアスした字は私はどうにも気持ち悪いので別の方法を探す。
JADO’s Brand-new Life(2005-10-18)に、Linux環境だけど同じ症例と解決方法発見。Momongaのpatchとか探したんだけど見つけられなかったんですが(’A`)?まぁ当たりをつけて適当にpatchはこしらえそうだったけど、portsにいちいち手を加えるのは後々面倒だし、今後のアップデートに期待して、当面はLD_PRELOADをKDEのメニューボタンで設定して逃げることに。


10月 28 2005

MySQL-5.0のインスコで(正確にはその後のcactiで)はまった件について。

Tag: FreeBSD, MySQLTOSHI @ 21:56:10

小さく切った /var にdbを作ったのでディスクが圧迫しててまぁ別のところに移そうかって話で、ちょうど5.0.15でGAになったし入れてみようかということに。まぁこれが後々の悲劇を生むことに…

とりあえずmysqlはportupgradeで入れ替えるだけ。後は順々に依存してるもの入れ替え。

cd /var/db/pkg
# portupgrade -M 'WITH_CHARSET=utf8 WITH_XCHARSET=all BUILD_OPTIMIZED=yes' \
 -o databases/mysql50-client mysql-client-4.1.15
# portupgrade -M 'WITH_CHARSET=utf8 WITH_XCHARSET=all BUILD_OPTIMIZED=yes' \
 -o databases/mysql50-server mysql-server-4.1.15
# mysql_fix_privilege_tables <password>
# /usr/local/etc/rc.d/mysql-server.sh restart
# portupgrade -o databases/p5-DBD-mysql50 -f p5-DBD-mysql41-3.0002
# portupgrade -f databases/php4-mysql databases/p5-Class-DBI-mysql net/cacti
# pkgdb -F

MTも動いたし…アレ、cactiのグラフが表示されない。Graph ManagementやData Sourcesでは、Showing Rows 1 to xxみたいに数は表示されるのに、実際の中身がない。んじゃ新規にグラフ作成してみようとしても存在してるみたいな感じで跳ね返される。htmlにstaticに出してる分にはグラフが出てるので、データが取れてないということもない。うーん…
ちゃんと調べれば実に簡単なことで、cactiは現時点でMySQL-5.0未対応でしたよっと。svn trunkにすらまだ入ってなくて、最新のbranch持ってきて上書きして解決。ここまで2h(’A`)

教訓、依存アプリケーションの対応状況はちゃんとチェックしましょう。cacti使いの人は、デンジャーなsvn踏みたくなければ、次のリリースまで待つのが吉


10月 28 2005

iPod nano @ FreeBSD

Tag: FreeBSDTOSHI @ 15:46:01

この前gtkpod環境を作った時はshuffleだったわけだけど、先週末nanoを買ったのでそれも試してみることに(というか、プレイリストをいぢりたくなった

nanoをUSBで挿してみる。しーん。何度か触ってたら偶然da0で認識。一回抜く。もっかいさす

Oct 28 14:18:55 host kernel: umass0: BBB reset failed, IOERROR

だめぽ。そのうちOSを巻き込んでくれたり、別のアプリケーションでpage fault吐いたりこのままではやばげ。

もう発売からしばらく経ってるんだから試してる人もいるだろうとFreeBSDのusb周りで探してみたらありましたよっと。まぁRELENG_6のは1.119ベースで8ヶ月弱更新がないわけだが…。Fixで書かれてるところと同じ部分を削ってkernelコンパイルしてreboot。the nano works perfectly.
とりあえず動いたは動いてるんだけど、non-criticalなので当分入る気配なさげ。これからsrc更新のたびに書き換えるのか(´・ω・`)


10月 21 2005

FreeBSD 6.0-RC1とmpd

Tag: FreeBSDTOSHI @ 13:39:06

5.4-STABLE->6.0-RC1へいくつかあげていて問題なかったので、何も躊躇することなくmpdが動いているおうちマシンをremoteでageてreboot。…返ってきません(つд`)

おうち帰ってmpdのlog見てみる。

Oct 20 21:00:11 host mpd: [PPPoE0] Cannot send a netgraph message: fxp0::Invalid argument

なんかnetgraphまわりっぽいな。ngctlを直に打ってみたら、fx0:なんてpathねーよといわれる。うーんと想いkldstat、5.4-STABLEでは勝手にloadしてたはずのng_ethernetがいません。そりゃねーいわれるよ(’A`)とりあえずloadしてごまかす。
が、相変わらずmpdは同じメッセージを抜かしやがる。netgraph周りは全部設定できるから大丈夫だと想うので、mpdそのものがいかんのかとportsからコンパイルしなおし。たら通った。

まさか、そんなに5とkernel変わってないはずなのにng_ethernetがloadしないなんて想わず。さらにCOMPAT_FREEBSD5つけててmpdが動かないとも想わず。久々におおはまりでしたYO
mpdを仕込んでて6.0にあげる時は、ng_ethernetのloadと、mpdのコンパイルし直しましょう。


10月 21 2005

gtkpod

Tag: AudioVisual, FreeBSDTOSHI @ 12:47:19

おうちのiTunesで同期してるiPodだけど、たまーに音量調整へまってたり、instrumental入れてたりして、出先でいぢりたいなぁと思うときは誰もが想う事でしょう。しかし、他のiTunesの同期させるのも後で戻すのがまんどいしDBすっとぶし。
iTunesの共有って使えないかなぁと想って調べてみたけど、これって音楽データの置き場所を持って同セグメントで同じ局を演奏できますよってだけで、そこから手元のライブラリに引っ張ったりiPodに落とし込んだりはできないのね。使い方を間違えればopenなデータばらまき鯖になってしまうので、こういう制限は分からなくも無いけど。

ということで方向性を変えて、iTunesを使わずに、iPodのデータをいぢれるソフトを使おう。足元にはFreeBSDなclientもあるしということで、gtkpodなるものを使ってみる。


9月 14 2005

ja-man-doc portsで簡単install

Tag: FreeBSDTOSHI @ 12:36:56

ja-manを入れてる人は多数いるだろうけど、ja-man-docも通常は一緒に入れる(というかいれねーと日本語マニュアルないし)。しかし、ja-man-docのupdateはいつもまんどく感じていた。
一番楽なのはできあいpackageをもってきてinstall。しかし放置していると古いまま…。portsの japanese/man-doc を使ってinstallするのには、cvsupなり、anoncvsなりで、doc以下を持ってくる必要があった。portsやsrcは普段からやるのでともかくも、docはほんとたまにしかやんないからよーわすれる。

しかし、今回あがった ja-man-docのMakefileをみてみると、WITH_CVSなんて便利なオプションがついてるじゃまいか!ということで使わない手はない。
例えば日本のanoncvs鯖を使うとして、rootであらかじめloginしておく。

cvs -d :pserver:anoncvs@anoncvs.jp.freebsd.org:/home/ncvs login (pw: anoncvs)

login準備完了ってことで後はportupgradeするのみ。

portupgrade -M 'WITH_CVS=yes CVSROOT=:pserver:anoncvs@anoncvs.jp.freebsd.org:/home/ncvs'
 japanese/man-doc

ちょー便利っ


9月 12 2005

家庭内LAN GbE計画

Tag: Buy, FreeBSD, PersonalComputerTOSHI @ 12:47:34

そもそものきっかけは、sambaででかいファイルをほおり込んでいて、オンボード蟹がだまるのでどうにかしたいのであって。
でまぁ今組むならGbEなんだろうと。でもうちのルーターはロープロファイルってのが曲者で、GbEでロープロファイルは蟹ばっかだよなぁと調べてたら、以前fxpを挿した時に使ったPRO/100S用ロープロファイルブラケットが実はPRO/1000MTにも使えるなんて書いてあるじゃんっ。導入に対する物理的問題は一挙解決ということでふんぎって購入。

カードはクレバリーでバルクが大量に出てたので購入。もちろん偽者チェックにMACアドレスも確認。Hubはメルコのと悩んだけど、熱に不安をもちつつPLANEXのを購入。

No
Image
PWLA 8390MT
Intel
¥ 4,168
No
Image
PA-010LAN
AINEX
¥ 710

Warning: readfile(http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=03BRG58PCKHW8SCDYYR2&AssociateTag=nanamaki-22&Operation=ItemLookup&ResponseGroup=Medium,Offers&ContentType=text/html&Version=2004-11-10&Style=http://masumin.maaya.jp/aws4-inc.xslt&IdType=ASIN&ItemId=B0006O0DFW) [function.readfile]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request
in /usr2/home/nanamaki/vhosts/minori/docs/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 17

家に帰ってマシン3台総入れ替えして完了。全部挿しなおした後、Windowsマシンでドライバが必要だった罠(よく考えれば、GbE流行りだしたのってXP出たあとだもんなぁ)。CDついてたからよかったものの、無かったら苦労してたかも(’A`)


6月 03 2005

xmbmon+cactiでモニタリング

Tag: Cacti, FreeBSD, net-snmpTOSHI @ 17:00:47

これからの暑い季節、おうちのルーターになってるマシンの温度が気になるわけで。家に帰って部屋に入ると、すんげー音でファンが回っててガクガク。てなわけでモニタリングをしてみようかと。

方向性
1. xmbmonで温度/ファン回転/電圧測定ができるような状態へ
2. xmbmonの出力をsnmpで取得できるようにする
3. cactiで視覚出力
まぁ、一番まんどいのはcactiのテンプレ作ることなんだけど(’A`)


次ページへ »