The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
FreeBSD TPROXY, !*! alex_eisner, 29-Май-14, 13:15  [смотреть все]
Здравствуйте!

Я администратор у маленького провайдера. Как вы знаете, есть закон по которому мы должны блокировать политически неблагонадежные сайты. Для нас большой проблемы нет, наш оператор их блокирует, дополнительно заморачиваться и не очнь надо. Но вот наша доблесная прокуратура решила заработать себе галочку. Через суд нас обязали прикрыть ролик на ютубе.

Ну раз наш самый справедливый и гумманный сказал - значит надо!

У меня стоит маршрутизатор под управлением FreeBSD. Воткнул в него Режик+Squid прозрачно. Вместо ролика со злыми ингушами у наших абонентов появляется страничка с "Ай-яй-яй, не ходи сюда!!!". Все замечательно.

Только вот... Зайдя на любой сайт, типа 2ip.ru, он мне говорит IP моего маршрутизатора, а вот за этим прокси вот твой реальный АЙПИ. Не кошерно конечно, но и не так как уж и страшно. Но вот стали переодически на Яндексах и Гуглах появляться сообщения: ваш адрес очень любопытный, много задает вопросов, вы наверное терминатор!!! И требует доказать абоненту, что он истинный потомок Джона Конара, а не какойто там житкий. В общем надо капчу вводить... А это мне уже не нравиться.

Нашел в сети такую технологию Сквида TPROXY. С помощью нее Сквид загружает сайт, использую адрес клиента. Но TPROXY работает только под Linux. В портах есть lusca_head. Это сквид с TPROXY для FreeBSD. Попробывал ее.

Если включить transparent - все работает. А вот если tproxy, то в браузере выдает такую штуку.
В браузере:

While trying to process the request:

              GET / HTTP/1.1
Host: 192.168.1.59:83
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: pma_lang=ru; pma_mcrypt_iv=JkfL3GPfLzg=; pmaUser-1=5o6xJk1UOio=; pma_collation_connection=utf8_general_ci
Connection: keep-alive
Cache-Control: max-age=0


            

The following error was encountered:

Invalid Request

Перед GET иммено стоят непонятные невидимые символы.

На сквид я заворачиваю с помощью ipfw:

ipfw add fwd 127.0.0.1,3128 tcp from any to not me in xmit em1
ipfw add fwd 127.0.0.1,3128 tcp from any to not me in recv em1

Уж очень хочется оставить ipfw и FreeBSD, потому что стоит еще самописный демон, который дребует именно ipfw. Также отлаженная система управления клиентами и т.д.

