Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» SQUID (только под *nix)

Автор: Labutin
Дата сообщения: 17.10.2004 20:40
Про ограничение канала для конкретного узера/хоста написано много.
А меня интересует следующее разделение трафика:
- в сети два пользователя
- нужно, чтобы у одного пользователя была гарантированная ширина канала. Т.е. если второй юзер одновременно пользуется инетом, то его нужно ущемить в канале.
- если работает кто-то один, то он может занимать канал на все 100%
Такое в squid'е можно настроить? Если про это уже было - просто намекните, где искать.
Автор: xy
Дата сообщения: 18.10.2004 08:36
Labutin

Цитата:
Такое в squid'е можно настроить?

в сквиде не знаю, но если у тебя Фря, то имхо это удобней реализовать через ipfw
Автор: donkmonk
Дата сообщения: 18.10.2004 12:08
Господа, а как посмотреть, из-за какого именно ACL сквид сказал "access denied"?

Странное поведение какое-то, вроде простенькие аксесс-листы, а он на некоторые сайты не пущает - хотя я его об этом никогда не просил. Думал, debug_options ALL,9 что-нибудь пррояснит, ан нет - в логе только TCP_DENIED/403...

2.5.STABLE6-CVS, если это важно...
Автор: vtvitus
Дата сообщения: 22.10.2004 18:47
Народ помогите пожалуйста настроить refresh_pattern для домашней локалки на две машины =). Посмотрел, при стандартной настройке очень много TCP_MISS на картинки, которые по идее уже должны быть в кеше. моя текущая настройка (от балбы) refresh_pattern . 720 40% 10080 override-expire reload-into-ims
Автор: grik00ff
Дата сообщения: 04.11.2004 12:23
Сорри если не в тему. Можно ли применить squid для такой задачи? Поставить шлюз в инет с коннектом через ISDN на линуксе, настроить этот squid так чтобы нужным юзерам разрешить дозваниваться до провайдера, работать в инете, а потом закрывать соединение вручную удаленно, либо по тайм-ауту. Такой изврат связан с разделением одного и того же канала ISDN для инета и телефонии. Короче аналог Kerio Winroute Firewall. Нутром чую, что все это в связке с чем-нибудь делается, но обосновать не могу. Обоснуйте плиз! или ссылку киньте.
Автор: Labutin
Дата сообщения: 17.11.2004 22:31
У меня такой вопрос - а есть ли плагины к squid'у, которые могут компрессировать трафик на лету? Например, когда обмениваются информацией между собой (родительский и дочерний сервера). Ну или что-то подобное.
Автор: zenia
Дата сообщения: 23.11.2004 16:22
А что нужно прописать в конфиге Squid чтобы можно было закачивать на фтп, а то сейчас только подключиться и скачать можно. А когда закачиваешь, то только файл нулевой на фтп создается и все.
Автор: fortune
Дата сообщения: 24.11.2004 23:35
zenia, поставь frox и будет тебе счастье.
Автор: Dr_Spectre
Дата сообщения: 26.11.2004 22:03

Цитата:
А что нужно прописать в конфиге Squid чтобы можно было закачивать на фтп, а то сейчас только подключиться и скачать можно. А когда закачиваешь, то только файл нулевой на фтп создается и все.


а без squid не пробовали? может дело не в squid вовсе?
можно попробовать порты 20 и 21 внести в safe_ports - которые через CONNECT пробрасываются.
Автор: TbIrbIDbIM
Дата сообщения: 30.11.2004 16:34
вообщем вопрос такой, возможно ли реализовать такую систему.

Кешируется всё, что только возможно, в том числе и баннеры.

Далее, при обращении к странице, squid берет контрольные суммы файлов страницы (или чего-нить ещё) и смотрит в кэш, если с такой контрольной суммой уже что-то есть, он отдает из кеша, если нет, то кушает из инета, и кладет в кэш.

Кешированые файлы, размером меньше 1Мб, которые не запрашивались втечение 1 недели удаляются.

Реализуема ли эта система?
Автор: UNKNOWING
Дата сообщения: 04.01.2005 18:34
TbIrbIDbIM

а как ты хочешь чтобы сквид узнал crc удаленной страницы?

Чем тебе не нравиться система кеширования сквида?
Автор: Ptrovich
Дата сообщения: 08.02.2005 15:35
Доброго времени суток.
FreeBSD 4.3 Squid 2.5
Проблема уже рассматривалась, и человеку помогли строчки

