Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Блокировка списка доменов+ip ====== [[billing:howto|Вернуться на уровень выше]] Как работает: создаем список domains.list, куда вносим все домены, которые нужно заблокировать. Также есть файл ip.list, в который можно добавить уже известные IP. Скрипт по указанным днс находит все ip и добавляет в ipset. Правилом в iptables список блокируется. === Установка === Поставить dig Для Centos: <file>yum install -y bind-utils</file> ==== Скрипт загрузки IP доменов в Ipset ==== <code> #!/bin/bash #͑Client DNS DNS1=8.8.8.8 DNS2=8.8.4.4 DIG=`which dig` IPSET=`which ipset` IPSETNAME="paysystems" HOME_DIR=$(cd $(dirname $0)&& pwd) SRCDATA=`cat $HOME_DIR/domains.list` IPLIST="$HOME_DIR/ip.list" RESULT="$HOME_DIR/paysys.txt" $DIG +short $SRCDATA @$DNS1 |grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' > $RESULT $DIG +short $SRCDATA @$DNS2 |grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' >> $RESULT cat $IPLIST >> $RESULT $IPSET -N $IPSETNAME iphash -exist for i in `cat $RESULT`; do $IPSET add $IPSETNAME $i -exist 2>/dev/null; done </code> DNS1 и DNS2 - указываем клиентские DNS-сервера (это важно!) domains.list - файл с доменами ip.list - файл с IP (тут можно добавлять IP к общему списку) Пример правила для iptables: <code> ipset -N blacklist iphash -exist iptables -A FORWARD -m set --match-set blacklist src -j REJECT --reject-with icmp-proto-unreach </code> Добавить в крон: <file> 00 6 * * * root /var/mikbill/scripts/blacklist/blacklist.sh > /dev/null </file> billing/howto/ipset_blacklist.txt Последнее изменение: 7 лет назад — vilko