Хочется заблокировать "нежелательные" сайты. Тема неоднократно обсуждалась.
Но возникает проблема в следующем:
Пишем в squid.conf
acl url_porno url_regex -i "d:/prog/squid/etc/url_porno"
http_access deny url_pornoили используем redirector, например из www.rejik.ru (кстати хорошо описан и реально работает)
и было бы полное счастье, если бы не хитрость Юзеров. Делается просто: ping www.sex.ru (или подобное). В ответ получают адрес сайта и в
адресную строку броузера ставят этот адрес. А на него как раз запрета и нет.
Все прекрасно качается (смотрится)
Резолвинг для пользователя закрывать (по-моему) бессмысленно так как особо ретивые
обращаются к друзьям-знакомым за адресочком. В конце концов есть Whois сервера
Если прописывать в файл с запрещенными названиями сайтов еще и адреса - количество увеличивается практически вдвое.
Да и не хорошо как-то закрывать IP-шники т.к. на этом адресе м.быть несколько доменов.
И чего-то я не пойму. Как лучше с этой напастью бороться?
Может даст кто совет?
>и было бы полное счастье, если бы не хитрость Юзеров. Делается просто:
>ping www.sex.ru (или подобное). В ответ получают адрес сайта и в
Гм, у меня до этого еще не додумались. ;-)>количество увеличивается практически вдвое.
Похоже, что другого выхода нет.>Да и не хорошо как-то закрывать IP-шники т.к. на этом адресе м.быть
>несколько доменов.
Да, но "закрытие" IP-шника коснеться только "главного" из них, т.е. доступ к другим доменам сохраниться.Надо что ли автору режика эту проблему подкинуть: быстрее, наверное, список удвоить, чем по IP определять URL и потом фильтровать. Кстати, в бан-листах режика довольно много IP адресов.
Пространные размышления ;-). Вначале было IP. Потом для удобствами придумали DNS. Теперь, чтобы обойти это удобство, вернулись к IP.
>Хочется заблокировать "нежелательные" сайты. Тема неоднократно обсуждалась.
>Но возникает проблема в следующем:
>Пишем в squid.conf
>acl url_porno url_regex -i "d:/prog/squid/etc/url_porno"
>http_access deny url_porno
>
>или используем redirector, например из www.rejik.ru (кстати хорошо описан и реально работает)
>
>и было бы полное счастье, если бы не хитрость Юзеров. Делается просто:
>ping www.sex.ru (или подобное). В ответ получают адрес сайта и в
>
>адресную строку броузера ставят этот адрес. А на него как раз запрета
>и нет.
>Все прекрасно качается (смотрится)
>Резолвинг для пользователя закрывать (по-моему) бессмысленно так как особо ретивые
>обращаются к друзьям-знакомым за адресочком. В конце концов есть Whois сервера
>Если прописывать в файл с запрещенными названиями сайтов еще и адреса -
>количество увеличивается практически вдвое.
>Да и не хорошо как-то закрывать IP-шники т.к. на этом адресе м.быть
>несколько доменов.
>И чего-то я не пойму. Как лучше с этой напастью бороться?
>Может даст кто совет?
Вот тебе и совет:)
Используй не url_regex, а dstdom_regex (читаешь внимательней squid.conf на предмет применения и пояснения)
>Хочется заблокировать "нежелательные" сайты. Тема неоднократно обсуждалась.
>Но возникает проблема в следующем:
>Пишем в squid.conf
>acl url_porno url_regex -i "d:/prog/squid/etc/url_porno"
>http_access deny url_porno
>
>или используем redirector, например из www.rejik.ru (кстати хорошо описан и реально работает)
>
>и было бы полное счастье, если бы не хитрость Юзеров. Делается просто:
>ping www.sex.ru (или подобное). В ответ получают адрес сайта и в
>
>адресную строку броузера ставят этот адрес. А на него как раз запрета
>и нет.
>Все прекрасно качается (смотрится)
>Резолвинг для пользователя закрывать (по-моему) бессмысленно так как особо ретивые
>обращаются к друзьям-знакомым за адресочком. В конце концов есть Whois сервера
>Если прописывать в файл с запрещенными названиями сайтов еще и адреса -
>количество увеличивается практически вдвое.
>Да и не хорошо как-то закрывать IP-шники т.к. на этом адресе м.быть
>несколько доменов.
>И чего-то я не пойму. Как лучше с этой напастью бороться?
>Может даст кто совет?всё очень просто в конфиге сквида пишешь :
acl IPaddrURLs url_regex http://[0-9]+\.[0-9]+\.[0...
http_access deny IPaddrURLs
более никто по ip никуда не попадет !
>всё очень просто в конфиге сквида пишешь :
>acl IPaddrURLs url_regex http://[0-9]+\.[0-9]+\.[0...
>http_access deny IPaddrURLs
>более никто по ip никуда не попадет !А если мне нужно будет проверять локальные вэб-сервера, которые имеют внутренние адреса и соответственно не прописаны в ДНС?
Наверное использование dstdom_regex будет всё-таки более правильным решением. На мой взгляд.
>>всё очень просто в конфиге сквида пишешь :
>>acl IPaddrURLs url_regex http://[0-9]+\.[0-9]+\.[0...
>>http_access deny IPaddrURLs
>>более никто по ip никуда не попадет !
>
>А если мне нужно будет проверять локальные вэб-сервера, которые имеют внутренние адреса
>и соответственно не прописаны в ДНС?
>Наверное использование dstdom_regex будет всё-таки более правильным решением. На мой взгляд.ну ты даешь! поставь аксели на себя любимого выше этих правил и всё!
Спасибо всем. .... url_regex http://[0-9]+\.[0-9]+\.[0... сработало великолепно.А вот как можно в этой ситуации использовать dstdom_regex не сильно понял.
Как написано dstdom_regex: шаблон регулярного выражения назначения (сервер)
Понимаю, что использование dstdom_regex позволяет производить обратное преобразование адресов.
Т.е. если указано
acl IPaddr dstdom_regex "/squid/porno"
http_access deny IPaddr
то при использовании dstdom_regex произойдёт обратное преобразование из IP в ИМЯ и сравнение с запретными сайтами, которые у меня в файле??
Я правильно вас понял?
>Т.е. если указано
>acl IPaddr dstdom_regex "/squid/porno"
>http_access deny IPaddr
>то при использовании dstdom_regex произойдёт обратное преобразование из IP в ИМЯ и
>сравнение с запретными сайтами, которые у меня в файле??
>Я правильно вас понял?Совершенно верно
>и было бы полное счастье, если бы не хитрость Юзеров. Делается просто:
>ping www.sex.ru (или подобное). В ответ получают адрес сайта и в
а зачем открывать NAT и ДНС для простых пользователей?
у меня NAT строго по нужным хостам и адресам разрешен, так что такая хитрость Юзеров не пройдет.
dstdomain плохое решение для режекта порно, сайт может иметь безобидное
название, но иметь урлы с порно словами, например
www.site.com\adult
в этом случае dstdomain не покатит !
>dstdomain плохое решение для режекта порно, сайт может иметь безобидное
>название, но иметь урлы с порно словами, например
>www.site.com\adult
>в этом случае dstdomain не покатит !
Обсуждается не решение по резке порно по урлам, а банить обращение по ip-адресам! RTFM!!!
Для резки порнухи лучше использовать редиректоры, для сих целей предназначенные (в моём понимании). Вопрошающему нужен был ответ по определённому моменту. Предложенный мной способ удобнее (объяснил почему) и не привязан к определённым машинам в сети.Удачного дня.
Решение с acl IPaddrURLs url_regex http://[0-9]+\.[0-9]+\.[0...
красивое. Решение с dstdomain тоже правильное.
Но вот есть другая проблема с тем же acl url_regex -i.
Известно, что url_regex ищет совпадение в строке URL. Тогда при запрете скачивания файлов с определённым расширением
acl STOP_FILE url_regex -i .exe .com .zip .rar .arj .ha
получаем следующую картину.
Пользователь не может перейти по ссылке содержащей слова comment channel так
как в первом слове есть буквосочетание com, а во втором ha. Как запретить скачивание файлов по расширениям правильно?
Когда нибудь обращал внимание на такие вещи:
^http://
exe$ mp3$
Не задавался вопросом, что они значат?
смотрим регулярные выражения на перле
>Когда нибудь обращал внимание на такие вещи:
>^http://
>exe$ mp3$
>Не задавался вопросом, что они значат?
>смотрим регулярные выражения на перлеЧестно говоря, я не силён в Perl, но хотелось бы знать.
Проясни если можешь.
>>Когда нибудь обращал внимание на такие вещи:
>>^http://
>>exe$ mp3$
>>Не задавался вопросом, что они значат?
>>смотрим регулярные выражения на перле
>
>Честно говоря, я не силён в Perl, но хотелось бы знать.
>Проясни если можешь.acl deny_file url_regex -i "/usr/local/squid/etc/deny_file"
в файле\.[zZ][iI][pP]$
\.[aA][rR][jJ]$
\.[qQ][qQ][qQ]$
\.[rR][aA][rR]$
\.[hH][aA]$
\.[mM][pP][33]$
впрочем если стоит -i, можно просто написать
\.zip$
есть еще наюнасы с резкой порно, допустим есть в списке плохое слово cum
тогда все урлы со словом document будут отшиваться , поэтому нужно завести еще один список:
acl noporno url_regex -i "/usr/local/squid/etc/noporn"
http_access allow noporno
и туда пихать такие слова как document и другие
например analyze (в порно - anal )
>впрочем если стоит -i, можно просто написать
>\.zip$
>есть еще наюнасы с резкой порно, допустим есть в списке плохое слово cum
>тогда все урлы со словом document будут отшиваться , поэтому нужно завести еще один список:
>acl noporno url_regex -i "/usr/local/squid/etc/noporn"
>http_access allow noporno
>и туда пихать такие слова как document и другие
>например analyze (в порно - anal )Хорошо, а почему нельзя сделать по аналогии
\cum$
\anal$
>>впрочем если стоит -i, можно просто написать
>>\.zip$
>>есть еще наюнасы с резкой порно, допустим есть в списке плохое слово cum
>>тогда все урлы со словом document будут отшиваться , поэтому нужно завести еще один список:
>>acl noporno url_regex -i "/usr/local/squid/etc/noporn"
>>http_access allow noporno
>>и туда пихать такие слова как document и другие
>>например analyze (в порно - anal )
>
>Хорошо, а почему нельзя сделать по аналогии
>\cum$
>\anal$хм, может и можно, надо проверить
^ означает начало строки, т.е. '^http' сработает на 'http:/' и не сработает на 'blabla-http', $ означает окончание строки, '.' заменяет любой символ, соответственно точка в строке выглядит как '\.', т.е. если мы хотим убрать расширение zip, то пишем так '\.zip$'
>^ означает начало строки, т.е. '^http' сработает на 'http:/' и не сработает
>на 'blabla-http', $ означает окончание строки, '.' заменяет любой символ,
>соответственно точка в строке выглядит как '\.', т.е. если мы хотим убрать
>расширение zip, то пишем так '\.zip$'Т.е., как я понял выражение
^com$
означает, что вхождение будет считаться истинным если встретится конкретно
com
А если мы напишем
\com$
то это значит любое слово оканчивающееся на
com
например intercom
А если в строке http://porno.com/anal/girl.jpg надо выделить
буквосочетание anal и заблокировать доступ. Но разрешить доступ к
ссылке http://www.rbc.ru/analitic.htm. Как быть?
>
>Т.е., как я понял выражение
> ^com$
>означает, что вхождение будет считаться истинным если встретится конкретно
> comНет. Не правильно понял. ^com$ значит только 'com'
>А если мы напишем
> \com$
В шаблонах используются следующие метасимволы (символы обозначающие группы других символов) часто называемые egrep - стандартом:
\ - считать следующий метасимвол как обычный символ.
^ - начало строки
. - один произвольный символ. Кроме '\n' - конец строки.
$ - конец строки
....
Дополнительно в Perl добавлены следующие метасимволы:
\w - алфавитно-цифровой или '_' символ
\W - не -//-
\s - один пробел
\S - один не пробел
\d - одна цифр
\D - одна не цифраОбратите внимание, что все это "один" символ. Для обозначения последовательности применяйте модификаторы. Так:
\w+ - слово
\d+ - целое число
(с) citforum
тебе все же надо посмотреть хоть что-то по регулярным выражениям, иначе так и не поймешь>А если в строке http://porno.com/anal/girl.jpg надо выделить
>буквосочетание anal и заблокировать доступ. Но разрешить доступ к
>ссылке http://www.rbc.ru/analitic.htm. Как быть?
Как было показано выше, создаешь файл с разрешенными именами. На страничке, которая высвечивается при запрете доступа указано - что если вы считаете несправедливым запрет доступа - свяжитесь с админом. Ну и сам периодически парсь лог на предмет TCP_DENIED, чтоб добавлять разрешенные или кому следует уделять пристальное внимание 8)