Скрипт черного списка Iptables |

Скрипт черного списка Iptables

Мануал

Как заблокировать ненужные ip адреса ?

Небольшой скрипт интерпретатора Bash, который использует ipset и iptables для запрета большого количества IP-адресов, опубликованных в черных списках IP.

ipset использует хэш-таблицу для хранения/извлечения IP-адресов, и, следовательно, поиск IP-адресов намного быстрее, чем тысячи последовательно разобранных правил запрета iptables.

Однако предел списка ipset составляет 2 ^ 16 записей.

 IPSET_BLACKLIST_NAME=blacklist # change it if it collides with a pre-existing ipset list
IPSET_TMP_BLACKLIST_NAME=${IPSET_BLACKLIST_NAME}-tmp

# ensure the diretory for IP_BLACKLIST/IP_BLACKLIST_RESTORE exists (it won't be created automatically)
IP_BLACKLIST_RESTORE=/etc/ipset-blacklist/ip-blacklist.restore
IP_BLACKLIST=/etc/ipset-blacklist/ip-blacklist.list

VERBOSE=yes # probably set to "no" for cron jobs, default to yes
FORCE=yes # will create the ipset-iptable binding if it does not already exist
let IPTABLES_IPSET_RULE_NUMBER=1 # if FORCE is yes, the number at which place insert the ipset-match rule (default to 1)

# List of URLs for IP blacklists. Currently, only IPv4 is supported in this script, everything else will be filtered.
BLACKLISTS=(
# "file:///etc/ipset-blacklist/ip-blacklist-custom.list" # optional, for your personal nemeses (no typo, plural)
"https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1" # TOR Exit Nodes
"https://www.maxmind.com/en/proxy-detection-sample-list" # MaxMind GeoIP Anonymous Proxies
"http://danger.rulez.sk/projects/bruteforceblocker/blist.php" # BruteForceBlocker IP List
"https://www.spamhaus.org/drop/drop.lasso" # Spamhaus Don't Route Or Peer List (DROP)
"http://cinsscore.com/list/ci-badguys.txt" # C.I. Army Malicious IP List
"https://www.openbl.org/lists/base.txt" # OpenBL.org 30 day List
"https://lists.blocklist.de/lists/all.txt" # blocklist.de attackers
"http://blocklist.greensnow.co/greensnow.txt" # GreenSnow
"https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset" # Firehol Level 1
# "http://ipverse.net/ipblocks/data/countries/xx.zone" # Ban an entire country, see http://ipverse.net/ipblocks/data/countries/
)
MAXELEM=1000000 

Установка

 # wget -O /usr/local/sbin/update-blacklist.sh https://raw.githubusercontent.com/trick77/ipset-blacklist/master/update-blacklist.sh
# chmod +x /usr/local/sbin/update-blacklist.sh
# mkdir -p /etc/ipset-blacklist

# wget -O /etc/ipset-blacklist/ipset-blacklist.conf https://raw.githubusercontent.com/trick77/ipset-blacklist/master/ipset-blacklist.conf 

Измените ipset-blacklist.conf в соответствии с вашими потребностями.

По умолчанию, черные списки IP-адресов будут сохранены в /etc/ipset-blacklist/ip-blacklist.restore

 # apt-get install ipset
 # /usr/local/sbin/update-blacklist.sh /etc/ipset-blacklist/ipset-blacklist.conf 

Создайте черный список ipset и вставьте его в свой входной фильтр iptables (см. Ниже).

После надлежащего тестирования обязательно сохраните его в скрипты брандмауэра или аналогичном, или правила будут потеряны после следующей перезагрузки.

Автоматическое обновление черного списка с помощью задания cron

Правило фильтрации iptables

 # Enable blacklists
ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
iptables -I INPUT 1 -m set --match-set blacklist src -j DROP 

Обязательно запустите этот фрагмент в сценарии брандмауэра.

Если вы этого не сделаете, будет отсутствовать черный список ipset и правило iptables для запрета адресов из черного списка.

Cron job

Чтобы автоматически обновить черный список, скопируйте следующий код в /etc/cron.d/update-blacklist.

Не обновляйте список слишком часто, или некоторые поставщики черного списка запретят ваш IP-адрес.

Скачать

 

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий