Raspberry Pi

ふと思い立ってRaspberry Piを買ってみました。水曜夜に思いついてAmazonで注文したら木曜夜に届きました。何だか便利すぎる世の中です。

2014-01-16 21.55.07

本体とケースと参考書を1冊。本体+ケースが5880円、参考書は2940円。なぜか丁度倍半分の値付け。

2014-01-18 17.30.33

とりあえず結線。USBでキーボードとマウス、HDMIでディスプレイ、RJ-45でLAN、マイクロUSBで電源と、本体の大きさに比べてインターフェースがいかにも大げさに見えます。この大きさで700MHzのプロセッサーにGPU、512MBのメモリー、各種IOポートを備えているという、驚きの完成度です。

8GBのSDHCを挿してますが、20年前に300万円位していたワークステーションが手のひらに乗る5000円の基板になってしまったというイメージです。

2014-01-18 17.30.05

27インチモニターでXのデスクトップを表示。本体とディスプレイの大きさアンマッチが素敵です。

2014-01-18 17.49.05

とりあえず宅内のDHCPサーバーとDNSサーバー、後はPHPなんかのお試し用に使おうと思ってるのでGUIは軽く試すだけ。しかし27インチでCUIを使うとlsの出力がものすごく見やすいです。

DNSサーバーは、一定時間内は何でもかんでもRaspberry Piのアドレスを返すように設定して、夜には子供らが使う機械から外のアドレスが引けないようにしてしまおうということを企んでます。

 

Captcha

当ブログは真っ当なコメントを貰うことが少ないのですが、どうでもいいコメントスパムは毎日沢山やってきます。iptablesでスパムの出処を時々まとめてネットワークアドレスごとアクセス拒否にしてたのですが、いい加減面倒になってきました。

スクリーンショット 2013-12-07 0.01.39

で、スパムフィルタか何かを入れようかと考えていたのですが、とりあえずCaptchaを入れてしばらく様子を見てみることにしました。

今回入れたのは、ダッシュボード→プラグイン→新規追加で検索フォームに「captcha」と入れて最初に出てくるものです。簡単な四則演算の結果、または演算子を入れさせるタイプです。

スクリーンショット 2013-12-07 0.08.53

設定はとりあえずデフォルトのまま使います。Captcha入力フォームのタイトルだけ入れてます。

スクリーンショット 2013-12-06 23.54.26

この状態でコメントフォームを開くと「計算式を完成させなさい」なフィールドが追加されます。

スクリーンショット 2013-12-06 23.53.29

その気になればこの程度のフォームを機械的に埋めるスクリプトを組めそうですが、バイクにチェーンロックを掛けることによる盗難抑止よりも高いレベルのコメントスパム抑止効果が得られそうです。

しかしWordPress然り、このプラグイン然り、世の中には趣味で便利なものを作ってくれる人がいるものですねぇ。実にありがたいことです。

はじめてのOSコードリーディング

2013-04-14 15.02.39

最近読んで非常に面白かった本。今まで何となくわかった気になっていたUnixの仕組みがもう少しだけわかったような気になった。

会社に入りたての頃、SCO Xenixにシリアルポートのドライバを組み込んで動かすプログラムをいじったりしていたのだが、その裏でこんな動きをしていたのか、というのが今頃になって何となくわかった。しかしXenixはinb()/outb()とかinw()/outw()とかでIOしていたのだが、その辺りのインターフェースはOSによって微妙に違うらしい。

社団法人デジタル放送推進協会

いつものようにawstatsの結果を見ていると妙にアクセスが爆発している。何事かとアクセスログを見てみると、

202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET /muieblackcat HTTP/1.1" 404 210 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //%0D/scripts/setup.php HTTP/1.1" 404 217 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //3rdparty/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 235 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //81/phpmyadmin/scripts/setup.php HTTP/1.1" 404 229 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //Admin/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 232 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //Admin/phpmyadmin/scripts/setup.php HTTP/1.1" 404 232 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //Admin/scripts/setup.php HTTP/1.1" 404 221 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //PMA2/scripts/setup.php HTTP/1.1" 404 220 "-" "-"
202.3.141.134 - - [15/Mar/2013:20:57:37 +0900] "GET //PMA2005/scripts/setup.php HTTP/1.1" 404 223 "-" "-"

