среда, 19 июня 2019 г.

блокируем по geoip

источник статьи

apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

установка, на make install правда ругнулся но прокатило  зеркало архива на мыле
# wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.13.tar.xz
# tar xf xtables-addons-2.13.tar.xz
# cd xtables-addons-2.13
# ./configure
# make
# make install
далее создаем базу Geoip и копируем ее
# cd geoip
# ./xt_geoip_dl
# ./xt_geoip_build GeoIPCountryWhois.csv
# mkdir -p /usr/share/xt_geoip/
# cp -r {BE,LE} /usr/share/xt_geoip/
файлик GeoIPCountryWhois.csv он не находит по этому я качал его с гитхаба банально загуглив вот зеркало
в теории можно обновлять кроном содержание дабы список был актуальный хотя по линку он обновлялся полгода назад.

далее простой как 3 копецки сиснтаксис iptables
iptables -I INPUT -m geoip ! --src-cc RU -j DROP
iptables -I INPUT -m geoip --src-cc IN,US -j DROP
в первом варианте все кто не из россии - идут лесом
во втором варианте лесом идет только индия и штаты

собвственно для проверки гуглим freevps - поднимаем виртуалочку и тестим из каких нибудь нидерландов

===================================================================
вариант ниже  не сработал просто оставлю так как он был найден ранее
может где ошибся но почему то не взлетел, либо неверная база csv файлов или прога не подсасала, не стал разбираться так как нашел способ выше
===================================================================

источник статьи 
csv шки брал от сюда

1sudo apt-get install xtables-addons-common
This will grab the sources, build and install xtables and all its dependencies, including the xtables-addons-common and xtables-addons-dkms packages.
The next step is to download the GeoIP list as a CSV. Create and navigate to a temporary folder, say /tmp/geoip, then run the following command:
1sudo /usr/lib/xtables-addons/xt_geoip_dl
This will download two CSV files, one containing the GeoIP list for IPv4 and one for IPv6. You may have to unzip them if they have been packaged as an archive.
The final step is to import this list into xtables, so it can be used by iptables. This process requires the libtext-csv-xs-perl module to digest the CSV files into the proper format.
1sudo aptitude install libtext-csv-xs-perl
Finally, create a folder to stash the converted files in, and import them into xtables:
1sudo mkdir /usr/share/xt_geoip
2sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
And that’s all there is to it! To test that everything went well, run the following command:
1iptables -m geoip --help
If the command executes successfully, xtables with geoip has been successfully installed into iptables. Now you can block any list of countries with a simple iptables command. To block Korea, China, India, Russia, Turkey, Vietnam, Ukraine, Brazil, Venezuela, Pakistan, Saudi Arabia, Japan, Germany and Italy for example, run:
1iptables -A INPUT -m geoip --src-cc KR,CN,IN,SA,TR,VN,UA,BR,VE,PK,JP,DE,IT -j DROP