mattintosh note

どこかのエンジニアモドキの備忘録

フィギュア関連の写真はすべて削除されました。過去の写真については Internet Archive を参照してください。
ホビー関連の情報は hobby.mattintosh-note.jp に移行しています

Cloudflareを約1年使ってみて

新しいブログのサーバー契約と同時期に利用を開始した Cloudflare。そういえばそろそろ使い始めて 1 年くらい経つのでは?と思って確認してみたらだいたい 1 年でした。

はてなブログでは独自ドメインにすると定期的に IP をチェックしているようで Cloudflare 使うことが出来ないのですが、外部サーバーと組み合わせて色々とやっております。

この 1 年で Cloudflare で何をしたかを軽く書いておこうと思います。

ホスティングサーバー、VPN からのアクセスをブロック

mattintosh-note.jp

mattintosh-note.jp

mattintosh-note.jp

何かしら対策をせねばならない、と思ったのは偽の EC サイトの存在です。私は自身の写真にシリアルナンバーを埋め込んでおり、それを使って Google の画像検索が出来るようにしています。(無断転載されていなければ)本来なら私の Twitter やブログしか出てこないはずなのですが、まぁ偽の EC サイトがわんさか出てきます。明らかに私のブログをデータ収集対象としているのでしょう。

まずはそういったデータ収集を行う AWSGCP などからのアクセスをブロックすることから始めました。単に AWS と言っても利用されている IP アドレスは多大であり、レンジも分散しています。

しかし、Cloudflare では ASN(自律システム番号)による条件付が可能なため、AWS であれば AS14618 を条件にしてしまえば IP やレンジに関わらずすべてをブロックすることが可能です(ただし、何らかのデータ連携サービスを利用している場合はそちらにも支障が出る可能性があるので例外条件の作成が必要です)。

その他のホスティングサービスや VPN については ipinfo.io などのデータベースで hosting となっているものを探して登録していくことになります。

ipinfo.io

日本だけでも hosting に該当する ASN はこれだけあります。

   2500   2512   2515   2526   3258
   4675   4678   4680   4694   4695
   4711   4785   7500   7506   7511
   7514   7516   7522   7530   7660
   7663   7668   7671   7674   7677
   7678   7682   7684   7690   9353
   9370   9371   9409   9597   9598
   9600   9604   9607   9935   9990
   9993   9999  10006  10015  10016
  10021  10209  10233  17504  17505
  17509  17514  17675  17686  17689
  17693  17694  17707  17931  17937
  17941  17948  17950  17961  18068
  18069  18072  18074  18088  18097
  18140  18141  18211  18259  18263
  18272  18383  23613  23619  23620
  23634  23637  23639  23641  23661
  23761  23773  23774  23776  23794
  23798  23804  23816  23818  23824
  24252  24253  24257  24278  24282
  24284  24286  24295  24296  24477
  24567  37893  37897  37898  37900
  37905  37907  37912  37916  38074
  38627  38629  38633  38634  38638
  38639  38642  38643  38648  38652
  38658  38715  45217  45678  45679
  51044  54415  55377  55378  55383
  55388  55569  55888  55894  55897
  55899  55902  55905  55907  56291
  58649  58651  58653  58654  58788
  58789  58791  58793  59092  59094
  59095  59103  59105  59109  59110
  59123  63770  63774  63776  63780
  63786  63789  63790  63795  63798
  63800  63805  63806  63997 131078
 131894 131896 131898 131899 131901
 131904 131905 131914 131917 131921
 131936 131939 131942 131945 131948
 131963 131964 131966 131969 131971
 131972 131980 131984 131987 131990
 132827 133180 133203 133476 133782
 133900 134109 134351 135372 135401
 136779 136796 137445 137462 138652
 139345 139358 139468 140683 141757
 142052 142616 146981 146982 146985
 146986 146987 147035 147295 149428
 150296 150325 150356 150366 150367
 150445 150685 151371 151378 151380
 151381 151382 151386 151420 151970

主にアクセスの多い日本、アメリカ、中国、香港、台湾、韓国、シンガポール、ロシアでこの hosting に該当する ASN をすべてブロックしようと思ったのですが、Cloudflare のフィルターには制限があり 4096 バイトまでしか登録が出来ないので断念(IP アクセスルールというのが別にあるのですがそちらは何件まで登録出来るか不明)。

仕方なくこれらはウェブサーバー側のコンフィグで設定(カスタムヘッダーとして ASN の付与が必要です)し、日々監視していく中で怪しいものがあれば IP アクセスルールの方に登録していくという方法を取っています。

現在は中国、香港、台湾、韓国に関しては ASN レベルではなく国レベルでブロックしています。そのおかげで割と平和にはなりました。Weibo やら Taobao とかで勝手に写真使われるのでブロックして正解。

また、中国ユーザーは VPN を多用しており、日本国内の VPN 拠点経由でアクセスしてきたりするのでこちらもすべてブロックしています。

他にも対策はしているのですがそこは非公開ということで。

画像の外部呼び出しの禁止

これは普通のサーバーでも出来ることですが Cloudflare でも設定が可能です。Cloudflare の方が効果的なブロック画面を表示してくれます。

mattintosh-note.jp

現在画像はすべて別のサーバーに置いてあり、カメラやフィギュア関連の写真ははてなブログには一切アップロードしなくなりました。

Cloudflare は入れた方がいいぞ!

最初は AWS Cloudfront で同じことをやろうと思っていたのですが転送量に応じて料金がかかる可能性もありましたし、ASN にも非対応でした(最近 ASN 対応したけど完全では無いようで判別出来ないものがある)。マネージドルールがあるのは魅力的ではあるのですが。

Cloudflare は多機能かつ無料で使えるので導入しない理由は無いですね。

最近では Google 検索で法律事務所や病院などのサイトが乗っ取られて勝手にメルカリのようなサイトに改ざんされているのも見かけます。ほとんどの日本のサイトは日本国外からは見れなくても問題ないはずなので海外からのアクセスはブロックしておいた方が安全でしょう。

自己防衛、大事。