FreeBSDのpf(4)で使用可能な指定した国のCIDR表現なテーブルを作成するためのスクリプトを作成したので,無保証で公開しておく.
スプリクトが正常に動作しない場合1,全てのアクセスが拒絶されてしまう可能性があることや,ダウンロード元に迷惑をかけないようにするため,cronで自動化せず,1[回/月]程度,手動で実行・適用を行っている.
やっていることは,
- 以下の国別アドレス割当リストをダウンロードする.これらのリストは無保証で公開されている.
- 上記でダウンロードした国別アドレス割り当てリストから,スプリクト内で指定した国コードに該当するアドレス・ブロックを抜き出して,ファイルにそれぞれ出力する.
だけ.
使い方は,pf.conf(5) に,
(snip)
table <blacklist> persist file "/usr/local/etc/pf/blacklist_ipv4.cidr" file "/usr/local/etc/pf/blacklist_ipv6.cidr"
(snip)
block in quick on $ext_if from <blacklist> to any
(snip)
といった記述を追加する2…