Iptables mark + iproute2, как заблокировать домен?
Собственно вопросик небольшой)
Поднял я интернет-шлюз, lartc, все как надо.
Маркирую пакеты юзера
iptables -t mangle -A PREROUTING -s 10.0.0.6/32 ! -d 192.168.7.0/24 -j MARK --set-xmark 0x1/0xffffffff
И отправляю на нужный шлюз через ip rule
Нужно чтоб юзер, который сидит на этом правиле, не мог получить доступ к сайту скажем ya.ru
пробую так
iptables -t mangle -A PREROUTING -m mark --mark 1 -m string --string "ya.ru" --algo kmp -j DROP
а оно не работает, что ооооочень странно!
Подскажите, коллеги, как быть в этой ситуации?
Эээ... дроп пакетов я уже вставлял бы в -t nat FORWARD а не тамже в mangle + учтите что так вы словите пачку фалс позитивов - например юзер будет открывать сайт где есть ссылки на ya.ru и пакеты тоже будут попадать под правило и дропатся.
имхо оч странное решение задачи.
Доступ к сайтам лучше резать на прокси или локальным днсом отдавать ип заглушки а сторонние днсы запретить/зафаерволить
Решено.
iptables -A FORWARD -p tcp --dport 1094 -m string --string "ya.ru" --algo kmp -j REJECT --reject-with tcp-reset
Прокси и локальный днс не совсем подходят.
В сети есть юзеры и маршруты \ прокси, для которых нада сделать исключение.