ってなのが延々と出ている。こりゃ誰じゃ?と調べてみた。

macbookair:~ chitto$ host 202.3.141.134
134.141.3.202.in-addr.arpa domain name pointer www2.dpa.or.jp.
macbookair:~ chitto$ host www2.dpa.or.jp
Host www2.dpa.or.jp not found: 3(NXDOMAIN)

DNSの逆引きだけがあるというよくわからない状態。更に引いてみると、

macbookair:~ chitto$ whois dpa.or.jp | nkf -u
[ JPRS database provides information on network administration. Its use is    ]
[ restricted to network administration purposes. For further information,     ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]

Domain Information: [ドメイン情報]
a. [ドメイン名]                 DPA.OR.JP
e. [そしきめい]                 しゃだんほうじんでじたるほうそうすいしんきょうかい
f. [組織名]                     社団法人デジタル放送推進協会
g. [Organization]               The Association for Promotion of Digital Broadcasting
k. [組織種別]                   社団法人
l. [Organization Type]          aggregate corporation
m. [登録担当者]                 AS8834JP
n. [技術連絡担当者]             MI8523JP
p. [ネームサーバ]               nsx.clara.co.jp
p. [ネームサーバ]               s15.clara.co.jp
s. [署名鍵]
[状態]                          Connected (2013/12/31)
[登録年月日]                    2006/12/21
[接続年月日]                    2006/12/21
[最終更新]                      2013/01/01 01:43:53 (JST)

うーむ、IPアドレスを騙られるてるんではなかろうか、と思いもう少し突っ込んでみる。

macbookair:~ chitto$ nmap 202.3.141.134