Уважаемые спецы, может кто сталкивался с подобной задачей? Помогите советом.
С уважением,
Алексей

  • FreeBSD TPROXY, !*! LHC, 13:39 , 29-Май-14 (1)
    >[оверквотинг удален]
    > ipfw add fwd 127.0.0.1,3128 tcp from any to not me in xmit
    > em1
    > ipfw add fwd 127.0.0.1,3128 tcp from any to not me in recv
    > em1
    > Уж очень хочется оставить ipfw и FreeBSD, потому что стоит еще самописный
    > демон, который дребует именно ipfw. Также отлаженная система управления клиентами и
    > т.д.
    > Уважаемые спецы, может кто сталкивался с подобной задачей? Помогите советом.
    > С уважением,
    > Алексей

    В Squid
    forwarded_for delete
    via off

    • FreeBSD TPROXY, !*! alex_eisner, 14:39 , 29-Май-14 (2)
      > В Squid
      > forwarded_for delete
      > via off

      Спасибо за отклик!

      В данном случае тот же 2ip скажет что прокси вы не используете. Но адрес покажет проксевый.
      Соответственно все равно будут получать капчу в поисковиках. Хотелость бы чтобы удаленный хость видил ip клиента, а не прокси...

      С уважением,
      Алексей.

      • FreeBSD TPROXY, !*! PavelR, 15:35 , 29-Май-14 (4)
        >> В Squid
        >> forwarded_for delete
        >> via off
        > Спасибо за отклик!
        > В данном случае тот же 2ip скажет что прокси вы не используете.
        > Но адрес покажет проксевый.
        > Соответственно все равно будут получать капчу в поисковиках. Хотелость бы чтобы удаленный
        > хость видил ip клиента, а не прокси...
        > С уважением,
        > Алексей.

        а зачем вы _все_ DST IP заворачиваете на прокси?

  • FreeBSD TPROXY, !*! Georgdts, 15:21 , 29-Май-14 (3)
    Добрый,

    > Уважаемые спецы, может кто сталкивался с подобной задачей? Помогите советом.
    > С уважением,
    > Алексей

    А ядро собрано с:
    options         IP_NONLOCALBIND

    ?
    А вообще вот тут пример: http://tproxy.no-ip.org/

  • FreeBSD TPROXY, !*! StreSS.t, 15:53 , 29-Май-14 (5)
    http://habrahabr.ru/post/219435/ - только перепишите под себя правила.
    • FreeBSD TPROXY, !*! alex_eisner, 10:23 , 30-Май-14 (6)
      Во-первых я не првильно прописал настройку tproxy:
      Было: http_port 3128 tproxy
      Надо: http_port 3128 transparent proxy

      Но в таком случае запроса от реального адреса не происходит. То есть прокси запрос делает от себя.

      Включил полный дебаг, увидел следующее:
      comm_dfopen6: FD: TPROXY comm_ips_bind_rem() failed: errno 1 ((1) Operation not permited)

      Погуглил. Ага не разрешает спуфить адрес не от рута.

      > options         IP_NONLOCALBIND

      На эту опцию make ругается, что нет такой...

      Нашел ссылочку:
      http://adsh.org.ua/blog/comments/52/#comments

      Сейчас пока нет возможности заниматься данным вопросом. В понедельник перекомпилирую ядро, попробую, отпишусь по результатам.

      Большое спасибо за Ваше участие!
      С уважением,
      Алексей.

      • FreeBSD TPROXY, !*! alex_eisner, 15:26 , 02-Июн-14 (7)
        Все получилось!

        Пропатчил сорцы, перекомпилировал и установил ядро. На внешнем хосте отобразился мой адрес, а не проксевый.

        Пошел готовить боевой сервак.

        Большое спасибо!
        С уважением,
        Алексей.


  • FreeBSD TPROXY, !*! alex_eisner, 14:03 , 28-Ноя-14 (8)
    Еще раз здравствуйте!

    Недавно поднимал сервак для тестов с проксями... Оказалось что lusca-head в портах уже нет. В порту www/squid он версии 3.4.9. Почитал README, там написано, что TPROXY нормально работает, надо только опции IPFW_TRANSPARENT поставить. Попробовал, выдает ошибку:
    FATAL: http(s)_port: TPROXY support in the system does not work.

    Все дело в том, что его запускать надо рутом, т.е. в rc.conf добавит squid_user="root". Работает без проблем.
    Допустим клиентская сеть 10.0.0.0/24 на интерфейсе em1, внешняя на em0, тогда фаервол будет выглядить так:

    ipfw add fwd 127.0.0.1,3128 all from 10.0.0.0/24 to any 80 in recv em1
    ipfw add fwd 127.0.0.1 all from any 80 to 10.0.0.0/24 in recv em0

    Если вторую строку не добавить, то пакеты от сервера будут сразу пересылаться к клиенту, не попадая в сквид.

    С уважением,
    Алексей!

    • FreeBSD TPROXY, !*! Alexander Sheiko, 19:57 , 18-Май-15 (9)
      > Все дело в том, что его запускать надо рутом, т.е. в rc.conf
      > добавит squid_user="root". Работает без проблем.

      Не пугайте людей. Пропачьте сорцы, как в моей заметке, и юзайте с новым сквидом.

      • FreeBSD TPROXY, !*! Михаил, 00:22 , 08-Ноя-17 (10)
        >> Все дело в том, что его запускать надо рутом, т.е. в rc.conf
        >> добавит squid_user="root". Работает без проблем.
        > Не пугайте людей. Пропачьте сорцы, как в моей заметке, и юзайте с
        > новым сквидом.

        Добрый день! Тоже столкнулся с задачей спуфа адресов через прокси. Вопрос: для современной FreeBSD 11.1 патч будет работоспособен?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру