【実践】Firewalld リッチルール 国内のみアクセス許可

Linux

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

国内のみアクセス許可

モバイル環境が充実してきたので簡単にインターネット経由で会社メールにアクセスできるようにしています。外国からのアクセスは拒否したいので接続元IPにてアクセス制限を行います。

このサイトが国別アドレスを公開してくれているので、有り難く利用させて頂きます。

世界の国別 IPv4 アドレス割り当てリスト
世界の国別に割り当てられている IPv4 アドレスを、サブネット マスク形式や CIDR 形式に変換し、最適化して公開しています。1 日 1 回程度更新。Linux 等でのアクセス制限向け。

メンテナンスで利用するsshなどだけ永続許可(–permanent)の設定を行い、動的なもの(今回はHTTPS)は一時許可に設定します。定期的にスクリプトを実行する事により最新の情報に書き換わります。

2011年にIPv4アドレスの払い出しが終了したとJPNICからアナウンスされました。今は在庫の使いまわしをしている状態なので定期的にスクリプトを実行する必要が無いかもしれません(調べるのが面倒臭いだけ)。

#!/bin/sh

# JP filterの作成
wget -q -O - http://nami.jp/ipv4bycc/cidr.txt.gz | \
gzip -d | \
grep "JP" | \
awk '{print "firewall-cmd --add-rich-rule=\
\"rule family=ipv4 source address="$2" service name=https accept\""}' \
 > /tmp/jpfilter.sh

# 初期化
firewall-cmd --reload

# JP filterの有効化
/bin/sh /tmp/jpfilter.sh

Exchange ActiveSyncを利用しているのでプロトコルはHTTPSです。