20101030173837

Dropbox うめうめ...

Dropboxの使用開始。元々メッセンジャー用アイコンや壁紙をどのPCからでも共有できるようにオンラインストレージの使用を考えSkydriveを使用していました。当時Dropbox自体は聞いていましたが、Microsoftシンパな私は特に気にせずそのままSkydrive使用。しかし、今月初めiPod Touchの購入をして状況が一変。SkyDriveだとiPod Touchでは上手く共有ができないではないか...(2010/10現在) (GoogleDocs? Googleさんは妙な噂が尽きないうえ、Skydriveと同等ので対象外)

ということで、Dropboxを使って家のPCとVPSとiPodTouchの2GBを常に同期するようにしました。うめうめ...Skydrive等のオンラインストレージ違いと言えば容量なのですが... 25GBも使う理由は無く、2GBを有効に使っていけるこちらを選択しました。そのまま全領域をVPSに退避しても差し支え無い容量ですし。あとはあまりやり取りが多すぎますとVPSの毎月の通信上限も気になり始めますので、後付け理由ですがこのくらい(2GB)が丁度良いでしょう。

Dropboxの使い方としては、自分のPC等に2GB位の容量を確保してそこを同期させるのが一般的な使い方です。ブラウザ通さずに使えてExplorer/Finder等に統合して上手く使えます。つまるところ、プログラムの出力をDropbox用フォルダへ指定すれば自動的にアップロードされるという事。また、フォルダにファイルを置いて同期している為、クライアントを止めた場合やオフラインでも使用可能ですあとで変更部分を同期するのみ。

自分の必要なものを2GBに絞り、上手く使えっ

最初はマニュアルの内容に沿わず、デーモン専用のユーザを立ち上げて/home/dropbox/とかして共有させようかなと思ったのですが、結局ユーザ毎にDropboxクライアントをセットアップする方法に落ち着く。私以外がログインする場合、ありますからね。地味にGentoo用のrc起動スクリプトが地味にその辺りをカバーしていた事も一つの理由。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20101019182101

おおきづち

バウンスメール解析システムBounceHammer
バウンスメールが貯まりがちな貴方に送る素敵なソリューション。見易くて良いですね・・・これ。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20101014185855

きょうふのうどん

