今回は、「Google Cloud Platform」のファイアウォール機能で中国からの通信を遮断します。
若干、手間ですが一度だけ設定すればサーバの負荷を上げずに目的を果たすことができました。
- 中国・オーストラリアの通信はGCPの無料枠の対象外
- サーバの負荷をかけずに、中国からの通信遮断可能
- ファイアウォール設定は、APIを利用する
中国からの通信は課金対象
「Google Cloud Platform」でサーバスペックの条件を満たせば、無料で利用が可能です。
ただし、中国とオーストラリアのからの通信は、課金対象となってしまうため、注意が必要です。
特に中国からの通信は、スパムなどの攻撃か何かは不明ですが、httpを利用した通信が結構あり、自分が意図せず課金対象の通信として課金されてしまいます。
「Google Cloud Platform」を無料で利用させるため、中国からの通信を遮断した方がよいです。
中国からの通信の遮断方法
はじめは、Linuxサーバのファイアウォール機能を利用しようとしましたが、中国すべてのIPアドレスを登録したら、サーバー負荷が高すぎてサーバが不安定になってしまったので断念。
無料枠の最小スペックのサーバでの設定では無理がありました。
そこで、「Google Cloud Platform」側のファイアウォール機能を利用したらサーバー負荷をかけずに止めることができました
「Google Cloud Platform」のファイアウォールは、以下の図のイメージでサーバーの前で止めることが出来るので、WEBサーバーに負荷をかけずに、中国からの通信をブロックできます。
中国のIPアドレスを調べる
はじめにブロック対象の中国で利用されているIPアドレスの一覧を調べる必要があります
中国のIPアドレスを調べる方法は、Google等で「中国 ipアドレス」等で検索するとリストを公開しているページがいくつかでてきます。(私は こちら を参考にさせていただきました)
4800個くらいのIPアドレスブロックが表示されます。わたしはこれをすべてブロック対象としました。
IPアドレスは、国をまたいで売買されているため、時間が経つと若干変更があるため、定期的に変更した方が好ましいですが、大きな変更はないと思うので一度設定すれば、しばらく変更しなくても大きな問題はないと思います。
「Google Cloud Platform」のファイアウォール設定例
設定の前に現在の私のファイアウォール設定の画面の一部をご紹介します。
こちらの設定方法を今回はご紹介させていただきます。
実際はこのほかにも、自分の家のアドレスからのみSSHを許可したりとルール設定をしております。
ひとつのルールに255個までしかアドレスブロックを設定できないので、私の場合は、1つのルールに250個アドレスブロックを設定して、全19個のルールを作成しました。
設定方法
一つ一つのルールをすべてGUIで設定はとてつもなく手間なので、私はAPIを利用してある程度、効率的に設定しました。
①API入力用のIPアドレスリスト作成
API用のIPアドレスリストを作成、APIにアドレス入力するために
“1.0.1.0/24”,
“1.0.2.0/23”,
“1.0.8.0/21”,
:
といった形式でアドレス範囲を入力する必要がありますので、私は こちら から Nginx 形式でリストをダウンロードさせていただき、
- 先頭の「deny 」を「”」に置換
- 末尾の「;」を「”,」に置換
してリストを作成しました
②ルールをGUIで作成
まずは、以下の順でルールを作成
③APIを利用してIPアドレス情報を追加
作成したルールにIPアドレス範囲を追加させるため、APIを利用します。
APIはWEBページから利用して追加しました。
まずは、ファイアーウォールのルールのアップデート用のページを開く
右側に、「Try this API」に以下の図のように情報をいれる
プロジェクトIDは、「Google Cloud Platform」のトップページのダッシュボードから確認できます。
ブロックしたいIPアドレスを入力して「EXECUTE」を押すとルールのブロック対象のIPアドレスが設定されます
この手順で
②ルール作成
③APIでIPアドレス設定
を250個のIPアドレス単位で設定してあげると完成です。
20回くらい繰り返す必要があり、これでも結構手間です、、、
APIを詳しく勉強すればもっと効率的に実施できるかもしれませんが、はじめの一度だけの設定でよいので、私はこの手順でやり切ってしまいました。ご参考にしていただければと思います。
今日はここまで、、、
コメント