Facebook上のチェックインスポットのオーナー申請の承認を電話で行なう方法

Facebook上に存在するチェックインスポットが自社の施設の場合、オーナー申請をすることでそのチェックインスポットを自社で管理できるようになる。

この申請は

  1. 該当施設に関連する(施設のサイトと同じドメインなど)メールアドレスで申請する
  2. 該当施設の関係者であること証明できる書類を提出(スキャンした画像か写真を送信する)

のどちらかで本人確認することで承認される。

自分の場合は、1. で弾かれてしまい、2. は都合のよい書類がすぐに見つからないという状態だったが、Facebookの言語設定を英語にすることで、電話で本人確認をすることができた。

手順

ページ下部にあるEnglish(US)をクリックする

確認の小窓で言語を変更をクリックする

チェックインスポットのページ上部にあるIs this your business?のリンクをクリックする。

表示された小窓に、該当施設の正しい電話番号が入力されていることを確認する。Ext.は内線番号。2. の言語は日本語を選択しておく。準備ができたらCall Nowのボタンをクリックする。

Call Nowをクリックすると文字通り自動音声の電話がすぐかかってくるので、外線をとってくれる担当者に「このあとFacebookから自動音声の電話がかかってくるので、4桁の番号をメモっておいて欲しい」と伝えておくとよいかも。

Facebookの自動音声で伝えられた4桁の数字を入力して、Submit Verification Codeのボタンを押す。

ちなみに、電話の自動音声では数字の 7 は「しち」という発音だったらしい。

入力した4桁の数字に間違いがなければ下のような小窓が表示される。72時間以内に~のような文章があるが、実際には5分くらいでFacebookからメッセージが届く。

下のメッセージが届いたのを確認して、チェックインスポットを表示させると、通常は編集ができないはずのカバー写真が編集できるようになっている。

あとは、自社のFacebookページとして活用していく。いいね!やフォロワー、チェックインなどがそのまま引き継がれるので、ゼロからFacebookページを作るよりも手っ取り早い。

Fail2Banのログを必要最小限にする

Fail2Banを動作させていると、/var/log/fail2ban.logにログが記録される。
tail -f fail2ban.log

上の例では、1行目から5行目までが42.103.98.165がSSHへのログインを試みたログ。6行目はFail2Banのルールに従って42.103.98.165をBan(ブロック)したログだが、正直なところ1行目から5行目のようなログは必要ない。

というわけで、Ban(ブロックした)やUnBan(ブロックを解除した)の処理だけを記録するようにFail2Banの設定ファイルを編集する。
vi /etc/fail2ban/fail2ban.conf

24行目のINFOをNOTICEに変更することで、処理のみが記録されるようになる。

念のためFail2Banを再起動する。
systemctl restart fail2ban

ログのリアルタイム表示で確認して、問題がなければ作業完了。
tail -f fail2ban.log

さくらのVPS・KUSANAGI環境のFail2BanでDoS対策をする

さくらのVPSで利用できる仮想マシンのKUSANAGI。このKUSANAGIでは、セットアップした時点でFail2Banというツールを利用できる。ただし、初期段階で有効になっているのはSSHへの攻撃のブロックのみ。ウェブサーバに負荷をかけるDoS攻撃などはそのまま受け入れてしまう。

Dos攻撃を遮断するために解説サイトと同じようにFail2Banを設定しても、KUSANAGI環境では想定する動作はしてくれない。これはKUSANAGIのログフォーマットが特殊なために、Fail2Banのフィルター定義に一致しないから。Fail2Banのjailファイルやフィルターを作る前に、ログを一般的なフォーマットに変更する必要がある。

このページでは以下の環境

  • サーバはさくらインターネットのVPS
  • OSはKUSANAGI(CentOS7ベース)
  • ウェブサーバはApache(httpd)

で、Fail2Banを動作させるための設定や操作を説明する。

1. Apacheのログフォーマットの変更

