ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: Inet-Admins
Inet-Admins mailing list archive (inet-admins@info.east.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [inet-admins] transparent proxy



> 
> Hi!
> 
>  >> Так цель моего документа - просто задокументировать это. А то поиск в
>  >> FAQ/dejanews/altavista/rambler/UGU/доках на ipfilter не дал _ничего_
>  >> работоспособного. Задокументировали бы и положили в "отстойник" - о чем
>  >> собственно я речь и веду.
>  ier> Отличная идея,но боюсь не  жизнеспособная - по причине опять же всеобщей
>  ier> ленности. :)
> Вот мы и посмотрим. Но вообще, отечественная привычка не документировать то что 
> сделано бъет по самим же сисадминам. Как доктор вам говорю :)
> 
>  >> Так тут более-менее понятно что делать. Заворачивать icmp 'packet too
>  >> big' на ту же машину, где работает proxy, скармливать их там программе,
>  >> которая будет делать NAT lookup и соответственно принимать во внимание
>  >> или отсылать дальше по роутингу (если через ту же Cisco, то нужно тогда
>  >> подменять source addr у этого icmp на fake и для fake-адресов не делать
>  >> policy routing).
>  ier> Можно ли  взглянуть на src ?
> Хм. Я не знаю, насколько "разглашаемо" то, что мне присылал Ярослав Тихий
> <yar@comp.chem.msu.su>, лучше переспросите у него (блин, работа с американцами 
> дает о себе знать - все про что не знаешь, сразу считаешь non-disclosure).
> 
> А в общих чертах в RadioMSU все устроено так - все icmp 'too big', кроме идущих
> с fake addr заворачиваются на машину с natd. Natd _сам_ и без каких-либо правок
> находит там свои пакеты (это встроенная фича), остаток работы - подменить 
> source address у всех остальных icmp-пакетов на fake и отослать обратно. 
> Примерно 20 строчек кода. На что тут, собственно, смотреть.
> 
> 
> BTW, вторые возможные грабли, о которых писал Илья - это то, что стандартный 
> Squid без заголовка Host: работать не будет. Это лечится моим патчем, 
> подключающим к Squid'у NAT lookup.

The  CURE :)


--- squid-1.1.18.orig/src/icp.c Thu Oct  9 02:18:29 1997
+++ squid-1.1.18/src/icp.c      Wed Oct 29 01:31:36 1997
@@ -1654,16 +1654,7 @@
     /* see if we running in httpd_accel_mode, if so got to convert it to URL */
     if (httpd_accel_mode && *url == '/') {
        /* prepend the accel prefix */
-       if (vhost_mode) {
-           /* Put the local socket IP address as the hostname */
-           url_sz = strlen(url) + 32 + Config.appendDomainLen;
-           icpState->url = xcalloc(url_sz, 1);
-           sprintf(icpState->url, "http://%s:%d%s",
-               inet_ntoa(icpState->me.sin_addr),
-               (int) Config.Accel.port,
-               url);
-           debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url);
-       } else if (opt_accel_uses_host && (t = mime_get_header(req_hdr, "Host"))
) {
+       if (opt_accel_uses_host && (t = mime_get_header(req_hdr, "Host"))) {
            /* If a Host: header was specified, use it to build the URL
             * instead of the one in the Config file. */
            /*
@@ -1678,6 +1669,16 @@
            icpState->url = xcalloc(url_sz, 1);
            sprintf(icpState->url, "http://%s:%d%s",
                t, (int) Config.Accel.port, url);
+           if (vhost_mode) debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url)
;
+       }else if (vhost_mode) {
+           /* Put the local socket IP address as the hostname */
+           url_sz = strlen(url) + 32 + Config.appendDomainLen;
+           icpState->url = xcalloc(url_sz, 1);
+           sprintf(icpState->url, "http://%s:%d%s",
+               inet_ntoa(icpState->me.sin_addr),
+               (int) Config.Accel.port,
+               url);
+           debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url);
        } else {
            url_sz = strlen(Config.Accel.prefix) + strlen(url) +
                Config.appendDomainLen + 1;

> 
> С уважением,Alex Tutubalin
> 
> --- GoldED 2.42.G1114+
> 
> 
> =============================================================================
> "inet-admins" Internet access mailing list. Maintained by East Connection ISP.
> Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
> 

=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.



 




Copyright © Lexa Software, 1996-2009.