iptables -F
iptables -X
и заново все правила, можно подумать у тебя правил over 10000...
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Разговоры о Linux и не только → блокировка ВКонтакте
iptables -F
iptables -X
и заново все правила, можно подумать у тебя правил over 10000...
Тогда приходиться запускать снова firewall
Проще просто отчистить 1 таблицу. Например поставить скрипт в cron а не весь firewall
Тогда приходиться запускать снова firewall
И в чём проблема-то ещё раз говорю правил то не 10000. и IP адреса которые блокировать надо не ежеминутно изменяются.
Kettler пишет:Тогда приходиться запускать снова firewall
И в чём проблема-то ещё раз говорю правил то не 10000.
Для моих вещей это не подходит.
Да пару строк не особо много зато всё аккуратно. Чем делать это через полный firewall.
Я не стал заморачиваться и порезал по тупому
iptables -I FORWARD 10 -s 192.168.3.0/24 -o ppp0 -j check_ip
############## XHAMSTER.COM ################
iptables -A check_ip -d 88.208.24.47 -j DROP
iptables -A check_ip -d 88.208.24.43 -j DROP
iptables -A check_ip -d 88.208.24.44 -j DROP
iptables -A check_ip -d 88.208.24.45 -j DROP
############################################
############### VKONTAKTE.RU #################
iptables -A check_ip -d 87.240.188.253 -j DROP
iptables -A check_ip -d 87.240.188.248 -j DROP
iptables -A check_ip -d 93.186.224.242 -j DROP
iptables -A check_ip -d 93.186.224.243 -j DROP
iptables -A check_ip -d 87.240.188.249 -j DROP
iptables -A check_ip -d 87.240.188.250 -j DROP
iptables -A check_ip -d 87.240.188.252 -j DROP
iptables -A check_ip -d 87.240.188.254 -j DROP
iptables -A check_ip -d 93.186.224.240 -j DROP
iptables -A check_ip -d 93.186.224.241 -j DROP
##############################################
############## ODNOKLASSNIKI.RU ##############
iptables -A check_ip -d 217.20.144.66 -j DROP
iptables -A check_ip -d 217.20.144.146 -j DROP
iptables -A check_ip -d 217.20.144.162 -j DROP
iptables -A check_ip -d 217.20.144.178 -j DROP
iptables -A check_ip -d 217.20.144.194 -j DROP
iptables -A check_ip -d 217.20.144.210 -j DROP
iptables -A check_ip -d 217.20.144.226 -j DROP
iptables -A check_ip -d 217.20.144.242 -j DROP
iptables -A check_ip -d 217.20.145.36 -j DROP
iptables -A check_ip -d 217.20.145.50 -j DROP
iptables -A check_ip -d 217.20.145.66 -j DROP
iptables -A check_ip -d 217.20.145.98 -j DROP
iptables -A check_ip -d 217.20.145.158 -j DROP
iptables -A check_ip -d 217.20.145.206 -j DROP
iptables -A check_ip -d 217.20.149.164 -j DROP
iptables -A check_ip -d 217.20.149.179 -j DROP
iptables -A check_ip -d 217.20.144.2 -j DROP
iptables -A check_ip -d 217.20.144.19 -j DROP
iptables -A check_ip -d 217.20.144.34 -j DROP
iptables -A check_ip -d 217.20.144.50 -j DROP
##############################################
iptables -A check_ip -j RETURN
Режутся vkontakte.ru, vk.com, odnoklassniki.ru xhamster.com
--=XliN=--, ну минимально в цикле из файло сделай ...
во:
export BLACKLISTIP="/var/firewall/blacklist.ip"
iptables -F check_ip
iptables -N check_ip
if [ -f $BLACKLISTIP ] ;then cat $BLACKLISTIP | while read line; do echo -e "${line}";
iptables -A check_ip -d ${line} -j DROP
done; fi
iptables -A check_ip -j RETURNзачем это в скрипт ?
iptables -N check_ip
Я выше выкладывал проверенный.
Блин щас разжую
в firewall добавляем
iptables -N check_ip # Создаем цепь для соц сетей
# Здесь мы указываем что это первое правило в FORWARD если например зделать A то работать вообще не будет ибо обязательно как ниже!!!
#$lan ваша подсеть например 192.168.0.0/24
#$inet интерфейс в интернет
$lan=192.168.0.0/24
$inet=ppp999
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip #отправляем на проверку на наличие запрещённых сетей
#Получаеться пакет попал в FORWARD и сразу на проверку в check_ip
Нижним скриптом берем айпи и загоем в таблицу check_ip
Скрипт будет таким.
#!/bin/bash
BLACKLIST="/var/blacklist.url"
n=1;
# Очищаем все старые на фиг ип
iptables -F check_ip
if [ -f $BLACKLIST ]; then
while read line
do
nslookup ${line} >> /tmp/nslookup.tmp;
done < $BLACKLIST
fi
awk '/Address:/ {if($2=="127.0.0.1#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp
if [ -f /var/blacklist.ip ] ;
then
cat /var/blacklist.ip | while read line
do
echo "${line}"
iptables -I check_ip $n -d ${line} -j DROP # дропаем
let n=n+1;
echo $n;
done
fi
# Тоже обязательно иначе нормалные пакеты не пойдут дальше
iptables -A check_ip -j RETURN #отправляем дальше на проверку
О:
export BLACKLISTIP="/var/firewall/blacklist.ip"
# Проверка существования цепочки BLACKLIST_IP, если её нет - создаём.
# для удаления цепочки полностью iptables -X BLACKLIST_IP
if [ -z "`iptables -n -L | grep -i "chain BLACKLIST_IP"`" ]; then iptables -N BLACKLIST_IP; fi
# Сброс блокировок
iptables -F BLACKLIST_IP
# Погнали наши городских :)
if [ -f $BLACKLISTIP ] ;then cat $BLACKLISTIP | while read line; do echo -e "${line}";
iptables -A BLACKLIST_IP -d ${line} -m recent --set --name FUCKOFF -j DROP
iptables -A BLACKLIST_IP -j RETURNВот так может?
iptables -A BLACKLIST_IP -d ${line} -m recent --set --name FUCKOFF -j REJECTВот так может?
iptables -A BLACKLIST_IP -d ${line} -m recent --set --name FUCKOFF -j REJECT
Как тебе больше нравиться. Основную мыслю понял.
Тут самое главное
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
А можно ещё это особенно Xlin
tc class add dev $inet parent 1:1 classid 1:50 htb rate 10Kbit ceil 10Kbit burst 15k
tc qdisc add dev $inet parent 1:50 handle 50: sfq perturb 10
tc filter add dev $inet parent 1:0 protocol ip prio 7 handle 50 fw classid 1:50
iptables -t mangle -I check_ip $n -d ${line} -j -j MARK --set-mark 50Kettler, всё же советую преобразование url2ip сделать отдельным скриптом, то что у тебя - не годиться потому- что - выполняться может долго (из-за nslookup) - и в основной скрипт не запихнёшь.
Kettler, всё же советую преобразование url2ip сделать отдельным скриптом, то что у тебя - не годиться потому- что - выполняться может долго - и в основной скрипт не запихнёшь.
? разжуй
Точто моё это 2 скрипта 1 блок в основной firewall. А второй в cron
nslookup - требует времени, если много урлов.
Я слушаю дальше я не могу понять ход твоих мыслей.
Мои мысли... эмм это сложно. smile
Я вот тут чё подумал, в документации сказано:
Источник пакета
Для фильтрации по источнику используется опция -s. Например запретим все входящие пакеты с узла 192.168.133.133:iptables -A INPUT -s 192.168.133.133 -j DROPМожно использовать доменное имя для указания адреса хоста. То есть:
iptables -A INPUT -s test.host.jp -j DROPТакже можно указать целую подсеть:
iptables -A INPUT -s 192.168.133.0/24 -j DROPТакже вы можете использовать отрицание (знак !). Например так - все пакеты с хостов отличных от 192.168.133.156 будут уничтожаться:
iptables -A INPUT ! -s 192.168.133.156 -j DROP
те. Не зря ли мы тут парсим nslookup? разве iptables по доменным именам сам этого не делает?
надо проверить вывод: iptables -L с доменным именем и с нашими выкрутасами сравнить.
как проверишь отпиши но я всё таки жду чтоб разжевали где мои ошибки на счёт скриптов.
Вот как выглядит у меня с нашим парсером через nslookup одного адреса: vkontakte.ru:
Вот такие правила создаются с присутствием только одной строчки:
iptables -t nat -A PREROUTING -d vkontakte.ru -j DNAT --to-destination 127.0.0.1Так что пострадали фигней и хватит. :lol: :lol: :lol:
Подскажите в чем касяк. Скрипт отрабатывает, но IP повторяются (два, а то и три раза)
# Очищаем все старые на фиг ип
if [ -f $BLACKLIST ]; then
while read line
do
nslookup ${line} >> /tmp/nslookup.tmp;
done < $BLACKLIST
fi
awk '/Address:/ {if($2=="192.168.1.77#53"){} else{print $2 > "/var/blacklist.ip" }}' /tmp/nslookup.tmp
if [ -f /var/blacklist.ip ] ; then
if [ ! -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then
iptables -F check_ip;
echo "Цепочка создана"
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
cat /var/blacklist.ip | while read line
do
echo -e "${line}"
iptables -A check_ip -d "${line}" -j DROP
done
iptables -A check_ip -j RETURN
else
iptables -N check_ip
fi
fi
--=XliN=--, я выше уже сказал - не нужно это всё iptables сам преобразовывает имена в ip - так что все наши махинации с nslookup не нужны.
я выше уже сказал - не нужно это всё iptables сам преобразовывает имена в ip - так что все наши махинации с nslookup не нужны.
Я это понял. Тоже проверял. Просто мне так удобнее и если по чесноку интереснее. 
iptables -F check_ip не вижу
iptables -F check_ip не вижу
Он есть. Методом тыка выявил место ошибки. Проблема в блоке
Он в nslookup.tmp запихивает все по нескольку раз.
перед while допишите
: > $BLACKLISTСорри что лезу со своими скриптами, но все же.
Т.к. iptables cам умеет по доменному имени узнавать IP, то скрипт станет еще проще.
Создается файл с урлами тех кого дропаем.
И собственно сам скрипт
#!/bin/bash
lan="192.168.3.0/24"
inet="ppp0"
BLACKLIST="/var/blacklist.url"
if [ ! -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then
if [ -f $BLACKLIST ]; then
iptables -F check_ip;
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
iptables -A check_ip -s 192.168.3.254 -o ppp0 -j ACCEPT
cat $BLACKLIST | while read line
do
echo -e "${line}"
iptables -A check_ip -d "${line}" -j DROP
done
iptables -A check_ip -j RETURN
else
echo "Файла $BLACKLIST не существует!!"
fi
else
echo "Цепочка check_ip не создана"
iptables -N check_ip
fiИ попутно вопрос, т.к. с башем только начал осваиваться.
Как в блоке
else
echo "Цепочка check_ip не создана"
iptables -N check_ipсделать так, что было так: после проверки на наличие цепочки и выявления что ее нет, скрипт ее создает но в и выходит потом сразу. Как его заставить еще раз отработать? Типа гото нужно ))
Проще как-то так:
if [ -z "`iptables -n -L | grep -i "chain check_ip"`" ]; then iptables -N check_ip; fi
if [ -f $BLACKLIST ];
then
iptables -F check_ip;
iptables -I FORWARD 1 -s $lan -o $inet -j check_ip
iptables -A check_ip -s 192.168.3.254 -o ppp0 -j ACCEPT
cat $BLACKLIST | while read line
do
echo -e "${line}"
iptables -A check_ip -d "${line}" -j DROP
done
iptables -A check_ip -j RETURN
fiПо if http://eddnet.org/?p=1311
Все... разобрался.
Очень даже удобно для блокировки соц сетей и всяких трекеров.
Извините за офф - касперский у меня до сих-пор блокирует вконтакте, однокласники - почему. Касперский хоть не на никсах сделанный? Сорь за офф.
Извините за офф - касперский у меня до сих-пор блокирует вконтакте, однокласники - почему. Касперский хоть не на никсах сделанный? Сорь за офф.
каспер тут не каким боком\
Linux Forum → Разговоры о Linux и не только → блокировка ВКонтакте
Форум работает на PunBB, при поддержке Informer Technologies, Inc