まずはSSHでサーバに接続して、httpd.conf(Apacheの設定ファイル)をバックアップしておく。
cp /etc/httpd/httpd.conf /etc/httpd/httpd.conf.backup

このhttpd.confの47行目行頭の#(コメントアウト)を外し、48行目を#でコメントアウトする。

新しいフォーマットでログを記録させるために、Apacheを再起動する。
systemctl restart httpd

Apacheの再起動後、アクセスログのフォーマットが変わったことを確認するとともに、アクセスログのパスを確認しておく。
tail -f /home/kusanagi/(KUSANAGIのプロファイル名)/log/httpd/access.log

サイト全体を常時https化している場合は、パスの最後がssl_access.logになるので注意。

2. no_logの編集

KUSANAGIのアクセスログはページへのアクセスのみが記録され、ページに埋め込まれたファイル(画像やCSS、JavaScriptなど)へのアクセスは記録しない設定になっている。が、WordPressのテーマによっては、あらかじめ指定された拡張子以外のファイルも読み込むものがある。

アクセスログをよく確認し、そういったファイルが見つかった場合は、上で編集したhttpd.confのno_logの定義に拡張子を追加する。

56行目の拡張子が書かれている箇所に |(拡張子) の形式で追加する。

自分の環境ではウェブフォントの拡張子(woff2形式)を追加する必要があった。アクセスログをリアルタイム表示(tail -f)しながら、ブラウザでページを表示させると見つけやすい。重要なのは一度のアクセスでログが1行だけ記録されるようにすること。

Apache再起動後にサイトへアクセスして、ログフォーマットの変更が適用されたことを確認する。
systemctl restart httpd

tail -f /home/kusanagi/(KUSANAGIのプロファイル名)/log/httpd/access.log

3. jail.conf の複製と編集

ここからはFail2Banの作業となる。Fail2Banの設定ファイル、jail.confを複製してjail.localを作成する。
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/jail.local

作成したjail.localの任意の場所に、以下の記述を追加する。

自分の場合は216行目あたりの
#
# JAILS
#

のすぐ下に追加した。

この記述は、3秒間に10回のアクセスした接続元を600秒間(10分間)遮断して、それをメールで通知するというもの。3秒のあいだに10回のページ表示というと、かなり不自然なアクセスだ。bot的なプログラムや、人間であればF5アタックのような接続に該当する。

次に、apache-ddos.confという名前でフィルターのファイルを新規作成する。
vi /etc/fail2ban/filter.d/apache-ddos.conf

このapache-ddos.confに、以下の記述を貼り付けて保存する。
[Definition]
failregex = ^<HOST> .*"(GET|POST).*
ignoreregex =

failregexはIPアドレス(HOST)の位置を特定するための正規表現。

ignoreregexは除外する条件。アクセスログにページのURLだけでなく、ページに読み込まれたファイル(JavaScriptやcss、画像など)までログに記録される場合はここに拡張子を書くことになるが、httpd.confのno_logで定義しているのでここでは何も指定しない。

4. 動作テスト

これで準備は整った。Fail2Banを再起動して
systemctl restart fail2ban

3秒間に10回以上という条件に当てはまるようにF5アタックを試してみる。

Apacheの上のレベル(firewalld)でアクセスが遮断されるので、403 Forbidden などのエラーページは表示されず、webサーバ自体に接続できなくなる。

5. 関連コマンド

banされたIPアドレスの解除
fail2ban-client set apache-ddos unbanip (IPアドレス)

DoS攻撃を目的としたアクセスでなくとも、たとえばWordPressのダッシュボードで複数の画像を削除する場合などにFail2Banでブロックされる。その場合は上のコマンドで解除するか、/etc/fail2ban/jail.d/jail.localの50行目あたりにあるignoreipに除外するIPアドレスを記述する。IPアドレスが複数ある場合はスペース区切りで。
ignoreip = 127.0.0.1/8 0.0.0.0 1.1.1.1

fail2banの状態確認
systemctl status fail2ban

緑色の文字でactive (running)と表示されていれば、正常に動作している状態ということになる。