Решено: iptables и -m string --string "vkontakte" --algo kmp (Нужен совет знающих людей.)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

ПРивет всем.

Решил по пробовать метод блокировки по строке содержащиеся в запросе.

Сделал так
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -m string --string "vkontakte" --algo kmp --to 65535 -j DROP

Но данное правило не работает, все равно пропускает запросы.

Вот часть описалова
string
Фильтровать по содержимому пакета. Для работы требуется ядро linux >= 2.6.14.

--algo bm|kmp
Стратегия сравнения/поиска. (bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
--from позиция
Позиция в данных с которой следует начинать поиск. Значение по умолчанию - 0.
--to позиция
Позиция в данных, при достижении которой следует прекращать поиск. Значение по умолчанию - размер пакета.
--string последовательность
Последовательность символов, которую следует искать в пакете. --hex-string pattern Последовательность символов, которую следует искать в пакете (в шестнадцатеричном представлении).
Спасибо сказали:
Аватара пользователя
tuupic
Сообщения: 197
ОС: Gentoo
Контактная информация:

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение tuupic »

iptables -D ?
Не ПИНГВИН, зато летаю!!!

home: Gentoo; laptop: Gentoo; server: FreeBSD 7.1
KDE 4.2.
мой блог
Спасибо сказали:
Аватара пользователя
butch
Сообщения: 331
ОС: :OC

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение butch »

может быть это более верный вариант: http://l7-filter.sourceforge.net/HOWTO
правда сам не пробовал. но как раз на л7 хттп находится =)

поторопился =) л7филтер для распознавания протоколов нужен =)

а вообще string входит в patch-o-matic.
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

Так правило работает, т.е. в цепочках появлется но вот не отрабатывает.
И ядро у меня 2.6.2X
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -m string --string "vkontakte" --algo kmp --to 65535 -j DROP
Опечатка вышла
Спасибо сказали:
Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение strah »

to Voler: а "iptables -A FORWARD -i eth1 -p tcp --source 192.168.1.0/24 --destination vkontakte.ru -j DROP" почему не катит?
По теме: а ты уверен, что у тебя не срабатывают какие-либо правила выше? Так что выложи сюда "iptables -vL FORWARD".
/earth: file system full
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

Лови. Вижу знающие люди подтягиваются,
iptables -t filter -nvL FORWARD

QUEUE - это для учета трафика.

Просто блокировка сайта конкретного не интересна, это я знаю.

Код: Выделить всё

