Google Cloud Google Cloud Always Free プロダクトでは中国・オーストラリアとの通信は無料ではないのに、中国からはsshやらsmtpなどのアタックが頻繁にやってきて、それに課金されてしまう。大した金額では無いが、セキュリティ的にも良くないので通信を遮断できないかなと思って調べてみたら、こちらのサイトにGoogle Cloud Platformのファイアウォール機能を利用して通信を遮断するやり方が説明されていたのでこれを参考に設定を行った。中国のIPアドレスはこちらのサイトからダウンロードできるので、これを使ってIPアドレス指定ができる。ただ、全部で5457個のIPアドレスブロックがあり、Google Cloud Platformのファイアウォール機能では一つのルールで255個までのアドレスブロックまでしか指定できないので、250個づつまとめて指定すると、22個のルールが必要になる。一つ一つGUIで設定すると大変なので、これをCOULD SHELLを使って設定を行う。

まず VPCネットワークのファイアーウォール設定の画面に行って、以下のように指定するIPアドレスブロックの通信を遮断するように設定をしていく。

ここで画面一番下の「同等のコマンドライン」をクリックすると、以下の画面がポップアップされる。

ここで「CLOUD SHELL で実行をクリックして、COULD SHELLを起動する。

上に現れたコマンドでファイアーウォールのルールが作成できるので、コマンド中の”create blk-china-01″で指定されるルール名と、最後の”–source-ranges=2.0.1.0/24″で指定されるIPアドレスブロックを変えて250個づつIPアドレスブロックをしてするコマンドをダウンロードしておいたIPアドレスブロックを使って22行のコマンド列を以下のような感じで作成する。

gcloud compute --project=moon-forestxx firewall-rules create block-china-01 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=2.0.1.0/24,1.0.2.0/23,1.0.8.0/21,1.0.32.0/19,1.1.0.0/24,1.1.2.0/23,1.1.4.0/22,1.1.8.0/21,1.1.16.0/20,1.1.32.0/19,1.2.0.0/23,1.2.2.0/24,1.2.4.0/22,1.2.8.0/21,1.2.16.0/20,1.2.32.0/19,1.2.64.0/18
gcloud compute --project=moon-forestxx firewall-rules create block-china-02 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=43.224.216.0/22,43.224.240.0/22,43.225.76.0/22,43.225.84.0/22,43.225.120.0/21,43.225.140.0/22,43.225.172.0/22,43.225.180.0/22,43.225.208.0/22,43.225.216.0/21,43.225.224.0/20,43.225.240.0/21
gcloud compute --project=moon-forestxx firewall-rules create block-china-03 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=43.254.248.0/21,43.255.0.0/21,43.255.8.0/22,43.255.16.0/22,43.255.48.0/22,43.255.64.0/20,43.255.84.0/22,43.255.96.0/22,43.255.108.0/22,43.255.144.0/22,43.255.168.0/22,43.255.176.0/22,43.255.184.0/22
gcloud compute --project=moon-forestxx firewall-rules create block-china-04 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=45.253.192.0/19,45.253.224.0/20,45.253.240.0/21,45.254.0.0/19,45.254.40.0/22,45.254.48.0/20,45.254.64.0/18,45.254.128.0/18,45.254.192.0/19,45.254.224.0/21,45.254.236.0/22,45.254.240.0/22,45.254.248.0/22
gcloud compute --project=moon-forestxx firewall-rules create block-china-05 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=103.5.252.0/22,103.6.76.0/22,103.6.108.0/22,103.6.220.0/22,103.6.228.0/22,103.7.28.0/22,103.7.140.0/22,103.7.212.0/22,103.7.216.0/21,103.8.0.0/21,103.8.8.0/22,103.8.32.0/22,103.8.52.0/22,103.8.68.0/22
gcloud compute --project=moon-forestxx firewall-rules create block-china-06 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=103.42.180.0/22,103.42.232.0/22,103.43.16.0/22,103.43.84.0/22,103.43.96.0/21,103.43.104.0/22,103.43.124.0/22,103.43.184.0/22,103.43.192.0/21,103.43.208.0/22,103.43.220.0/22,103.43.224.0/22
gcloud compute --project=moon-forestxx firewall-rules create block-china-07 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=103.71.72.0/22,103.71.80.0/21,103.71.88.0/22,103.71.120.0/21,103.71.128.0/22,103.71.144.0/22,103.71.196.0/22,103.71.200.0/22,103.71.232.0/22,103.72.12.0/22,103.72.16.0/20,103.72.32.0/20,103.72.48.0/21
gcloud compute --project=moon-forestxx firewall-rules create block-china-08 --direction=INGRESS --priority=99 --network=default --action=DENY --rules=all --source-ranges=103.95.240.0/20,103.96.0.0/22,103.96.8.0/22,103.96.80.0/22,103.96.124.0/22,103.96.136.0/22,103.96.140.0/24,103.96.148.0/22,103.96.152.0/21,103.96.160.0/19,103.96.192.0/20,103.96.208.0/21,103.96.216.0/22

実際のコマンドは一行で250個のアドレスブロックを指定するのでもっと長くなるが、これをコピーしておき、COULD SHELLで表示されたコマンドを削除してペーストすると22行のコマンドが実行され、22個のファイアーウォールのルールが作成できる。