IPアドレスによるブロッキング②
近年、中国や韓国からなどのサーバーに対する脅威は増加している。また、Tor を使った犯罪行為となるアクセスなど、気を付けた方が良いだろう。
そこで、中国や韓国からのアクセス制限や、中国へのデータ送信の拒否、Tor を使用したアクセスなどを禁止できるツールを作成いたしましたので、公開致します。
コチラは iptables / ip6tables 版です。(FirewallD 版)
※ このツールはサーバー管理者用ですので、一般の方には無縁です。
※ このツールは、GPLで公開しています。
※ このツールでは、Python を利用しています。(Python 2.7 以上を推奨)
※ このツールは、iptables、ip6tables 用の設定を ARIN、RIPE、APNIC、LACNIC、AfriNIC から入手したデータから作成します。
※ このツールは、「Python 2.7.5」「iptables ver 1.4.19.1」「ip6tables ver 1.4.19.1」を使用し、Fedora20 で開発・確認を行っています。
入手・インストール
解凍は「tar zxvf ファイル名」で行えます。
インストール
コマンドラインから解凍後にディレクトリの中に入り、「./install.py」を実行して下さい。
※ 「./install.py -h」または「./install.py –help」で使い方が参照できます。
※ デフォルトでは「/usr/local」にインストールされます。(推奨)
設定
必ず「/usr/local/etc/ipblock/ipblock.conf」を開いて、内容を確認して下さい。
※ 設定ファイルの内容を変更するには、「iptables」及び「ip6tables」などの知識が必要です。不明な点がある場合は、「man iptables」で確認して下さい。
ツールの概要
- ARIN などから入手したデータを元に、指定国のデータを抽出し、一時ファイル(キャッシュ)に保存します。また、一時ファイルの作成・更新は、指定日数後に行われます。(ただし、手動で一時ファイルを削除した場合は除く)
- スクリプト実行時に、一時ファイルから指定国のアクセス拒否コマンドを作成し、実行します。
- 設定ファイル内で、改行してから、先頭に空白を入れる事により、コマンドやファイルを複数指定出来ます。
- 「特別拒否IPv4のデータファイル」(dataDenyFileIPv4)に Tor の出口サーバー一覧データファイルを指定すると、Tor からのアクセスを禁止する事が可能です。
- デフォルト設定では、iptables の INPUT(外部からのアクセス)に対して、アクセス制限を行っています。OUTPUT に指定を変更すると、外部へのアクセス制限になります。
- デフォルト設定では、iptables の REJECT(拒否)によるアクセス制限を行っています。DROP(破棄)を指定すると、事実上、指定 IP に対して送受信が不可能になります。
- 特定指定 IP に対しての許可・制限が行えます。この事を利用して、アクセス拒否指定国であっても例外でのアクセス許可が行えます。
- このスクリプトは、膨大な登録を行うため、処理に数十分〜一時間程度、必要とします。
- このスクリプトは、iptables および ip6tables により生成されるコマンドを表示・確認する事が可能です。(この時、チェックや保存コマンドは表示されません)
- このコマンドのシンボリックリンクを「/etc/cron.weekly/」や「/etc/cron.monthly/」に作成することで、1週間や1月単位で自動起動する事が出来ます。
- 詳しくは、「ipblock -h」または「ipblock –help」で確認して下さい。
- このスクリプトでは、拒否したアドレスなどをカーネルログとして記録します。
変更および再配布について
このソフトウェアは GNU GPL ライセンスの下で公開しています。つまり、ライセンスに従う限りに於いて、ソーズの変更や再配布を行う事が出来ます。
バグなどについて
バグなどを見つけた場合は、twitter で知らせてくれると助かります。(@kanrakara https://twitter.com/kanrakara)