Chain FORWARD (policy DROP 6 packets, 843 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 QUEUE      tcp  --  eth1   *       0.0.0.0/0            192.168.1.110       tcp dpt:15081
    0     0 QUEUE      tcp  --  eth1   *       0.0.0.0/0            192.168.1.222       tcp dpt:40589
    0     0 DROP       udp  --  eth1   *       0.0.0.0/0            255.255.255.255
   27  5111 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
  225 10800 QUEUE      tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x17/0x02 limit: avg 1/sec burst 5
    7   420 QUEUE      icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 limit: avg 1/sec burst 5
   23   920 QUEUE      tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           tcp flags:0x17/0x04 limit: avg 15/min burst 5
   94  7432 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.195
    0     0 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.196
    0     0 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.198
    0     0 QUEUE      icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 250/sec burst 500
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       205.188.0.0/16      tcp dpt:!5190
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       64.12.0.0/16        tcp dpt:!5190
   68 24788 DROP       tcp  --  *      *       192.168.1.0/24       94.100.178.0/24     multiport dports ! 2041,2042,2043,2044
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       94.100.181.0/24     multiport dports ! 2042,2042,2043,2044
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       207.210.102.211
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       203.186.128.154
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       89.151.183.114
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       204.11.16.115       multiport dports 80,3128,443
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       204.11.16.116       multiport dports 80,3128,443
    0     0 DROP       tcp  --  *      *       192.168.1.110        83.222.3.63
    0     0 DROP       udp  --  *      *       192.168.1.110        83.222.3.63
15756 4872K QUEUE      all  --  *      *       0.0.0.0/0            0.0.0.0/0
Спасибо сказали:
Аватара пользователя
McLeod095
Сообщения: 477
ОС: Люблю слаку

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение McLeod095 »

Voler писал(а):
13.05.2009 10:34
Лови. Вижу знающие люди подтягиваются,
iptables -t filter -nvL FORWARD

QUEUE - это для учета трафика.

Просто блокировка сайта конкретного не интересна, это я знаю.

Код: Выделить всё

Chain FORWARD (policy DROP 6 packets, 843 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 QUEUE      tcp  --  eth1   *       0.0.0.0/0            192.168.1.110       tcp dpt:15081
    0     0 QUEUE      tcp  --  eth1   *       0.0.0.0/0            192.168.1.222       tcp dpt:40589
    0     0 DROP       udp  --  eth1   *       0.0.0.0/0            255.255.255.255
   27  5111 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
  225 10800 QUEUE      tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:0x17/0x02 limit: avg 1/sec burst 5
    7   420 QUEUE      icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8 limit: avg 1/sec burst 5
   23   920 QUEUE      tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           tcp flags:0x17/0x04 limit: avg 15/min burst 5
   94  7432 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.195
    0     0 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.196
    0     0 ACCEPT     tcp  --  *      *       192.168.1.222        91.192.21.198
    0     0 QUEUE      icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 250/sec burst 500
    0     0 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       205.188.0.0/16      tcp dpt:!5190
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       64.12.0.0/16        tcp dpt:!5190
   68 24788 DROP       tcp  --  *      *       192.168.1.0/24       94.100.178.0/24     multiport dports ! 2041,2042,2043,2044
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       94.100.181.0/24     multiport dports ! 2042,2042,2043,2044
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       207.210.102.211
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       203.186.128.154
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       89.151.183.114
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       204.11.16.115       multiport dports 80,3128,443
    0     0 DROP       tcp  --  *      *       192.168.1.0/24       204.11.16.116       multiport dports 80,3128,443
    0     0 DROP       tcp  --  *      *       192.168.1.110        83.222.3.63
    0     0 DROP       udp  --  *      *       192.168.1.110        83.222.3.63
15756 4872K QUEUE      all  --  *      *       0.0.0.0/0            0.0.0.0/0


Я конечно могу ошибаться но вроде как после того как пакет попадает под правило QUEUE он уже больше не возвращается для дальнейшей проверки.
Во всяком случае при настройке netams и использованиий QUEUE в этом убедился.
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

Да проверил McLeod095 ты прав, действительно так.

Все работает как часики, но есть обратная сторона медали. Теперь даже поиск в яндексе или любой сайт содержащий строку в vkontakte не открывается..

Жеть как страшно... :blush:
Вот вывод

Код: Выделить всё

   56 47998 DROP       all  --  *      *       192.168.1.0/24       0.0.0.0/0           STRING match "vkontakte" ALGO name kmp TO 65535


Я например из-за этого правила не смог отредоктировать сообщение в этой теме, пока не сделал вот так

iptables -t filter -nvL FORWARD | grep "vkontakte"

Код: Выделить всё

    0     0 DROP       all  --  *      *      !192.168.1.222        0.0.0.0/0           STRING match "vkontakte" ALGO name kmp TO 65535


Все вопрос решенный.
Спасибо сказали:
Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение strah »

Все работает как часики, но есть обратная сторона медали. Теперь даже поиск в яндексе или любой сайт содержащий строку в vkontakte не открывается..

Ну, так а ты чего хотел то? Ведь строчка "vkontakte" в пакете в таком случае будет присутствовать.
/earth: file system full
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian
Контактная информация:

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение rm_ »

Да, это покруче чем у китайцев, с их великим китайским файрволом. :)
Может лучше было бы завернуть всех на прокси, а уж на нём - резать по URL?
Спасибо сказали:
Аватара пользователя
McLeod095
Сообщения: 477
ОС: Люблю слаку

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение McLeod095 »

Voler писал(а):
13.05.2009 11:57
Да проверил McLeod095 ты прав, действительно так.

Все работает как часики, но есть обратная сторона медали. Теперь даже поиск в яндексе или любой сайт содержащий строку в vkontakte не открывается..

Жеть как страшно... :blush:
Вот вывод

Код: Выделить всё

   56 47998 DROP       all  --  *      *       192.168.1.0/24       0.0.0.0/0           STRING match "vkontakte" ALGO name kmp TO 65535


Я например из-за этого правила не смог отредоктировать сообщение в этой теме, пока не сделал вот так

iptables -t filter -nvL FORWARD | grep "vkontakte"

Код: Выделить всё

    0     0 DROP       all  --  *      *      !192.168.1.222        0.0.0.0/0           STRING match "vkontakte" ALGO name kmp TO 65535


Все вопрос решенный.


Я правда вообще от Вас впервые услышал что есть такое расширение для iptables и не в курсе как оно работает, но что если дополнить до полного имени сайта включая http и т.п. или если поддерживаются регулярные выражения то использовать их.
ну а впрочем совет по поводу прокси верный. если таких правил одно или два то будет нормально, а если их больше 1000 то сервер точно будет в большом дауне.
"Work PC" E6750/2GB/Asus P5B Deluxe/2x250GB/6600GT 128/Slackware Current (Win 2003 in VmWare)
New Work: E6400/3GB/Arch
Home Book: Asus W6k00A/Arch, Asus 701/Arch
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

Стоит у меня прокси сервер. Squid3 + SquidGuard + Clamav + Icapd

Вот тут обсуждалось год назад Настройка squid-3.0.STABLE7-1.fc9.i386
Спасибо сказали:
Аватара пользователя
butch
Сообщения: 331
ОС: :OC

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение butch »

попробуйте терь воспользоваться анонимайзерами =)
вдруг ваш метод не совсем верный
Спасибо сказали:
konki
Сообщения: 216

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение konki »

