Реально ли такое без использования прокси?Просто раньше думал что это умеет только прокси, но потом в дешевых маршрутизаторах (D-Link DIR100) увидел что они умеют это и без прокси-сервера.
Может есть какая-то примочка и для ФРИ?
P.S. ФРЯ 7.1 х64, ipfw+natd (вариантов под pf не предлагать)
Просто нужно сделать файл с шаблонами имен сайтов, и чтобы если сайт попадал под шаблон - файрвол его блочил (или перенаправлял на определенную страницу на локальном веб-сервере).Рылся в гугле - ничего не нашел по поводу связки ipfw и блокировки URL :(
Пришла еще одна идея, может есть способ заставить локальный ДНС не резолвить определенные имена ???
Или только прокси прозрачный поднимать? Блин так не хотелось-бы, довольно сложная маршрутизация на сервере (4 разных канала Инета заходит). А это все перестраивать под прокси - полный капец...
>[оверквотинг удален]
>
>Рылся в гугле - ничего не нашел по поводу связки ipfw и
>блокировки URL :(
>
>Пришла еще одна идея, может есть способ заставить локальный ДНС не резолвить
>определенные имена ???
>
>Или только прокси прозрачный поднимать? Блин так не хотелось-бы, довольно сложная маршрутизация
>на сервере (4 разных канала Инета заходит). А это все перестраивать
>под прокси - полный капец...Ну можно сделать тупо - на серваке где крутится DNS прописать всё что нельзя в /etc/hosts указывая адрес локального сервака со страничкой запрета.
>[оверквотинг удален]
>>Пришла еще одна идея, может есть способ заставить локальный ДНС не резолвить
>>определенные имена ???
>>
>>Или только прокси прозрачный поднимать? Блин так не хотелось-бы, довольно сложная маршрутизация
>>на сервере (4 разных канала Инета заходит). А это все перестраивать
>>под прокси - полный капец...
>
>Ну можно сделать тупо - на серваке где крутится DNS прописать всё
>что нельзя в /etc/hosts указывая адрес локального сервака со страничкой запрета.
>какая связь hosts и DNS ? )
>>
>
>какая связь hosts и DNS ? )никакой :)
OS резолвит имена в в порядке указном в /etc/host.conf
>>>
>>
>>какая связь hosts и DNS ? )
>
>никакой :)
>OS резолвит имена в в порядке указном в /etc/host.confвот именно ОСЬ! ОСЬ ШЛЮЗА!!!! клиенты резолвятся чисто DNS сервером если таковой имеется.
>>>>
>>>
>>>какая связь hosts и DNS ? )
>>
>>никакой :)
>>OS резолвит имена в в порядке указном в /etc/host.conf
>
>вот именно ОСЬ! ОСЬ ШЛЮЗА!!!! клиенты резолвятся чисто DNS сервером если таковой
>имеется.К чему такие эмоции :))) Никто не говорит что это хорошее решение. Но какой-нибудь к примеру dnsmasq и вышеуказанный тупой метод будут работать.
>[оверквотинг удален]
>>>
>>>никакой :)
>>>OS резолвит имена в в порядке указном в /etc/host.conf
>>
>>вот именно ОСЬ! ОСЬ ШЛЮЗА!!!! клиенты резолвятся чисто DNS сервером если таковой
>>имеется.
>
>К чему такие эмоции :))) Никто не говорит что это хорошее решение.
>Но какой-нибудь к примеру dnsmasq и вышеуказанный тупой метод будут работать.
>не будут работать, поскольку днс не пользуется файлом hosts. Может быть dnsmasq это и делает, я точно не знаю, поскольку не использую, но ИМХО - нет. Bind, например, точно не использует hosts.
>[оверквотинг удален]
>>>вот именно ОСЬ! ОСЬ ШЛЮЗА!!!! клиенты резолвятся чисто DNS сервером если таковой
>>>имеется.
>>
>>К чему такие эмоции :))) Никто не говорит что это хорошее решение.
>>Но какой-нибудь к примеру dnsmasq и вышеуказанный тупой метод будут работать.
>>
>
>не будут работать, поскольку днс не пользуется файлом hosts. Может быть dnsmasq
>это и делает, я точно не знаю, поскольку не использую, но
>ИМХО - нет. Bind, например, точно не использует hosts.Согласен bind не читает hosts.
dnsmasq - это первое что пришло в голову :) в начале прошлого века по крайней мере dnsmasq читал hosts при загрузке. Ряд других dns подделок тоже читает hosts. (скажем djbdns c кучей патчей :))) )
Потому я бы не был на Вашем месте столь категоричен насчёт не будет работать :))))))
>[оверквотинг удален]
>
>Рылся в гугле - ничего не нашел по поводу связки ipfw и
>блокировки URL :(
>
>Пришла еще одна идея, может есть способ заставить локальный ДНС не резолвить
>определенные имена ???
>
>Или только прокси прозрачный поднимать? Блин так не хотелось-бы, довольно сложная маршрутизация
>на сервере (4 разных канала Инета заходит). А это все перестраивать
>под прокси - полный капец...мда пздец - ты хоть слыхал про модель OSI/OSI ?
>мда пздец - ты хоть слыхал про модель OSI/OSI ?Можно ближе к теме? :)
Можно сделать это при помощи ipfw, bind или ipfw + примочки? Например весь траффик с ipfw пускать через какой-нить програм дивертом, чтоб она фильтровала. Есть вообще такие программы?
Надо отучить пользователей лазить по порносайтам, но не хочется поднимать Сквид...
>>мда пздец - ты хоть слыхал про модель OSI/OSI ?
>
>Можно ближе к теме? :)
>
>Можно сделать это при помощи ipfw, bind или ipfw + примочки? Например
>весь траффик с ipfw пускать через какой-нить програм дивертом, чтоб она
>фильтровала. Есть вообще такие программы?
>
>Надо отучить пользователей лазить по порносайтам, но не хочется поднимать Сквид...Чтобы вытащить URL из пакета, вам нужно залезть на 7 уровень модели OSI. Так-то.
Если не squid, то какой-нибудь простой прокси, работающий в прозрачном режиме Вам всё-равно понадобиться.
>[оверквотинг удален]
>>Можно ближе к теме? :)
>>
>>Можно сделать это при помощи ipfw, bind или ipfw + примочки? Например
>>весь траффик с ipfw пускать через какой-нить програм дивертом, чтоб она
>>фильтровала. Есть вообще такие программы?
>>
>>Надо отучить пользователей лазить по порносайтам, но не хочется поднимать Сквид...
>
>Чтобы вытащить URL из пакета, вам нужно залезть на 7 уровень модели
>OSI. Так-то.вот этото он и не понимает ...
много щас таких развелось - им что ipfw что squid все едино ...
>Если не squid, то какой-нибудь простой прокси, работающий в прозрачном режиме Вам
>всё-равно понадобиться.
>много щас таких развелось - им что ipfw что squid все единоЯ такого не говорил. Я просто говорил, что не хочется ставить сквид из-за сложной маршрутизации. Это в сквиде настраивать чтоб определенные IP выходили через определенный внешний IP (т.к. каналов несколько). Т.е. ставить еще и отдельный биллинг для сквида, т.к. установленный уже не сможет добавлять пользователей и раскидывать их по внешним каналам.
Вообщем все что настроено придется перенастраивать заново - еще убить несколько дней. А производство непрерывное, столько времени мне никто не даст...И я не говорю, что ipfw это должен уметь делать. Я просто думал что может есть какая-то программулина, в которую дивертом можно пакеты закидывать, а она уже будет фильтровать их.
>>Если не squid, то какой-нибудь простой прокси, работающий в прозрачном режиме Вам
>>всё-равно понадобиться.Как-же тогда делается в маршрутизаторах это? Неужели в роутере за 20$ стоит прозрачный прокси ???
>[оверквотинг удален]
>
>И я не говорю, что ipfw это должен уметь делать. Я просто
>думал что может есть какая-то программулина, в которую дивертом можно пакеты
>закидывать, а она уже будет фильтровать их.
>
>>>Если не squid, то какой-нибудь простой прокси, работающий в прозрачном режиме Вам
>>>всё-равно понадобиться.
>
>Как-же тогда делается в маршрутизаторах это? Неужели в роутере за 20$ стоит
>прозрачный прокси ???iptables + модуль string. Маршрутизатор за 20$ не сумеет высокий pps и много каналов.
Я вас не понимаю - ну какая вам разница куда лезет пользователь заплативший вам деньги ?
Либо у вас организация, тогда полюбому надо использовать прокси, поскольку нужен более точный контроль.
>Я вас не понимаю - ну какая вам разница куда лезет пользователь
>заплативший вам деньги ?
>Либо у вас организация, тогда полюбому надо использовать прокси, поскольку нужен более
>точный контроль.Организация. Хорошо связанная с компьютерами и интернетом: т.е. людям нужны и торренты и скайпы и тысячи программ, которые не поддерживают прокси.
Т.е. в любом раскладе нужно настраивать еще и ipfw (для шлюза) и биллинг под него. Еще 4 канала в мир, надо раскидывать траффик между ними, еще на этом-же сервере крутится VPN-сервер для удаленных клиентов, апач, VOIP, Samba ...Вообщем жесть полная. Аж стремно туда лезть, хотя вроде бы сам настраивал.
Прокси можно поставить конечно, но я даже не представляю если честно как его настраивать под несколько каналов и как файрволом на него все сыпать (просто сквида конечно настраивал) + отдельный биллинг еще нужен для него.
Так что вот и думал, может есть варианты попроще. А модуля string нет под ipfw ?
Вообщем быстрей всего придется курить МАНы по сквиду (как его развязать на несколько каналов).
>Организация. Хорошо связанная с компьютерами и интернетом: т.е. людям нужны и торренты
>и скайпы и тысячи программ, которые не поддерживают прокси.Если у вас в сети skype, нет вообщи никакого смысла что-либо блокировать. А тысячи программ, не поддерживающих прокси, по http и не работтают, поэтому прозрачный squid вас спасет.
>Как-же тогда делается в маршрутизаторах это? Неужели в роутере за 20$ стоит
>прозрачный прокси ???А вы уверены, что оно блочит именно по url, а не по ip, в который предварительно резолвится url? Как проверяли?
>Чтобы вытащить URL из пакета, вам нужно залезть на 7 уровень модели
>OSI.Что ты подразумеваешь под `залезть'? Есть IP пакет, у него есть payload, в нем можно грепнуть URL, никаких OSI и уровней. Разумеется, фаирволы это не умеют и не должны уметь.
>>Чтобы вытащить URL из пакета, вам нужно залезть на 7 уровень модели
>>OSI.
>
>Что ты подразумеваешь под `залезть'? Есть IP пакет, у него есть payload,
>в нем можно грепнуть URL, никаких OSI и уровней. Разумеется, фаирволы
>это не умеют и не должны уметь.учи матчасть!
Тут пришел вчера в голову вариант неплохой с прозрачным прокси :)Где-то в инете очень давно видел статью, там про то, как заставить Сквид ходить по нескольким каналам в мир. Вообщем идея была в том, что на выходе со Сквида одни юзеры выходят с одним IP, а остальные с другим. Ну а потом как обычно ipfw forward ...
Вообщем сделать можно тоже самое. Только вот можно-ли сделать так, чтобы при выходе из Сквида IP юзера не менялся (без прописывания в конфигах всех юзеров ручками)? А потом их уже кидать на НАТы и форвардами по провайдерам.
Тогда по идее можно будет оставить старый биллинг для распределения юзеров по каналам и выставления им скорости, а Сквид будет работать просто как URL-фильтр.
И еще сразу вопрос:
Если всетаки в Сквиде такое можно сделать, как потом различать пакеты в ipfw?
>[оверквотинг удален]
>всех юзеров ручками)? А потом их уже кидать на НАТы и
>форвардами по провайдерам.
>
>Тогда по идее можно будет оставить старый биллинг для распределения юзеров по
>каналам и выставления им скорости, а Сквид будет работать просто как
>URL-фильтр.
>
>И еще сразу вопрос:
>Если всетаки в Сквиде такое можно сделать, как потом различать пакеты в
>ipfw?
>учи матчасть!С чем несогласен, школота?
>>учи матчасть!
>
>С чем несогласен, школота?с ересью, ламота!
1 squid.opennet.ru
2 ман сквид
3 http://rejik.ru/
и будет вам счастье.в принцыпе можно поднять прозрачный сквид и неделать кеш то тогда он будет просто с помощью режика блокировать и перенаправлять запросы на нежелаемые вам сайты.
>с ересью, ламота!Понятно все. Удачи закончить начальную школу, позорище :)
Пашенька, ты уже затрахал тут всех. Молчал бы - глядишь и за умного сошел.
>>мда пздец - ты хоть слыхал про модель OSI/OSI ?
>
>Можно ближе к теме? :)
>
>Можно сделать это при помощи ipfw, bind или ipfw + примочки? Например
>весь траффик с ipfw пускать через какой-нить програм дивертом, чтоб она
>фильтровала. Есть вообще такие программы?
>
>Надо отучить пользователей лазить по порносайтам, но не хочется поднимать Сквид...Административными методами.
Гарантия - 100%.
1. Нормально и удобно работать с url'ами в прозрачном прокси.
Если не нравится squid, можно посмотреть другие прокси, более оптимизированные под скорость.
Может быть даже можно прикрутить nginx для этого.
Но и сам squid можно настроить и затюнить под простую проверку урлов по acl (отрубить кэш, прописать, чтоб он всегда перенаправлял запросы (direct), и т.д.).2. Прозрачных прокси можно поназапускать сколько угодно.
Можно по одному прокси на канал.
А в каждом прокси прописать опцию что-то типа outgoing_address, чтобы он отсылал запросы со своего внешнего ip.
Ещё я бы посоветовал вешать прокси серверы (bind или listen) прямо на внешние ip адреса - схема будет попонятнее и, возможно, чуть меньше геммороя с исходящими пакетами (запрос от клиента до сквида - это один пакет, а запрос сквида на сайт - это уже совсем другой пакет, который в ipfw проходит все правила с начала).3. Если уже есть биллинг, натт, несколько каналов и работает разброс по каналам, то...
Перенаправление на прокси делать чем-то вроде "fwd ip,port tcp from any to not me 80 out".
Это правило пихать ПОСЛЕ подсчета биллингом и ПОСЛЕ ната, но ДО окончательного FWD наружу.
Тогда прокси вообще никак не сломает существующую схему.Если хочется странного, могу посоветовать посмотреть модули для netgraph - может там чего есть для определения пакетов по контенту.
Если хочется извращений, то модуль ng_bpf в общем-то может читать контент пакета.
Но это изврат конский)P.S.
Прозрачный прокси - это мера "против толпы ламеров".
Если человек знает, что такое прокси, то это обходится на раз.
Если все это внутри организации, самые лучшие меры - административные.
А вот для этого прозрачный прокси очень хорошо может помочь, если настроить его писать запросы юзеров в лог.
>3. Если уже есть биллинг, натт, несколько каналов и работает разброс по
>каналам, то...
>Перенаправление на прокси делать чем-то вроде "fwd ip,port tcp from any to
>not me 80 out".
>Это правило пихать ПОСЛЕ подсчета биллингом и ПОСЛЕ ната, но ДО окончательного
>FWD наружу.
>Тогда прокси вообще никак не сломает существующую схему.У меня как раз проблема - не режется исходящий траффик, идущий через прокси. Попробую опустить форвард на прокси ниже пайпов, надеюсь поможет.
>Прозрачный прокси - это мера "против толпы ламеров".
>Если человек знает, что такое прокси, то это обходится на раз.
>Если все это внутри организации, самые лучшие меры - административные.
>А вот для этого прозрачный прокси очень хорошо может помочь, если настроить
>его писать запросы юзеров в лог.Спасибо, сейчас им и пользуюсь, вполне нормально. Очень помог rejik.ru.
Как можно отключить кэш в Сквиде, а то тормозит немного. Ждешь пока сначала в кэш загрузит, а потом еще через пайп всеравно с ограниченной скоростью пройдет. Для юзеров такое впечатление - что скорость упала раза в полтора, хотя при скачивании все ОК :)
фаервол не режет по УРЛам, он понимает только нарезку по IP или по портам.
Юзай сквид, можно в паре с rejik'om.Google squid
Google rejik
> Реально ли такое без использования прокси?
> Просто раньше думал что это умеет только прокси, но потом в дешевых
> маршрутизаторах (D-Link DIR100) увидел что они умеют это и без прокси-сервера.
> Может есть какая-то примочка и для ФРИ?
> P.S. ФРЯ 7.1 х64, ipfw+natd (вариантов под pf не предлагать)Абсолютно по URL нельзя.
Но можно отрезолвить домены и блокировать или разрешать по IP.
Минус в данном подходе в том что на одном том же IP может находиться несколько сайтов.В моем случае правила разрешающие, поэтому и минуса этого нет.
Создаем скрипт и ставим его в Cron, например раз в день.#!/bin/sh
fwcmd="/sbin/ipfw -q"
url='jde.ru,api-maps.yandex.ru,maps.yandex.ru,vec.maps.yandex.ru,clck.yandex.ru'
url2=`echo $url | sed 's/,/ /g'`
${fwcmd} table 2 flush
for i in $url2
do
ip=`nslookup $i | grep -A 1 'Name' | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}'`
for y in $ip
do
#добавляем IP в таблицу
${fwcmd} table 2 add $y
done
doneНа случай перезагрузки этот же скрипт добавляем в rc.firewall
Ну а дальше рулими правилами.
Например:
${fwcmd} add divert natd ip from ${Net}/${NetMask} to table\(2\) out via ${LanOut}
Разрешили внутренней сетке ходить по этим адресам через Nat