Torの出口ノードを一括拒否

Torによるアップローダの利用によって、違法ファイル/児童ポルノ等を含まないファイルをやり取りしていただいている方々に迷惑がかかっているため、Torの出口ノードからのアクセスをすべて拒否することにしました。

ということでその設定方法。

refs: torの出口ノードからのアクセスをfirewalldで全て拒否する方法

上記の参照サイトに書かれているスクリプトを /var/lib/script/ 下に作成します。

#!/bin/sh
# Get tor exit address                                                                                                                                                                 
data=`curl https://check.torproject.org/exit-addresses`

if [ $? -ne 0 ]; then
    echo "Cannot get address."
    exit 1
fi

echo "${data}" | grep "ExitAddress" | while read line; do
                                          ip=`echo "${line}" | sed -e "s/^ExitAddress \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/g"`
                                          firewall-cmd --zone=drop --add-source="${ip}"
                                         # firewall-cmd --zone=drop --permanent --add-source="${ip}"                                                                                                        
                                      done

このファイルを cron を使って毎日実行するように cron.daily にリンクを貼ります。

ln -s /var/lib/script/tor-block.sh /etc/cron.daily/tor-block

これで時々更新されるTorのIPを毎日登録し直すことができます。
(今までに登録したものを削除する処理はないため、数ヶ月に1回Firewallを再起動した方がいいかもしれません。)

この投稿で書きたかったは、cron.dailyに登録する部分であり、その他は参照サイトにおんぶにだっこです。