# emerge -uDNpv system
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   U ] dev-libs/openssl-1.0.0a-r3 [0.9.8o]...(略

Total: 1 package (1 upgrade), Size of downloads: 0 kB
以降、emerge -uDN system 本番と revrep-rebuild

OpenSSLのバージョンアップキター
しかもメジャーだ!

...
更新完了

....OpenSSLアップデートマジ危険

OpenSSL-0.9.8o -< OpenSSL-1.0.0a
・Apache (手動)
・Postfix
・Sudo
・Sshd

一気に動かなくなったり。

ApacheとPostfixについてはモロに関連してるし何となく分かるが何故Sudoが (とSSH) が駄目?そして、実は同じ様な環境の生き証人に確認を取ったところ、気づかぬうちに該当バージョンに更新できていたとのこと。Useフラグとか辿ってみたらLinodeの初期状態のSudo, Sshdについてはopenldapを使っている事。また、openldapがsshを使っている事に気づく。多 分 こ れ だ。うーん、折角シンボリックリンク貼られてるのに /usr/lib/libssl.so を直接アクセスしてしまってる・・・困ったね

作り直せば良いんだけど・・・なんとも初期構成の時点で「まぁ、いいか」と考えた辺り、詰めが甘かった。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20101006230212

最近サボりぎみ

Spamassassinをアップデートしたらコケたり。
Child process [pid] exited or timed out 
without signaling production of a PID file:
exit 255 at /usr/sbin/spamd line 2588.
* Failed to start spamd        [ !! ]

とりあえずエラー部分のスクリプト読んでも特に異常は・・・外的要因と推。

ぐぐって以下を参考にする
http://www.directadmin.com/forum/showthread.php?t=35271

sa-update -D --nogpg
とりあえず実行したら動いた。
 man sa-update

(略)
-D, --debug [area=n,...] Print debugging messages
(略)
--gpg and --nogpg Use (or do not use) GPG to verify updates
                 (--gpg is assumed by use of the above
                 --gpgkey and --gpgkeyfile options)
そういえば更新時にパールモジュールを大量に更新していた。
PGPの有無は置いておいて、一度再構成する必要があるのだろう。

教訓: Spamassassinの更新でPerlモジュールが変わったらsa-update

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100929232346

ブロッキングと聞くとウメ○ラ

さて、世間で有力とされる有害コンテンツを禁止する為のDNSブロッキング。掻い摘んで説明すると、ドメイン名からサーバが実際通信に使用するIPアドレスに変換するのがご存知DNS(DomainNameSystem) で、アダルトサイトとかの有害コンテンツを置くサーバをブラックリスト化して、名前引き (IPアドレスへ変換) 要求があった場合には変換をせずに拒否して、接続先のIPアドレスを答えない仕組みです。

ちなみにこれはサーバ自体が無効となる仕組みではなく、あくまでドメイン名をなかった事にする対策です。HTTPを例に挙げ、IPアドレスが有効な場合には接続は可能である為、IPアドレス直指定で何かしらコンテンツを見ることとなります。一般的にHTTPサービスを行うにあたり、VirtualDomainの機能を大抵使っています。VirtualDomainはIPアドレス一つに対し、アクセス要求したドメイン名を使用して、内容を分けて表示します。つまりはDNSの結果によって、有害なコンテンツのドメインは内容が塞き止められるということ。非常に地味に遮断できているではないか。ということ。

しかしHTTPに限り言えば、いくらでもヘッダは書き加えられるわけで・・・Firefoxでは開発用の拡張ににヘッダを追加/改変できるものがあり、IPアドレスとホスト名をセットするだけで継続的に遮断された筈のVirtualDomainにアクセスが出来たりします。

さて、悪意のあるWebページにアクセスをする場合、人間としてはやはりドメイン名を使ったアクセスをします。DNSのブロッキングもその方法であるが故に止めるのでしょう。

初見のドメイン名のみ知っている場合については、ブラックリスト入りしたドメイン名のIPアドレスを受けられない為、上記の通り接続ができません。しかし
  • ブロッキング未対応DNSのキャッシュサーバの扱い
  • Robtex.comにてキャッシュされた情報からモヒ※られる
  • 空きProxyリスト的な扱いでIPアドレスとドメイン名の有害コンテンツ対応表の流通による崩壊

ドメイン名に関してはレジストラレベルから抹消/登録の方法を難しくするのが正解な気もします。

・・・さて、これは本当に有効な方法なのだろうか。迷惑メール等の日々の雑なアクセスに対しての問題は解決しても、Webを筆頭に寧ろ簡単にコンテンツ見せず隠れてしまうぶん、何が置かれるか分からない暗黒の時代が来るのではないだろうか?とかテキトウに考えたり。少なくともWebに置かれる違法コンテンツ、自動ポルノ規制の方法としては生殺しであるぶん有効な方法とは思えない。

※モヒる = ヒャッハーの意

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100918025323

いいのかい?ホイホイそんなメール送って

SpamAssassinの運用を行って以来パタッとTwitterのメールが来なくなったり。調べたところSpam判定の処理のスコア指定を誤って判定後に即隔離されていたり。判定後の処理についてはこちらの対応でどうにかなるのだけれど・・・ ところでこいつを見てくれ、こいつをどう思う?
X-Spam-Status: Yes,
score=13.961
tag=12 tag2=20 kill=30
tests=[
ARIN=0.1,
AWL=-0.895,
CONTENT_TYPE_PRESENT=-0.1,
DNS_FROM_OPENWHOIS=2.431,
FAKEDWORD_ONE=0.5,
FAKEDWORD_VERTICALLINE=0.5,
FAKEDWORD_ZERO=0.5,
HEAD_ILLEGAL_CHARS=3.729,
HTML_MESSAGE=1,
HTML_OBFUSCATE_10_20=3.196,
MIMEQENC=0.2,
MULTIPART_ALTERNATIVE=0.1,
ONLY1HOPDIRECT=1,
ONLY1HOPDIRECTARIN=1,
QENCPTR1=0.2,
QENCPTR2=0.2,
RCVD_IN_CHINA=0.1,
RCVD_IN_CHINA_KR=0.1,
RCVD_IN_TAIWAN=0.1,
UTF8=-0.1,
X_CHINESE_RELAY=0.1
] autolearn=spam
・・・凄く SPAMです。

とりあえず高スコアに至らしめる項目はこの3件。
DNS_FROM_OPENWHOIS  RBL入り
HEAD_ILLEGAL_CHARS  文字コード不一致
HTML_OBFUSCATE_10_20 HTML不明瞭

うん、先日のBlogの通り、ある程度の軽減措置として日本用のスコアが書かれたlocal.cfの適用していましたが・・・Twitter公式から送られるHTMLメールがこのように判定されている模様。なんとも・・・

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100912015201

うそ8000が止まった日

何の気なしにメール受信を試みたらサーバに繋がらないことが発覚。幾つか試行してみたところデーモンが止まっているというよりはネットワーク的に繋がらない模様。契約のLinodeの管理画面からコンソールにアクセスをしたところ、コンソールは無事である事を確認。とりあえずチェックをしても異常は無かったので、とりあえずリブートしてみた。

立ちあがらねぇorz
Bootボタン押しても立ち上がらない orz
コンソールにアクセスしてもコンソールに繋がらない orz

軽く詰み状態だったので、管理画面からの「Support」にて対処希望チケットを発行してみる。問題のカテゴリと内容を書いて発行すると担当者に届いてそこからサポートが開始されます。

01:04
Dear Linode Suppport,

Today, I could not connect my server (from japan).
So I sign-in to my account. And connect to console.
At first, I could connect console.
I checked daemons and, server resources, and there was no problem.
So, I rebbot my server. After that, Server coiuld not boot up,
and could not connect console.. Would you please check "what's happened?"

01:09
Hello,

We're sorry to hear that you're having difficulty booting your Linode.
Our administrators are currently looking in to the issue.
We will get you back online and update this ticket as soon as we can.

01:19
Thank you for fast reply.

After I read you reply, I notice that server is up! Maybe It's ok.
If there is trouble, I hope to be fixed.
If I found a same case or other trouble, I'll contact you later.
Thank you for fixing it.

Sincerely yours.

01:23
Hello,

Glad to hear you're back online.
We believe that the issue has been resolved at this time.
You should have no further problems.

うん、サポートが凄い早い。最初のコンタクトに5分。似た経験のある身としては少し惚れてしまう。それを可能にしてる TTS (TroubleTicketSystem) ってのは便利だなぁと思う。

さて、わざわざこの様な微妙な英語を使った事を日記に書いて何が言いたいかと言うと「稚拙でも英語は出来たほうが良いよ」ということ。「この程度でも気合で何とかなるよ」ということ。インターネットのサービス使ってると英語に触れる機会もあり、そのぶん然るべき障害報告や、サポートを受ける事もありますので・・・とりあえず高校程度の知識でもなんとかなるもので、たまには英語の事も思い出してあげてください。

ところで、今回の原因ですが、おそらくはLinodeのネットワークの上流の障害、特にリブート後ステータス等も取れていないためおそらくはDHCP機能がこけてたんだろうなぁ・・・と推測。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100910221534

Amavisd-new+SpamAssassin+ClamAV

本日は有給なり。本日は有給なり。 ということで、今日はサーバを相手にキャッキャウフフ。コンピュータは基本的に人に尽くすとても賢くて良い子です。あははは。新参ドメインというのもありますがPostfixにS25Rを導入して未だにSPAMに悩まされた事は無いのですが、来るであろう迷惑メールを想定してSpamAssassinとClamAV、Amavisd-newを導入。

■ /etc/portage/package.use
mail-filter/amavisd-new  -ldap spamassassin
mail-filter/spamassassin -ldap
ただ、ほぼデフォルトで動かしLDAPなど噛む必要が無いのでパッケージオプションは除去。

基本はGoogleにて載っているパッケージをインストールして最低限の調整を行えば動くようになります。 が、そのまま動かすと色々とメンテ上大変になるので幾つか手を加えたものだけ抜粋。 基本部分参考サイト:「Clam AV」 + 「amavisd-new」の設定 (CrimsonSnowさん)

■ /etc/passwd
spamd:x:[pid]:[gid]::/etc/mail/spamassassin:/sbin/nologin
SpamAssassin用ユーザ作成。 (Amavisd,ClamAVはパッケージ標準で作成)

■ /etc/conf.d/spamd
#SPAMD_OPTS="-m 5 -c -H"
SPAMD_OPTS="-m 5 -c -H -u spamd"
デーモンを挙げての動作となるが、rootでの動作が標準となっている為、spamdにて立ち上げるよう変更。

■ /etc/cron.weekly/spam_prefs.cron
#! /bin/sh

FILE_NAME="user_prefs"
PREFS_NAME="local.cf"
PREFS_URL="http://www.flcl.org/~yoh/"

COMM_PREFS="uso8000k_prefs"

SPAMD_PREFIX="/etc/mail/spamassassin/"
SPAMD_SCRIPT="/etc/init.d/spamd"

cd $PREFS_PREFIX

/usr/bin/wget -qN $PREFS_URL$FILE_NAME
cp $PREFS_NAME $PREFS_NAME.bak

diff $FILE_NAME $PREFS_NAME.bak > /dev/null 2>&1
if [ $? -ne 0 ]; then
mv $FILE_NAME $PREFS_NAME
cat $COMM_PREF >> $PREFS_NAME
$SPAMD_SCRIPT restart
fi
一週間に一回SPAM対策用のある程度精査されたSpamassasin用共通設定をダウンロードするスクリプト。また、こちらの設定もCatにてこっそり足している。
また、各デーモンのホームについては全てがAmavisを軸としたメールフィルタの機能となる為、メールフィルタ用のグループ (mailflt等) を作成して、各サービスのホームディレクトリに権限設定しておくと色々と連携させる事も容易。

それにしてもamavisdの設定ファイルが長いうえに実質Perlスクリプトで苦痛。死にたい。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100908221216

匿?メール

ひょんなことから匿名メールを送る仕組みを急造する。

準備物:
  • Sendmail相当 (Postfix) SMTPサーバ
  • Procmail
  • Procmail同梱のFormail

.forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #[username]"
Sendmail/Postfixのユーザ環境での転送処理。ここでとりあえずProcmailに転送します。ちなみに余談で、Procmailへ渡すのは"| /usr/bin/procmail" で良いのだけれど、こう書く一昔前の慣わしだそうです。玉虫色に染まれ!さん:procmail用の.forward設定の源流を探るにて詳しい説明が。とりあえず一昔前のSMTPサーバが同じ内容の.forwardを誤解しないようにとのこと。

.procmail
PATH=$HOME/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock
SENDMAIL=/usr/sbin/sendmail

FROM=anonymous@example.com
FORWARD=target@example.com
MASK=[MASK]

:0
* ^Subject: Anonymous
| formail -A "X-Loop: $FROM"\
 -I "From: $FROM"\
 -I "Return-Path: $FROM"\
 -I "Reply-To: $FROM"\
 -I "To: $FORWARD"\
 -I "Received: $MASK"\
 -I "User-Agent: $MASK" \
| $SENDMAIL -i $FORWARD
条件: "Subject: Anonymous"で始まるものについて、X-Loop:ループ検知用ヘッダ追加 (-A) 後、送り主情報 (From:) を用意したアドレスへ塗り替え (-I) 、User-Agent:、Received:等、送り主を特定できる情報を可能な限りダミーで塗り替える。(-I) そしてその結果を登録された送り先へ送るといった内容。至極単純。Procmailインストール時に入るFormailですが、これが非常にお手軽なうえ強力で・・・便利です。

ところで、Procmailのレシピ中パイプ通した時に\の改行を加えると挙動が変わって配送されなかったり。それに故実際は1行で繋いでいる訳なのだがー 何故だろう。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100904171614

ひょっとしてそれはギャグで

本日、某ML伝のコンピュータ好きが集う集まりにて、耳を疑うことを聞きました。その集まりのWebアプリケーションのセキュリティについての勉強会にて「ログを出力するのはセキュリティ上良くない」ということ。続いて「問題のトレースには必要であるので、我々はログを指定した場所に出力を啓蒙させている」という事の公言。

さも当然のように「ログの出力は良くない」とされている・・・何を言っているんだろう。これは私が藁人形論法に釣られてしまったのだろうか? 話し手たちの立場が違うのかイマイチ話が分からない・・・是非とも教えて欲しいところです。

ログはシステムの内部が丸見えとなる理由からという良くないとの説明でしたが、ログは普通は開発側しか見れない仕組みであり、外部にログを出力する人はいるのでしょうか?見れない場所に置いても問題なのであれば外部の人間が見れているということで既にプログラム、サーバ、ネットワーク含めてアウトだと思います。開発内部向けの話としてもプロジェクトの人間の間での実装情報を隠匿するって…何か理由があるのでしょうか。大企業では製品の分担で互いの担当作業のログを隠匿する必要があるのでしょうか。敢えてログ出力をしない選択肢がイマイチ思いつきません。そもそも管理系のではなく、アプリケーションレベルの話で。なんとも消化不良だ。

Posted by uso8000k | Permalink | Categories: Diary, Tech | [ツィート(笑)]

20100818205529

自由な思想溢れるマインド

Spamassassinインストール、調整時のドキュメントにによくあるtlec.linux.or.jp からuser_prefs をダウンロードすると便利という話。日本語対応やスコア調整大変よく調整されて非常に重宝していましたが…

tlec.linux.or.jpが使えない・・・堕ちたというか、名前自体吹っ飛んでるよ。どうしたものかな。

と思ったら、実は中の人が個人のページで一時的に公開している模様。

SpamAssassin用「TLECのuser_prefs」は、ここにあります 
ありがたやありがたや。Gentooの過疎MLとレイヤー低めのしか読んでいないので気づかなかったり。

Posted by uso8000k | Permalink | Categories: Diary, Tech | [ツィート(笑)]

20100813183632

捜し物はそもそも無かったのだよ

昨日の不思議な事を後輩に話したら解決したり。準仮想で動く場合のカーネルはDomain 0 (仮想ハイパーバイザXenを管理する為の仮想環境) に置かれるとのこと。なるほど。動いてる環境からの癖 (大体の動きとか/インターフェイスとか) しか知らないで殆ど完全仮想で動かしてたからなぁ…知らなかった。色々やってみるものですね…知らなくとも準仮想までは知っているわけで、まだ状況から推測する力が足りないと実感。反省はここまでにしてXen準仮想化ドメインの設定 Pygrubを使っているのかはどうだかは分からないが、カーネルとブートローダはXen側の管理となって、概ねの動きはこのようで。なるほどなるほど。

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100812220347

探し物は何ですか? 見つけやすいもの…だった筈

キッカケは些細な事
 $ ls -la /boot
total 8
drwxr-xr-x 2 root root 4096 Jun 12 2008 .
drwxr-xr-x 19 root root 4096 Jun 29 11:33 ..
-rw-r--r-- 1 root root 0 Jun 12 2008 .keep
lrwxrwxrwx 1 root root 1 Mar 20 2009 boot -> .

LinodeのGentoo Linux環境にて/boot内に"/boot/boot → . "とシンボリックリンクのループしていて・・・なんぞこれ?から始まる。さてカーネルは何処にあるのだろうか。

とりあえず一発目dmesg
 $ dmesg
Linux version 2.6.xx.xx-linode22 (root@build.linode.com)
(gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #1 SMP
>> Ubuntu
>> Ubuntu
>> Ubuntu
(´゚ω゚):;*.ブッ XenのUbuntuの準仮想環境を構築してGentooで乗っ取ったのだろうか?特に気にしていなかったが改めてdmesg読んで面白いものが見れました。

ということで
$ eselect kernel list
Available kernel symlink targets:
(none found)
portageで入っているわけではない模様。

さて、気を取り直して引き続き調査…名前にアタリをつけて総舐め実行

$ sudo find / -name "*linu*" -print 
$ sudo find / -name "*ker*" -print
結局現段階では目的のもの見つからず・・・ うう・・・モヤモヤする


おまけ:
$ ls /proc/
(略)
config.gz
(略)

!?

$ zcat /proc/config.gz | head
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.xx.xx-linode22
# Tue Nov 10 16:09:19 2009
#
CONFIG_X86_32=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y

!? これを使えばLinode環境のGentooのカーネルアップデートできる・・・のだろうか?とてもリスキーなのでこの環境ではやりませんが・・・

カーネル探していたらとんでもない物を見つけてしまった。どうしよう。(棒)

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100809181757

じわじわとなぶりごろしに

FreeBSDを使用したZFSのメモリチューニングについて

■ Genericカーネル (Mem 2GB/3GB)
vm.kmem_size 640M
= OK

vm.kmem_size 768M
= Panic kmem_suballoc Bad status return of 3

■ Tunedカーネル (Mem 2GB/3GB)
option KVA_PAGES=512 を足して再構築

vm.kmem_size 1536M
= OK

Mem 2GB/3GB
vm.kmem_size 1580M
= OK

vm.kmem_size 1584M
= k_stack allocation faild.-> シングルユーザモードへ

vm.kmem_size 1600M
= Page Fault (SWAP?)

vm.kmem_size 1624M
= Double Fault (SWAP)

vm.kmem_size 1648M以降
= Panic kmem_suballoc Bad status return of 3

とりあえず、vm.kmem_size + KVA_PAGES = KVA_PAGES * 4 (Kernel仮想メモリ空間は4MBとの事で) 近辺が安定してそう・・・というカン。足していくと徐々に不安定になる上、障害内容がまちまちである。 ひょっとして、現行のシステムは止まるギリギリより少し前 (この例では1580Mな位置づけ) に設定しているが、vm.kmem_sizeがこの均衡崩れてるから不安定なのだらうか?負荷をかけるとkmem_sizeが足りないと怒られていますので・・・

Posted by uso8000k | Permalink | Categories: Tech | [ツィート(笑)]

20100807133534

餅は餅屋

ある上下する数値をグラフで表示する際、y軸のに必要な最大値と最小値を必ず近くの5の倍数にしたいとのことで相談を受ける

m: 倍数
n: 実際の最大/最小
y: 近くの値

にわか(私):
y = n + m - ( n % m )
y = n - ( n % m )
とか考えたり
マ人(友人):
y = [(n + m -1) / m].to_i * m
y = [n / m].to_i *m

.to_iで切り捨てかける辺り、何かと結局、プログラム寄りの思考と言うのは常日頃の考え方で鍛えられるのだな、と思ったり。思わなかったり。

Posted by uso8000k | Permalink | Categories: Diary, Tech | [ツィート(笑)]