Название: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 01:29:55 Собственно сабж. Как правильно разрулить http трафик на прозрачную проксю чтобы при этом юзерам все считало правильно? Прокся реально нужна т.к. с интернетом реально плохо.
Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 16 Августа 2009, 08:50:10 Снизить нагрузку прокся поможет, но поверь - очень незначительно. Снизить нагрузку помогут грамотные тарифы и локальные ресурсы. Последнее, конечно, проблематично по законодательству, однако, даже укртелеком не гнушится ставить нелицензионные сервера линейки (или ВОВ, на habr-е читайте). Неплохо бы иметь свой локальный видеархив на несколько тысяч фильмов.
Насчет технической части. Необходимо сделать правку nofire.pl, кусок кода типа: Код: $NumIpfw=$End_num_ipfw; превращается в Код: $NumIpfw=$End_num_ipfw-2; Этим самым мы будем считать трафик от клиента т.к. в стандартной схеме он считается при выходе из сервера, а при squid-е ip будут подменяться на ip сервера. Также мы оформили прозрачный заворот на проксю. Также обязательное переключение параметра net.inet.ip.fw.one_pass=0 - чтобы пакеты после попадания в pipe возвращались в фаервол. Также необходимо указать какую-то директиву в самом squide - она касается прозрачного проксирования. Гугл поможет Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 09:45:24 Снизить нагрузку прокся поможет, но поверь - очень незначительно. Снизить нагрузку помогут грамотные тарифы и локальные ресурсы. Последнее, конечно, проблематично по законодательству, однако, даже укртелеком не гнушится ставить нелицензионные сервера линейки (или ВОВ, на habr-е читайте). Неплохо бы иметь свой локальный видеархив на несколько тысяч фильмов. Респект и уважуха!Насчет технической части. Необходимо сделать правку nofire.pl, кусок кода типа: Код: $NumIpfw=$End_num_ipfw; превращается в Код: $NumIpfw=$End_num_ipfw-2; Этим самым мы будем считать трафик от клиента т.к. в стандартной схеме он считается при выходе из сервера, а при squid-е ip будут подменяться на ip сервера. Также мы оформили прозрачный заворот на проксю. Также обязательное переключение параметра net.inet.ip.fw.one_pass=0 - чтобы пакеты после попадания в pipe возвращались в фаервол. Также необходимо указать какую-то директиву в самом squide - она касается прозрачного проксирования. Гугл поможет Я в курсе насчет нагрузки -- снижает нагрузку в среднем на 10-12%, что тоже хорошо. Видеоархив есть. Прокся уже есть, транспарент ужо включен. Попутно появился еще один вопрос по теме: при проведении указанных мероприятий как это отразится на трафике других протоколов? я имею ввиду net.inet.ip.fw.one_pass=0 Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 16 Августа 2009, 10:08:05 Это ты правильно заметил) Отразится. Надо добавить еще
allow ip from table(0) to any в первом окне правил и во втором: allow ip from any to table(0) перед dyny ip from any to any в обоих случаях Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 11:47:49 Это ты правильно заметил) Отразится. Надо добавить еще как я понял правила из окон динамически очищаются, значит вышеуказанные правила нужно где-то в nofire.pl прописывать?allow ip from table(0) to any в первом окне правил и во втором: allow ip from any to table(0) перед dyny ip from any to any в обоих случаях Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 16 Августа 2009, 12:07:03 да
Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 13:01:17 Спасибо за помощь, вроде бы заработало. Изменения внесены вот такие:
Код: #======================================= Здесь поправочка для работы через проксю ================ Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 16 Августа 2009, 13:26:06 Чтоб правильно считало (не считало дважды непрокcированный трафик), надо либо:
1) удалить ${f} add 510 divert 1 ip from any to any в rc.firewall 2) в nofire.pl заменить divert 1 ip from table(0) to any на divert 1 tcp from table(0) to any 80 Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 15:00:29 Чтоб правильно считало (не считало дважды непрокcированный трафик), надо либо: сделать или то или то? правильно я понимаю?1) удалить ${f} add 510 divert 1 ip from any to any в rc.firewall 2) в nofire.pl заменить divert 1 ip from table(0) to any на divert 1 tcp from table(0) to any 80 Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 15:02:51 Протестировал работу без учета считалок и убедился, что шейперы не шейпят http трафик - а это очень сильно не есть гуд, можно что-то сделать?
Код: 00050 allow tcp from any to me dst-port 22 Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 16 Августа 2009, 15:31:39 да, шейпится только на исход. Надо менять rc.firewall чтоб входящий к клиенту пакеты шейпились при выходе из внутреннего интерфейса
Название: Re: Как прикрутить SQUID? Отправлено: Cell от 16 Августа 2009, 16:49:24 да, шейпится только на исход. Надо менять rc.firewall чтоб входящий к клиенту пакеты шейпились при выходе из внутреннего интерфейса Как это правильно сделать?Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 17 Августа 2009, 08:29:05 это надо переделывать фаервол - пока мне не до этого. Проси помощи в зале
Название: Re: Как прикрутить SQUID? Отправлено: Cell от 17 Августа 2009, 20:35:39 Да я бы с радостью попросил в зале, только не вижу в нем аншлага. Прозрачный прокси сервер штука весьма часто применяемая и стандартная. Странно что здесь совсем ничего не предусмотренно на эту тему.
Название: Re: Как прикрутить SQUID? Отправлено: elite от 17 Августа 2009, 21:04:28 Да я бы с радостью попросил в зале, только не вижу в нем аншлага. Прозрачный прокси сервер штука весьма часто применяемая и стандартная. Странно что здесь совсем ничего не предусмотренно на эту тему. Видимо, при нынешних скоростях прокси никто не применяет )Название: Re: Как прикрутить SQUID? Отправлено: Cell от 17 Августа 2009, 22:42:36 Да я бы с радостью попросил в зале, только не вижу в нем аншлага. Прозрачный прокси сервер штука весьма часто применяемая и стандартная. Странно что здесь совсем ничего не предусмотренно на эту тему. Видимо, при нынешних скоростях прокси никто не применяет )Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 18 Августа 2009, 09:29:15 Код: #!/bin/sh - Что-то типа такого. Проверь Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 18 Августа 2009, 09:33:02 Хотя для белых ip трафик на клиента будет шейпится дважды. Чтоб не шейпился, надо
${f} add 170 allow ip from any to any via ${ifOut} out ${f} add 200 skipto 32500 ip from any to any via ${ifOut} заменить на ${f} add 170 allow ip from any to any via ${ifOut} но при этом весь мусор с инета будет проходить первую заслону фаервол и убиваться на 2й, что допустимо, но не есть гуд Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 18 Августа 2009, 09:35:08 А, все ок) Надо
${f} add 170 allow ip from any to any via ${ifOut} out ${f} add 200 skipto 32500 ip from any to any via ${ifOut} заменить на ${f} add 170 allow ip from any to any via ${ifOut} out ${f} add 200 allow ip from any to "table(0)" via ${ifOut} Название: Re: Как прикрутить SQUID? Отправлено: Cell от 18 Августа 2009, 20:17:56 Перестал цепляться VPN, правило 2020 изменено таким образом:
${f} add 2020 allow tcp from any to any 80,443,1723 не помогает. Ошибка вылетает на стадии выдачи ip. Название: Re: Как прикрутить SQUID? Отправлено: elite от 18 Августа 2009, 20:26:33 Перестал цепляться VPN, правило 2020 изменено таким образом: gre забыл :)${f} add 2020 allow tcp from any to any 80,443,1723 не помогает. Ошибка вылетает на стадии выдачи ip. Название: Re: Как прикрутить SQUID? Отправлено: Cell от 18 Августа 2009, 21:26:11 Перестал цепляться VPN, правило 2020 изменено таким образом: gre забыл :)${f} add 2020 allow tcp from any to any 80,443,1723 не помогает. Ошибка вылетает на стадии выдачи ip. #=============== 00050 allow tcp from any to me dst-port 22 00051 allow tcp from me 22 to any 00110 allow ip from any to any via lo0 00120 skipto 1000 ip from me to any 00130 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17 00160 skipto 2000 ip from any to me 00170 allow ip from any to any via fxp0 out 00200 allow ip from any to table(0) via fxp0 00300 skipto 4500 ip from any to any in 00400 skipto 450 ip from any to any recv fxp0 00420 divert 1 ip from any to any 00450 divert 2 ip from any to any 00490 skipto 32500 ip from any to any 01000 allow udp from any 53,7723 to any 01010 allow tcp from any to any setup keep-state 01020 allow udp from any to any keep-state 01100 allow ip from any to any 02000 check-state 02010 allow icmp from any to any 02012 allow gre from any to any 02020 allow tcp from any to any dst-port 67,68,80,443,1723 02050 deny ip from any to any via fxp0 02060 allow udp from any to any dst-port 53,67,68,123,7723 02100 deny ip from any to any 05000 deny ip from not table(0) to any 05001 skipto 5010 ip from table(127) to table(126) 05002 skipto 5030 ip from any to not table(2) 05003 deny ip from any to not table(1) 05004 pipe tablearg ip from table(21) to any 05005 deny ip from any to any 05010 pipe tablearg ip from table(127) to any 05030 deny tcp from table(15) to any dst-port 25 05400 pipe tablearg ip from table(11) to any 31997 divert 1 ip from table(0) to any 31998 fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80 31999 allow ip from table(0) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 pipe tablearg ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 pipe tablearg ip from any to table(20) 33003 allow ip from any to table(0) 33004 deny ip from any to any 33400 pipe tablearg ip from any to table(10) 65535 allow ip from any to any #====================================== Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 18 Августа 2009, 22:40:53 ipfw add 2030 allow tcp from any 80 to any via fxp0
P.S. Хотя по check-state должно и без этого правила работать. Завтра подумаю Название: Re: Как прикрутить SQUID? Отправлено: Efendy от 19 Августа 2009, 09:06:33 проверь сначала, что сквид работает:
ipfw add 10 allow ip from any to any out ipfw add 20 allow ip from any to any via fxp0 ipfw add 30 fwd 127.0.0.1,3128 tcp from any to any 80 ipfw add 40 allow ip from any to any Название: Re: Как прикрутить SQUID? Отправлено: Cell от 19 Августа 2009, 20:10:25 ipfw add 2030 allow tcp from any 80 to any via fxp0 Все правильно, заработало и без него. Огромное спасибо. Чуть позже в финальном посте выложу все изменения разом для прикручивания squidP.S. Хотя по check-state должно и без этого правила работать. Завтра подумаю Название: Re: Как прикрутить SQUID? Отправлено: Cell от 19 Августа 2009, 23:59:29 Итак, что надо сделать чтобы прикрутить SQUID, чтобы все считалось и шейпилось как положенно:
изменяем файл rc.firewall на следующий: Код: #!/bin/sh - Далее необходимо изменять непосредственно nofire.pl Ищем строки $NumIpfw=$End_num_ipfw; &SetIpfwRule(qq{deny ip from any to any}); и заменяем на $NumIpfw=$End_num_ipfw-3; &SetIpfwRule(qq{divert 1 ip from table(0) to any}); &SetIpfwRule(qq{fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80}); &SetIpfwRule(qq{allow ip from table(0) to any}); &SetIpfwRule(qq{deny ip from any to any}); Затем чуть ниже ищем &SetIpfwRule(qq{deny ip from any to any}); и перед этой строкой добавляем &SetIpfwRule(qq{allow ip from any to table(0)}); Вот собственно и все. Огромное спасибо Efendy за помощь и участие. Название: Re: Как прикрутить SQUID? Отправлено: serojperoj от 10 Октября 2009, 12:24:58 сквид мне тож нужен как воздух)
токо у меня траблы с такими правиламы... в nofire.pl раньше ниразу не трогал. rc.firewall тоже. сделал все как было написано. после перезагрузки пропал свзяь с миром! не только http но и остлное стало недоступно. собственно вопрос - быть может дело в том что у меня все через пппое? Freebsd => Mikrotik=> клиенты Nodeny 50.28 все по дефолту Название: Re: Как прикрутить SQUID? Отправлено: Cell от 10 Октября 2009, 12:28:16 телепаты отдыхают. пппое тут ни при чем
Название: Re: Как прикрутить SQUID? Отправлено: serojperoj от 10 Октября 2009, 13:27:12 не знаю кто там отдыхает, но все-же интересно , кроме автора у кого-то получился прикрутить сквид с такими изменениями?
Название: Re: Как прикрутить SQUID? Отправлено: Cell от 10 Октября 2009, 13:37:11 не знаю кто там отдыхает, но все-же интересно , кроме автора у кого-то получился прикрутить сквид с такими изменениями? у мну ))) я не афтар )Название: Re: Как прикрутить SQUID? Отправлено: serojperoj от 10 Октября 2009, 14:01:34 допустим сквид у меня не работает!(что мало вероятно) но как понять то что ping,icq,skype и т.д. перестают работать?
я ценю твой труд и время каторое потратил на это. и предлогаю пересмотреть конфигы , быть может там должна быть еще пару строк?)) Название: Re: Как прикрутить SQUID? Отправлено: Cell от 10 Октября 2009, 14:40:30 да, точно, ))) в фарйволе нужно разрешить порт 1723 во входящих и протокол gre
Название: Re: Как прикрутить SQUID? Отправлено: versus от 10 Октября 2009, 21:52:54 может не трогать файр а прописать в пф следющее :
rdr on $int_if proto tcp from $localnet to any port www -> 127.0.0.1 port 3128 Название: Re: Как прикрутить SQUID? Отправлено: Cell от 11 Октября 2009, 09:16:34 может не трогать файр а прописать в пф следющее : Пробовал, не получалось. Получилось все описанным выше способом. Человек которому я это делал остался очень доволен.rdr on $int_if proto tcp from $localnet to any port www -> 127.0.0.1 port 3128 Название: Re: Как прикрутить SQUID? Отправлено: serojperoj от 13 Октября 2009, 20:43:15 Цитировать Пробовал, не получалось. Получилось все описанным выше способом. Человек которому я это делал остался очень доволен. а некоторые остались недовольны! и вместо того чтоб флудить без толку мог бы пересмотреть свое чудо... Цитировать Затем чуть ниже ищем &SetIpfwRule(qq{deny ip from any to any}); и перед этой строкой добавляем &SetIpfwRule(qq{allow ip from any to table(0)}); Затем чуть ниже ищем Код: &SetIpfwRule(qq{pipe tablearg ip from any to table(10)}); # мир -> клиент и после этой строки добавляем Код: &SetIpfwRule(qq{allow ip from any to table(0)}); и все начинает работать! Название: Re: Как прикрутить SQUID? Отправлено: Cell от 13 Октября 2009, 21:43:33 а некоторые остались недовольны! Если хотите остаться довольными... платите деньги и счастье сразу на вас свалится большим куском, главное чтобы при этом не придавило. Вообще не понятны основания, дающие вам право на столь хамский тон.и вместо того чтоб флудить без толку мог бы пересмотреть свое чудо... Вместо того, чтобы умничать здесь мог бы взять свой мозг и увидеть что указанных мной строк было 2 (чего я не заметил к сожалению, когда я составлял для таких как вы обобщенный мануал по прикручиванию прокси сервера, который прекрасно работает с 29 августа и хорошо себя чувствует). Название: Re: Как прикрутить SQUID? Отправлено: serojperoj от 13 Октября 2009, 22:36:51 даааа! умеешь сделать чтото - не делай это бесплатно, эт к телепатам...
и когда "составляешь для таких как я обобщенный мануал" эт не дает тебе право вести себя так... иди и сам в фаере разрешай 1723 порт во входящих и протокол gre в l0. Я тебе предлогал пересмотреть. Никто не застрахован от ошибок и поверь ты не исключение. да вот так и поступил, вместо того чтоб умничать здесь с тобой, начал искать сделанную тобой опечатку, каторую ты до сих пор так и не исправил.. думаю тема уже закрита. спс всем кто помогал. Название: Re: Как прикрутить SQUID? Отправлено: Cell от 14 Октября 2009, 10:24:48 Перечитал сейчас свой мануал и понял, что вы, любезный, читать нихрена не умеете и ваши понты это всего-лишь понты и больше ничего. Там даже ошибки нет никакой,
Всего-лишь ВНИМАТЕЛЬНОЕ прочтение: Цитировать Затем чуть ниже ищем в результате изменений получается такой код:&SetIpfwRule(qq{deny ip from any to any}); Код: #======================================= Здесь поправочка для работы через проксю ================= Целую, пух! Уважаемого модератора прошу прибить весь флуд в этой теме и закрыть тему. |