2012年12月12日水曜日

geoipで支那朝鮮からのアクセスを遮断

nginxでgeoipを設定する

支那や朝鮮からのアクセスを遮断したい場合、ipアドレスを都度確認してdenyしてまわるのは面倒。
国単位である程度絞れるgeoip便利。
debianの場合。
nginxにgeoip_moduleが組み込まれてなければ、--with_geoip_moduleを付けて再構築する必要あり。

geoipツールインストール

sudo apt-get install libgeoip1 geoip-bin geoip-database 

最新のDBをダウンロード

cd /usr/share/GeoIP
sudo mv -i GeoIP.dat{,.orig}
sudo sh -c 'curl http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz | gzip -cd > GeoIP.dat'

nginx.conf修正

http {
...
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    map $geoip_country_code $allowed_country {
        default  yes;
        CN no; 
        KR no;
        TW no;
    }
...

反映

sudo /etc/init.d/nginx configtest && sudo /etc/init.d/reload

0 件のコメント:

コメントを投稿