Ситуация следущая: есть шлюз. На нем ipfw, apache и nat . Есть локалка. Юзеры ходят в инет и смотрят статистику чевез www на шлюзе. Хотелось бы прикрутить Squid, но так, чтобы работало по 80 порту. Пытался запустить Squid тупо, но говорит что 80 порт уже открыт. Может кто делал? Подскажите плиз.
>Ситуация следущая: есть шлюз. На нем
>ipfw, apache и nat .
>Есть локалка. Юзеры ходят в
>инет и смотрят статистику чевез
>www на шлюзе. Хотелось бы
>прикрутить Squid, но так, чтобы
>работало по 80 порту. Пытался
>запустить Squid тупо, но говорит
>что 80 порт уже открыт.
>Может кто делал? Подскажите плиз.
>
Естественно, у тебя же апач запущен на этом порту.
>Естественно, у тебя же апач запущен
>на этом порту.
Я в курсе. Подскажите лучше куда передвинуть Apache и как в ipfw выкупить что обращение по 80 порту именно к моему апачу и повернуть на апачевский порт. Так ваще делается?
>>Естественно, у тебя же апач запущен
>>на этом порту.
>Я в курсе. Подскажите лучше куда передвинуть Apache и как в ipfw
>выкупить что обращение по 80 порту именно к моему апачу и
>повернуть на апачевский порт. Так ваще делается?Как все хорошо начиналось, и чем оно закончилось)))
Короче так - заходишь в squid.conf и ставишь ему тот порт, где он должен дышать. 3128 обычно стоит... Ну и все. 80 - это АПАЧ, 3128 - это осьминог.
>Ситуация следущая: есть шлюз. На нем
>ipfw, apache и nat .
>Есть локалка. Юзеры ходят в
>инет и смотрят статистику чевез
>www на шлюзе.Как организовать статистику для пользователей не поделишся?
1. нужен ipfw и работающий nat.
/etc/rc.firewall
=================================================
${fwcmd} add 5 divert natd all from any to any in recv ${natd_interface}# for user_1
${fwcmd} add 10 count ip from 172.16.203.1 to any via an0
${fwcmd} add 11 count ip from 172.16.203.1 to any via an0
${fwcmd} add 12 divert 8668 ip from 172.16.203.1 to any via an0
${fwcmd} add 13 allow ip from 172.16.203.1 to any
${fwcmd} add 14 allow ip from any to 172.16.203.1${fwcmd} add 65534 allow ip from 80.66.68.78 to any out xmit an0
==================================================
an0 - внешний интерфейс
80.66.68.78 - ip внешнего интерфейса
172.16.203.1 - ip юзера2. По кронту пускаешь скрипт типа
traf.sh
==================================================
#!/bin/shP=/var/trafstat/counts
ipfw show | grep "^00005" | awk '{ print $3; }' > $P/common.traf
ipfw show | grep "^00011" | awk '{ print $3; }' > $P/user_1.traf/usr/local/trafstat/step.pl
==================================================
Этот скриптик считывает значения счетчиков из правила 00011 и записывает его
в /var/trafstat/counts/user_1.traf в текстовом формате.3. /usr/local/trafstat/step.pl
Запускаем програмку (у меня на скрипт перле)
которая анализирует файлы *.traf и загоняет их в базу данных юзера,
снимает со счета деньги (работаю по предоплате) и т.д. - делаешь
короче че душе угодно
Hi!
А не подскажешь как разделить при посчете траффика то что юзера выходят наружу (через сквид) и то что они качают с нашего же локального сайта (тоже через сквид)?
Общий траффик считается нормально, а вот как "отсеять" из этой суммы локальный траффик?Удачи!
HAN
>Hi!
>А не подскажешь как разделить при посчете траффика то что юзера
>выходят наружу (через сквид) и то что они качают с нашего
>же локального сайта (тоже через сквид)?
>Общий траффик считается нормально, а вот как "отсеять" из этой суммы локальный
>траффик?
парсишь лог сквида access.log на предмет TCP_HIT,TCP_MEM_HIT,TCP_DENIED,адрес клиента и т.д. в общем, лучше почитать про это в FAQ at http://squid-cache.org/,
информации оттуда мне хватило для подобной задачи
>
>Удачи!
>HAN
угу
Удачи!
Hi!
А вот ты чем его сканируешь (лог сквида)? Скриптом на перле, awk, ... или какими другими средствами?Удачи!
HAN
>Hi!
>А вот ты чем его сканируешь (лог сквида)? Скриптом на перле, awk,
>... или какими другими средствами?
скриптом на перле
>
>Удачи!
>HAN
>>Hi!
>>А вот ты чем его сканируешь (лог сквида)? Скриптом на перле, awk,
>>... или какими другими средствами?
>скриптом на перле
>>
>>Удачи!
>>HAN
и вообще,я не стал парить себе мозги прозрачным проксированием,просто сказал
юзерам - установить у себя в браузере прокси сервер. либо через прокси,либо никак. всё остальное закрыл. и ничё.ходют:))) шеф попробовал возразить - а я ему в ответ про экономию траффика, и игрушку ему подсунул - sarg называется.
все довольны.
А вот если хитрый юзер IP у глупого возьмет ? хе-хе. И потом sarg статистику дает по объему который получил юзер, а не ту сколько реально скачал из инета (cach hit понимаешь). По поводу transparent proxy читать тут http://www.opennet.me/base/net/transparent-proxy.txt.html или тут http://bog.pp.ru/work/squid.html#transparent ну или на yandex.ru поискать, если совсем все полохо :)
>А вот если хитрый юзер IP у глупого возьмет ? хе-хе
Для авторизации пользователя используется VPN. Поэтому "хе-хе" не пройдет. У нас локалка класса В. При успешной авторизации юзеру выдается IP класса А (10.0.0.ххх). По нему и считается статистика. VPN на основе пакета mpd-netgrath. НУ ТАК ЧТО НЕТ МОЗГОВ ОПЫТНЫХ ЧТО-ЛИ СОВСЕМ? Помогите, объясните тупому мне, как различить (см. условия задачи в самом верху) к моему апачу, или все-таки через нат в инет ?!!
>>А вот если хитрый юзер IP у глупого возьмет ? хе-хе
>Для авторизации пользователя используется VPN. Поэтому "хе-хе" не пройдет. У нас локалка
>класса В. При успешной авторизации юзеру выдается IP класса А (10.0.0.ххх).
>По нему и считается статистика. VPN на основе пакета mpd-netgrath. НУ
>ТАК ЧТО НЕТ МОЗГОВ ОПЫТНЫХ ЧТО-ЛИ СОВСЕМ? Помогите, объясните тупому мне,
>как различить (см. условия задачи в самом верху) к моему апачу,
>или все-таки через нат в инет ?!!
Перекидывай ipfw на порт сквида, или оставляй на апач, не получил клиент новый адрес, на апач его, из твоей сети, на сквид его.
>>А вот если хитрый юзер IP у глупого возьмет ? хе-хе
>Для авторизации пользователя используется VPN. Поэтому "хе-хе" не пройдет. У нас локалка
>класса В. При успешной авторизации юзеру выдается IP класса А (10.0.0.ххх).
>По нему и считается статистика. VPN на основе пакета mpd-netgrath. НУ
>ТАК ЧТО НЕТ МОЗГОВ ОПЫТНЫХ ЧТО-ЛИ СОВСЕМ? Помогите, объясните тупому мне,
>как различить (см. условия задачи в самом верху) к моему апачу,
>или все-таки через нат в инет ?!!
хммм....не знаю будет ли это красиво,но можно так....
1. поковыряться в настройках апача,чтобы он слушал и на интерфесе 10.0.0.х.
2. в правилах файрволла разрешить ipfw add allow tcp from 10.0.0/24 to $serverip 80....
3. в браузерах клиентов соответственно указать, что на адрес $serverip ходить, не используя прокси сервер.
у меня такая фигня работает,правда, у меня нет прозрачного прокси....
или сделать где-то так:
в случае с прозрачным прокси,думаю, перед правилом,которое перенаправляет все пакеты на сквид, надо написать правило,которое будет перенаправлять пакеты,идущие на твой локальный апач, напрямую на порт 80 10.0.0.х....
а вообще,сорри, не совсем трезв я,не уверен,что высказался ясно....а задача твоя вполне реализуема:)
>Ситуация следущая: есть шлюз. На нем ipfw, apache и nat . Есть
>локалка. Юзеры ходят в инет и смотрят статистику чевез www на
>шлюзе. Хотелось бы прикрутить Squid, но так, чтобы работало по 80
>порту. Пытался запустить Squid тупо, но говорит что 80 порт уже
>открыт. Может кто делал? Подскажите плиз.
http://squid.nlanr.net
читай про transparent(permanent) proxy, суть идеи очень простая - все что идёт на 80 порт у тебя заворачивается на 3128 прокси.
Нужно только пересобрать ядро с options IPDIVERT. Или же можно сделать всё с помощью ipfilter
>http://squid.nlanr.net тама стоит редирект на squid-cache.org а тама я нифига внятного не пашел.
Кто подскажет (у кого это рально работает) как повернуть пакеты с 80 порта на сквид ipfw fwd что то плохо с этим справляется.
>>http://squid.nlanr.net тама стоит редирект на squid-cache.org а тама я нифига внятного не пашел.
> Кто подскажет (у кого это рально работает) как повернуть пакеты с
>80 порта на сквид ipfw fwd что то плохо с этим
>справляется.1) в ядре:
options IPFIREWALL_FORWARD #enable transparent proxy support
2) в ipfw:
ipfw add fwd $proxy_ip,3128 tcp from $network_ip to any 80 via $internal_dev in
в твоем случае $internal_dev не an0
если $proxy_ip внутрений ip,то добавь алиас и apache повесь на него или
наоборот, i.e.
ifconfig $internal_dev inet $proxy_ip/$netmask
ifconfig $internal_dev inet $apache_ip/32 aliasесли хочешь на apache без proxy , чтобы ip userov(фамилия такой) в логах
откладывались, то до форвардинга пропиши allow на $apache_ip, i.e.ipfw add allow tcp from $network_ip to $apache_ip 80 via $internal_dev in
ipfw add fwd $proxy_ip,3128 tcp from $network_ip to any 80 via $internal_dev in
3) в squid.conf:httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onЭто работает !