Биллинговая система Nodeny
23 Ноября 2024, 09:12:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: Как прикрутить SQUID?  (Прочитано 20073 раз)
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« : 16 Августа 2009, 01:29:55 »

Собственно сабж. Как правильно разрулить http трафик на прозрачную проксю чтобы при этом юзерам все считало правильно? Прокся реально нужна т.к. с интернетом реально плохо.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 16 Августа 2009, 08:50:10 »

Снизить нагрузку прокся поможет, но поверь - очень незначительно. Снизить нагрузку помогут грамотные тарифы и локальные ресурсы. Последнее, конечно, проблематично по законодательству, однако, даже укртелеком не гнушится ставить нелицензионные сервера линейки (или ВОВ, на habr-е читайте). Неплохо бы иметь свой локальный видеархив на несколько тысяч фильмов.

Насчет технической части. Необходимо сделать правку nofire.pl, кусок кода типа:

Код:
 $NumIpfw=$End_num_ipfw;
 &SetIpfwRule(qq{deny ip from any to any});

превращается в

Код:
 $NumIpfw=$End_num_ipfw-2;
 &SetIpfwRule(qq{divert 1 ip from from table(0) to any});
 &SetIpfwRule(qq{fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80});
 &SetIpfwRule(qq{deny ip from any to any});

Этим самым мы будем считать трафик от клиента т.к. в стандартной схеме он считается при выходе из сервера, а при squid-е ip будут подменяться на ip сервера. Также мы оформили прозрачный заворот на проксю.

Также обязательное переключение параметра net.inet.ip.fw.one_pass=0 - чтобы пакеты после попадания в pipe возвращались в фаервол.

Также необходимо указать какую-то директиву в самом squide - она касается прозрачного проксирования. Гугл поможет
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #2 : 16 Августа 2009, 09:45:24 »

Снизить нагрузку прокся поможет, но поверь - очень незначительно. Снизить нагрузку помогут грамотные тарифы и локальные ресурсы. Последнее, конечно, проблематично по законодательству, однако, даже укртелеком не гнушится ставить нелицензионные сервера линейки (или ВОВ, на habr-е читайте). Неплохо бы иметь свой локальный видеархив на несколько тысяч фильмов.

Насчет технической части. Необходимо сделать правку nofire.pl, кусок кода типа:

Код:
 $NumIpfw=$End_num_ipfw;
 &SetIpfwRule(qq{deny ip from any to any});

превращается в

Код:
 $NumIpfw=$End_num_ipfw-2;
 &SetIpfwRule(qq{divert 1 ip from from table(0) to any});
 &SetIpfwRule(qq{fwd 127.0.0.1,3128 tcp from table(0) to any dst-port 80});
 &SetIpfwRule(qq{deny ip from any to any});

Этим самым мы будем считать трафик от клиента т.к. в стандартной схеме он считается при выходе из сервера, а при squid-е ip будут подменяться на ip сервера. Также мы оформили прозрачный заворот на проксю.

Также обязательное переключение параметра net.inet.ip.fw.one_pass=0 - чтобы пакеты после попадания в pipe возвращались в фаервол.

Также необходимо указать какую-то директиву в самом squide - она касается прозрачного проксирования. Гугл поможет
Респект и уважуха!
Я в курсе насчет нагрузки -- снижает нагрузку в среднем на 10-12%, что тоже хорошо. Видеоархив есть. Прокся уже есть, транспарент ужо включен.
Попутно появился еще один вопрос по теме: при проведении указанных мероприятий как это отразится на трафике других протоколов? я имею ввиду net.inet.ip.fw.one_pass=0
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #3 : 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 в обоих случаях

Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #4 : 16 Августа 2009, 11:47:49 »

Это ты правильно заметил) Отразится. Надо добавить еще
allow ip from table(0) to any
в первом окне правил и во втором:
allow ip from any to table(0)
перед dyny ip from any to any в обоих случаях
как я понял правила из окон динамически очищаются, значит вышеуказанные правила нужно где-то в nofire.pl прописывать?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #5 : 16 Августа 2009, 12:07:03 »

да
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #6 : 16 Августа 2009, 13:01:17 »

Спасибо за помощь, вроде бы заработало. Изменения внесены вот такие:
Код:
#======================================= Здесь поправочка для работы через проксю ================
 #$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});
#===========================================================================================
 $NumIpfw=$Start_num2_ipfw;

 $n1=$NumIpfw+10;
 $n2=$NumIpfw+400;

 &SetIpfwRule(qq{pipe tablearg ip from table(126) to table(127)});      # альтернативное направление -> клиент
 &SetIpfwRule(qq{skipto $n1 ip from not table(2) to any});              # не от клиента ->
 &SetIpfwRule(qq{pipe tablearg ip from any to table(20)});              # клиент -> клиент
#======================================= Здесь тоже для прокси ==================================
 &SetIpfwRule(qq{allow ip from any to table(0)});
#============================================================================================
Надо будет проверить еще как считает.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #7 : 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
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #8 : 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

сделать или то или то? правильно я понимаю?
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #9 : 16 Августа 2009, 15:02:51 »

Протестировал работу без учета считалок и убедился, что шейперы не шейпят http трафик - а это очень сильно не есть гуд, можно что-то сделать?
Код:
00050 allow tcp from any to me dst-port 22
00051 allow tcp from me 22 to any
00100 deny tcp from any to any dst-port 445
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
00140 deny ip from any to table(120)
00150 deny ip from table(120) to any
00160 skipto 2000 ip from any to me
00200 skipto 500 ip from any to any 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 allow ip from any to any
00500 skipto 32500 ip from any to any in
00510 divert 1 ip from any to any
00540 allow 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
02070 allow tcp from any to any dst-port 53
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
« Последнее редактирование: 16 Августа 2009, 15:05:58 от cell » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #10 : 16 Августа 2009, 15:31:39 »

да, шейпится только на исход. Надо менять rc.firewall чтоб входящий к клиенту пакеты шейпились при выходе из внутреннего интерфейса
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #11 : 16 Августа 2009, 16:49:24 »

да, шейпится только на исход. Надо менять rc.firewall чтоб входящий к клиенту пакеты шейпились при выходе из внутреннего интерфейса
Как это правильно сделать?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #12 : 17 Августа 2009, 08:29:05 »

это надо переделывать фаервол -  пока мне не до этого. Проси помощи в зале
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #13 : 17 Августа 2009, 20:35:39 »

Да я бы с радостью попросил в зале, только не вижу в нем аншлага. Прозрачный прокси сервер штука весьма часто применяемая и стандартная. Странно что здесь совсем ничего не предусмотренно на эту тему.
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #14 : 17 Августа 2009, 21:04:28 »

Да я бы с радостью попросил в зале, только не вижу в нем аншлага. Прозрачный прокси сервер штука весьма часто применяемая и стандартная. Странно что здесь совсем ничего не предусмотренно на эту тему.
Видимо, при нынешних скоростях прокси никто не применяет )
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!