После двухнедельного поиска и чтения я получил это правило iptable, которое блокирует youtube (как строку) для диапазона IP в моей офисной сети.
iptables -A FORWARD -t filter -m iprange --src-range 10.217.76.60-10.217.76.70 -m string --algo bm --string "youtube.com" -j DROP #block
Как видите, компьютеры от 0,60 до 0,70 (10 машин) не могут просматривать YouTube, в то время как, например, 0,75 банка. Правило работает только несколько минут и для некоторых клиентов. Через 2 или 3 минуты некоторые клиенты могут нормально просматривать YouTube. Если я закрою браузер этих клиентов, сброшу правила iptables и снова запустю их, все клиенты не смогут подключиться к youtube, но это снова длится 2-3 минуты и для некоторых клиентов (я говорю о клиентах диапазона IP) .
Кто-нибудь снова встречал такое поведение ?! Связано ли это с сервером, который я использую (ubuntu 11.04), кешем или чем-то еще !?
У меня также установлен squid3, где я блокирую http youtube и facebook, поэтому я подумал, установив iptables, я мог бы вырезать YouTube для https. (Но некоторым клиентам действительно нужен YouTube для работы, поэтому я хочу отключить прослушивание песен и бесполезный сетевой трафик).
РЕДАКТИРОВАТЬ: Спустя долгое время я попробовал: iptables -I FORWARD -t filter -s 10.217.76.80/28 -m string --algo bm --string "youtube.com" -j DROP #from .80 to .95 (15 ip)
и получил лучшее решение ... ненадолго. Через некоторое время некоторые клиенты снова начали просмотр (правило не сработало), а другие - нет (правило сработало). Я понимаю, что (как сказал MADHatter) - это Youtube со многими серверами, но я не понимаю, что при использовании такого правила iptables -I FORWARD -m string --algo bm --string "youtube.com" -j REJECT
весь трафик для всех клиентов отклоняется навсегда, а не только на какое-то время, единственное, что я хотел, - это использовать указанное выше правило для диапазона IP-адресов пользователей, например от .10 до .240, и позволить всем остальным свободно просматривать YouTube. Как вы думаете, для этого есть правило? Все остальное, подобное тому, что я пробовал, работало только в течение случайного периода времени.
Ты говоришь "Я мог бы вырезать YouTube для https". Это не сработает; URL-адреса в HTTPS-соединении обмениваются под прикрытием криптографии. Брандмауэр может находиться в потоке данных, но он не будет видеть этот диалог, поскольку к этому моменту его работа сводится к зашифрованные пакеты от одного интерфейса к другому.
Да, клиенты могут попытаться перейти на http://youtube.com, и вы можете десинхронизировать этот конкретный http
подключение. Но этот URL-адрес теперь перенаправляет их прямо на https://
сайт; рано или поздно ваши клиенты поймут, что они могут получить доступ к YouTube через SSL, и вы не сможете увидеть, что они делают.
Традиционный правильный метод модерации URL-адресов, к которым можно получить доступ, - это обязательный веб-прокси, но в случае содержимого HTTPS вы по-прежнему иметь проблему. Вы можете управлять всем этим посередине, но если у вас нет прокси, который повторно шифрует и повторно подписывает каждый запрос HTTPS (и каждый из ваших клиентов установил и доверяет сертификату CA вашего прокси), это приведет к очень неудовлетворительный опыт просмотра для ваших пользователей любой HTTPS-контент.
tl; dr: youtube решил обязать HTTPS-подключения к своим сайтам, поэтому без сложного проксирования (что кивает iptables
правила не) вы не можете помешать своим пользователям заходить туда.