Starting Nmap 6.01 ( http://nmap.org ) at 2013-03-15 22:47 JST
Nmap scan report for www2.dpa.or.jp (202.3.141.134)
Host is up (0.073s latency).
Not shown: 544 filtered ports, 446 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
110/tcp  open  pop3
143/tcp  open  imap
443/tcp  open  https
993/tcp  open  imaps
995/tcp  open  pop3s
3306/tcp open  mysql
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 3.19 seconds

mysqlとかhttp-proxyなんてのが開いてるが大丈夫かいな?と思いつつhttpが開いてるようなのでとりあえずブラウザでアクセスしてみる。スクリーンショット 2013-03-15 22.51.13

なんか変なレイアウトだが、コンテンツはそれっぽい。リンク先にも本物っぽいコンテンツが続いてるので、以前に本物として公開していたサーバーを他所に持っていった後の残骸が中途半端な状態で残されているものと推定。

そんな放ったらかしサーバーが誰かにやられてBotを仕込まれた挙句、他のサーバーをやるための踏み台にされてるのではなかろうか。

というわけで、使わなくなったサーバーはきちんと仕舞っておかないと廻り回って桶屋が儲かってしまうというお話。

 

mysqld

久々にブログを更新、写真を或る程度の枚数貼付けるとなぜか最後の方の数枚が表示されない。おかしいなぁと思いつつapacheのerror_logを見てみると、スクリーンショット 2013-01-13 20.10.11

なんてログが出てたので、軽く調べた所、MySQLのマニュアルに、

間違ったクエリか大きすぎるクエリをサーバに送信した場合も、このエラーが発生する可能性があります。mysqld は大きすぎるか異常のあるパケットを取得すると、クライアントに何か問題が発生したとみなし、接続をクローズします。大きなクエリが必要な場合(たとえば、大きな BLOB カラムを使用している場合)、mysqld を -O max_allowed_packet=# オプション(デフォルト 1MB)で起動して、クエリ制限を引き上げることができます。拡張メモリは要求に応じて割り当てられます。そのため、mysqld は、ユーザが大きなクエリを発行するときや、mysqld が大きな結果レコードを返す必要のあるときだけ、メモリを増やして割り当てます。

 

ってな記述があったので、どうやらパケットサイズを増やしてやれば良い模様。なわけで、/etc/my.cnfをちょと修正。[mysqld]セクションに

max_allowed_packet=16M

を追加して # service mysqld restart したら全部の写真が書き込めるようになった。しかし前にも写真たくさん貼り付けたエントリーがあるのだがそちらは何事もなかったのがちょと不思議。

→よくよく考えてみると、写真をそのまま本文に貼り付けてるというオチだった。一度メディアライブラリに上げてそこから引っ張ってくるという、普通のやり方をすれば良いだけだね。しばらく使ってなかったからやり方を忘れてしまったようだ。

モルドバ

ここしばらく妙なアクセスが多くて何事だろう?と思っていた訳です。スクリーンショット 2012-12-01 14.15.31

毎日毎日こんなのが延々とアクセスログに記録されてる訳です。Refererだけは毎日違ってるけど、どこの誰だろうと思って軽く調べてみました。スクリーンショット 2012-12-01 14.16.23

どうやらモルドバのナショナルキャリアに収容されている所の模様。実害はないけど何か気持ち悪いのでとりあえずiptablesに109.185.153.0/24のDROPを入れてみた。これでしばらく様子を見てみよう。

.MEドメイン

その昔GANDIというレジストラを使ったことがあり、そこのニュースレターを取っている訳です。ある日、Thunderbirdを使ってる人には.MEドメインとそこのメールアドレスをタダであげちゃうよ、という記事があったので早速やってみました。

やり方は簡単で、Thunderbirdで新規アカウントを追加する際に、取りたいドメイン名を入れてみて検索するだけ。スクリーンショット 2012-11-21 22.45.47

.meだけ見事に年間無料。ここで.meのやつを選んで登録ってやるとGANDIのページへ飛んでドメイン登録できます。ただし登録にはGANDIのハンドル(アカウント)が必要。

無事登録できるとこんなInvoiceがやってくる。スクリーンショット 2012-11-21 22.31.38

年間24ドルの所、プロモーションコード適用で-24ドルという扱いらしい。24ドルってことは2000円位なので1年後に更新するかは微妙。メールアドレス追加したりWebページ置けたりできるのでとりあえずしばらく使ってみることにしよう。

whoisに住所やら電話番号やらダダ漏れなので困ったなぁと思っていたのだが、account informationでPrivate Domain RegistrationをYesにしたら、その辺りの情報をGANDIの人の情報に置き換えてくれた。前はデフォルトでその状態だったのに、サービス仕様が微妙に変わったらしい。

ちなみに、TLDが.MEってことなので予想通りメジャーなドメインはことごとくnot available。ちょっと捻ったもの(dont-stand-so-close-to.meとかcome-go-with.meとか)じゃないと中々取れない模様。

WindowsPhoneでpostfixのSMTP Auth

今更ながら、IS12Tからこのサーバーで動いてるPostfix経由でメールが送れないことに気がついた。どうもSMTP Authがうまく行っていないらしい。メールが読めるからパスワードは違ってないはずなのだが、何がいけないのだろう?ちなみにThunderbirdなどからは何事もなく送れている。

Aug 20 23:20:57 gw postfix/smtpd[1063]: warning: KD182249049016.au-net.ne.jp[182.249.49.16]: SASL LOGIN authentication failed: authentication failure
Aug 20 23:20:57 gw postfix/smtpd[1063]: warning: KD182249049016.au-net.ne.jp[182.249.49.16]: SASL LOGIN authentication failed: authentication failure
Aug 20 23:20:57 gw postfix/smtpd[1063]: lost connection after AUTH from KD182249049016.au-net.ne.jp[182.249.49.16]
Aug 20 23:20:57 gw postfix/smtpd[1063]: disconnect from KD182249049016.au-net.ne.jp[182.249.49.16]

ちなみにmain.cfの一部。dovecotに認証を任せるかとも思ったけど。サービスをリスタートするとソケットファイルが読めなくなるのであきらめ中。

# Cyrus-SASL configuration
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# smtpd_sasl_type = dovecot
# smtpd_sasl_path = /var/run/dovecot/auth-client
broken_sasl_auth_clients = yes

# TLS configuration
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache