近年、中国や韓国からなどのサーバーに対する脅威は増加している。また、Tor を使った犯罪行為となるアクセスなど、気を付けた方が良いだろう。

そこで、中国や韓国からのアクセス制限や、中国へのデータ送信の拒否、Tor を使用したアクセスなどを禁止できるツールを作成いたしましたので、公開致します。

※ このツールはサーバー管理者用ですので、一般の方には無縁です。
※ このツールは、GPLで公開しています。
※ このツールでは、Python を利用しています。（Python 2.7 以上を推奨）
※ このツールは、FirewallD 用の設定を　ARIN、RIPE、APNIC、LACNIC、AfriNIC から入手したデータから作成します。
※ このツールは、「Python 2.7.5」「firewalld 0.3.12」を使用し、Fedora20 で開発・確認を行っています。


入手・インストール

firewalld_ipblock (ver 1.0.0) を入手　http://www.magic-object.mydns.jp/Fedora20WithFirewallDBlocking.html

解凍は「tar zxvf ファイル名」で行えます。


インストール

コマンドラインから解凍後にディレクトリの中に入り、「./install.py」を実行して下さい。

※ 「./install.py -h」または「./install.py --help」で使い方が参照できます。
※ デフォルトでは「/usr/local/」にインストールされます。（推奨）
※ インストールするためには FirewallD が動作している必要があります。


設定

必ず「/usr/local/etc/firewalld_ipblock/firewalld_ipblock.conf」を開いて、内容を確認して下さい。

※ 設定ファイルの内容を変更するには、「FirewallD」及び「iptables」などの知識が必要です。不明な点がある場合は、「man iptables」で確認して下さい。


ツールの概要

    ・ARIN　などから入手したデータを元に、指定国のデータを抽出し、一時ファイル（キャッシュ）に保存します。また、一時ファイルの作成・更新は、指定日数後に行われます。（ただし、手動で一時ファイルを削除した場合は除く）
    ・スクリプト実行時に、一時ファイルから指定国のアクセス拒否オプションを作成し、「/etc/firewalld/direct.xml」に保存します。
    ・設定ファイル内で、改行してから、先頭に空白を入れる事により、オプションやファイルを複数指定出来ます。
    ・「特別拒否IPv4のデータファイル」（dataDenyFileIPv4）に Tor の出口サーバー一覧データファイルを指定すると、Tor からのアクセスを禁止する事が可能です。
    ・デフォルト設定では、iptables の INPUT（外部からのアクセス）に対して、アクセス制限を行っています。OUTPUT に指定を変更すると、外部へのアクセス制限になります。
    ・デフォルト設定では、iptables の REJECT（拒否）によるアクセス制限を行っています。DROP（破棄）を指定すると、事実上、指定 IP に対して送受信が不可能になります。
    ・特定指定 IP に対しての許可・制限が行えます。この事を利用して、アクセス拒否指定国であっても例外でのアクセス許可が行えます。
    ・このスクリプトは、膨大な登録を行うため、処理に数十分〜一時間程度、必要とします。
    ・このスクリプトは、/etc/firewalld/direct.xml として生成される XML を表示・確認する事が可能です。（この時、チェックや保存コマンドは実行されません）
    ・このコマンドのシンボリックリンクを「/etc/cron.weekly/」や「/etc/cron.monthly/」に作成することで、１週間や１月単位で自動起動する事が出来ます。
    ・詳しくは、「firewalld_ipblock -h」または「firewalld_ipblock --help」で確認して下さい。


変更および再配布について

このソフトウェアは GNU GPL ライセンスの下で公開しています。つまり、ライセンスに従う限りに於いて、ソーズの変更や再配布を行う事が出来ます。


バグなどについて

バグなどを見つけた場合は、twitter で知らせてくれると助かります。(@kanrakara https://twitter.com/kanrakara)

