iptables - как заблокировать домены по маске. Например, все домены yandex ???
Например указываем yandex и все домены содержащие yandex блокируются.
Как пишется такое правило?
iptables - как заблокировать домены по маске. Например, все домены yandex ?
Модераторы: SLEDopit, Модераторы разделов
-
pelmen
- Сообщения: 1268
- ОС: debian
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
Мне для этого понадобилось делать прозрачный прокси и в нем блокировать
-
pasis
- Сообщения: 22
- ОС: Gentoo Linux
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
Согласен, если поднять squid как прозрачный прокси, то он позволяет творить довольно полезные вещи. Squid позволяет не только блокировать домены, все его поддомены, но и писать регулярные выражения. Кстати мой друг написал до десятка таких регулярных выражений, которые банят большую часть рекламы.
Что касается именно iptables, то это пакетный файервол и он работает с ip адресами, ему нельзя указать имена хостов. По крайней мере еще не создали такого расширения, ведь оно требует связки с DNS сервером, а это прикладной уровень.
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
ну, строго говоря можно, они будут преобразовываться в ip, но регулярные выражения туда впихнуть нельзя.
Address can be either a network name, a hostname (please note that specifying any name to be resolved with a
remote query such as DNS is a really bad idea), a network IP address (with /mask), or a plain IP address.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
pasis
- Сообщения: 22
- ОС: Gentoo Linux
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
Ленивая Бестолочь писал(а): ↑31.12.2009 17:01
ну, строго говоря можно, они будут преобразовываться в ip, но регулярные выражения туда впихнуть нельзя.
Address can be either a network name, a hostname (please note that specifying any name to be resolved with a
remote query such as DNS is a really bad idea), a network IP address (with /mask), or a plain IP address.
Я говорил про то, что сам файервол не хранит имена, а только ip. И преобразовывает имена в адреса и наоборот уже прикладная программа iptables при добавлении или просмотре правил. А если изменится запись в DNS или одно имя ресолвится в несколько адресов, то выходит бяка =). Яркий пример: я хотел забанить vkontakte.ru, для этого нада добавить приличную стопку адресов в файервол или использовать прикладное ПО. Т.е. файервол в ядре не предназначен для поставленной задачи. Я понял суть темы именно в этом.
PS а так да, вы правы, можно писать имена вместо ip, но разницы не будет, если вы запишете ip адрес.
PPS вы конечно поправьте если я в чем-то не прав.
-
yaleks
- Сообщения: 2121
- Статус: вне статуса
- ОС: Gentoo ~
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
смотрите:
сохраняю старые правила:
Код: Выделить всё
rakul@misa:/$ sudo iptables-save > /tmp/1добавляю что-то типа "забанить vkontakte.ru":
Код: Выделить всё
rakul@misa:/$ sudo iptables -A INPUT --src vkontakte.ru -j DROPсравниваю старые правила и новые:
Код: Выделить всё
rakul@misa:/$ diff /tmp/1 /tmp/2 |grep DROP
> -A INPUT -s 93.186.227.130/32 -j DROP
> -A INPUT -s 93.186.229.3/32 -j DROP
> -A INPUT -s 93.186.227.129/32 -j DROP
> -A INPUT -s 93.186.224.238/32 -j DROP
> -A INPUT -s 93.186.229.2/32 -j DROP
> -A INPUT -s 93.186.227.123/32 -j DROP
> -A INPUT -s 93.186.231.222/32 -j DROP
> -A INPUT -s 93.186.227.126/32 -j DROP
> -A INPUT -s 93.186.231.218/32 -j DROP
> -A INPUT -s 93.186.231.221/32 -j DROP
> -A INPUT -s 93.186.226.4/32 -j DROP
> -A INPUT -s 93.186.226.5/32 -j DROP
> -A INPUT -s 93.186.231.220/32 -j DROP
> -A INPUT -s 93.186.226.129/32 -j DROP
> -A INPUT -s 93.186.225.6/32 -j DROP
> -A INPUT -s 93.186.231.219/32 -j DROP
> -A INPUT -s 93.186.224.239/32 -j DROP
> -A INPUT -s 93.186.227.125/32 -j DROP
> -A INPUT -s 93.186.227.124/32 -j DROP
> -A INPUT -s 93.186.226.130/32 -j DROP
> -A INPUT -s 93.186.225.211/32 -j DROP
> -A INPUT -s 93.186.225.212/32 -j DROP
rakul@misa:/$мне кажется, что пачка ай-пи - это разные айпишки vkontakte.ru.
насчет того, в какой именно момент происходит преобразование из имени в айпи - не скажу, гуглить лень :-)
вполне вероятно, что и в процессе добавления.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
neol
- Сообщения: 600
- ОС: Debian Stable
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
iptables -I OUTPUT -p tcp --dport 80 -m string --string "yandex.ru" --algo kmp --from 32 --to 300 -j REJECT
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: iptables - как заблокировать домены по маске. Например, все домены yandex ?
есть мнение, что использование string в промышленных целях невозможно, т.к. сильно нагружает систему, кроме того далеко не все протоколы передают строки прям вот так дословно.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.