たけまるの日記

たけまるの日記です。web関係の技術ネタが多いですが、好きなことを適当に書いています。

MH4Gがダウンロードできない!? macで3DSのSDカードをフォーマットする方法

皆さん元気に狩ってますか!

いよいよモンスターハンター4Gが発売されましたね!!

早速ダウンロードしようとしたら、SDカードのブロックが足りないと言われDLできず。

よく見たら3DS買った時についてきた4GのSDがそのまま挿さってました(;´Д`)

そんなわけでそのへんに転がっていた32GのSDに載せ替えます。 とりあえずネットで軽く検索したら、PCでSDカードの中身をまるっとコピーすれば移行できそうなのでやってみました。ところが…。

f:id:takemaru123:20141011114013j:plain

「SDカードが認識できないためSDカードに入っているソフトを表示できません。」と表示され認識されず…。

f:id:takemaru123:20141011113558p:plain

何が悪かったかというと、mac3DS用のSDカードをフォーマットするときは「MS-DOS(FAT)」を選択しなければならない事でした。通常SDカードをフォーマットするときは「exFAT」を選びがちなので、注意が必要です。

f:id:takemaru123:20141011115249p:plain

その後、Finderから一度旧SDの中身をmacにコピーして、新しいSDにコピーしなおせば問題なく認識されました!

f:id:takemaru123:20141011114009j:plain

ちなみに今回使ったSDカードはこちら。 こんな値段なのに3DSで使える最大容量で、転送速度も早いのでロードが早くなってとても快適です。 容量不足でお困りの方は是非ご検討ください。

国内のVPSサービスを、主にディスク容量とinode数の面からコスト調査してみた

対象はさくらVPS、カゴヤVPSDTIのServersMan@VPSです

サービス名 プラン 仮想化タイプ 月額(税込,年契約) 容量(kB) inode数 容量単価(円/GB) inode単価(円/1万inode) 容量(kB)/inode
さくらVPS 1G KVM 924 100,893,076 6,414,336 9.60 1.44 15.73
さくらVPS 2G KVM 1,396 204,105,516 12,967,936 7.17 1.08 15.74
ゴヤVPS タイプA OpenVZ 864 209,715,200 3,904,333 4.32 2.21 53.71
ゴヤVPS タイプB OpenVZ 1,728 419,430,400 7,808,667 4.32 2.21 53.71
ゴヤVPS タイプC OpenVZ 3,456 838,860,800 15,493,388 4.32 2.23 54.14
ServersMan@VPS Entry OpenVZ 504 52,428,800 3,000,000 10.09 1.68 17.48
ServersMan@VPS Standard OpenVZ 1,009 104,857,600 6,000,000 10.09 1.68 17.48
ServersMan@VPS Pro OpenVZ 2,037 209,715,200 12,000,000 10.18 1.70 17.48

※2014/10/10時点
※グレーアウト部分は予測値

考察

  • 単純に容量が欲しい場合はカゴヤVPSがGB単価4.32円/月と大変優秀、1ファイルが大きいコンテンツ(画像や動画)を置くには良さげ
  • しかし小さいファイルを沢山置くような必要がある場合、inode単価でみると一番悪い
  • 1ファイルが50kB以下の場合、ディスク容量を使いきる前にinodeを使い切る計算
  • さくらVPSの2Gプランであればinode単価が一番安く、15kB以上であればディスクをフルに使える

VPSのディスクのサイジングを考える場合、容量だけではなくinodeにも注意する必要がある。

さくらVPSの特徴

  • 長所 : 一番直感的に使える普通のLinuxマシン
  • 長所 : 国内3箇所のリージョンから選べる
  • 長所 : 同一リージョン内のVPS同士でローカルネットワークが組める(eth0はグローバルIP、eth1,eth2はローカルNWとして好きに使える)
  • 短所 : 後からのスケールアップが不可能(したけりゃさくらクラウド使えって事なんだろうけど)

kagoya vpsの特徴

  • 長所 : インスタンスのスケールアップ・ダウン(CPUコア数、メモリー容量、ディスク容量)をダウンタイム無しでできる
  • 長所 : 料金が1日単位
  • 短所 : OpenVSなのでちょっと特殊なこと(カーネルモジュール追加等)は何もできない
  • 短所 : ファイルシステム関係も何もいじれない
  • 短所 : fuseやloopマウント等も不可

DTI VPSの特徴

  • 長所 : 1インスタンス単価が最安
  • 短所 : OpenVZなのでkagoyaの短所と基本的に一緒

ちなみにOpenVZなカゴヤVPSで何とかinodeを増やそうと、ファイルをext4でフォーマットしてmount -o loopしようとしましたが、loopデバイスの使用が制限されていて(?)実現できませんでした。 同じ理由でFUSEデバイスも制限されていて、そちらのアプローチもムリでした。

まだ試していませんが、恐らくさくらVPSであれば上記の手法が使えるのではと思っています。 #そのうちやる

結論

結局さくらVPS最強。

macで最新のcoreutlsを使う方法

coreutilsUNIX系OSの基本的なコマンド(lsとかcpとか)を提供するパッケージである。

今回はmaccoreutilsに含まれるsortコマンドの-Rオプションを使いたかったのだが、macosが標準で提供するsortコマンドが古いバージョンのため使用できなかった。 このため、homebrewからcoreutilsをインストールし、使用する方法を実施してみた。

ちなみにsortコマンドの-Rオプションはランダムでソートするオプションであり、バージョン6以降で利用できる。

実施前

$ sort --version
sort (GNU coreutils) 5.93

homebrewによりcoreutilsをインストール

$ brew install coreutils 
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/coreutils-8
######################################################################## 100.0%
==> Pouring coreutils-8.23.mavericks.bottle.tar.gz
==> Caveats
All commands have been installed with the prefix 'g'.

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

    PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:

    MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

==> Summary
🍺  /usr/local/Cellar/coreutils/8.23: 214 files, 10M

PATHの順序次第では標準のcoreutilsをすべてbrew版に置き換えることもできるが、今回はsortコマンドだけ使えればよかったので

# ~/.bashrc 
alias sort='/usr/local/opt/coreutils/libexec/gnubin/sort'

で逃げることにした。

$ sort --version
sort (GNU coreutils) 8.23

$ echo -e "a\nb\nc" | sort -R
c
b
a

無事、sortコマンドの-Rオプションが使えるようになった。

参考

Parallelsshを使ってsshコマンドを多ホストで実行

install (MacOS)

$ brew install pssh

ホストリストを作成 (host.list)

user@host1.test
user@host2.test
user@host3.test:12345
…

実行

$ pssh -h /tmp/ssh.list "hostname"
[1] 14:49:28 [SUCCESS] user@host1.test
[2] 14:49:28 [SUCCESS] user@host2.test
[3] 14:49:28 [SUCCESS] user@host3.test:12345

iオプションで実行結果を表示できる

$ pssh -h /tmp/ssh.list -i "hostname"
[1] 14:48:28 [SUCCESS] user@host1.test
host1.test
[2] 14:48:28 [SUCCESS] user@host2.test
host2.test
[3] 14:48:28 [SUCCESS] user@host3.test:12345
user@host3.test

sudoをしようとするとttyが無いと怒られるので、必要であればssh先のsudoersを書き換える

参考 http://orebibou.com/2014/07/%E8%A4%87%E6%95%B0%E5%8F%B0%E3%81%AB%E5%AF%BE%E3%81%97%E5%90%8C%E6%99%82%E3%81%ABssh%E6%8E%A5%E7%B6%9A%E3%80%81%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/

IPv6が有効なホストからSOCKS経由でGoogleに繋ごうとすると失敗する

さくらVPSを2台契約しておりまして、

hostB$ ssh -D 1080 username@hostA

という感じで片方のホストをSOCKSサーバーにして、もう片方のホストからSOCKS経由で外に行く、なんて事をやっていました。


しかし、特定のホストだけ接続できない。
例えば以下のようになります。

hostB$ curl --socks5 localhost:1080  "http://www.google.com/"
curl: (6) Failed to resolve "www.google.com" for SOCKS5 connect.


勿論SOCKSを経由しなければ

hostA$ curl "http://www.google.com/"
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=XggRVIyJMcGF4AK10YGgBw">here</A>.
</BODY></HTML>
hostB$ curl "http://www.google.com/"
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=XggRVIyJMcGF4AK10YGgBw">here</A>.
</BODY></HTML>


これ、相当ハマったのですが、以下のようにしたら動きました。

hostB$ curl --socks5 localhost:1080 --ipv4 "http://www.google.com/"
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=XggRVIyJMcGF4AK10YGgBw">here</A>.
</BODY></HTML>

そうです、IPv6が問題だったのです。
curlのオプションで、IPv4の使用を強制したら繋がりました。
つながらないホストは、IPv6に対応しているホストでした。


しかし謎なのは、現行のさくらVPSは標準でIPv6に対応しており、2台とも問題なくIPv6通信ができます。
あまり深追いはしていないのですが、OpenSSHのDynamicForwardがIPv6に対応していない?


さて、実際はPHPcurlからIPv6対応ホストにSOCKS経由で接続できなくて困っていたので、
場当たり的にPHPcurlIPv4固定で動作させる事により回避したいと思います。

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );


ちなみにこれ、最初は別のホストで動いていたものを新しいVPSに移行したら動かなくなり調べていたのですが、
移行元ホストは古いさくらVPSインスタンスで、IPv6が無効の状態となっていました。
そのため強制的にIPv4が使われていたため動いていたようです。


時間のあるときにOpenSSHのDynamicForwardとIPv6の関係を調べよう。。


参考
http://www.businesscorner.co.uk/disable-ipv6-in-curl-and-php/

mod_evasiveのアラートメール件名(Subject)の設定

DoSアタックに遭いました。


幸いApacheBench使って単一のホストから打ってきてるだけだったので、iptablesで特定IPをフィルタすることで対応しました。
しかし、こんな幼稚な手法でもIP変えられたら同じ轍を踏む事になりますので、気休め程度にApacheDoS対策モジュールを入れてみました。


インストールは以下を参考にさせて頂きました
http://ijo.cc/it/ja/server/apache_mod_evasive/


さて、このモジュールは攻撃を食らった時(モジュールがお仕事した時)にアラートメールを送信する機能があります。
そのメールの件名を設定するには、ソースファイルを直接編集してコンパイルすると説明しているサイトがいくつかありましたが、そこまでしなくてもhttpd.confの設定だけで件名を設定できたのでメモしておきます。


DOSEmailNotifyの引数がそのまま /bin/mail の引数になっているようでしたので

<IfModule mod_evasive20.c>
     DOSBlockingPeriod 3600
     DOSLogDir "/var/log/httpd_mod_evasive"
     DOSEmailNotify "-s 'DoS Attack Alert' mail@address.test"
</IfModule>

こんな感じで行けました!

LINE詐欺が来た!手口の全てを暴く

今話題のLINE詐欺、ついに俺のところにも来ました。
手口の一部始終を公開したいとおもいます。


とりあえず滅多にLINEなど来ないひとからいきなり以下のメッセージが。


「何してますか?忙しいですか?手伝ってもらってもいいですか?」
「近くのコンビニエンスストアでweb money の プリペイドカードを買うのを手伝ってもらえますか?」


LINEで詐欺が流行ってるのはtwitterで知っていましたが、具体的な手口までは知らなかったし、何より送ってきてる人が登録している知人の名前だったため、流石に怪しいとは思ったけどこの時点では3割くらいは本人の可能性もあるかなと思っていました。



とりあえず本人確認のため、その人の個人的な趣味の事について聞こうとするも、完全スルー。
この時点で本人の可能性は0になりました。
ので、おちょくりモードに移行。



こんなかんじでのらりくらりとかわされる。



色々聴きだしてみる。明らかに日本人ではないね。



買ったように見せかけ、画像をURLで出す。
ちなみにこのURLを開くと出てくる画像は即興で作ったコレ。



そんなわけで見事にひっかかりました。
奴らのIPがバッチリ。

175.44.216.29 - - [28/Jun/2014:18:05:16 +0900] "GET /webmoney.jpg HTTP/1.1" 200 44935 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"
175.44.216.29 - - [28/Jun/2014:18:06:17 +0900] "GET /webmoney.jpg HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"
175.44.216.29 - - [28/Jun/2014:18:12:30 +0900] "GET /webmoney.jpg HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"

WindowsXPにIE6wwww



IPを調べて見ると案の定中国。
見せる画像日本語じゃなくて中国語にしとけばよかった。


ちなみに別経路で本人に連絡をとってみたのですが、アカウントを乗っ取られて自分ではログインできず、パスワードも変更できない状況との事でした。


実際この手口は既にかなりやられているようで、他サイトで同じID/PWを使いまわしている人が狙われてるとか。
これでWebMoney渡しちゃうような人はそうそう居ないとは思いますが、そもそもアカウントを乗っ取られないように各自対策は必要ですね。


参考
LINEで発生しているWeb Moneyを要求する不正ログインについてまとめてみた。 - piyolog