Voler писал(а):
14.05.2009 08:06
Стоит у меня прокси сервер. Squid3 + SquidGuard + Clamav + Icapd

Вот тут обсуждалось год назад Настройка squid-3.0.STABLE7-1.fc9.i386


вопрос не в тему, но все равно задам:
слам на сквиде проверяет архивы (zip, rar, 7zip) или не так и не научился? интересуют именно два последних формата. создавать новую тему не хотелось бы.
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Voler »

Провеяет, если нужно покажу конфиги
Спасибо сказали:
Deface87
Сообщения: 2
ОС: Ubuntu

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Deface87 »

Доброго времени суток! Не могу настроить данное правило на блокировку сайтов vkontakte, odnoklassniki и т.п.
Linux Router 2.6.32-42-generic-pae #95-Ubuntu
Машина используется как шлюз
В файле /etc/nat прописываю (x.x.x.x - внешний ip адрес, заменен для конфиденциальности)

Код: Выделить всё

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
#
iptables -A INPUT -i lo -j ACCEPT
#
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 1600 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth0 -p udp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 3389 -j DNAT --to-destination 10.0.0.10:3389
iptables -t nat -A POSTROUTING -p tcp --dst 10.0.0.10 --dport 3389 -j SNAT --to-source x.x.x.x
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 80 -j DNAT --to-destination 10.0.0.250:80
iptables -t nat -A POSTROUTING -p tcp --dst 10.0.0.250 --dport 80 -j SNAT --to-source x.x.x.x
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 1600 -j DNAT --to-destination 10.0.0.250:1600
iptables -t nat -A POSTROUTING -p tcp --dst 10.0.0.250 --dport 1600 -j SNAT --to-source x.x.x.x
#
iptables  -A FORWARD -i eth1 -s 10.0.0.0/24 -m string --string vk.com --algo kmp --to 65535 -j DROP
#
iptables -A FORWARD -i eth0 -o eth1 -j REJECT

root@Router:~# iptables -nvL

Код: Выделить всё

Chain INPUT (policy ACCEPT 195 packets, 15407 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 1018  236K ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
 1102  476K ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:1600
   22  3965 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3389
    0     0 ACCEPT     udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           udp dpt:3389
    0     0 DROP       all  --  eth1   *       10.0.0.0/24          0.0.0.0/0           STRING match "vk.com" ALGO name kmp TO 65535
    0     0 REJECT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 165 packets, 61998 bytes)
 pkts bytes target     prot opt in     out     source               destination


Видно что команда принята, но через компьютер в локальной сети все так же, сайт открывается
Прошу подсказать направление
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение sash-kan »

Deface87 писал(а):
12.08.2012 11:07

Код: Выделить всё

1018  236K ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
…
    0     0 DROP       all  --  eth1   *       10.0.0.0/24          0.0.0.0/0           STRING match "vk.com" ALGO name kmp TO 65535
первое из процитированных правил разрешает весь тот трафик, что вы пытаетесь отсеять вторым процитированным правилом·
поставьте второе выше первого·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Deface87
Сообщения: 2
ОС: Ubuntu

Re: Решено: iptables и -m string --string "vkontakte" --algo kmp

Сообщение Deface87 »

sash-kan писал(а):
12.08.2012 20:01
Deface87 писал(а):
12.08.2012 11:07

Код: Выделить всё

1018  236K ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0
…
    0     0 DROP       all  --  eth1   *       10.0.0.0/24          0.0.0.0/0           STRING match "vk.com" ALGO name kmp TO 65535
первое из процитированных правил разрешает весь тот трафик, что вы пытаетесь отсеять вторым процитированным правилом·
поставьте второе выше первого·

Исправил, все заработало, спасибо!
Спасибо сказали:
Ответить