httpd_accel_virtual 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

в Сквид конф
Мне не помогли.
Настроил сквид по минимальному
http_port 3128
hierarchy_stoplist jsp asp cgi-bin ?
cache_mem 25 MB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
cache_mgr oper@lu.ru
cache_effective_user nobody
cache_effective_group nogroup
acl our_netw src 192.168.3.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
acl porno url_regex -i "/usr/local/squid/etc/porno"
acl reklama url_regex -i "/usr/local/squid/etc/banners"
http_access deny reklama
http_access deny porno
http_access allow localhost
http_access allow our_netw
http_access deny all
Пользую проксю насильно прописывая в браузере - все ок.
Правлю файерволл:
fw='/sbin/ipfw'
firmnet='192.168.3.0/24'
uprefix='192.168.3'
intout=rl0
intin=vr0
inipi='192.168.3.25'
outipi='195.45.239.69'
upports='1025-65535'

for_all='smtp,pop3,domain,http,https,ssh,ftp,aol'

${fw} -f flush

#pipe
#${fw} add deny all from any to 192.168.3.42 via ${intin}
${fw} add pipe 1 all from 192.168.3.71 to any via ${intin}
${fw} pipe 1 config bw 50Kbit/s
${fw} add pipe 2 all from any to 192.168.3.71 via ${intin}
${fw} pipe 2 config bw 50kbit/s
${fw} add pipe 3 all from any to 192.168.3.73 via ${intin}
${fw} pipe 3 config bw 50kbit/s
${fw} add allow all from any to any via lo0

снимаю коммент с этой строки:
#${fw} add fwd 127.0.0.1:3128 tcp from ${firmnet} to any http,https via ${intin}

${fw} add allow all from ${firmnet} to any in recv ${intin}
${fw} add allow all from any to ${firmnet} out xmit ${intin}
#diverting
${fw} add divert natd all from ${firmnet} to any out xmit ${intout}
${fw} add divert natd all from any to ${outipi} in recv ${intout}
${fw} add allow ip from any to any via rl0

После этого при любом запросе в броузере:
"The requested URL could not be retrieved

Some aspect of the requested URL is incorrect. Possible problems:

Missing or incorrect access protocol (should be `http://'' or similar)
Missing hostname

В чем грабли? Скорее всего в файере, потому что после правки такое начинается.

Раз никто не ответил запишу сам может кому пригодится:
Такая штука называется "прозрачный прокси" , тоесть когда пользователь из локалки может выставлять в браузере что угодно, но когда пойдет запрос от пользователя к странице в сети, то на шлюзе файерволл отловит его (запрос) и перенаправит в проксю на 3128 , прокся его поймает , обработает и либо из кеша отдаст назад запрошеную страницу , либо пошлет запрос дальше. Тоесть пользователь полюбому вынужден подчинится правилам его местной прокси, даже если в браузере он поставил себе совсем другой прокси-сервер.
Эта вещь не работает без таких настроек Сквида:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Пару страниц назад чел уже написал это , но сделал пару граматических ошибок в коде, из - за которых у меня ничего не вышло. Щас все работает
Автор: ArtLonger
Дата сообщения: 08.02.2005 16:44
Уважаемые, я только начинающий, и сейчас пытаюсь освоить Squid.
Есть такой вопрос - можно ли в зависимости от прав запретить определённой группе пользователей использовать parent proxy? Он подключается у меня строкой cache_peer х.х.х.х parent 3128 3130 login=PASS default no-query. К примеру, администраторы acl adm src х.х.х.1 х.х.х.2 х.х.х.3 могут выходить как в корпоративную сеть сразу за прокси, так и в Интернет через parent proxy, а обычные пользователи acl usr src х.х.х.0/255.255.255.0 - только в корпоративную сеть. Такое возможно сделать?
Автор: Ptrovich
Дата сообщения: 08.02.2005 17:34
Я тоже начинающий , по-этому держи мою мысль:
Админы в один АСL:
acl adminy src 192.168.0.1 192.168.0.10 192.168.0.11
(тут я не уверен правильно ли написал, может нужно еще маску к каждому айпу)
Рекурсивная петля отдельно, на всякий случай:
acl localhost src 127.0.0.1/255.255.255.255
Все остальное :
acl all src 0.0.0.0/0.0.0.0
Через рекурсивную петлю проходит все:
http_access allow localhost
Админы ходят в нет через проксю:
http_access allow adminy
Все остальное не ходит в нет через проксю :
http_access deny all

Кстати если надумал создать "прозрачную проксю", то незабудь это :
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Иначе столкнешься с такой же проблемой как я в предыдущем посте , и пару страниц назад.
Прозрачная прокся, это оказывается когда у тебя на серваке файер перехватывает запросы тср на внутреннем интерфейсе из локальной сети и перенаправляет на проксю насильно, тоесть как бы не настроили юзера свои броузеры, они первым делом посетят их родной кеш, подчинятся правилам местной прокси, (деление скорости , ограничение на порно и пр) а потом уже поползут по тем проксям на которые они себе порасставляли в браузерах.

Автор: ArtLonger
Дата сообщения: 08.02.2005 19:15
Ptrovich
Не, так не выходит. У меня получается два прокси цепочкой, так за первый (мой) многим ходить можно, ибо в корпоративной сетке информационный сервак стоит - статистика, доки и т.п... Но канал у меня на 50 персон ну очень узкий (512 кбит ADSL) и поэтому интернет-ходоков надо именно на каскадный прокси не пускать (я думаю простым юзерам полканала по delay pool выделить, благо инфа в основном текстовая). А такой способ оставляет каскадный прокси доступным.


Цитата:
тут я не уверен правильно ли написал, может нужно еще маску к каждому айпу

У меня без маски работает. Видимо по умолчанию берётся 255.255.255.0

Прозрачная прокся пока не нужна, мне бы с обычной разобраться...
Автор: Ptrovich
Дата сообщения: 08.02.2005 21:04
Тогда нужно на втором который в мир отрегулировать чтоб других непускало. А сквозь свой всех пускай. Или я чего то недопонял? Я чето слабо понимаю на каком этапе идет разделение. Я так понял: ты со своей сетью и проксей сидишь как клиент еще одной сети у которой есть прокся наружная. Тебе нужно часть людей пустить тока ДО наружной прокси, а остальных ЗА нее в мир. Я тогда не могу понять зачем тебе прокся у себя в локали. Проще всех поделить на наружной проксе , которая в мир смотрит.

Кроме всего я настроил более менее сквид, и у меня появился еще вопр: У меня в локале сидит чел который обновляет сайт написаный на флеше. Флешовый модуль запускаясь при востребовании читает все данные из текстового файла, таким образом после обновления сайта, при обновлении страницы сайт качается из кеша и изменений не видно. Я понял что нужно использовать что - то вроде always_direct x.x.x.x
ноу меня не выходит. Может нужны еще какие то настройки?
Автор: ArtLonger
Дата сообщения: 08.02.2005 21:58
Ptrovich
Наружную проксю мне даже издали не покажут . Там своя система, однако разрешить всем у них не заржавело. Было бы у меня туда 100 мегабит, я бы не переживал так. Однако любой дорвавшийся начальничек забъёт мне канал так, что мама не горюй...
Автор: Ptrovich
Дата сообщения: 09.02.2005 13:09
Назрело решение.
Твоя сеть : 192.168.0.0/24.
VIPы из твоей сети 192.168.0.5 , 192.168.0.10 , 192.168.0.55.
собсно поехали:
acl vip src 192.168.0.5 192.168.0.10 192.168.0.55
acl localhost src 127.0.0.1/255.255.255.255
acl badURL url_regex -i http www
http_access allow localhost
http_access allow vip
http_access deny bad_url
Мысль такая : поскольку правила чекаются сверху вниз, то:
Если юзер вип , его запрос подчиняется 5 строке и идет в корпоративную сеть и дальше куда захочет.
Если он не вип, то его запрос в инет , тобишь когда он наберет www либо даже без www, его поймает шестая строка которая скажет что урла не может быть доставлена. Зато если он наберет адрес машины из локали своей либо соседней \\valera\obmen его пустит без проблем , до тех пор пока в запросе не начнет фигурировать http либо www

_________________________________
Касательно моей проблемы. Сайт с флешем зарешал при помощи
hierarchy_stoplist swf
Оказывается hierarchy_stoplist смотрит расширения файлов, если они ему "знакомы" , то он закачивает их напрямую из сайта , не читая из кеша. Таким образом у меня вышло:
hierarchy_stoplist swf jsp asp cgi-bin ?
Тоесть напрямую востребовать скрипты перла флеш - модули яваскрипты акстивсерверпэйджес и ссылки в которые включен ? , это бывает когда в пхп либо перле скрипту передаются переменные и скрипт в зависимости от полученых переменных должен задействовать другие функции.
Автор: ArtLonger
Дата сообщения: 09.02.2005 15:13
Ptrovich
К сожалению это полумера. В Инет можно будет и по IP выйти.

А если с другой стороны? IP корпоративных серваков известны. Может попробовать так:
acl badURL url_regex -i !x.x.x.a !x.x.x.b !x.x.x.c

Или прописать их в список:
acl adm src url_regex "/мойпуть/adm_url"
acl usr src url_regex "/мойпуть/usr_url"
acl corp_url dst url_regex "/мойпуть/corp_url"
acl all src 0.0.0.0/0.0.0.0
http_access allow adm
http_access deny !corp_url
http_access allow usr
http_access deny all


Надо попробовать. Если сработает, то и ладно. Просто я думал, что есть возможность управлять хождением через парент-прокси напрямую...
Автор: Ptrovich
Дата сообщения: 09.02.2005 15:31
Даже если сайт не имеет ДНС имени , и пишется как 69.15.25.63, то в случае запроса из браузера будет стоять http или https. Это во - первых, а во вторых ты хочешь от кеша получить то что обычно хотят от файервола. Даже добившись запрета через сквид, у тя еще остаются куча програм : МИРК, Осел, ФТП и пр, которых сквид вообще не видит и не контролирует (вроде кроме фтп).
В третьих, ты сказал что тебе транспарент проксю пока не надо. Как раз очень надо, потому что шустрые юзера очень быстро просекут где в бровзере отключить прокси и буду ходить напрямую вне твоих ограничений. Так что полюбому конструкция на файере с прослушкой ТСР и перебросом на прорт сквида - это твое будущее.
Кста МиРК использует Хай - левел порты , смысле больше 1024 (кажецца 6661 - 6667)
, которые зачастую открыты и по нему можно качать напрямую во всю ивановскую .
Так что мой совет , сделай просто из сквида кеш, наружный сквид как парент кеш (я так проксю провайдера пользую)
cache_peer proxy.ua.net parent 3128 3130 default
А на файере (я исхожу что у тя допустим FreeBSDшное IPFW ) запрети соединения для всех в мир, кроме ВИПов.
А ВИПам пропиши трубы (pipe) с толщиной и весом. И все.
Автор: ArtLonger
Дата сообщения: 09.02.2005 16:24
Ptrovich
Ну я ещё только учусь...

Цитата:
в случае запроса из браузера будет стоять http

... и на внутренние ресурсы тоже. Всё равно придётся выстригать корпоративные адреса.
Примерно так:

Код: [моя сеть]--->[мой прокси]--->[корп.сеть]
|
`----X--->[корп.прокси]--->[Интернет]
Автор: Ptrovich
Дата сообщения: 10.02.2005 12:55


Цитата:
А на файере <...> запрети соединения для всех в мир, кроме ВИПов.

Нельзя просто запретить. В корпоративную сеть как раз можно всем.

ipfw add deny ip from 192.168.0.0/24 to 192.168.63.1 via ${карта смотрящая в корп сеть}
таким макаром пакеты летящие в корп сеть не попадают на шлюз в мир с внутренним адресом 192.168.63.1


Цитата:
Даже добившись запрета через сквид, у тя еще остаются куча програм

А на parent-proxy всё равно только 3128 открыт, так что если обойдут мой прокси, им надо узнать данные корпоративного. А шлюза-то может и не быть .
Но ты прав, без файера фиговато.

При том пофигизме людей управляющих наружным шлюзом , вполне возможно что там все что выше 1024 открыто, и прокся здесь будет вообще не при чем. На моем серваке при "денай фром эни ту эни" игрушка на порты 16900 15121 16121 коннектится без проблем, видно чтобы избежать такого казуса нужно забанить фром эни ту эни по всем 1024-65535 портам окромя нужных 3128 если есть в проксе 3130, ну там аська бывает 5190 и тп.
Автор: ArtLonger
Дата сообщения: 10.02.2005 21:52
Ptrovich

Цитата:
При том пофигизме людей управляющих наружным шлюзом , вполне возможно что там все что выше 1024 открыто

Да нет вроде, так далеко их пофигизм не распространяется, даже наоборот. Не знаю, как они FTP на своём прокси настраивали, но докачки опять напрочь нет...

А тот вариант, что я выше написал, работает. Теперь буду с delay pool экспериментировать. Кстати, не подскажешь, что означает 1/1? Как я понял, -1/-1 это отсутствие всех ограничений, 8000/32000 это ограничение скорости до 8Кбайт/с после скачки первых 32Кбайт, а вот с 1/1 непонятки...

Файер я настраивать конечно буду, но у меня с этим связана другая беда - MS Exchange в корпоративной сети. И чтобы получать адресные книги Outlook'у требуются 135 и 1024-5000 на два сервака... Если бы эти книги можно было быстро к себе выскребсти, сделал бы внутренний почтовик, которому кроме 25 и 110 ничего не надо...
Автор: Ptrovich
Дата сообщения: 11.02.2005 20:28

Цитата:
Кстати, не подскажешь, что означает 1/1? Как я понял, -1/-1 это отсутствие всех ограничений, 8000/32000 это ограничение скорости до 8Кбайт/с после скачки первых 32Кбайт, а вот с 1/1 непонятки...

1/1 по моему то и значит: ограничение до одного кб после 1 кб скачки.
Есть три класса пулов.
deny_pool 1 (1 2 3)
первое номер пула, вторая цифра класс пула:
1 - ограничение общей скорости после закачки какого то обьема.
2 - кроме того что в 1 добавляется то же самое только в пределах сети.
3 - тоже что и 2 + добавляется 3 пара х\х на каждый айп сети.
Тоесть пул 3 класса имеет ограничение всего канала, сети, и каждого юзера.
Это все мой перевод мануала, там расписано детально можешь сам глянуть .
Автор: ArtLonger
Дата сообщения: 12.02.2005 13:54
Ptrovich
Спасибо, понял. Просто в факе и мануале я 1/1 не нашёл, но в разных форумах натыкался. Вот и решил, что прошляпил что...
Автор: Ptrovich
Дата сообщения: 14.02.2005 13:35
Подымаю свой старый вопр. Есть настроеный Squid 2.5
Есть сайт написаный на флеше в миру. При обновлении новостей с сайта обновление на компьютерах нашей фирмы, тоесть ходящих через мой сквид не происходит.
Сначала решил вопрос путем применения директивы hierarchy_stoplist. Помогло ненадолго. Вьеб мастер дописало еще чего то к этому сайту и новости снова перестали обновлятся.
Если просмотреть логи то видно что при закачке файла news.txt , в котором по логике хранятся новости , в access.log засвечивает строчка в которой : TCP_HIT тоесть есть в кеше, а затем говорится NONE что значит - не закачивалось а пульнулось в мою локаль из кеша. Это при том что "hierarchy_stoplist jsp asp swf txt ?". Как такое победить?

Автор: fortune
Дата сообщения: 15.02.2005 15:07
Ptrovich А так пробовал hierarchy_stoplist urlтвоегосайта?
Автор: Ptrovich
Дата сообщения: 15.02.2005 19:27
fortune
Уже и так пробовал.
Пока ничего.
Автор: zenia
Дата сообщения: 15.03.2005 09:18
Есть Squid 2.5 на FreeBSD. Нужно работать с Ftp.
Сейчас с ftp такая ситуация. Ftp-клиентом(total commander) могу закачать, но удалить или переименовать файл не могу. Если работать не через squid, то и закачать и удалить, и переименовать могу.

В чем может быть проблема?
Автор: Teo
Дата сообщения: 15.03.2005 11:31

Цитата:
Если просмотреть логи то видно что при закачке файла news.txt , в котором по логике хранятся новости , в access.log засвечивает строчка в которой : TCP_HIT тоесть есть в кеше, а затем говорится NONE что значит - не закачивалось а пульнулось в мою локаль из кеша. Это при том что "hierarchy_stoplist jsp asp swf txt ?". Как такое победить?

может, refresh_pattern?


Цитата:
Есть Squid 2.5 на FreeBSD. Нужно работать с Ftp.
Сейчас с ftp такая ситуация. Ftp-клиентом(total commander) могу закачать, но удалить или переименовать файл не могу. Если работать не через squid, то и закачать и удалить, и переименовать могу.

В чем может быть проблема?

в чём проблема, не знаю ([хотя советую посмотреть, какие ftp команды входят в кальмара и какие выходят из него), но решением может оказаться применение параметра always_direct

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687

Предыдущая тема: Неполадки в работе DHCP сервера


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.